UNPKG

jay-code

Version:

Streamlined AI CLI orchestration engine with mathematical rigor and enterprise-grade reliability

48 lines (41 loc) 1.4 kB
import { dirname, join, resolve } from 'path'; import { fileURLToPath } from 'url'; import { existsSync, readFileSync } from 'fs'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); export function getClaudeFlowRoot(): string { // Try multiple strategies to find the root const strategies = [ // Strategy 1: From current file location resolve(__dirname, '../..'), // Strategy 2: From process.cwd() process.cwd(), // Strategy 3: From npm global location resolve(process.execPath, '../../lib/node_modules/jay-code'), // Strategy 4: From environment variable process.env.JAY_CODE_ROOT || '', ]; for (const path of strategies) { if (path && existsSync(join(path, 'package.json'))) { try { const pkgPath = join(path, 'package.json'); const pkgContent = readFileSync(pkgPath, 'utf-8'); const pkg = JSON.parse(pkgContent); if (pkg.name === 'jay-code') { return path; } } catch { // Ignore errors and try next strategy } } } // Fallback to current working directory return process.cwd(); } export function getClaudeFlowBin(): string { return join(getClaudeFlowRoot(), 'bin', 'jay-code'); } export function resolveProjectPath(relativePath: string): string { const root = getClaudeFlowRoot(); return resolve(root, relativePath); }