Files
rea/src/cli/processCommands.ts
T
morluto 494d4db6d9 refactor(cli): collapse duplicate CLI layer into src/cli (#630)
Move root cli*Commands and cliSetup into src/cli, delete the
forwarding layer, point src/cli.ts and tests at the owners. No
forwarding shims.
2026-10-06 05:04:25 +08:00

49 lines
1.6 KiB
TypeScript

import { Cli, z } from "incur";
import {
captureProcessScenarioFile,
compareProcessEvidenceFiles,
isProcessCliFailure,
} from "../application/ProcessCli.js";
import { logCliCommand } from "../cliLogging.js";
import type { Logger } from "../logger.js";
import { CLI_COMMANDS } from "../cliCommandNames.js";
/** Register direct process capture and comparison commands. */
export const registerProcessCommands = (
cli: ReturnType<typeof Cli.create>,
logger: Logger,
environment: Readonly<Record<string, string | undefined>> = process.env,
): void => {
cli.command(CLI_COMMANDS.captureProcess, {
description: "Capture one caller-selected process scenario",
args: z.object({ scenario: z.string().describe("Scenario JSON path") }),
run: ({ args }) =>
logCliCommand(
logger,
"capture-process",
() => captureProcessScenarioFile(args.scenario, environment),
isProcessCliFailure,
),
});
cli.command(CLI_COMMANDS.compareProcessCaptures, {
description: "Compare two process capture Evidence JSON files",
args: z.object({
left: z.string().describe("Left capture Evidence JSON path"),
right: z.string().describe("Right capture Evidence JSON path"),
traceSpec: z
.string()
.optional()
.describe("Optional partial-order or finite-trace specification path"),
}),
run: ({ args }) =>
logCliCommand(
logger,
"compare-process-captures",
() =>
compareProcessEvidenceFiles(args.left, args.right, args.traceSpec),
isProcessCliFailure,
),
});
};