fix(errors): improve recovery guidance

This commit is contained in:
morluto committed 2026-07-13 19:09:27 +00:00
1 parent af8c4efb4a
commit 77454dc8f4
42 files changed
+1492 -304

No files matched your search

+21 -3
View File
@@ -1,12 +1,26 @@
import { Cli, z } from "incur";
import { Cli, Errors, z } from "incur";
import {
captureProcessScenarioFile,
compareProcessEvidenceFiles,
isProcessCliErrorOutput,
} from "./application/ProcessCli.js";
import { logCliCommand } from "./cliLogging.js";
import type { Logger } from "./logger.js";
const requireProcessCommandSuccess = async <Value>(
execute: () => Promise<Value>,
): Promise<Value> => {
const value = await execute();
if (isProcessCliErrorOutput(value))
throw new Errors.IncurError({
code: "PROCESS_COMMAND_FAILED",
message: value.message,
retryable: false,
});
return value;
};
/** Register Process Capture v4 one-shot commands through shared application services. */
export const registerProcessCommands = (
cli: ReturnType<typeof Cli.create>,
@@ -17,7 +31,9 @@ export const registerProcessCommands = (
args: z.object({ scenario: z.string().describe("Scenario JSON path") }),
run: ({ args }) =>
logCliCommand(logger, "capture-process", () =>
captureProcessScenarioFile(args.scenario),
requireProcessCommandSuccess(() =>
captureProcessScenarioFile(args.scenario),
),
),
});
cli.command("compare-process-captures", {
@@ -28,7 +44,9 @@ export const registerProcessCommands = (
}),
run: ({ args }) =>
logCliCommand(logger, "compare-process-captures", () =>
compareProcessEvidenceFiles(args.left, args.right),
requireProcessCommandSuccess(() =>
compareProcessEvidenceFiles(args.left, args.right),
),
),
});
};