fix: quality-rails Commander version mismatch + installer defaults (#364)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/push/publish Pipeline was successful

This commit was merged in pull request #364.
This commit is contained in:
2026-04-03 02:40:02 +00:00
parent d4c5797a65
commit acfb31f8f6
6 changed files with 25 additions and 17 deletions

View File

@@ -1,6 +1,6 @@
{ {
"name": "@mosaic/cli", "name": "@mosaic/cli",
"version": "0.0.9", "version": "0.0.10",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",

View File

@@ -2,7 +2,7 @@
import { createRequire } from 'module'; import { createRequire } from 'module';
import { Command } from 'commander'; import { Command } from 'commander';
import { createQualityRailsCli } from '@mosaic/quality-rails'; import { registerQualityRails } from '@mosaic/quality-rails';
import { registerAgentCommand } from './commands/agent.js'; import { registerAgentCommand } from './commands/agent.js';
import { registerMissionCommand } from './commands/mission.js'; import { registerMissionCommand } from './commands/mission.js';
// prdy is registered via launch.ts // prdy is registered via launch.ts
@@ -300,11 +300,7 @@ registerMissionCommand(program);
// ─── quality-rails ────────────────────────────────────────────────────── // ─── quality-rails ──────────────────────────────────────────────────────
const qrWrapper = createQualityRailsCli(); registerQualityRails(program);
const qrCmd = qrWrapper.commands.find((c) => c.name() === 'quality-rails');
if (qrCmd !== undefined) {
program.addCommand(qrCmd as unknown as Command);
}
// ─── update ───────────────────────────────────────────────────────────── // ─── update ─────────────────────────────────────────────────────────────

View File

@@ -1,6 +1,6 @@
{ {
"name": "@mosaic/mosaic", "name": "@mosaic/mosaic",
"version": "0.0.9", "version": "0.0.10",
"description": "Mosaic agent framework — installation wizard and meta package", "description": "Mosaic agent framework — installation wizard and meta package",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",

View File

@@ -1,6 +1,6 @@
{ {
"name": "@mosaic/quality-rails", "name": "@mosaic/quality-rails",
"version": "0.0.2", "version": "0.0.3",
"type": "module", "type": "module",
"main": "dist/index.js", "main": "dist/index.js",
"types": "dist/index.d.ts", "types": "dist/index.d.ts",
@@ -17,7 +17,7 @@
"test": "vitest run --passWithNoTests" "test": "vitest run --passWithNoTests"
}, },
"dependencies": { "dependencies": {
"commander": "^12.0.0" "commander": "^13.0.0"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.0.0", "@types/node": "^22.0.0",

View File

@@ -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 { export function createQualityRailsCli(): Command {
const program = new Command('mosaic'); const program = new Command('mosaic');
const qualityRails = program buildQualityRailsCommand(
.command('quality-rails') program.command('quality-rails').description('Manage quality rails scaffolding'),
.description('Manage quality rails scaffolding'); );
return program;
}
function buildQualityRailsCommand(qualityRails: Command): void {
qualityRails qualityRails
.command('init') .command('init')
.requiredOption('--project <path>', 'Project path') .requiredOption('--project <path>', 'Project path')
@@ -184,8 +198,6 @@ export function createQualityRailsCli(): Command {
); );
} }
}); });
return program;
} }
export async function runQualityRailsCli(argv: string[] = process.argv): Promise<void> { export async function runQualityRailsCli(argv: string[] = process.argv): Promise<void> {

4
pnpm-lock.yaml generated
View File

@@ -541,8 +541,8 @@ importers:
packages/quality-rails: packages/quality-rails:
dependencies: dependencies:
commander: commander:
specifier: ^12.0.0 specifier: ^13.0.0
version: 12.1.0 version: 13.1.0
devDependencies: devDependencies:
'@types/node': '@types/node':
specifier: ^22.0.0 specifier: ^22.0.0