/** * Verification-status subcommand router. * Routes `verification.status ` to verification.cmdVerificationStatus. * * Note: `verification` (reads verifier-emitted status) is distinct from `verify` * (runs verification checks like plan-structure/artifacts). Keep them separate. * * ADR-457 build-at-publish: source in src/verification-command-router.cts, * compiled to msd-core/bin/lib/verification-command-router.cjs (gitignored). */ // eslint-disable-next-line @typescript-eslint/no-require-imports import cjsCommandRouterAdapter = require('./cjs-command-router-adapter.cjs'); const { routeCjsCommandFamily } = cjsCommandRouterAdapter; // ─── Types ──────────────────────────────────────────────────────────────────── interface VerificationModule { cmdVerificationStatus(cwd: string, phaseDirArg: string | undefined, raw: boolean): void; cmdVerificationResolveFile(cwd: string, phaseDirArg: string | undefined, raw: boolean): void; cmdVerificationFingerprint(cwd: string, phaseDirArg: string | undefined, files: string[], raw: boolean): void; } /** UAT-evidence verbs live in their own module (it imports `verification`, not the reverse). */ interface UatEvidenceModule { cmdVerificationUatEvidence(cwd: string, phaseDirArg: string | undefined, files: string[], raw: boolean): void; cmdVerificationSeedUat(cwd: string, phaseDirArg: string | undefined, raw: boolean): void; cmdVerificationCanonicalizeUat(cwd: string, phaseDirArg: string | undefined, raw: boolean): void; } interface RouteVerificationCommandOptions { verification: VerificationModule; uatEvidence: UatEvidenceModule; args: string[]; cwd: string; raw: boolean; error: (message: string) => void; } // ─── Implementation ─────────────────────────────────────────────────────────── const VERIFICATION_SUBCOMMANDS = ['status', 'resolve-file', 'fingerprint', 'uat-evidence', 'seed-uat', 'canonicalize-uat']; function routeVerificationCommand({ verification, uatEvidence, args, cwd, raw, error, }: RouteVerificationCommandOptions): void { routeCjsCommandFamily({ args, subcommands: VERIFICATION_SUBCOMMANDS, unsupported: {}, error, unknownMessage: (_subcommand: string, available: string[]) => `Unknown verification subcommand. Available: ${available.join(', ')}`, handlers: { status: () => verification.cmdVerificationStatus(cwd, args[2], raw), 'resolve-file': () => verification.cmdVerificationResolveFile(cwd, args[2], raw), fingerprint: () => verification.cmdVerificationFingerprint(cwd, args[2], args.slice(3), raw), 'uat-evidence': () => uatEvidence.cmdVerificationUatEvidence(cwd, args[2], args.slice(3), raw), 'seed-uat': () => uatEvidence.cmdVerificationSeedUat(cwd, args[2], raw), 'canonicalize-uat': () => uatEvidence.cmdVerificationCanonicalizeUat(cwd, args[2], raw), }, }); } export = { routeVerificationCommand, };