@jeger-ai/opengantry 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -5
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +3 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +64 -3
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/lib/doctor-orchestration.d.ts.map +1 -1
- package/dist/cli/lib/doctor-orchestration.js +9 -2
- package/dist/cli/lib/doctor-orchestration.js.map +1 -1
- package/dist/cli/lib/doctor-substrate-drift.d.ts +7 -0
- package/dist/cli/lib/doctor-substrate-drift.d.ts.map +1 -0
- package/dist/cli/lib/doctor-substrate-drift.js +35 -0
- package/dist/cli/lib/doctor-substrate-drift.js.map +1 -0
- package/dist/cli/lib/file-merge-gxt.d.ts +4 -0
- package/dist/cli/lib/file-merge-gxt.d.ts.map +1 -0
- package/dist/cli/lib/file-merge-gxt.js +35 -0
- package/dist/cli/lib/file-merge-gxt.js.map +1 -0
- package/dist/cli/lib/fix-hints.d.ts +1 -0
- package/dist/cli/lib/fix-hints.d.ts.map +1 -1
- package/dist/cli/lib/fix-hints.js +14 -1
- package/dist/cli/lib/fix-hints.js.map +1 -1
- package/dist/cli/lib/git-repo.d.ts +2 -0
- package/dist/cli/lib/git-repo.d.ts.map +1 -1
- package/dist/cli/lib/git-repo.js +13 -0
- package/dist/cli/lib/git-repo.js.map +1 -1
- package/dist/cli/lib/gxt-error-codes.d.ts +2 -0
- package/dist/cli/lib/gxt-error-codes.d.ts.map +1 -1
- package/dist/cli/lib/gxt-error-codes.js +3 -1
- package/dist/cli/lib/gxt-error-codes.js.map +1 -1
- package/dist/cli/lib/init-asset-catalog.d.ts.map +1 -1
- package/dist/cli/lib/init-asset-catalog.js +6 -0
- package/dist/cli/lib/init-asset-catalog.js.map +1 -1
- package/dist/cli/lib/init-tutorial.d.ts.map +1 -1
- package/dist/cli/lib/init-tutorial.js +1 -0
- package/dist/cli/lib/init-tutorial.js.map +1 -1
- package/dist/cli/lib/mcp-runtime.d.ts +3 -26
- package/dist/cli/lib/mcp-runtime.d.ts.map +1 -1
- package/dist/cli/lib/mcp-runtime.js +7 -70
- package/dist/cli/lib/mcp-runtime.js.map +1 -1
- package/dist/cli/lib/mcp-tools-register.d.ts.map +1 -1
- package/dist/cli/lib/mcp-tools-register.js +2 -1
- package/dist/cli/lib/mcp-tools-register.js.map +1 -1
- package/dist/cli/lib/trace-evidence.d.ts +32 -0
- package/dist/cli/lib/trace-evidence.d.ts.map +1 -0
- package/dist/cli/lib/trace-evidence.js +148 -0
- package/dist/cli/lib/trace-evidence.js.map +1 -0
- package/dist/cli/lib/trace-failure-kind.d.ts +1 -1
- package/dist/cli/lib/trace-failure-kind.d.ts.map +1 -1
- package/dist/cli/lib/trace-failure-kind.js +2 -0
- package/dist/cli/lib/trace-failure-kind.js.map +1 -1
- package/dist/cli/lib/upgrade-apply.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-apply.js +2 -1
- package/dist/cli/lib/upgrade-apply.js.map +1 -1
- package/dist/cli/lib/upgrade-plan.d.ts.map +1 -1
- package/dist/cli/lib/upgrade-plan.js +2 -1
- package/dist/cli/lib/upgrade-plan.js.map +1 -1
- package/dist/cli/lib/verify-engine.d.ts +5 -2
- package/dist/cli/lib/verify-engine.d.ts.map +1 -1
- package/dist/cli/lib/verify-engine.js +27 -4
- package/dist/cli/lib/verify-engine.js.map +1 -1
- package/dist/cli/lib/verify-flow.d.ts +2 -0
- package/dist/cli/lib/verify-flow.d.ts.map +1 -1
- package/dist/cli/lib/verify-flow.js +11 -1
- package/dist/cli/lib/verify-flow.js.map +1 -1
- package/dist/cli/lib/verify-repair.d.ts.map +1 -1
- package/dist/cli/lib/verify-repair.js +3 -1
- package/dist/cli/lib/verify-repair.js.map +1 -1
- package/dist/cli/lib/verify-result-payload.d.ts +41 -0
- package/dist/cli/lib/verify-result-payload.d.ts.map +1 -0
- package/dist/cli/lib/verify-result-payload.js +118 -0
- package/dist/cli/lib/verify-result-payload.js.map +1 -0
- package/dist/cli/lib/verify-types.d.ts +4 -0
- package/dist/cli/lib/verify-types.d.ts.map +1 -1
- package/dist/cli/lib/version.gen.d.ts +1 -1
- package/dist/cli/lib/version.gen.js +1 -1
- package/dist/cli/program-workflow.d.ts.map +1 -1
- package/dist/cli/program-workflow.js +4 -0
- package/dist/cli/program-workflow.js.map +1 -1
- package/package.json +1 -1
- package/templates/.gitagent/foreman/SUBSTRATE.version.json +1 -1
- package/templates/.githooks/pre-push +3 -3
- package/templates/.github/workflows/gxt-validate.yml +19 -0
- package/templates/.gitignore.gxt +0 -1
- package/templates/.prettierignore.gxt +1 -0
- package/templates/integrations/compatibility.json +1 -1
- package/templates/scripts/verify-pr-missions.sh +141 -0
- package/dist/cli/lib/gitignore-gxt.d.ts +0 -2
- package/dist/cli/lib/gitignore-gxt.d.ts.map +0 -1
- package/dist/cli/lib/gitignore-gxt.js +0 -24
- package/dist/cli/lib/gitignore-gxt.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-plan.js","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"upgrade-plan.js","sourceRoot":"","sources":["../../../src/cli/lib/upgrade-plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ParsedMission } from "./types.js";
|
|
1
|
+
import type { Manifest, ParsedMission } from "./types.js";
|
|
2
2
|
import { type TraceFailureKind } from "./trace-failure-kind.js";
|
|
3
3
|
import { type TraceVerifyWarning } from "./trace.js";
|
|
4
4
|
import type { VerifyOptions } from "./verify-types.js";
|
|
@@ -17,6 +17,8 @@ export interface VerifyPhaseFailure {
|
|
|
17
17
|
traceKind?: TraceFailureKind;
|
|
18
18
|
traceQuote?: string;
|
|
19
19
|
traceReason?: string;
|
|
20
|
+
attestationCommit?: string;
|
|
21
|
+
stalePaths?: string[];
|
|
20
22
|
}
|
|
21
23
|
export interface VerifyPhaseSuccess {
|
|
22
24
|
ok: true;
|
|
@@ -24,10 +26,11 @@ export interface VerifyPhaseSuccess {
|
|
|
24
26
|
proofMsnId: string;
|
|
25
27
|
workerLogPath: string;
|
|
26
28
|
traceWarnings: TraceVerifyWarning[];
|
|
29
|
+
traceEvidenceSkippedUncommitted?: number;
|
|
27
30
|
}
|
|
28
31
|
export type VerifyPhaseResult = VerifyPhaseFailure | VerifyPhaseSuccess;
|
|
29
32
|
export declare function resolveGateWorkDir(root: string, options: VerifyOptions): string;
|
|
30
33
|
export declare function resolveWorkerLogPath(root: string, options: VerifyOptions): string;
|
|
31
34
|
/** Single source of truth for verify phase evaluation (no logging or exit codes). */
|
|
32
|
-
export declare function evaluateVerifyPhases(root: string, mission: ParsedMission, options: VerifyOptions): VerifyPhaseResult;
|
|
35
|
+
export declare function evaluateVerifyPhases(root: string, mission: ParsedMission, options: VerifyOptions, manifest: Manifest): VerifyPhaseResult;
|
|
33
36
|
//# sourceMappingURL=verify-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-engine.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-engine.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKtF,OAAO,EAAyC,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC;AAElF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,kBAAkB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,IAAI,CAAC;IACT,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,kBAAkB,EAAE,CAAC;IACpC,+BAA+B,CAAC,EAAE,MAAM,CAAC;CAC1C;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAExE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAE/E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAEjF;AAwHD,qFAAqF;AACrF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,QAAQ,GACjB,iBAAiB,CA0BnB"}
|
|
@@ -3,6 +3,7 @@ import { assertTeacherMissionProof } from "./git-proof.js";
|
|
|
3
3
|
import { gatePassed, runGate } from "./gate.js";
|
|
4
4
|
import { isLegislativeStub } from "./mission-legislative-stub.js";
|
|
5
5
|
import { classifyTraceFailure } from "./trace-failure-kind.js";
|
|
6
|
+
import { resolvePassQuoteLines, verifyTraceEvidenceFreshness, } from "./trace-evidence.js";
|
|
6
7
|
import { defaultWorkerLogPath, verifyTraceRows } from "./trace.js";
|
|
7
8
|
export function resolveGateWorkDir(root, options) {
|
|
8
9
|
return options.cwd ? path.resolve(root, options.cwd) : root;
|
|
@@ -46,7 +47,7 @@ function evaluateGatePhase(root, mission, options, workerLogPath) {
|
|
|
46
47
|
gateExitCode: gateResult.exitCode ?? undefined,
|
|
47
48
|
};
|
|
48
49
|
}
|
|
49
|
-
function evaluateTracePhase(mission, options, workerLogPath) {
|
|
50
|
+
function evaluateTracePhase(root, manifest, mission, options, workerLogPath) {
|
|
50
51
|
const hasPending = mission.traceRows.some((row) => row.status.toUpperCase().includes("PENDING"));
|
|
51
52
|
if (hasPending) {
|
|
52
53
|
return {
|
|
@@ -75,10 +76,31 @@ function evaluateTracePhase(mission, options, workerLogPath) {
|
|
|
75
76
|
traceReason: first.reason,
|
|
76
77
|
};
|
|
77
78
|
}
|
|
78
|
-
|
|
79
|
+
const resolvedLineByDodId = new Map();
|
|
80
|
+
for (const warning of traceResult.warnings) {
|
|
81
|
+
resolvedLineByDodId.set(warning.row.dodId, warning.foundLine);
|
|
82
|
+
}
|
|
83
|
+
const { resolved } = resolvePassQuoteLines(workerLogPath, mission.traceRows, resolvedLineByDodId);
|
|
84
|
+
const evidence = verifyTraceEvidenceFreshness(root, manifest, mission.skillKey, workerLogPath, resolved, { skipStaleEvidence: options.skipStaleEvidence === true });
|
|
85
|
+
if (evidence.failures.length > 0) {
|
|
86
|
+
const first = evidence.failures[0];
|
|
87
|
+
return {
|
|
88
|
+
ok: false,
|
|
89
|
+
phase: "trace",
|
|
90
|
+
message: first.reason,
|
|
91
|
+
exitCode: 1,
|
|
92
|
+
workerLogPath,
|
|
93
|
+
traceKind: "stale_evidence",
|
|
94
|
+
traceQuote: first.row.traceQuote,
|
|
95
|
+
traceReason: first.reason,
|
|
96
|
+
attestationCommit: first.attestationCommit,
|
|
97
|
+
stalePaths: first.stalePaths,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
return { warnings: traceResult.warnings, skippedUncommitted: evidence.skippedUncommitted };
|
|
79
101
|
}
|
|
80
102
|
/** Single source of truth for verify phase evaluation (no logging or exit codes). */
|
|
81
|
-
export function evaluateVerifyPhases(root, mission, options) {
|
|
103
|
+
export function evaluateVerifyPhases(root, mission, options, manifest) {
|
|
82
104
|
const workerLogPath = resolveWorkerLogPath(root, options);
|
|
83
105
|
const proof = evaluateGitProof(root, mission, workerLogPath);
|
|
84
106
|
if ("ok" in proof)
|
|
@@ -90,7 +112,7 @@ export function evaluateVerifyPhases(root, mission, options) {
|
|
|
90
112
|
const gateFailure = evaluateGatePhase(root, mission, options, workerLogPath);
|
|
91
113
|
if (gateFailure)
|
|
92
114
|
return gateFailure;
|
|
93
|
-
const trace = evaluateTracePhase(mission, options, workerLogPath);
|
|
115
|
+
const trace = evaluateTracePhase(root, manifest, mission, options, workerLogPath);
|
|
94
116
|
if ("ok" in trace)
|
|
95
117
|
return trace;
|
|
96
118
|
return {
|
|
@@ -99,6 +121,7 @@ export function evaluateVerifyPhases(root, mission, options) {
|
|
|
99
121
|
proofMsnId,
|
|
100
122
|
workerLogPath,
|
|
101
123
|
traceWarnings: trace.warnings,
|
|
124
|
+
traceEvidenceSkippedUncommitted: trace.skippedUncommitted > 0 ? trace.skippedUncommitted : undefined,
|
|
102
125
|
};
|
|
103
126
|
}
|
|
104
127
|
//# sourceMappingURL=verify-engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-engine.js","sourceRoot":"","sources":["../../../src/cli/lib/verify-engine.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAA2B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-engine.js","sourceRoot":"","sources":["../../../src/cli/lib/verify-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ParsedMission } from "./types.js";
|
|
2
2
|
import { type VerifyPhaseFailure, type VerifyPhaseSuccess } from "./verify-engine.js";
|
|
3
3
|
import type { VerifyOptions } from "./verify-types.js";
|
|
4
|
+
import type { VerifyResultPayload } from "./verify-result-payload.js";
|
|
4
5
|
export declare function runVerifyBreakGlass(root: string, mission: ParsedMission, options: VerifyOptions): boolean;
|
|
5
6
|
export declare function emitVerifySuccess(result: VerifyPhaseSuccess, _missionArg: string): void;
|
|
6
7
|
export declare function emitVerifyPhaseResult(result: VerifyPhaseSuccess | VerifyPhaseFailure, missionArg: string, options?: VerifyOptions, root?: string, msnId?: string): boolean;
|
|
@@ -17,5 +18,6 @@ export declare function verifyFailureToHintContext(failure: VerifyPhaseFailure,
|
|
|
17
18
|
traceFailureReason: string | undefined;
|
|
18
19
|
strictTrace: boolean | undefined;
|
|
19
20
|
};
|
|
21
|
+
export declare function emitVerifyJson(payload: VerifyResultPayload): void;
|
|
20
22
|
export declare function emitAudienceNextSteps(steps: string[], options: VerifyOptions): void;
|
|
21
23
|
//# sourceMappingURL=verify-flow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-flow.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-flow.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAYvD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CA0BT;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"verify-flow.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-flow.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAYvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,aAAa,GACrB,OAAO,CA0BT;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAqBvF;AAWD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,EAC/C,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,aAAuC,EAChD,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAOT;AAED,+FAA+F;AAC/F,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAIT;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,kBAAkB,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,EACtB,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;EAad;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAGjE;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAanF"}
|
|
@@ -8,6 +8,7 @@ import { evaluateVerifyPhases, } from "./verify-engine.js";
|
|
|
8
8
|
import { emitVerifyFailureFromPresentation, verifyFailurePresentationForFailure, } from "./verify-failure-presentation.js";
|
|
9
9
|
import { filterNextStepsForAudience, audienceSectionTitle, formatAudienceNextStep, } from "./audience-output.js";
|
|
10
10
|
import { getOutputAudience } from "./output-context.js";
|
|
11
|
+
import { loadWorkspace } from "./workspace.js";
|
|
11
12
|
export function runVerifyBreakGlass(root, mission, options) {
|
|
12
13
|
try {
|
|
13
14
|
const reason = validateBreakGlassReason(options.breakGlassReason);
|
|
@@ -49,6 +50,9 @@ export function emitVerifySuccess(result, _missionArg) {
|
|
|
49
50
|
const tag = warning.autoResolved ? "auto-resolved" : "drift";
|
|
50
51
|
logInfo(` trace: line ${tag} DoD ${warning.row.dodId} — declared ${String(warning.declaredLine)}, found ${String(warning.foundLine)}`);
|
|
51
52
|
}
|
|
53
|
+
if (result.traceEvidenceSkippedUncommitted !== undefined) {
|
|
54
|
+
logInfo(` trace evidence: ${String(result.traceEvidenceSkippedUncommitted)} uncommitted WORKER_LOG line(s) skipped stale check`);
|
|
55
|
+
}
|
|
52
56
|
logInfo(`${CLI_NAME} verify: trace mapping OK (${result.workerLogPath})`);
|
|
53
57
|
}
|
|
54
58
|
function emitVerifyFailure(failure, missionArg, options, root, msnId) {
|
|
@@ -69,7 +73,8 @@ export function emitVerifyPhaseResult(result, missionArg, options = { mission: m
|
|
|
69
73
|
}
|
|
70
74
|
/** Run full verify (after gate present) using shared phase engine. Returns true on success. */
|
|
71
75
|
export function runVerifyPhasesFromEngine(root, mission, missionArg, options) {
|
|
72
|
-
const
|
|
76
|
+
const { manifest } = loadWorkspace();
|
|
77
|
+
const result = evaluateVerifyPhases(root, mission, options, manifest);
|
|
73
78
|
return emitVerifyPhaseResult(result, missionArg, options, root, mission.msnId ?? undefined);
|
|
74
79
|
}
|
|
75
80
|
export function verifyFailureToHintContext(failure, missionArg, options, root) {
|
|
@@ -85,6 +90,11 @@ export function verifyFailureToHintContext(failure, missionArg, options, root) {
|
|
|
85
90
|
strictTrace: options.strictTrace,
|
|
86
91
|
};
|
|
87
92
|
}
|
|
93
|
+
export function emitVerifyJson(payload) {
|
|
94
|
+
logInfo(JSON.stringify(payload, null, 2));
|
|
95
|
+
if (payload.exit_code !== 0)
|
|
96
|
+
setExitCode(payload.exit_code);
|
|
97
|
+
}
|
|
88
98
|
export function emitAudienceNextSteps(steps, options) {
|
|
89
99
|
const audience = options.audience ?? getOutputAudience();
|
|
90
100
|
const filtered = filterNextStepsForAudience(audience, steps).map((step) => formatAudienceNextStep(step, audience));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-flow.js","sourceRoot":"","sources":["../../../src/cli/lib/verify-flow.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EACL,oBAAoB,GAGrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-flow.js","sourceRoot":"","sources":["../../../src/cli/lib/verify-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-repair.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-repair.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAWhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-repair.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-repair.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAWhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAsEvD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
|
@@ -2,6 +2,7 @@ import { logError, setExitCode } from "./cli-io.js";
|
|
|
2
2
|
import { hintsForVerifyPhase, logFixHint } from "./fix-hints.js";
|
|
3
3
|
import { evaluateVerifyPhases, } from "./verify-engine.js";
|
|
4
4
|
import { emitAudienceNextSteps, emitVerifyPhaseResult, verifyFailureToHintContext, } from "./verify-flow.js";
|
|
5
|
+
import { loadWorkspace } from "./workspace.js";
|
|
5
6
|
function failureFromResult(result) {
|
|
6
7
|
return result.ok ? null : result;
|
|
7
8
|
}
|
|
@@ -45,7 +46,8 @@ async function runInteractiveFixMenu(root, mission, failure, missionArg, options
|
|
|
45
46
|
setExitCode(failure.exitCode);
|
|
46
47
|
}
|
|
47
48
|
export async function runVerifyWithFix(root, mission, missionArg, options) {
|
|
48
|
-
const
|
|
49
|
+
const { manifest } = loadWorkspace();
|
|
50
|
+
const result = evaluateVerifyPhases(root, mission, options, manifest);
|
|
49
51
|
if (result.ok) {
|
|
50
52
|
emitVerifyPhaseResult(result, missionArg, options, root, mission.msnId ?? undefined);
|
|
51
53
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-repair.js","sourceRoot":"","sources":["../../../src/cli/lib/verify-repair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjE,OAAO,EACL,oBAAoB,GAGrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-repair.js","sourceRoot":"","sources":["../../../src/cli/lib/verify-repair.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { GxtErrorCode } from "./gxt-error-codes.js";
|
|
2
|
+
import type { Manifest, ParsedMission } from "./types.js";
|
|
3
|
+
import type { VerifyOptions } from "./verify-types.js";
|
|
4
|
+
export interface VerifyTraceWarningJson {
|
|
5
|
+
dod_id: string;
|
|
6
|
+
declared_line: number;
|
|
7
|
+
found_line: number;
|
|
8
|
+
auto_resolved?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface VerifyPassedPayload {
|
|
11
|
+
status: "passed";
|
|
12
|
+
phase: "full" | "pre_push_stub" | "break_glass";
|
|
13
|
+
exit_code: 0;
|
|
14
|
+
msn_id?: string;
|
|
15
|
+
mission_file_path?: string;
|
|
16
|
+
message?: string;
|
|
17
|
+
audit_commit?: string;
|
|
18
|
+
trace_warnings?: VerifyTraceWarningJson[];
|
|
19
|
+
trace_evidence_skipped_uncommitted?: number;
|
|
20
|
+
}
|
|
21
|
+
export interface VerifyFailedPayload {
|
|
22
|
+
status: "failed";
|
|
23
|
+
phase: string;
|
|
24
|
+
message: string;
|
|
25
|
+
error_code: GxtErrorCode;
|
|
26
|
+
fix_hints: string[];
|
|
27
|
+
next_actions: string[];
|
|
28
|
+
exit_code: number;
|
|
29
|
+
stdout?: string;
|
|
30
|
+
stderr?: string;
|
|
31
|
+
failures?: string[];
|
|
32
|
+
}
|
|
33
|
+
export type VerifyResultPayload = VerifyPassedPayload | VerifyFailedPayload;
|
|
34
|
+
export declare function initFailurePayload(e: unknown): VerifyFailedPayload;
|
|
35
|
+
/** Phase evaluation → structured payload (no logging or process exit). */
|
|
36
|
+
export declare function buildVerifyResultPayload(root: string, manifest: Manifest, mission: ParsedMission, missionArg: string, options: VerifyOptions): VerifyResultPayload;
|
|
37
|
+
/** Load workspace, parse mission, assert gate — flat init failures on error. */
|
|
38
|
+
export declare function buildVerifyResultPayloadFromOptions(options: VerifyOptions): VerifyResultPayload;
|
|
39
|
+
/** @deprecated Use VerifyResultPayload — alias for MCP consumers. */
|
|
40
|
+
export type VerifyMcpResult = VerifyResultPayload;
|
|
41
|
+
//# sourceMappingURL=verify-result-payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-result-payload.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-result-payload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAQ1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,aAAa,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAC1C,kCAAkC,CAAC,EAAE,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,YAAY,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAiF5E,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAuBlE;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,GACrB,mBAAmB,CASrB;AAED,gFAAgF;AAChF,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,aAAa,GAAG,mBAAmB,CAS/F;AAED,qEAAqE;AACrE,MAAM,MAAM,eAAe,GAAG,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { GXT_ERROR, gxtCodeFromGapmanUserError } from "./gxt-error-codes.js";
|
|
3
|
+
import { assertMissionGatePresent, parseMissionFile } from "./mission-parser.js";
|
|
4
|
+
import { isGapmanUserError } from "./user-error.js";
|
|
5
|
+
import { evaluateVerifyPhases, } from "./verify-engine.js";
|
|
6
|
+
import { verifyFailurePresentation } from "./verify-failure-presentation.js";
|
|
7
|
+
import { loadWorkspace } from "./workspace.js";
|
|
8
|
+
function missionRelPath(root, mission) {
|
|
9
|
+
return path.relative(root, mission.rawPath).split(path.sep).join("/");
|
|
10
|
+
}
|
|
11
|
+
function traceWarningsJson(result) {
|
|
12
|
+
if (result.traceWarnings.length === 0)
|
|
13
|
+
return undefined;
|
|
14
|
+
return result.traceWarnings.map((w) => ({
|
|
15
|
+
dod_id: w.row.dodId,
|
|
16
|
+
declared_line: w.declaredLine,
|
|
17
|
+
found_line: w.foundLine,
|
|
18
|
+
...(w.autoResolved ? { auto_resolved: true } : {}),
|
|
19
|
+
}));
|
|
20
|
+
}
|
|
21
|
+
function successPayload(root, mission, result) {
|
|
22
|
+
if (result.outcome === "pre_push_stub") {
|
|
23
|
+
return {
|
|
24
|
+
status: "passed",
|
|
25
|
+
phase: "pre_push_stub",
|
|
26
|
+
exit_code: 0,
|
|
27
|
+
message: "Legislative stub OK (git-proof passed).",
|
|
28
|
+
msn_id: result.proofMsnId,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
status: "passed",
|
|
33
|
+
phase: "full",
|
|
34
|
+
exit_code: 0,
|
|
35
|
+
msn_id: mission.msnId ?? undefined,
|
|
36
|
+
mission_file_path: missionRelPath(root, mission),
|
|
37
|
+
...(traceWarningsJson(result) ? { trace_warnings: traceWarningsJson(result) } : {}),
|
|
38
|
+
...(result.traceEvidenceSkippedUncommitted !== undefined
|
|
39
|
+
? { trace_evidence_skipped_uncommitted: result.traceEvidenceSkippedUncommitted }
|
|
40
|
+
: {}),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function failureFromPhase(failure, missionRel, options, root, msnId) {
|
|
44
|
+
const presentation = verifyFailurePresentation({
|
|
45
|
+
failure,
|
|
46
|
+
missionArg: missionRel,
|
|
47
|
+
options,
|
|
48
|
+
root,
|
|
49
|
+
msnId,
|
|
50
|
+
});
|
|
51
|
+
const base = {
|
|
52
|
+
status: "failed",
|
|
53
|
+
phase: failure.phase,
|
|
54
|
+
message: failure.message,
|
|
55
|
+
error_code: presentation.error_code,
|
|
56
|
+
fix_hints: presentation.fix_hints,
|
|
57
|
+
next_actions: presentation.next_actions,
|
|
58
|
+
exit_code: presentation.exit_code,
|
|
59
|
+
};
|
|
60
|
+
if (failure.phase === "gate") {
|
|
61
|
+
return {
|
|
62
|
+
...base,
|
|
63
|
+
...(failure.gateStdout !== undefined ? { stdout: failure.gateStdout } : {}),
|
|
64
|
+
...(failure.gateStderr !== undefined ? { stderr: failure.gateStderr } : {}),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (failure.phase === "trace" && failure.traceReason) {
|
|
68
|
+
return { ...base, failures: [`DoD trace: ${failure.traceReason}`] };
|
|
69
|
+
}
|
|
70
|
+
return base;
|
|
71
|
+
}
|
|
72
|
+
export function initFailurePayload(e) {
|
|
73
|
+
if (isGapmanUserError(e)) {
|
|
74
|
+
const errorCode = gxtCodeFromGapmanUserError(e.code);
|
|
75
|
+
return {
|
|
76
|
+
status: "failed",
|
|
77
|
+
phase: "init",
|
|
78
|
+
message: e.message,
|
|
79
|
+
error_code: errorCode,
|
|
80
|
+
fix_hints: e.hint ? [e.hint] : [],
|
|
81
|
+
next_actions: [],
|
|
82
|
+
exit_code: e.exitCode,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const message = e instanceof Error ? e.message : String(e);
|
|
86
|
+
return {
|
|
87
|
+
status: "failed",
|
|
88
|
+
phase: "init",
|
|
89
|
+
message,
|
|
90
|
+
error_code: GXT_ERROR.PARSE_ERROR,
|
|
91
|
+
fix_hints: [],
|
|
92
|
+
next_actions: [],
|
|
93
|
+
exit_code: 1,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/** Phase evaluation → structured payload (no logging or process exit). */
|
|
97
|
+
export function buildVerifyResultPayload(root, manifest, mission, missionArg, options) {
|
|
98
|
+
const missionRel = missionRelPath(root, mission);
|
|
99
|
+
const msnId = mission.msnId ?? undefined;
|
|
100
|
+
const result = evaluateVerifyPhases(root, mission, options, manifest);
|
|
101
|
+
if (result.ok) {
|
|
102
|
+
return successPayload(root, mission, result);
|
|
103
|
+
}
|
|
104
|
+
return failureFromPhase(result, missionRel, options, root, msnId);
|
|
105
|
+
}
|
|
106
|
+
/** Load workspace, parse mission, assert gate — flat init failures on error. */
|
|
107
|
+
export function buildVerifyResultPayloadFromOptions(options) {
|
|
108
|
+
try {
|
|
109
|
+
const { root, manifest } = loadWorkspace();
|
|
110
|
+
const mission = parseMissionFile(root, options.mission);
|
|
111
|
+
assertMissionGatePresent(mission);
|
|
112
|
+
return buildVerifyResultPayload(root, manifest, mission, options.mission, options);
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
return initFailurePayload(e);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=verify-result-payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-result-payload.js","sourceRoot":"","sources":["../../../src/cli/lib/verify-result-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,5 +17,9 @@ export interface VerifyOptions {
|
|
|
17
17
|
fixNonInteractive?: boolean;
|
|
18
18
|
/** Tailor remediation next steps by role. */
|
|
19
19
|
audience?: OutputAudience;
|
|
20
|
+
/** Skip TMVC stale-evidence binding (committed PASS quote lines only). */
|
|
21
|
+
skipStaleEvidence?: boolean;
|
|
22
|
+
/** Emit a single structured JSON document on stdout (no human logs). */
|
|
23
|
+
json?: boolean;
|
|
20
24
|
}
|
|
21
25
|
//# sourceMappingURL=verify-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-types.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"verify-types.d.ts","sourceRoot":"","sources":["../../../src/cli/lib/verify-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-workflow.d.ts","sourceRoot":"","sources":["../../src/cli/program-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"program-workflow.d.ts","sourceRoot":"","sources":["../../src/cli/program-workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQzC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+G/D"}
|
|
@@ -44,6 +44,7 @@ export function registerWorkflowCommands(program) {
|
|
|
44
44
|
.option("--cwd <dir>", "Working directory for gate command")
|
|
45
45
|
.option("--fuzzy-trace", "Force content-based anchor matching for all numeric anchors")
|
|
46
46
|
.option("--strict-trace", "Disable auto line-drift resolution (strict line numbers only)")
|
|
47
|
+
.option("--skip-stale-evidence", "Skip TMVC stale-evidence binding for committed PASS trace lines")
|
|
47
48
|
.option("--pre-push", "Pre-push handoff: git-proof only for legislative stubs; full verify otherwise")
|
|
48
49
|
.option("--break-glass", "Skip all verify gates when GXT_BYPASS_SECRET is authorized")
|
|
49
50
|
.option("--reason <text>", "Mandatory break-glass reason (min 10 characters)")
|
|
@@ -51,6 +52,7 @@ export function registerWorkflowCommands(program) {
|
|
|
51
52
|
.option("--audit-commit", "Write break-glass audit as empty commit instead of git note")
|
|
52
53
|
.option("--fix", "Interactive remediation menu on verify failure")
|
|
53
54
|
.option("--non-interactive", "With --fix: print structured hints without prompts")
|
|
55
|
+
.option("--json", "Emit structured JSON result (with --fix: non-interactive hints only)")
|
|
54
56
|
.option("--audience <role>", "Tailor output: worker|teacher|verifier|platform")
|
|
55
57
|
.action(async (opts) => {
|
|
56
58
|
await runVerify({
|
|
@@ -59,6 +61,7 @@ export function registerWorkflowCommands(program) {
|
|
|
59
61
|
cwd: opts.cwd,
|
|
60
62
|
fuzzyTrace: opts.fuzzyTrace,
|
|
61
63
|
strictTrace: opts.strictTrace,
|
|
64
|
+
skipStaleEvidence: opts.skipStaleEvidence,
|
|
62
65
|
prePush: opts.prePush,
|
|
63
66
|
breakGlass: opts.breakGlass,
|
|
64
67
|
breakGlassReason: opts.reason,
|
|
@@ -66,6 +69,7 @@ export function registerWorkflowCommands(program) {
|
|
|
66
69
|
auditCommit: opts.auditCommit,
|
|
67
70
|
fix: opts.fix,
|
|
68
71
|
fixNonInteractive: opts.nonInteractive,
|
|
72
|
+
json: opts.json,
|
|
69
73
|
audience: getOutputAudience(),
|
|
70
74
|
});
|
|
71
75
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-workflow.js","sourceRoot":"","sources":["../../src/cli/program-workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,UAAU,wBAAwB,CAAC,OAAgB;IACvD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,4FAA4F,CAAC;SACzG,QAAQ,CAAC,aAAa,EAAE,iCAAiC,CAAC;SAC1D,cAAc,CAAC,YAAY,EAAE,2CAA2C,CAAC;SACzE,MAAM,CAAC,mBAAmB,EAAE,0DAA0D,CAAC;SACvF,MAAM,CAAC,mBAAmB,EAAE,+DAA+D,CAAC;SAC5F,MAAM,CAAC,cAAc,EAAE,+DAA+D,CAAC;SACvF,MAAM,CACL,sBAAsB,EACtB,gFAAgF,CACjF;SACA,MAAM,CACL,iCAAiC,EACjC,4DAA4D,CAC7D;SACA,MAAM,CAAC,KAAK,WAA0B,WAAqB;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAOlB,CAAC;QACL,IAAI,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,QAAQ,CAAC,8CAA8C,CAAC,CAAC;YACzD,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,2FAA2F,CAC5F;SACA,cAAc,CAAC,kBAAkB,EAAE,6BAA6B,CAAC;SACjE,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,CAAC;SAC5D,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC;SAC3D,MAAM,CAAC,eAAe,EAAE,6DAA6D,CAAC;SACtF,MAAM,CAAC,gBAAgB,EAAE,+DAA+D,CAAC;SACzF,MAAM,CAAC,YAAY,EAAE,+EAA+E,CAAC;SACrG,MAAM,CAAC,eAAe,EAAE,4DAA4D,CAAC;SACrF,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SAC7E,MAAM,CAAC,gBAAgB,EAAE,sDAAsD,CAAC;SAChF,MAAM,CAAC,gBAAgB,EAAE,6DAA6D,CAAC;SACvF,MAAM,CAAC,OAAO,EAAE,gDAAgD,CAAC;SACjE,MAAM,CAAC,mBAAmB,EAAE,oDAAoD,CAAC;SACjF,MAAM,CAAC,mBAAmB,EAAE,iDAAiD,CAAC;SAC9E,MAAM,CACL,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"program-workflow.js","sourceRoot":"","sources":["../../src/cli/program-workflow.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,10 +4,10 @@ set -euo pipefail
|
|
|
4
4
|
|
|
5
5
|
cd "$(git rev-parse --show-toplevel)"
|
|
6
6
|
|
|
7
|
-
if
|
|
8
|
-
GAPMAN=(gapman)
|
|
9
|
-
elif [[ -f dist/cli/index.js ]]; then
|
|
7
|
+
if [[ -f dist/cli/index.js ]]; then
|
|
10
8
|
GAPMAN=(node dist/cli/index.js)
|
|
9
|
+
elif command -v gapman >/dev/null 2>&1; then
|
|
10
|
+
GAPMAN=(gapman)
|
|
11
11
|
else
|
|
12
12
|
echo "pre-push: gapman not found — run: npm run build" >&2
|
|
13
13
|
exit 1
|