audit-tools 0.30.17 → 0.30.19

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.
@@ -45,6 +45,21 @@ export interface DeriveOptions {
45
45
  * ledger is acyclic by construction — `buildObligationLedger` cannot throw).
46
46
  */
47
47
  export declare function deriveObligationLedger(finalizedModuleContracts: unknown, options?: DeriveOptions): ObligationLedger;
48
+ /**
49
+ * Shared obligation-membership predicates — the single source for which
50
+ * obligations each downstream scaffold covers.
51
+ *
52
+ * `isTestablePhaseObligation`: testable (invariant/behavioral) → true; the
53
+ * structural contract-conformance kind → false; an unknown/unexpected kind →
54
+ * conservatively true (fail-OPEN into the paired-test gate rather than silently
55
+ * skipping coverage).
56
+ *
57
+ * `isDagPhaseObligation`: every obligation is covered by the implementation DAG,
58
+ * so this is always true. It exists so both scaffolds derive their membership
59
+ * from a named predicate rather than an inline ad-hoc filter.
60
+ */
61
+ export declare function isTestablePhaseObligation(kind: string): boolean;
62
+ export declare function isDagPhaseObligation(_kind: string): boolean;
48
63
  export interface TestValidatorPlanScaffold {
49
64
  test_specs: Array<{
50
65
  obligation_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/derive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAqB5B,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,wBAAwB,EAAE,OAAO,EACjC,OAAO,GAAE,aAAkB,GAC1B,gBAAgB,CA2DlB;AAsBD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,KAAK,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,yBAAyB,CAY3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,6BAA6B,EAAE,CAAC;IACvC,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,EAAE,CAgBxE;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,aAAa,EAAE,MAAM,EAAE,GACtB,yBAAyB,CAiC3B"}
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/derive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAqB5B,sFAAsF;AACtF,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,wBAAwB,EAAE,OAAO,EACjC,OAAO,GAAE,aAAkB,GAC1B,gBAAgB,CA2DlB;AAmBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAI/D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AASD,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,KAAK,CAAC;QAChB,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,yBAAyB,CAY3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,2BAA2B,EAAE,MAAM,EAAE,CAAC;IACtC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,6BAA6B,EAAE,CAAC;IACvC,KAAK,EAAE,KAAK,EAAE,CAAC;CAChB;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,EAAE,CAgBxE;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,gBAAgB,GAAG,SAAS,EACpC,aAAa,EAAE,MAAM,EAAE,GACtB,yBAAyB,CAmC3B"}
@@ -103,7 +103,34 @@ export function deriveObligationLedger(finalizedModuleContracts, options = {}) {
103
103
  // mis-reference an obligation. These are NOT writable artifacts: the blank
104
104
  // fields fail validation by design (that is the point — the model must fill
105
105
  // them). They are rendered into the dispatch prompt as a pre-filled skeleton.
106
+ // NOTE(follow-up unification): this testable-kind set is duplicated in
107
+ // `../validation/contractPipelineGates.ts` (~438, `TESTABLE_OBLIGATION_KINDS`).
108
+ // The two should be single-sourced; for now they are kept in parity by hand.
109
+ // Do NOT edit gates.ts here — that unification is tracked separately.
106
110
  const TESTABLE_KINDS = new Set(["invariant", "behavioral"]);
111
+ /**
112
+ * Shared obligation-membership predicates — the single source for which
113
+ * obligations each downstream scaffold covers.
114
+ *
115
+ * `isTestablePhaseObligation`: testable (invariant/behavioral) → true; the
116
+ * structural contract-conformance kind → false; an unknown/unexpected kind →
117
+ * conservatively true (fail-OPEN into the paired-test gate rather than silently
118
+ * skipping coverage).
119
+ *
120
+ * `isDagPhaseObligation`: every obligation is covered by the implementation DAG,
121
+ * so this is always true. It exists so both scaffolds derive their membership
122
+ * from a named predicate rather than an inline ad-hoc filter.
123
+ */
124
+ export function isTestablePhaseObligation(kind) {
125
+ if (TESTABLE_KINDS.has(kind))
126
+ return true;
127
+ if (kind === "structural")
128
+ return false;
129
+ return true; // unknown kind → conservatively testable
130
+ }
131
+ export function isDagPhaseObligation(_kind) {
132
+ return true;
133
+ }
107
134
  /** A short, stable test name from an obligation description. */
108
135
  function scaffoldName(obligation) {
109
136
  const text = obligation.description.replace(/\s+/g, " ").trim();
@@ -121,7 +148,7 @@ export function buildTestValidatorPlanScaffold(ledger) {
121
148
  const obligations = ledger?.obligations ?? [];
122
149
  return {
123
150
  test_specs: obligations
124
- .filter((o) => TESTABLE_KINDS.has(o.kind))
151
+ .filter((o) => isTestablePhaseObligation(o.kind))
125
152
  .map((o) => ({
126
153
  obligation_id: o.id,
127
154
  name: scaffoldName(o),
@@ -154,7 +181,7 @@ export function acceptedCounterexampleIds(judgeReport) {
154
181
  * fills the blanks and may merge nodes as long as coverage is preserved.
155
182
  */
156
183
  export function buildImplementationDagScaffold(ledger, acceptedCeIds) {
157
- const obligations = ledger?.obligations ?? [];
184
+ const obligations = (ledger?.obligations ?? []).filter((o) => isDagPhaseObligation(o.kind));
158
185
  const nodes = obligations.map((o, i) => ({
159
186
  id: `CP-NODE-${i + 1}`,
160
187
  title: "",
@@ -1 +1 @@
1
- {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/derive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"derive.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/derive.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../../src/remediate/phases/triage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AA+H1D,wBAAsB,cAAc,CAClC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAyI3B"}
1
+ {"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../../src/remediate/phases/triage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAoK1D,wBAAsB,cAAc,CAClC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAyK3B"}
@@ -4,6 +4,7 @@ import { rename } from "node:fs/promises";
4
4
  import { readOptionalJsonFile, writeJsonFile, formatValidationIssues, withFsRetry } from "audit-tools/shared";
5
5
  import { validateTriageResolution } from "../validation/remediationState.js";
6
6
  import { rationaleAsksForRetry } from "../steps/stepUtils.js";
7
+ import { verifyNodeInWorktree } from "../steps/dispatch.js";
7
8
  function markRetry(item) {
8
9
  item.started_at ??= new Date().toISOString();
9
10
  delete item.completed_at;
@@ -47,6 +48,37 @@ function retryBlockedItem(item, failureClass) {
47
48
  item.rework_count = (item.rework_count ?? 0) + 1;
48
49
  }
49
50
  }
51
+ /**
52
+ * Re-verify a blocked item against the CURRENT working tree before retrying it.
53
+ *
54
+ * Runs the item's block's post-merge `targeted_commands` at the repo root. If
55
+ * they pass, the finding is already satisfied in the tree — e.g. a lean/hand lap
56
+ * landed the fix outside this run, or the run is being resumed after the work
57
+ * already shipped — so retrying would just re-hit an already-fixed state, burn
58
+ * the retry budget, and dump the item to human triage (the obsolete-run-resume
59
+ * bug). Reconcile it to `resolved_no_change` instead.
60
+ *
61
+ * This is deliberately NODE-GRANULAR, never a coarse whole-run abandon: an
62
+ * unrelated fix elsewhere cannot make an unrelated node's OWN verification pass,
63
+ * so only the specifically already-satisfied items close; everything genuinely
64
+ * open keeps retrying as before. Returns:
65
+ * - `"satisfied"` — commands present and ALL pass (already fixed in tree)
66
+ * - `"unsatisfied"` — commands present and at least one fails (still open)
67
+ * - `"indeterminate"` — no `targeted_commands` to check, so we cannot tell
68
+ * (caller falls back to the normal retry path)
69
+ */
70
+ function reverifyBlockedItemAgainstTree(item, state, options) {
71
+ const block = (item.block_id
72
+ ? state.plan?.blocks.find((b) => b.block_id === item.block_id)
73
+ : undefined) ??
74
+ state.plan?.blocks.find((b) => b.items.includes(item.finding_id));
75
+ const commands = block?.targeted_commands;
76
+ if (!commands || commands.length === 0)
77
+ return "indeterminate";
78
+ return verifyNodeInWorktree(options.root, commands).passed
79
+ ? "satisfied"
80
+ : "unsatisfied";
81
+ }
50
82
  async function archiveIfPresent(path, suffix) {
51
83
  if (!existsSync(path))
52
84
  return;
@@ -129,7 +161,24 @@ export async function runTriagePhase(state, options) {
129
161
  // was approved at the review gate, so transient/contract failures retry
130
162
  // autonomously; only budget-exhausted items fall through to a human prompt.
131
163
  let autoRetried = false;
164
+ let reconciledSatisfied = false;
132
165
  for (const item of blockedItems) {
166
+ // Re-verify against the CURRENT tree BEFORE retrying (takes precedence
167
+ // over the retry budget): if the node's own verification now passes, the
168
+ // finding is already satisfied — a lean/hand lap landed it, or this is an
169
+ // obsolete run being resumed after the work shipped — so reconcile to
170
+ // resolved_no_change rather than re-hitting an already-fixed state.
171
+ if (reverifyBlockedItemAgainstTree(item, state, options) === "satisfied") {
172
+ item.status = "resolved_no_change";
173
+ markTerminal(item);
174
+ // NB: do not write `last_successful_step` here — dispatch.ts is its
175
+ // single writer (CE-P3-001 / OBL-INV-RPS-05). The reconciliation is
176
+ // conveyed by the terminal `resolved_no_change` status + this log.
177
+ item.failure_reason = undefined;
178
+ console.log(`[triage] ${item.finding_id}: already satisfied in the working tree — reconciled to resolved_no_change (no retry).`);
179
+ reconciledSatisfied = true;
180
+ continue;
181
+ }
133
182
  // Stop auto-retrying an item that has already been retried the cap
134
183
  // number of times for its failure class — leaves it `blocked` so the
135
184
  // fall-through below routes the run to a human triage prompt.
@@ -153,15 +202,25 @@ export async function runTriagePhase(state, options) {
153
202
  console.log("Auto-retrying blocked findings within their retry budget.");
154
203
  return { ...state, status: "implementing" };
155
204
  }
205
+ // Re-verification may have reconciled some/all blocked items to
206
+ // resolved_no_change above; only the genuinely-still-open ones remain.
207
+ const stillBlocked = blockedItems.filter((item) => item.status === "blocked");
208
+ if (stillBlocked.length === 0) {
209
+ // Every blocked item was already satisfied in the tree — the run is an
210
+ // obsolete/already-landed one; close it cleanly instead of looping its
211
+ // stale nodes through human triage.
212
+ console.log("All blocked items already satisfied in the working tree — closing the reconciled run.");
213
+ return { ...state, status: "closing" };
214
+ }
156
215
  const triageBatch = {
157
- items: blockedItems.map((item) => ({
216
+ items: stillBlocked.map((item) => ({
158
217
  finding_id: item.finding_id,
159
218
  failure_reason: item.failure_reason ?? "Unknown error",
160
219
  last_successful_step: item.last_successful_step ?? "Unknown step",
161
220
  })),
162
221
  };
163
222
  await writeJsonFile(join(options.artifactsDir, "triage_batch.json"), triageBatch);
164
- console.error(`\nFound ${blockedItems.length} blocked items. Wrote triage_batch.json.`);
223
+ console.error(`\nFound ${stillBlocked.length} blocked items. Wrote triage_batch.json.`);
165
224
  console.error(`Please write triage_resolution.json and run again to continue.`);
166
225
  return { ...state, status: "waiting_for_triage" };
167
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"triage.js","sourceRoot":"","sources":["../../../src/remediate/phases/triage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"triage.js","sourceRoot":"","sources":["../../../src/remediate/phases/triage.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,28 @@ export interface RemediationState {
22
22
  * a `user_halted` marker in the partial report.
23
23
  */
24
24
  closing_context?: "user_halted";
25
+ /**
26
+ * Persisted host-capability handshake. Opaque to the state store: stored and
27
+ * round-tripped verbatim, never interpreted here (validateState only gates
28
+ * `status`). The dispatch-build site merges the explicitly-supplied host
29
+ * options into this so a later call that omits a flag reuses the persisted
30
+ * value rather than re-flooring it (C1). Fields: can-dispatch-subagents,
31
+ * max-concurrent, context/output token windows, and the model roster / id.
32
+ */
33
+ host_capabilities?: HostCapabilities;
34
+ }
35
+ /**
36
+ * Opaque persisted host-capability handshake (C1). Every field optional — only
37
+ * the explicitly-supplied fields of a given call are persisted, so an omitted
38
+ * field never clobbers a previously-stored value.
39
+ */
40
+ export interface HostCapabilities {
41
+ can_dispatch_subagents?: boolean;
42
+ max_concurrent?: number;
43
+ context_tokens?: number;
44
+ output_tokens?: number;
45
+ model_id?: string;
46
+ models?: unknown;
25
47
  }
26
48
  export declare const LOCK_TIMEOUT_MS: number;
27
49
  export declare class StateStore {
@@ -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;AAEpB,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;CACjC;AA0CD,eAAO,MAAM,eAAe,QAAyC,CAAC;AAUtE,qBAAa,UAAU;IAEnB,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAFxB,YAAY,EAAE,MAAM,EAEX,cAAc,CAAC,EAAE,MAAM,YAAA;IAGpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAmBnD;;;;;OAKG;IACG,MAAM,CACV,EAAE,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,GAClE,OAAO,CAAC,gBAAgB,CAAC;IA8B5B;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD;;;;;OAKG;YACW,iBAAiB;CAGhC"}
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;AAEpB,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;CACtC;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;AA0CD,eAAO,MAAM,eAAe,QAAyC,CAAC;AAUtE,qBAAa,UAAU;IAEnB,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAFxB,YAAY,EAAE,MAAM,EAEX,cAAc,CAAC,EAAE,MAAM,YAAA;IAGpC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAmBnD;;;;;OAKG;IACG,MAAM,CACV,EAAE,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,gBAAgB,CAAC,GAClE,OAAO,CAAC,gBAAgB,CAAC;IA8B5B;;;;;;OAMG;IACG,SAAS,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvD;;;;;OAKG;YACW,iBAAiB;CAGhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,35 @@ export interface CyclicSeamRepairState {
28
28
  }
29
29
  export declare function readCyclicSeamRepairState(artifactsDir: string): Promise<CyclicSeamRepairState>;
30
30
  export declare function writeCyclicSeamRepairState(artifactsDir: string, state: CyclicSeamRepairState): Promise<void>;
31
+ /** Outcome of an archive attempt. */
32
+ export interface ArchiveOutcome {
33
+ /**
34
+ * Timestamped history path the original was moved to, or undefined when the
35
+ * source did not exist (nothing to archive).
36
+ */
37
+ archivedPath?: string;
38
+ /**
39
+ * True when the original path is now free for a fresh Write (the move
40
+ * succeeded, or there was nothing to archive). False when the move failed and
41
+ * the original was preserved in place — the caller must NOT assume the path is
42
+ * re-authorable.
43
+ */
44
+ originalFree: boolean;
45
+ }
46
+ /**
47
+ * Archive an artifact file into `<contract>/history/` instead of deleting it,
48
+ * so a repair loop never silently destroys an LLM output. On a successful move
49
+ * the original path is free (a fresh Write recreates it cleanly); if the move
50
+ * throws, the original is preserved in place (`originalFree: false`) rather than
51
+ * silently dropped. `renameFn` is a DI seam so a failed history move is testable.
52
+ */
53
+ export declare function archiveContractArtifact(artifactsDir: string, name: ContractPipelineArtifactName, label: "stale" | "invalid", renameFn?: (from: string, to: string) => Promise<void>): Promise<ArchiveOutcome>;
54
+ /**
55
+ * The explicit re-author signpost appended to every inline rejection re-emit:
56
+ * the prior output was archived, so the worker must Write a fresh complete
57
+ * artifact at the ORIGINAL path — never Edit the previous (now-archived) file.
58
+ */
59
+ export declare function rejectionRewriteInstruction(archivedPath: string | undefined): string;
31
60
  export interface ContractIngestionResult {
32
61
  /** Raw worker payloads that validated and were wrapped into envelopes. */
33
62
  ingested: ContractPipelineArtifactName[];
@@ -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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"}
@@ -155,15 +155,35 @@ Self-check before next-step: \`${loaderCommand(`validate-artifact --name impleme
155
155
  }
156
156
  /**
157
157
  * Archive an artifact file into `<contract>/history/` instead of deleting it,
158
- * so a repair loop never silently destroys an LLM output.
158
+ * so a repair loop never silently destroys an LLM output. On a successful move
159
+ * the original path is free (a fresh Write recreates it cleanly); if the move
160
+ * throws, the original is preserved in place (`originalFree: false`) rather than
161
+ * silently dropped. `renameFn` is a DI seam so a failed history move is testable.
159
162
  */
160
- async function archiveContractArtifact(artifactsDir, name, label) {
163
+ export async function archiveContractArtifact(artifactsDir, name, label, renameFn = rename) {
161
164
  const source = contractArtifactFilePath(artifactsDir, name);
162
165
  if (!existsSync(source))
163
- return;
166
+ return { originalFree: true };
164
167
  const historyDir = join(contractPipelineDir(artifactsDir), "history");
165
168
  await mkdir(historyDir, { recursive: true });
166
- await withFsRetry(() => rename(source, join(historyDir, `${name}.${label}-${Date.now()}.json`)));
169
+ const archivedPath = join(historyDir, `${name}.${label}-${Date.now()}.json`);
170
+ try {
171
+ await withFsRetry(() => renameFn(source, archivedPath));
172
+ }
173
+ catch {
174
+ // Move failed: preserve the original in place rather than drop it.
175
+ return { archivedPath, originalFree: false };
176
+ }
177
+ return { archivedPath, originalFree: true };
178
+ }
179
+ /**
180
+ * The explicit re-author signpost appended to every inline rejection re-emit:
181
+ * the prior output was archived, so the worker must Write a fresh complete
182
+ * artifact at the ORIGINAL path — never Edit the previous (now-archived) file.
183
+ */
184
+ export function rejectionRewriteInstruction(archivedPath) {
185
+ const where = archivedPath ? `\`${archivedPath}\`` : "the contract history directory";
186
+ return `\n\n> Prior output archived to ${where}; Write a fresh complete artifact at its original path — do NOT Edit the previous file.`;
167
187
  }
168
188
  /**
169
189
  * Wrap raw worker-written artifact payloads into validated envelopes. Workers
@@ -876,14 +896,14 @@ The orchestrator verifies every module shard is present, merges them into \`${PH
876
896
  const ingestion = await ingestContractArtifacts(artifactsDir);
877
897
  if (ingestion.invalid.length > 0) {
878
898
  const first = ingestion.invalid[0];
879
- await archiveContractArtifact(artifactsDir, first.name, "invalid");
899
+ const archived = await archiveContractArtifact(artifactsDir, first.name, "invalid");
880
900
  const phase = ARTIFACT_TO_PHASE[first.name] ?? "goal_normalization";
881
901
  return buildPhaseStep(phase, `## Validation Errors From the Previous Attempt
882
902
 
883
903
  The previous \`${first.name}\` output failed validation and was archived. Fix every issue below in the rewritten output:
884
904
 
885
905
  ${formatValidationIssues(first.issues)}
886
- `);
906
+ ${rejectionRewriteInstruction(archived.archivedPath)}`);
887
907
  }
888
908
  // 2. Archive stale artifacts so the staleness DAG re-derives everything
889
909
  // downstream of a repaired (re-ingested) upstream artifact.
@@ -934,7 +954,7 @@ ${formatValidationIssues(first.issues)}
934
954
  const firstPath = goalIdErrors[0]?.path ?? "";
935
955
  const mismatchedArtifact = firstPath.replace(/\.goal_id$/, "");
936
956
  const phase = ARTIFACT_TO_PHASE[mismatchedArtifact] ?? "goal_normalization";
937
- await archiveContractArtifact(artifactsDir, mismatchedArtifact, "invalid");
957
+ const archived = await archiveContractArtifact(artifactsDir, mismatchedArtifact, "invalid");
938
958
  return buildPhaseStep(phase, `## Goal-ID Consistency Error
939
959
 
940
960
  Every contract-pipeline artifact must share the same goal_id. The following mismatch was detected:
@@ -942,7 +962,7 @@ Every contract-pipeline artifact must share the same goal_id. The following mism
942
962
  ${goalIdErrors.map((i) => `- [${i.path}] ${i.message}`).join("\n")}
943
963
 
944
964
  Rewrite the output so its goal_id matches the goal_id established in goal_spec.json.
945
- `);
965
+ ${rejectionRewriteInstruction(archived.archivedPath)}`);
946
966
  }
947
967
  }
948
968
  // 2.7. Deterministic artifact derivation (S1, contract-authoring determinism).
@@ -1032,13 +1052,13 @@ Report this to the user and stop. The contract pipeline cannot promote a plan wi
1032
1052
  at: new Date().toISOString(),
1033
1053
  });
1034
1054
  await writeRepairState(artifactsDir, repairState);
1035
- await archiveContractArtifact(artifactsDir, "implementation_dag", "invalid");
1055
+ const archived = await archiveContractArtifact(artifactsDir, "implementation_dag", "invalid");
1036
1056
  return buildPhaseStep("implementation_planning", `## Referential Integrity Errors From the Previous Attempt
1037
1057
 
1038
1058
  The previous implementation_dag was rejected and archived due to referential integrity violations. Fix every issue below:
1039
1059
 
1040
1060
  ${integrityErrors.map((i) => `- [${i.path}] ${i.message}`).join("\n")}
1041
- `);
1061
+ ${rejectionRewriteInstruction(archived.archivedPath)}`);
1042
1062
  }
1043
1063
  const traceability = await validateImplementationDagTraceability(artifactsDir);
1044
1064
  if (!traceability.ok) {
@@ -1067,13 +1087,13 @@ Report this to the user and stop. The contract pipeline cannot promote an untrac
1067
1087
  at: new Date().toISOString(),
1068
1088
  });
1069
1089
  await writeRepairState(artifactsDir, repairState);
1070
- await archiveContractArtifact(artifactsDir, "implementation_dag", "invalid");
1090
+ const archived = await archiveContractArtifact(artifactsDir, "implementation_dag", "invalid");
1071
1091
  return buildPhaseStep("implementation_planning", `## Traceability Errors From the Previous Attempt
1072
1092
 
1073
1093
  The previous implementation_dag was rejected and archived. Every node must trace to at least one obligation from the obligation ledger or one judge-accepted counterexample:
1074
1094
 
1075
1095
  ${traceability.violations.map((v) => `- ${v}`).join("\n")}
1076
- `);
1096
+ ${rejectionRewriteInstruction(archived.archivedPath)}`);
1077
1097
  }
1078
1098
  // 4c. Contract-obligations promotion gates (CP-BLOCK-N-contract-obligations):
1079
1099
  // fail-closed cross-artifact checks that must pass before a plan is
@@ -1110,13 +1130,13 @@ Report this to the user and stop. The contract pipeline cannot promote a plan th
1110
1130
  at: new Date().toISOString(),
1111
1131
  });
1112
1132
  await writeRepairState(artifactsDir, repairState);
1113
- await archiveContractArtifact(artifactsDir, "implementation_dag", "invalid");
1133
+ const archived = await archiveContractArtifact(artifactsDir, "implementation_dag", "invalid");
1114
1134
  return buildPhaseStep("implementation_planning", `## Contract-Obligation Gate Errors From the Previous Attempt
1115
1135
 
1116
1136
  The previous implementation_dag (and/or upstream contract artifacts) failed the fail-closed contract-obligation gates. Fix every issue below before the plan can be promoted:
1117
1137
 
1118
1138
  ${obligationGate.violations.map((v) => `- ${v}`).join("\n")}
1119
- `);
1139
+ ${rejectionRewriteInstruction(archived.archivedPath)}`);
1120
1140
  }
1121
1141
  await promoteImplementationDagToExtractedPlan(artifactsDir);
1122
1142
  // 4d. M-B3 source-grounded citation gate (promotion backstop): ground every
@@ -1151,7 +1171,7 @@ Report this to the user and stop. The contract pipeline cannot promote a plan wh
1151
1171
  at: new Date().toISOString(),
1152
1172
  });
1153
1173
  await writeRepairState(artifactsDir, repairState);
1154
- await archiveContractArtifact(artifactsDir, "implementation_dag", "invalid");
1174
+ const archived = await archiveContractArtifact(artifactsDir, "implementation_dag", "invalid");
1155
1175
  // The grounding-driven re-emit is a backend-observed step-boundary fact:
1156
1176
  // route it through the single CE-005 chokepoint as phase_reemit.
1157
1177
  await captureStepBoundaryFriction(artifactsDir, runId, {
@@ -1166,7 +1186,7 @@ Report this to the user and stop. The contract pipeline cannot promote a plan wh
1166
1186
  The previous implementation_dag produced findings that cite components not present in the working tree. Every cited path or symbol must point at something real:
1167
1187
 
1168
1188
  ${citationGate.violations.map((v) => `- ${v}`).join("\n")}
1169
- `);
1189
+ ${rejectionRewriteInstruction(archived.archivedPath)}`);
1170
1190
  }
1171
1191
  return null;
1172
1192
  }