diff --git a/packages/cli/package.json b/packages/cli/package.json index f7e45e2..5d50103 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@mosaic/cli", - "version": "0.0.9", + "version": "0.0.10", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/cli/src/cli.ts b/packages/cli/src/cli.ts index 5639ed1..f7be368 100644 --- a/packages/cli/src/cli.ts +++ b/packages/cli/src/cli.ts @@ -2,7 +2,7 @@ import { createRequire } from 'module'; import { Command } from 'commander'; -import { createQualityRailsCli } from '@mosaic/quality-rails'; +import { registerQualityRails } from '@mosaic/quality-rails'; import { registerAgentCommand } from './commands/agent.js'; import { registerMissionCommand } from './commands/mission.js'; // prdy is registered via launch.ts @@ -300,11 +300,7 @@ registerMissionCommand(program); // ─── quality-rails ────────────────────────────────────────────────────── -const qrWrapper = createQualityRailsCli(); -const qrCmd = qrWrapper.commands.find((c) => c.name() === 'quality-rails'); -if (qrCmd !== undefined) { - program.addCommand(qrCmd as unknown as Command); -} +registerQualityRails(program); // ─── update ───────────────────────────────────────────────────────────── diff --git a/packages/mosaic/package.json b/packages/mosaic/package.json index b09d1f5..4553da1 100644 --- a/packages/mosaic/package.json +++ b/packages/mosaic/package.json @@ -1,6 +1,6 @@ { "name": "@mosaic/mosaic", - "version": "0.0.9", + "version": "0.0.10", "description": "Mosaic agent framework — installation wizard and meta package", "type": "module", "main": "dist/index.js", diff --git a/packages/quality-rails/package.json b/packages/quality-rails/package.json index cd64fe4..e26ff4a 100644 --- a/packages/quality-rails/package.json +++ b/packages/quality-rails/package.json @@ -1,6 +1,6 @@ { "name": "@mosaic/quality-rails", - "version": "0.0.2", + "version": "0.0.3", "type": "module", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -17,7 +17,7 @@ "test": "vitest run --passWithNoTests" }, "dependencies": { - "commander": "^12.0.0" + "commander": "^13.0.0" }, "devDependencies": { "@types/node": "^22.0.0", diff --git a/packages/quality-rails/src/cli.ts b/packages/quality-rails/src/cli.ts index 938a963..0c5908f 100644 --- a/packages/quality-rails/src/cli.ts +++ b/packages/quality-rails/src/cli.ts @@ -106,12 +106,26 @@ function printScaffoldResult( } } +/** + * Register quality-rails subcommands on an existing Commander program. + * This avoids cross-package Commander version mismatches by using the + * caller's Command instance directly. + */ +export function registerQualityRails(parent: Command): void { + buildQualityRailsCommand( + parent.command('quality-rails').description('Manage quality rails scaffolding'), + ); +} + export function createQualityRailsCli(): Command { const program = new Command('mosaic'); - const qualityRails = program - .command('quality-rails') - .description('Manage quality rails scaffolding'); + buildQualityRailsCommand( + program.command('quality-rails').description('Manage quality rails scaffolding'), + ); + return program; +} +function buildQualityRailsCommand(qualityRails: Command): void { qualityRails .command('init') .requiredOption('--project ', 'Project path') @@ -184,8 +198,6 @@ export function createQualityRailsCli(): Command { ); } }); - - return program; } export async function runQualityRailsCli(argv: string[] = process.argv): Promise { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bf7d0b9..2f01cc2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -541,8 +541,8 @@ importers: packages/quality-rails: dependencies: commander: - specifier: ^12.0.0 - version: 12.1.0 + specifier: ^13.0.0 + version: 13.1.0 devDependencies: '@types/node': specifier: ^22.0.0