/** * Version utility - Reads version from package.json */ import { readFileSync } from 'fs'; import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; import { createLogger } from '@automaker/utils'; const logger = createLogger('Version'); const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); let cachedVersion: string | null = null; /** * Get the version from package.json * Caches the result for performance */ export function getVersion(): string { if (cachedVersion) { return cachedVersion; } try { const packageJsonPath = join(__dirname, '..', '..', 'package.json'); const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8')); const version = packageJson.version || '0.0.0'; cachedVersion = version; return version; } catch (error) { logger.warn('Failed to read version from package.json:', error); return '0.0.0'; } }