audit-tools 0.34.28 → 0.34.30
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 +32 -11
- package/dist/audit/cli/args.d.ts +2 -2
- package/dist/audit/cli/args.d.ts.map +1 -1
- package/dist/audit/cli/args.js.map +1 -1
- package/dist/audit/cli/dispatch/paths.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/paths.js +3 -9
- package/dist/audit/cli/dispatch/paths.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +24 -1
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/providerConfirmationStep.d.ts +13 -0
- package/dist/audit/cli/providerConfirmationStep.d.ts.map +1 -1
- package/dist/audit/cli/providerConfirmationStep.js +43 -7
- package/dist/audit/cli/providerConfirmationStep.js.map +1 -1
- package/dist/audit/extractors/analyzers/typescript.d.ts.map +1 -1
- package/dist/audit/extractors/analyzers/typescript.js +3 -2
- package/dist/audit/extractors/analyzers/typescript.js.map +1 -1
- package/dist/audit/extractors/graph.d.ts.map +1 -1
- package/dist/audit/extractors/graph.js +4 -5
- package/dist/audit/extractors/graph.js.map +1 -1
- package/dist/audit/io/artifacts.d.ts +1 -12
- package/dist/audit/io/artifacts.d.ts.map +1 -1
- package/dist/audit/io/artifacts.js +9 -39
- package/dist/audit/io/artifacts.js.map +1 -1
- package/dist/audit/orchestrator/designReviewSnapshot.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewSnapshot.js +4 -2
- package/dist/audit/orchestrator/designReviewSnapshot.js.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -1
- package/dist/audit/orchestrator/intakeExecutors.js +59 -3
- package/dist/audit/orchestrator/intakeExecutors.js.map +1 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts +8 -0
- package/dist/remediate/contractPipeline/reviewSnapshot.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/reviewSnapshot.js +10 -2
- package/dist/remediate/contractPipeline/reviewSnapshot.js.map +1 -1
- package/dist/remediate/contractPipeline/testPlanCarry.d.ts +7 -1
- package/dist/remediate/contractPipeline/testPlanCarry.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/testPlanCarry.js +9 -3
- package/dist/remediate/contractPipeline/testPlanCarry.js.map +1 -1
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +10 -8
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/plan.js +2 -2
- package/dist/remediate/phases/plan.js.map +1 -1
- package/dist/remediate/riskSignal.d.ts.map +1 -1
- package/dist/remediate/riskSignal.js +5 -2
- package/dist/remediate/riskSignal.js.map +1 -1
- package/dist/remediate/state/itemStatus.d.ts +26 -3
- package/dist/remediate/state/itemStatus.d.ts.map +1 -1
- package/dist/remediate/state/itemStatus.js +56 -18
- package/dist/remediate/state/itemStatus.js.map +1 -1
- package/dist/remediate/state/store.d.ts.map +1 -1
- package/dist/remediate/state/store.js +18 -0
- package/dist/remediate/state/store.js.map +1 -1
- package/dist/remediate/state/types.d.ts +18 -42
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js +5 -3
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +7 -1
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/marshal.js +16 -11
- package/dist/remediate/steps/dispatch/marshal.js.map +1 -1
- package/dist/remediate/steps/dispatch/worktreeLifecycle.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/worktreeLifecycle.js +10 -7
- package/dist/remediate/steps/dispatch/worktreeLifecycle.js.map +1 -1
- package/dist/remediate/steps/finalGate.d.ts.map +1 -1
- package/dist/remediate/steps/finalGate.js +11 -4
- package/dist/remediate/steps/finalGate.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +111 -20
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/stepUtils.d.ts +23 -0
- package/dist/remediate/steps/stepUtils.d.ts.map +1 -1
- package/dist/remediate/steps/stepUtils.js +55 -1
- package/dist/remediate/steps/stepUtils.js.map +1 -1
- package/dist/shared/constitutionalDocPaths.d.ts +13 -0
- package/dist/shared/constitutionalDocPaths.d.ts.map +1 -0
- package/dist/shared/constitutionalDocPaths.js +73 -0
- package/dist/shared/constitutionalDocPaths.js.map +1 -0
- package/dist/shared/dispatch/coordinator.d.ts +19 -0
- package/dist/shared/dispatch/coordinator.d.ts.map +1 -1
- package/dist/shared/dispatch/coordinator.js +34 -0
- package/dist/shared/dispatch/coordinator.js.map +1 -1
- package/dist/shared/dispatch/hybridDispatch.d.ts +10 -0
- package/dist/shared/dispatch/hybridDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/hybridDispatch.js +1 -1
- package/dist/shared/dispatch/hybridDispatch.js.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.d.ts +14 -0
- package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
- package/dist/shared/dispatch/rollingDispatch.js +44 -3
- package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
- package/dist/shared/index.d.ts +5 -2
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +8 -1
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/io/frictionCapture.d.ts.map +1 -1
- package/dist/shared/io/frictionCapture.js +6 -1
- package/dist/shared/io/frictionCapture.js.map +1 -1
- package/dist/shared/io/pathContainment.d.ts +46 -0
- package/dist/shared/io/pathContainment.d.ts.map +1 -0
- package/dist/shared/io/pathContainment.js +40 -0
- package/dist/shared/io/pathContainment.js.map +1 -0
- package/dist/shared/io/schemaVersion.d.ts +67 -0
- package/dist/shared/io/schemaVersion.d.ts.map +1 -0
- package/dist/shared/io/schemaVersion.js +87 -0
- package/dist/shared/io/schemaVersion.js.map +1 -0
- package/dist/shared/providers/auditorSources.d.ts +9 -1
- package/dist/shared/providers/auditorSources.d.ts.map +1 -1
- package/dist/shared/providers/auditorSources.js +46 -2
- package/dist/shared/providers/auditorSources.js.map +1 -1
- package/dist/shared/providers/claudeWorkerProvider.d.ts +0 -1
- package/dist/shared/providers/claudeWorkerProvider.d.ts.map +1 -1
- package/dist/shared/providers/claudeWorkerProvider.js +4 -2
- package/dist/shared/providers/claudeWorkerProvider.js.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.d.ts.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.js +5 -9
- package/dist/shared/providers/openAiCompatibleProvider.js.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.d.ts +42 -1
- package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +1 -1
- package/dist/shared/providers/sharedProviderConfirmation.js +197 -3
- package/dist/shared/providers/sharedProviderConfirmation.js.map +1 -1
- package/dist/shared/quota/coverage.js +1 -1
- package/dist/shared/repair/brokeredDispatch.d.ts.map +1 -1
- package/dist/shared/repair/brokeredDispatch.js +10 -48
- package/dist/shared/repair/brokeredDispatch.js.map +1 -1
- package/dist/shared/types/auditorDescriptor.d.ts +8 -2
- package/dist/shared/types/auditorDescriptor.d.ts.map +1 -1
- package/dist/shared/types/auditorDescriptor.js.map +1 -1
- package/dist/shared/types/sessionConfig.d.ts +25 -1
- package/dist/shared/types/sessionConfig.d.ts.map +1 -1
- package/dist/shared/types/sessionConfig.js +4 -0
- package/dist/shared/types/sessionConfig.js.map +1 -1
- package/docs/audit-pkg/operator-guide.md +19 -9
- package/docs/audit-pkg/release.md +4 -0
- package/package.json +10 -3
- package/dist/remediate/coverage/findingLedger.d.ts +0 -99
- package/dist/remediate/coverage/findingLedger.d.ts.map +0 -1
- package/dist/remediate/coverage/findingLedger.js +0 -110
- package/dist/remediate/coverage/findingLedger.js.map +0 -1
|
@@ -16,10 +16,22 @@ import type { PerFindingDisposition } from "./types.js";
|
|
|
16
16
|
* states (`pending`…`verified`), the success states (`resolved`,
|
|
17
17
|
* `resolved_no_change`), the failure state (`blocked`), the awaiting-answer state
|
|
18
18
|
* (`needs_clarification` — a worker hit scoping/judgment ambiguity mid-run and
|
|
19
|
-
* paused the item for a clarification round rather than blocking it),
|
|
20
|
-
* settled-no-act states (`deemed_inappropriate`, `ignored`)
|
|
19
|
+
* paused the item for a clarification round rather than blocking it), the
|
|
20
|
+
* settled-no-act states (`deemed_inappropriate`, `ignored`), and the
|
|
21
|
+
* tool-gave-up state (`abandoned`).
|
|
22
|
+
*
|
|
23
|
+
* `abandoned` exists so that EVERY item ends terminal. A run that exhausts its
|
|
24
|
+
* retry bound, fails its final gate, or is halted by the operator still has to
|
|
25
|
+
* end, and a no-human host must never livelock waiting for a triage that will
|
|
26
|
+
* not come. Before it existed, such items were left in a non-terminal status and
|
|
27
|
+
* the close phase rendered them as a partial-completion outcome — which silently
|
|
28
|
+
* broke the invariant that remediation ends binary. It is deliberately DISTINCT
|
|
29
|
+
* from `ignored`: `ignored` is a settled human decision not to act, `abandoned`
|
|
30
|
+
* is the tool giving up. Collapsing them would erase which one happened. WHY the
|
|
31
|
+
* run ended non-clean is recorded once, at run level, in `closing_context` —
|
|
32
|
+
* not smeared across every item.
|
|
21
33
|
*/
|
|
22
|
-
export declare const ITEM_STATUSES: readonly ["pending", "tested", "tested_successfully", "refactored", "verified", "resolved", "resolved_no_change", "blocked", "needs_clarification", "deemed_inappropriate", "ignored"];
|
|
34
|
+
export declare const ITEM_STATUSES: readonly ["pending", "tested", "tested_successfully", "refactored", "verified", "resolved", "resolved_no_change", "blocked", "needs_clarification", "deemed_inappropriate", "ignored", "abandoned"];
|
|
23
35
|
export type RemediationItemStatus = (typeof ITEM_STATUSES)[number];
|
|
24
36
|
/** Whether the item is still mid-flight (see {@link IN_PROGRESS_STATUSES}). */
|
|
25
37
|
export declare function isInProgressStatus(status: string): boolean;
|
|
@@ -35,6 +47,17 @@ export declare function isTerminalStatus(status: string): boolean;
|
|
|
35
47
|
export declare function isVerifiedCompleteStatus(status: string | undefined): boolean;
|
|
36
48
|
/** Whether a status is a SKIP — a settled decision not to act (terminal but never verified-complete, INV-RS-01). */
|
|
37
49
|
export declare function isSkipStatus(status: string): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Whether an item ended WITHOUT succeeding and without a settled decision not to
|
|
52
|
+
* act — `blocked` (triage exhausted, still non-terminal) or `abandoned` (the
|
|
53
|
+
* force-close backstop gave up). Either means the run did not fully succeed, so
|
|
54
|
+
* it must never be "landed green" with its artifacts deleted as if complete.
|
|
55
|
+
*
|
|
56
|
+
* Single-sourced because the green-close guard previously tested the `blocked`
|
|
57
|
+
* literal directly: when the force-close seam moved to `abandoned`, a literal
|
|
58
|
+
* test would have silently stopped matching and let a force-closed run land green.
|
|
59
|
+
*/
|
|
60
|
+
export declare function isUnsuccessfulEndStatus(status: string): boolean;
|
|
38
61
|
/** Map an item status to its per-finding coverage disposition. */
|
|
39
62
|
export declare function statusToDisposition(status: string): PerFindingDisposition;
|
|
40
63
|
/** Map a coverage disposition to its outcomes-contract status. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"itemStatus.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/itemStatus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD
|
|
1
|
+
{"version":3,"file":"itemStatus.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/itemStatus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,qMAahB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAkBnE,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE1D;AAwCD,wIAAwI;AACxI,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAK5E;AAED,oHAAoH;AACpH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/D;AA+BD,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAEzE;AAkBD,kEAAkE;AAClE,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,qBAAqB,GACjC,wBAAwB,CAE1B"}
|
|
@@ -15,8 +15,20 @@
|
|
|
15
15
|
* states (`pending`…`verified`), the success states (`resolved`,
|
|
16
16
|
* `resolved_no_change`), the failure state (`blocked`), the awaiting-answer state
|
|
17
17
|
* (`needs_clarification` — a worker hit scoping/judgment ambiguity mid-run and
|
|
18
|
-
* paused the item for a clarification round rather than blocking it),
|
|
19
|
-
* settled-no-act states (`deemed_inappropriate`, `ignored`)
|
|
18
|
+
* paused the item for a clarification round rather than blocking it), the
|
|
19
|
+
* settled-no-act states (`deemed_inappropriate`, `ignored`), and the
|
|
20
|
+
* tool-gave-up state (`abandoned`).
|
|
21
|
+
*
|
|
22
|
+
* `abandoned` exists so that EVERY item ends terminal. A run that exhausts its
|
|
23
|
+
* retry bound, fails its final gate, or is halted by the operator still has to
|
|
24
|
+
* end, and a no-human host must never livelock waiting for a triage that will
|
|
25
|
+
* not come. Before it existed, such items were left in a non-terminal status and
|
|
26
|
+
* the close phase rendered them as a partial-completion outcome — which silently
|
|
27
|
+
* broke the invariant that remediation ends binary. It is deliberately DISTINCT
|
|
28
|
+
* from `ignored`: `ignored` is a settled human decision not to act, `abandoned`
|
|
29
|
+
* is the tool giving up. Collapsing them would erase which one happened. WHY the
|
|
30
|
+
* run ended non-clean is recorded once, at run level, in `closing_context` —
|
|
31
|
+
* not smeared across every item.
|
|
20
32
|
*/
|
|
21
33
|
export const ITEM_STATUSES = [
|
|
22
34
|
"pending",
|
|
@@ -30,6 +42,7 @@ export const ITEM_STATUSES = [
|
|
|
30
42
|
"needs_clarification",
|
|
31
43
|
"deemed_inappropriate",
|
|
32
44
|
"ignored",
|
|
45
|
+
"abandoned",
|
|
33
46
|
];
|
|
34
47
|
// ── In-progress partition ───────────────────────────────────────────────────
|
|
35
48
|
/**
|
|
@@ -52,15 +65,20 @@ export function isInProgressStatus(status) {
|
|
|
52
65
|
// ── Terminal / verified-complete / skip partitions ───────────────────────────
|
|
53
66
|
/**
|
|
54
67
|
* Statuses that legitimately END a run with no further implement work: the two
|
|
55
|
-
* success states
|
|
56
|
-
*
|
|
57
|
-
*
|
|
68
|
+
* success states, the two settled-no-act (SKIP) states, and `abandoned` (the
|
|
69
|
+
* tool gave up — retry bound exhausted, final gate red, or operator halt).
|
|
70
|
+
* `blocked` is deliberately NOT terminal — triage retries it — so a blocked item
|
|
71
|
+
* leaves the run non-terminal and routes to triage rather than closing. The
|
|
72
|
+
* force-close backstop converts blocked→abandoned precisely so the run can end
|
|
73
|
+
* without either livelocking or leaving a non-terminal item to be rendered as a
|
|
74
|
+
* partial completion.
|
|
58
75
|
*/
|
|
59
76
|
const TERMINAL_STATUSES = new Set([
|
|
60
77
|
"resolved",
|
|
61
78
|
"resolved_no_change",
|
|
62
79
|
"ignored",
|
|
63
80
|
"deemed_inappropriate",
|
|
81
|
+
"abandoned",
|
|
64
82
|
]);
|
|
65
83
|
/**
|
|
66
84
|
* The subset of terminal statuses where the node produced AND verified its
|
|
@@ -97,29 +115,49 @@ export function isVerifiedCompleteStatus(status) {
|
|
|
97
115
|
export function isSkipStatus(status) {
|
|
98
116
|
return SKIP_STATUSES.has(status);
|
|
99
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Whether an item ended WITHOUT succeeding and without a settled decision not to
|
|
120
|
+
* act — `blocked` (triage exhausted, still non-terminal) or `abandoned` (the
|
|
121
|
+
* force-close backstop gave up). Either means the run did not fully succeed, so
|
|
122
|
+
* it must never be "landed green" with its artifacts deleted as if complete.
|
|
123
|
+
*
|
|
124
|
+
* Single-sourced because the green-close guard previously tested the `blocked`
|
|
125
|
+
* literal directly: when the force-close seam moved to `abandoned`, a literal
|
|
126
|
+
* test would have silently stopped matching and let a force-closed run land green.
|
|
127
|
+
*/
|
|
128
|
+
export function isUnsuccessfulEndStatus(status) {
|
|
129
|
+
return status === "blocked" || status === "abandoned";
|
|
130
|
+
}
|
|
100
131
|
// ── Status → coverage disposition (PerFindingDisposition) ────────────────────
|
|
101
132
|
/**
|
|
102
|
-
* The one status→disposition map
|
|
103
|
-
*
|
|
104
|
-
*
|
|
133
|
+
* The one status→disposition map. Exhaustive over the status enum.
|
|
134
|
+
*
|
|
135
|
+
* Every status maps to a REAL disposition. There is deliberately no
|
|
136
|
+
* "force-closed" disposition: an item that the tool gave up on reaches the
|
|
137
|
+
* terminal `abandoned` status at the force-close seam, so by the time a
|
|
138
|
+
* disposition is derived the item has genuinely ended. A non-terminal status
|
|
139
|
+
* arriving here means close ran while an item was still mid-flight — a bug in
|
|
140
|
+
* the caller, not a disposition to be named — so it maps to `abandoned` and the
|
|
141
|
+
* run is reported non-clean rather than silently rendered as partial progress.
|
|
105
142
|
*/
|
|
106
143
|
const STATUS_TO_DISPOSITION = {
|
|
107
144
|
resolved: "resolved",
|
|
108
145
|
resolved_no_change: "resolved_no_change",
|
|
109
146
|
ignored: "ignored",
|
|
110
147
|
deemed_inappropriate: "deemed_inappropriate",
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
148
|
+
abandoned: "abandoned",
|
|
149
|
+
// Non-terminal statuses should have been converted at the force-close seam.
|
|
150
|
+
blocked: "abandoned",
|
|
151
|
+
needs_clarification: "abandoned",
|
|
152
|
+
pending: "abandoned",
|
|
153
|
+
tested: "abandoned",
|
|
154
|
+
tested_successfully: "abandoned",
|
|
155
|
+
refactored: "abandoned",
|
|
156
|
+
verified: "abandoned",
|
|
119
157
|
};
|
|
120
158
|
/** Map an item status to its per-finding coverage disposition. */
|
|
121
159
|
export function statusToDisposition(status) {
|
|
122
|
-
return
|
|
160
|
+
return STATUS_TO_DISPOSITION[status] ?? "abandoned";
|
|
123
161
|
}
|
|
124
162
|
// ── Coverage disposition → outcomes-contract status ──────────────────────────
|
|
125
163
|
/**
|
|
@@ -133,7 +171,7 @@ const DISPOSITION_TO_OUTCOME_STATUS = {
|
|
|
133
171
|
resolved_no_change: "verified_no_change",
|
|
134
172
|
ignored: "ignored",
|
|
135
173
|
deemed_inappropriate: "inappropriate",
|
|
136
|
-
|
|
174
|
+
abandoned: "blocked",
|
|
137
175
|
};
|
|
138
176
|
/** Map a coverage disposition to its outcomes-contract status. */
|
|
139
177
|
export function dispositionToOutcomeStatus(disposition) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"itemStatus.js","sourceRoot":"","sources":["../../../src/remediate/state/itemStatus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,+EAA+E;AAE/E
|
|
1
|
+
{"version":3,"file":"itemStatus.js","sourceRoot":"","sources":["../../../src/remediate/state/itemStatus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,SAAS;IACT,QAAQ;IACR,qBAAqB;IACrB,YAAY;IACZ,UAAU;IACV,UAAU;IACV,oBAAoB;IACpB,SAAS;IACT,qBAAqB;IACrB,sBAAsB;IACtB,SAAS;IACT,WAAW;CACH,CAAC;AAIX,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAwB;IAC1D,SAAS;IACT,QAAQ;IACR,qBAAqB;IACrB,YAAY;IACZ,UAAU;CACX,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,oBAAoB,CAAC,GAAG,CAAC,MAA+B,CAAC,CAAC;AACnE,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;GASG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAwB;IACvD,UAAU;IACV,oBAAoB;IACpB,SAAS;IACT,sBAAsB;IACtB,WAAW;CACZ,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,0BAA0B,GAAG,IAAI,GAAG,CAAwB;IAChE,UAAU;IACV,oBAAoB;CACrB,CAAC,CAAC;AAEH,sFAAsF;AACtF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAwB;IACnD,SAAS;IACT,sBAAsB;CACvB,CAAC,CAAC;AAEH,wIAAwI;AACxI,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,OAAO,iBAAiB,CAAC,GAAG,CAAC,MAA+B,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAA0B;IACjE,OAAO,CACL,MAAM,KAAK,SAAS;QACpB,0BAA0B,CAAC,GAAG,CAAC,MAA+B,CAAC,CAChE,CAAC;AACJ,CAAC;AAED,oHAAoH;AACpH,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,OAAO,aAAa,CAAC,GAAG,CAAC,MAA+B,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW,CAAC;AACxD,CAAC;AAED,gFAAgF;AAEhF;;;;;;;;;;GAUG;AACH,MAAM,qBAAqB,GAAyD;IAClF,QAAQ,EAAE,UAAU;IACpB,kBAAkB,EAAE,oBAAoB;IACxC,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,sBAAsB;IAC5C,SAAS,EAAE,WAAW;IACtB,4EAA4E;IAC5E,OAAO,EAAE,WAAW;IACpB,mBAAmB,EAAE,WAAW;IAChC,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,WAAW;IACnB,mBAAmB,EAAE,WAAW;IAChC,UAAU,EAAE,WAAW;IACvB,QAAQ,EAAE,WAAW;CACtB,CAAC;AAEF,kEAAkE;AAClE,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,OAAO,qBAAqB,CAAC,MAA+B,CAAC,IAAI,WAAW,CAAC;AAC/E,CAAC;AAED,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,6BAA6B,GAA4D;IAC7F,QAAQ,EAAE,UAAU;IACpB,kBAAkB,EAAE,oBAAoB;IACxC,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,eAAe;IACrC,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,kEAAkE;AAClE,MAAM,UAAU,0BAA0B,CACxC,WAAkC;IAElC,OAAO,6BAA6B,CAAC,WAAW,CAAC,CAAC;AACpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,cAAc,EACf,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EACF,SAAS,GACT,UAAU,GACV,2BAA2B,GAC3B,cAAc,GACd,QAAQ,GACR,oBAAoB,GACpB,SAAS,GACT,UAAU,CAAC;IACf,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC7C,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,yBAAyB,CAAC;IACxD;;;;OAIG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC;IAChC;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IACrC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;;;;;;;;;;;;;;;OAiBG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAyHD,eAAO,MAAM,eAAe,QAA+B,CAAC;AAU5D,qBAAa,UAAU;IAWnB,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAZlC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2C;gBAGvD,YAAY,EAAE,MAAM,EAEX,cAAc,CAAC,EAAE,MAAM,YAAA;IAoBpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAInD;;;;;OAKG;IACG,MAAM,CACV,EAAE,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,GAClE,OAAO,CAAC,gBAAgB,CAAC;IAa5B;;;;;OAKG;IACG,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAMxD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdir } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { createLockedJsonStore, LOCKED_JSON_STORE_TIMEOUT_MS, assertNotNodeWorktreeCwd, } from "audit-tools/shared";
|
|
4
|
+
import { validateRemediationBlock } from "../validation/remediationState.js";
|
|
4
5
|
/** Known status values for RemediationState — used for schema validation on load. */
|
|
5
6
|
const KNOWN_STATUSES = new Set([
|
|
6
7
|
"pending",
|
|
@@ -61,6 +62,23 @@ function validateState(value) {
|
|
|
61
62
|
if (!Array.isArray(p["blocks"])) {
|
|
62
63
|
errors.push(`status "${status}" requires plan.blocks`);
|
|
63
64
|
}
|
|
65
|
+
else {
|
|
66
|
+
// Per-block shape is delegated to the ONE block validator rather than
|
|
67
|
+
// re-checked here. Two validators for one object is how the load path
|
|
68
|
+
// came to be the weaker of the pair: `validateRemediationBlock` requires
|
|
69
|
+
// `touched_files` (the surface the file-ownership-disjoint scheduler and
|
|
70
|
+
// post-merge attribution read), but it was reachable only through
|
|
71
|
+
// `validateRemediationPlan`, so a block with no declared surface loaded
|
|
72
|
+
// clean and every reader normalized the omission to an implicit empty —
|
|
73
|
+
// i.e. "collides with nothing". [[validator-guards-every-field-caller-reads]]
|
|
74
|
+
for (const [i, block] of p["blocks"].entries()) {
|
|
75
|
+
for (const issue of validateRemediationBlock(block, `plan.blocks[${i}]`)) {
|
|
76
|
+
if (issue.severity === "error") {
|
|
77
|
+
errors.push(`${issue.path}: ${issue.message}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
64
82
|
}
|
|
65
83
|
const items = obj["items"];
|
|
66
84
|
if (!items || typeof items !== "object" || Array.isArray(items)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAEL,qBAAqB,EACrB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,11 @@ export declare const RemediationBlockSchema: z.ZodObject<{
|
|
|
25
25
|
/**
|
|
26
26
|
* Repo-relative paths that this block's implementation is expected to touch.
|
|
27
27
|
* First-class and REQUIRED (an empty array is allowed, an omitted field is
|
|
28
|
-
* rejected by `validateRemediationBlock`
|
|
29
|
-
*
|
|
30
|
-
*
|
|
28
|
+
* rejected by `validateRemediationBlock` — which the state LOAD gate
|
|
29
|
+
* delegates to, so the requirement holds on every path a block reaches a
|
|
30
|
+
* consumer through): the file-ownership-disjoint scheduler and
|
|
31
|
+
* `attributePostMergeFailure` both read it, so a block with no declared
|
|
32
|
+
* surface is a producer bug, not an implicit empty.
|
|
31
33
|
*/
|
|
32
34
|
touched_files: z.ZodArray<z.ZodString, "many">;
|
|
33
35
|
/**
|
|
@@ -307,9 +309,11 @@ export declare const RemediationPlanSchema: z.ZodObject<{
|
|
|
307
309
|
/**
|
|
308
310
|
* Repo-relative paths that this block's implementation is expected to touch.
|
|
309
311
|
* First-class and REQUIRED (an empty array is allowed, an omitted field is
|
|
310
|
-
* rejected by `validateRemediationBlock`
|
|
311
|
-
*
|
|
312
|
-
*
|
|
312
|
+
* rejected by `validateRemediationBlock` — which the state LOAD gate
|
|
313
|
+
* delegates to, so the requirement holds on every path a block reaches a
|
|
314
|
+
* consumer through): the file-ownership-disjoint scheduler and
|
|
315
|
+
* `attributePostMergeFailure` both read it, so a block with no declared
|
|
316
|
+
* surface is a producer bug, not an implicit empty.
|
|
313
317
|
*/
|
|
314
318
|
touched_files: z.ZodArray<z.ZodString, "many">;
|
|
315
319
|
/**
|
|
@@ -795,44 +799,16 @@ export interface OutcomeCoverageLedger extends Omit<CoverageLedger, "entries"> {
|
|
|
795
799
|
entries: OutcomeCoverageEntry[];
|
|
796
800
|
}
|
|
797
801
|
/**
|
|
798
|
-
* How
|
|
799
|
-
*
|
|
802
|
+
* How an item ENDED, as the outcomes contract records it. Derived from the item
|
|
803
|
+
* status by the single status→disposition→outcome authority in `itemStatus.ts`;
|
|
804
|
+
* nothing else may re-enumerate it.
|
|
800
805
|
*
|
|
801
|
-
*
|
|
802
|
-
*
|
|
803
|
-
*
|
|
804
|
-
*
|
|
806
|
+
* Every value is terminal. `abandoned` is the tool giving up — retry bound
|
|
807
|
+
* exhausted, final gate red, or operator halt — and is deliberately distinct
|
|
808
|
+
* from `ignored` (a settled human decision not to act), because collapsing them
|
|
809
|
+
* would erase which of the two happened.
|
|
805
810
|
*/
|
|
806
|
-
export type
|
|
807
|
-
/**
|
|
808
|
-
* Disposition of a single finding or DAG-node within the per-finding ledger.
|
|
809
|
-
* Only terminal dispositions count toward coverage (INV-CL-05 fail-closed rule).
|
|
810
|
-
*/
|
|
811
|
-
export type PerFindingDisposition = "resolved" | "resolved_no_change" | "ignored" | "deemed_inappropriate" | "force_closed_unresolved";
|
|
812
|
-
/** Single entry in `PerFindingCoverageLedger.entries`. */
|
|
813
|
-
export interface PerFindingLedgerEntry {
|
|
814
|
-
/** Finding id (structured_audit) or promoted DAG-node id (document source). */
|
|
815
|
-
id: string;
|
|
816
|
-
disposition: PerFindingDisposition;
|
|
817
|
-
}
|
|
818
|
-
/**
|
|
819
|
-
* Per-finding / per-node coverage ledger — source_type-aware denominator.
|
|
820
|
-
*
|
|
821
|
-
* For `structured_audit` sources the denominator is the complete
|
|
822
|
-
* `finding-enumeration.json` set; for document / non-enumerable sources the
|
|
823
|
-
* denominator is the set of promoted implementation-DAG nodes. A 0/0 ledger
|
|
824
|
-
* is INCOMPLETE (fail-closed) — zero denominator never counts as vacuously
|
|
825
|
-
* complete (INV-CL-05).
|
|
826
|
-
*/
|
|
827
|
-
export interface PerFindingCoverageLedger {
|
|
828
|
-
/** Discriminates structured vs. document/non-enumerable sources. */
|
|
829
|
-
denominator_kind: PerFindingDenominatorKind;
|
|
830
|
-
/** Total items expected (finding-enumeration count or promoted-node count). */
|
|
831
|
-
denominator: number;
|
|
832
|
-
/** Items that reached a terminal disposition (len(entries) after build). */
|
|
833
|
-
covered: number;
|
|
834
|
-
entries: PerFindingLedgerEntry[];
|
|
835
|
-
}
|
|
811
|
+
export type PerFindingDisposition = "resolved" | "resolved_no_change" | "ignored" | "deemed_inappropriate" | "abandoned";
|
|
836
812
|
export interface RemediationItemState {
|
|
837
813
|
finding_id: string;
|
|
838
814
|
status: RemediationItemStatus;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAM7D,OAAO,KAAK,EAAE,OAAO,EAAgB,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEpF,YAAY,EAAE,OAAO,EAAE,CAAC;AAExB,eAAO,MAAM,sBAAsB;;;IAI/B;;;OAGG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;IAEH
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,11 @@ export const RemediationBlockSchema = z
|
|
|
25
25
|
/**
|
|
26
26
|
* Repo-relative paths that this block's implementation is expected to touch.
|
|
27
27
|
* First-class and REQUIRED (an empty array is allowed, an omitted field is
|
|
28
|
-
* rejected by `validateRemediationBlock`
|
|
29
|
-
*
|
|
30
|
-
*
|
|
28
|
+
* rejected by `validateRemediationBlock` — which the state LOAD gate
|
|
29
|
+
* delegates to, so the requirement holds on every path a block reaches a
|
|
30
|
+
* consumer through): the file-ownership-disjoint scheduler and
|
|
31
|
+
* `attributePostMergeFailure` both read it, so a block with no declared
|
|
32
|
+
* surface is a producer bug, not an implicit empty.
|
|
31
33
|
*/
|
|
32
34
|
touched_files: z.array(z.string()),
|
|
33
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC;KACpC,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE;IAC1B;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACjD
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/remediate/state/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -171,7 +171,7 @@ type ExtendedRepairTarget = "finalized_module_contracts" | "obligation_ledger" |
|
|
|
171
171
|
* assessment/finding/gap keywords → contract_assessment_report
|
|
172
172
|
* fallback → finalized_module_contracts
|
|
173
173
|
*/
|
|
174
|
-
export declare function inferRepairTarget(classifications: JudgeReport["classifications"]): ExtendedRepairTarget;
|
|
174
|
+
export declare function inferRepairTarget(classifications: JudgeReport["classifications"] | undefined): ExtendedRepairTarget;
|
|
175
175
|
type CritiqueGate = {
|
|
176
176
|
kind: "proceed";
|
|
177
177
|
} | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractPipeline.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/contractPipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"contractPipeline.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/contractPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -394,7 +394,13 @@ export async function writePathASeedFromFindings(artifactsDir, auditFindingsPath
|
|
|
394
394
|
* assessment/finding/gap keywords → contract_assessment_report
|
|
395
395
|
* fallback → finalized_module_contracts
|
|
396
396
|
*/
|
|
397
|
-
export function inferRepairTarget(
|
|
397
|
+
export function inferRepairTarget(
|
|
398
|
+
// Widened to match the guard below rather than the other way round: judge
|
|
399
|
+
// reports are read back from artifact JSON, so `classifications` genuinely
|
|
400
|
+
// arrives absent on a malformed/partial report. The declared-required type
|
|
401
|
+
// said that could not happen while the body defended against it — and a
|
|
402
|
+
// signature that disagrees with its own null-guard makes one of them dead.
|
|
403
|
+
classifications) {
|
|
398
404
|
const accepted = (classifications ?? []).filter((c) => c.classification === "accepted");
|
|
399
405
|
const text = accepted.map((c) => c.rationale).join(" ").toLowerCase();
|
|
400
406
|
if (/obligation|ledger|invariant violated|constraint/.test(text)) {
|