audit-tools 0.30.49 → 0.30.53

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.
Files changed (165) hide show
  1. package/dist/audit/cli/advanceAuditCommand.d.ts.map +1 -1
  2. package/dist/audit/cli/advanceAuditCommand.js +8 -4
  3. package/dist/audit/cli/advanceAuditCommand.js.map +1 -1
  4. package/dist/audit/cli/args.d.ts.map +1 -1
  5. package/dist/audit/cli/args.js +9 -2
  6. package/dist/audit/cli/args.js.map +1 -1
  7. package/dist/audit/cli/mergeAndIngestCommand.d.ts.map +1 -1
  8. package/dist/audit/cli/mergeAndIngestCommand.js +6 -22
  9. package/dist/audit/cli/mergeAndIngestCommand.js.map +1 -1
  10. package/dist/audit/cli/prompts.d.ts.map +1 -1
  11. package/dist/audit/cli/prompts.js +3 -1
  12. package/dist/audit/cli/prompts.js.map +1 -1
  13. package/dist/audit/cli/validateResultCommand.d.ts.map +1 -1
  14. package/dist/audit/cli/validateResultCommand.js +19 -6
  15. package/dist/audit/cli/validateResultCommand.js.map +1 -1
  16. package/dist/audit/cli/workerRunCommand.d.ts.map +1 -1
  17. package/dist/audit/cli/workerRunCommand.js +6 -21
  18. package/dist/audit/cli/workerRunCommand.js.map +1 -1
  19. package/dist/audit/contracts/workerSchemas.d.ts +27 -3
  20. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  21. package/dist/audit/contracts/workerSchemas.js +5 -1
  22. package/dist/audit/contracts/workerSchemas.js.map +1 -1
  23. package/dist/audit/extractors/analyzers/html.d.ts +1 -0
  24. package/dist/audit/extractors/analyzers/html.d.ts.map +1 -1
  25. package/dist/audit/extractors/analyzers/html.js +5 -3
  26. package/dist/audit/extractors/analyzers/html.js.map +1 -1
  27. package/dist/audit/extractors/browserExtension.d.ts.map +1 -1
  28. package/dist/audit/extractors/browserExtension.js +1 -8
  29. package/dist/audit/extractors/browserExtension.js.map +1 -1
  30. package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
  31. package/dist/audit/extractors/graphRoutes.js +4 -1
  32. package/dist/audit/extractors/graphRoutes.js.map +1 -1
  33. package/dist/audit/orchestrator/autoFixExecutor.d.ts +8 -0
  34. package/dist/audit/orchestrator/autoFixExecutor.d.ts.map +1 -1
  35. package/dist/audit/orchestrator/autoFixExecutor.js +68 -35
  36. package/dist/audit/orchestrator/autoFixExecutor.js.map +1 -1
  37. package/dist/audit/orchestrator/rollingDispatch.d.ts +2 -2
  38. package/dist/audit/orchestrator/rollingDispatch.d.ts.map +1 -1
  39. package/dist/audit/orchestrator/runtimeCommand.d.ts.map +1 -1
  40. package/dist/audit/orchestrator/runtimeCommand.js +7 -1
  41. package/dist/audit/orchestrator/runtimeCommand.js.map +1 -1
  42. package/dist/audit/orchestrator/selectiveDeepening/index.d.ts.map +1 -1
  43. package/dist/audit/orchestrator/selectiveDeepening/index.js +12 -8
  44. package/dist/audit/orchestrator/selectiveDeepening/index.js.map +1 -1
  45. package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
  46. package/dist/audit/orchestrator/taskBuilder.js +0 -32
  47. package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
  48. package/dist/audit/quota/discoveredLimits.d.ts +12 -0
  49. package/dist/audit/quota/discoveredLimits.d.ts.map +1 -1
  50. package/dist/audit/quota/discoveredLimits.js +30 -25
  51. package/dist/audit/quota/discoveredLimits.js.map +1 -1
  52. package/dist/audit/quota/index.d.ts +120 -18
  53. package/dist/audit/quota/index.d.ts.map +1 -1
  54. package/dist/audit/types/auditScope.d.ts +2 -2
  55. package/dist/audit/validation/auditResults.d.ts +16 -0
  56. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  57. package/dist/audit/validation/auditResults.js +35 -1
  58. package/dist/audit/validation/auditResults.js.map +1 -1
  59. package/dist/remediate/phases/close.d.ts.map +1 -1
  60. package/dist/remediate/phases/close.js +16 -6
  61. package/dist/remediate/phases/close.js.map +1 -1
  62. package/dist/remediate/steps/contractPipeline.d.ts +4 -1
  63. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  64. package/dist/remediate/steps/contractPipeline.js +63 -47
  65. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  66. package/dist/remediate/steps/contractPipelinePrompts.d.ts +12 -1
  67. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  68. package/dist/remediate/steps/contractPipelinePrompts.js +29 -18
  69. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  70. package/dist/remediate/steps/dispatch.d.ts +20 -3
  71. package/dist/remediate/steps/dispatch.d.ts.map +1 -1
  72. package/dist/remediate/steps/dispatch.js +221 -117
  73. package/dist/remediate/steps/dispatch.js.map +1 -1
  74. package/dist/remediate/steps/finalGate.d.ts +88 -0
  75. package/dist/remediate/steps/finalGate.d.ts.map +1 -0
  76. package/dist/remediate/steps/finalGate.js +171 -0
  77. package/dist/remediate/steps/finalGate.js.map +1 -0
  78. package/dist/remediate/steps/leanFastPath.d.ts.map +1 -1
  79. package/dist/remediate/steps/leanFastPath.js +12 -0
  80. package/dist/remediate/steps/leanFastPath.js.map +1 -1
  81. package/dist/remediate/steps/nextStep.d.ts +12 -82
  82. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  83. package/dist/remediate/steps/nextStep.js +142 -170
  84. package/dist/remediate/steps/nextStep.js.map +1 -1
  85. package/dist/remediate/steps/types.d.ts +1 -1
  86. package/dist/remediate/steps/types.d.ts.map +1 -1
  87. package/dist/remediate/steps/types.js.map +1 -1
  88. package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
  89. package/dist/remediate/validation/contractPipeline.js +17 -3
  90. package/dist/remediate/validation/contractPipeline.js.map +1 -1
  91. package/dist/shared/dispatch/rollingDispatch.d.ts +22 -1
  92. package/dist/shared/dispatch/rollingDispatch.d.ts.map +1 -1
  93. package/dist/shared/dispatch/rollingDispatch.js +147 -7
  94. package/dist/shared/dispatch/rollingDispatch.js.map +1 -1
  95. package/dist/shared/index.d.ts +6 -4
  96. package/dist/shared/index.d.ts.map +1 -1
  97. package/dist/shared/index.js +5 -3
  98. package/dist/shared/index.js.map +1 -1
  99. package/dist/shared/io/frictionCapture.d.ts +14 -1
  100. package/dist/shared/io/frictionCapture.d.ts.map +1 -1
  101. package/dist/shared/io/frictionCapture.js +28 -3
  102. package/dist/shared/io/frictionCapture.js.map +1 -1
  103. package/dist/shared/observability/runLog.d.ts +1 -1
  104. package/dist/shared/observability/runLog.d.ts.map +1 -1
  105. package/dist/shared/observability/runLog.js.map +1 -1
  106. package/dist/shared/providers/providerConfirmation.d.ts +16 -1
  107. package/dist/shared/providers/providerConfirmation.d.ts.map +1 -1
  108. package/dist/shared/providers/providerConfirmation.js +13 -13
  109. package/dist/shared/providers/providerConfirmation.js.map +1 -1
  110. package/dist/shared/providers/providerFactory.d.ts.map +1 -1
  111. package/dist/shared/providers/providerFactory.js +10 -14
  112. package/dist/shared/providers/providerFactory.js.map +1 -1
  113. package/dist/shared/providers/providerPathGuard.d.ts +21 -0
  114. package/dist/shared/providers/providerPathGuard.d.ts.map +1 -0
  115. package/dist/shared/providers/providerPathGuard.js +69 -0
  116. package/dist/shared/providers/providerPathGuard.js.map +1 -0
  117. package/dist/shared/providers/sharedProviderConfirmation.d.ts +14 -2
  118. package/dist/shared/providers/sharedProviderConfirmation.d.ts.map +1 -1
  119. package/dist/shared/providers/sharedProviderConfirmation.js +26 -5
  120. package/dist/shared/providers/sharedProviderConfirmation.js.map +1 -1
  121. package/dist/shared/quota/apiPool.d.ts +6 -1
  122. package/dist/shared/quota/apiPool.d.ts.map +1 -1
  123. package/dist/shared/quota/apiPool.js +13 -2
  124. package/dist/shared/quota/apiPool.js.map +1 -1
  125. package/dist/shared/quota/capacity.d.ts +87 -8
  126. package/dist/shared/quota/capacity.d.ts.map +1 -1
  127. package/dist/shared/quota/capacity.js +27 -2
  128. package/dist/shared/quota/capacity.js.map +1 -1
  129. package/dist/shared/quota/claudeOAuthQuotaSource.d.ts.map +1 -1
  130. package/dist/shared/quota/claudeOAuthQuotaSource.js +56 -0
  131. package/dist/shared/quota/claudeOAuthQuotaSource.js.map +1 -1
  132. package/dist/shared/quota/fileLock.d.ts +17 -2
  133. package/dist/shared/quota/fileLock.d.ts.map +1 -1
  134. package/dist/shared/quota/fileLock.js +21 -19
  135. package/dist/shared/quota/fileLock.js.map +1 -1
  136. package/dist/shared/quota/quotaSource.d.ts +62 -2
  137. package/dist/shared/quota/quotaSource.d.ts.map +1 -1
  138. package/dist/shared/quota/quotaSource.js +24 -0
  139. package/dist/shared/quota/quotaSource.js.map +1 -1
  140. package/dist/shared/quota/scheduler.d.ts +19 -2
  141. package/dist/shared/quota/scheduler.d.ts.map +1 -1
  142. package/dist/shared/quota/scheduler.js +162 -86
  143. package/dist/shared/quota/scheduler.js.map +1 -1
  144. package/dist/shared/quota/state.d.ts +22 -0
  145. package/dist/shared/quota/state.d.ts.map +1 -1
  146. package/dist/shared/quota/state.js +59 -0
  147. package/dist/shared/quota/state.js.map +1 -1
  148. package/dist/shared/quota/tokenBudgetView.d.ts +17 -0
  149. package/dist/shared/quota/tokenBudgetView.d.ts.map +1 -0
  150. package/dist/shared/quota/tokenBudgetView.js +77 -0
  151. package/dist/shared/quota/tokenBudgetView.js.map +1 -0
  152. package/dist/shared/quota/types.d.ts +19 -1
  153. package/dist/shared/quota/types.d.ts.map +1 -1
  154. package/dist/shared/quota/types.js +1 -2
  155. package/dist/shared/quota/types.js.map +1 -1
  156. package/dist/shared/repair/brokeredDispatch.d.ts.map +1 -1
  157. package/dist/shared/repair/brokeredDispatch.js +5 -3
  158. package/dist/shared/repair/brokeredDispatch.js.map +1 -1
  159. package/dist/shared/types/providerConfirmation.d.ts +9 -0
  160. package/dist/shared/types/providerConfirmation.d.ts.map +1 -1
  161. package/dist/shared/types/sessionConfig.d.ts +0 -3
  162. package/dist/shared/types/sessionConfig.d.ts.map +1 -1
  163. package/dist/shared/types/sessionConfig.js.map +1 -1
  164. package/package.json +2 -2
  165. package/scripts/audit/postinstall.mjs +22 -14
@@ -0,0 +1,171 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Tool-owned final completion gate (INV-RS-10) + coarse re-block (INV-RS-09)
3
+ // ---------------------------------------------------------------------------
4
+ //
5
+ // Behaviour-preserving extraction from `nextStep.ts` (CP-NODE-1): this is the
6
+ // tool-owned final-gate cluster (the gate runner, its bounded coarse-reblock
7
+ // backstop, and the sidecar counter I/O) lifted into a sibling leaf module so
8
+ // the orchestrator god-module no longer owns it inline. `nextStep.ts` imports
9
+ // and re-exports these symbols, so the public surface and existing test imports
10
+ // are unchanged.
11
+ //
12
+ // INV-RS-10: the final completion gate is a TOOL-OWNED, NON-VACUOUS suite that
13
+ // is INDEPENDENT of any `plan.test_command`. A run can only land green when this
14
+ // suite passes; a vacuous/unset `plan.test_command` can never substitute for it.
15
+ // The suite is executed through the env-scrubbing `runTracked` path
16
+ // (`runCommand`), which strips CLAUDECODE / CLAUDE_CODE_* so the gate runs in a
17
+ // clean environment regardless of the host session.
18
+ //
19
+ // Hard floor (always run, in order — single package, single-flight build — CE-001):
20
+ // 1. npm run build (one tsc build for the whole package)
21
+ // 2. npm run check (typecheck, no emit)
22
+ // 3. BUILD-FREE unit suites at the repo root, each invoked directly so dist is
23
+ // never rebuilt or raced:
24
+ // - shared+audit: node --import tsx/esm --test tests/shared/*.test.mjs tests/audit/*.test.mjs
25
+ // - remediate-code: npx vitest run
26
+ //
27
+ // CE-002: the hard floor is scoped to build + typecheck + unit. The
28
+ // runtime/packaged-bin smoke surface (the `verify:release` smokes) is recorded
29
+ // as a DECLARED RESIDUAL the floor does not gate, rather than run inline — the
30
+ // packaged-bin smokes are the known Windows-flaky / EPERM surface and an in-loop
31
+ // gate must converge deterministically, so they are surfaced for a separate
32
+ // pass instead of being able to strand the run.
33
+ import { join } from "node:path";
34
+ import { readOptionalJsonFile, writeJsonFile } from "audit-tools/shared";
35
+ import { isSkipStatus } from "../state/itemStatus.js";
36
+ import { runCommand } from "../utils/commands.js";
37
+ import { isAuditToolsMonorepo, toolOwnedFinalGateCommands, } from "./gateCommands.js";
38
+ // `FinalGateCommandSpec`, `isAuditToolsMonorepo`, and `toolOwnedFinalGateCommands`
39
+ // are single-sourced in the leaf module `gateCommands.ts` (so `dispatch.ts` can
40
+ // derive the same pinned merged-base check without an import cycle). Imported
41
+ // here for local use and re-exported to preserve the public surface + test imports.
42
+ export { isAuditToolsMonorepo, toolOwnedFinalGateCommands };
43
+ /**
44
+ * Run the tool-owned final gate (INV-RS-10). Each command runs through
45
+ * `runCommand` → shared `runTracked`, which scrubs CLAUDECODE / CLAUDE_CODE_*.
46
+ * The first failing command short-circuits the floor (a broken build makes the
47
+ * later layers meaningless). A `runner` may be injected for tests. When the
48
+ * audit-tools suite does not apply (non-monorepo target), the gate is
49
+ * `scoped_out` (does not block) rather than vacuously passing.
50
+ */
51
+ export async function runToolOwnedFinalGate(root, opts = {}) {
52
+ const runtime_residual = {
53
+ surface: "runtime/packaged-bin smokes (verify:release)",
54
+ commands: [
55
+ "npm run smoke:packaged-audit-code",
56
+ "npm run smoke:packaged-remediate-code",
57
+ ],
58
+ };
59
+ const commands = toolOwnedFinalGateCommands(root);
60
+ if (commands.length === 0) {
61
+ // Audit-tools-specific suite does not apply here — declared scope, not a
62
+ // vacuous pass (it never substitutes for a real gate on the audit-tools repo).
63
+ return { passed: true, results: [], scoped_out: true, runtime_residual };
64
+ }
65
+ const runner = opts.runner ??
66
+ ((argv, cwd, packageDir) => {
67
+ const [command, ...args] = argv;
68
+ // Package-scoped unit suites run with cwd at the package (no `npm -w`); the
69
+ // monorepo-root build/check commands run at the repo root.
70
+ const effectiveCwd = packageDir ? join(root, packageDir) : cwd;
71
+ // runCommand → runTracked strips CLAUDECODE / CLAUDE_CODE_* (INV-RS-10).
72
+ const result = runCommand(command, args, {
73
+ cwd: effectiveCwd,
74
+ stdio: ["ignore", "pipe", "pipe"],
75
+ });
76
+ return { status: result.status };
77
+ });
78
+ const results = [];
79
+ let passed = true;
80
+ for (const spec of commands) {
81
+ const { status } = runner(spec.argv, root, spec.package_dir);
82
+ const cmdPassed = status === 0;
83
+ results.push({
84
+ argv: spec.argv,
85
+ layer: spec.layer,
86
+ ...(spec.package_dir ? { package_dir: spec.package_dir } : {}),
87
+ exit_code: status,
88
+ passed: cmdPassed,
89
+ });
90
+ if (!cmdPassed) {
91
+ passed = false;
92
+ break; // short-circuit: later layers are meaningless on a broken floor
93
+ }
94
+ }
95
+ return { passed, results, scoped_out: false, runtime_residual };
96
+ }
97
+ /**
98
+ * The bound on coarse re-block iterations before the run converges to a terminal
99
+ * `blocked` close (CE-003). Two re-block attempts give a flaky-but-recoverable
100
+ * suite a chance to settle; the third unattributable red terminates
101
+ * deterministically rather than livelocking.
102
+ */
103
+ export const COARSE_REBLOCK_BOUND = 2;
104
+ const FINAL_GATE_STATE_FILENAME = "final-gate.json";
105
+ export async function readFinalGateSidecar(artifactsDir) {
106
+ const sidecar = await readOptionalJsonFile(join(artifactsDir, FINAL_GATE_STATE_FILENAME));
107
+ const n = sidecar?.coarse_reblock_count;
108
+ return {
109
+ count: typeof n === "number" && Number.isFinite(n) && n >= 0 ? n : 0,
110
+ terminated: sidecar?.terminated === true,
111
+ };
112
+ }
113
+ export async function writeFinalGateSidecar(artifactsDir, count, terminated) {
114
+ await writeJsonFile(join(artifactsDir, FINAL_GATE_STATE_FILENAME), {
115
+ schema_version: "remediate-code-final-gate/v1alpha1",
116
+ coarse_reblock_count: count,
117
+ terminated,
118
+ });
119
+ }
120
+ /**
121
+ * Coarse re-block-ALL-non-terminal on an unattributable final-gate red
122
+ * (INV-RS-09) with a bounded, monotonic auto-terminate (CE-003).
123
+ *
124
+ * The tool-owned gate is whole-repo, so a red is inherently unattributable to a
125
+ * single node. Below the bound, EVERY non-skip item (including `resolved` ones —
126
+ * a resolved item's own change may have caused the red) is re-opened to `pending`
127
+ * and the run re-attempts the whole repo through the rolling scheduler
128
+ * (`reattempt_all` → `implementing`). At or above the bound, the run STOPS
129
+ * re-attempting and converges DETERMINISTICALLY: every non-skip item becomes
130
+ * terminal `blocked` and the run advances to `closing`.
131
+ *
132
+ * CE-003 no-human-host guarantee: the loop is owned entirely by the gate + the
133
+ * rolling scheduler — it NEVER routes through the human triage prompt
134
+ * (`waiting_for_triage`) and is bounded by `bound`, so a permanently-red sibling
135
+ * converges to a terminal `blocked` close deterministically: never livelocking,
136
+ * never stranding on a human prompt, and never force-closed to green (a RED gate
137
+ * always leaves `blocked` items, so close.ts's `!anyBlocked` guard keeps the run
138
+ * out of the fully-green path). User SKIP dispositions (ignored /
139
+ * deemed_inappropriate) are settled decisions and are left alone. Pure (the
140
+ * counter is supplied / returned).
141
+ */
142
+ export function applyCoarseReblock(state, currentCount, gateSummary, bound = COARSE_REBLOCK_BOUND) {
143
+ const now = new Date().toISOString();
144
+ if (currentCount >= bound) {
145
+ // Bounded auto-terminate: converge DETERMINISTICALLY to a terminal `blocked`
146
+ // close for a no-human host — never livelock, never a triage prompt, never green.
147
+ for (const it of Object.values(state.items ?? {})) {
148
+ if (isSkipStatus(it.status))
149
+ continue; // settled user decision — never overturn
150
+ it.status = "blocked";
151
+ it.started_at ??= now;
152
+ it.completed_at = now;
153
+ it.failure_reason =
154
+ `Tool-owned final gate failed and the coarse re-block backstop reached its ` +
155
+ `bound (${bound}); converging to a terminal blocked close (no-human host). ${gateSummary}`;
156
+ }
157
+ return { state, action: "terminal_blocked", next_count: currentCount };
158
+ }
159
+ // Below the bound: re-open every non-skip item to `pending` and re-attempt the
160
+ // whole repo via the rolling scheduler (NOT the human triage prompt).
161
+ for (const it of Object.values(state.items ?? {})) {
162
+ if (isSkipStatus(it.status))
163
+ continue;
164
+ it.status = "pending";
165
+ it.failure_context =
166
+ `Re-attempted by the coarse final-gate backstop (unattributable whole-repo red). ${gateSummary}`;
167
+ delete it.completed_at;
168
+ }
169
+ return { state, action: "reattempt_all", next_count: currentCount + 1 };
170
+ }
171
+ //# sourceMappingURL=finalGate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalGate.js","sourceRoot":"","sources":["../../../src/remediate/steps/finalGate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"leanFastPath.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/leanFastPath.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAyEtE;AAaD,eAAO,MAAM,gCAAgC,EAC3C,2CAAoD,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG;IAC7D,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAuBA;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,qBAAqB,CAAC;IACrC,yBAAyB,EAAE,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,MAAM,GACb,iBAAiB,CAQnB"}
1
+ {"version":3,"file":"leanFastPath.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/leanFastPath.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,mEAAmE;AACnE,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAyEtE;AAaD,eAAO,MAAM,gCAAgC,EAC3C,2CAAoD,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAAG,OAAO,GAAG,UAAU,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,OAAO,GAAG;IAC7D,WAAW,EAAE,0BAA0B,CAAC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAmCA;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,qBAAqB,CAAC;IACrC,yBAAyB,EAAE,MAAM,EAAE,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,MAAM,GACb,iBAAiB,CAQnB"}
@@ -153,6 +153,18 @@ export function interpretLeanLightReviewVerdict(raw) {
153
153
  if (!isRecord(raw)) {
154
154
  return { disposition: "escalate", concerns: ["unreadable light-review verdict"] };
155
155
  }
156
+ // Schema-version gate: a verdict that does not carry the exact expected
157
+ // schema_version is not a trustworthy light-review emission (it may be a stale,
158
+ // mis-shaped, or wrong-contract artifact). Fail safe toward escalation rather
159
+ // than trusting an unversioned `clear`.
160
+ if (raw.schema_version !== LEAN_LIGHT_REVIEW_SCHEMA_VERSION) {
161
+ return {
162
+ disposition: "escalate",
163
+ concerns: [
164
+ `light-review verdict schema_version must be "${LEAN_LIGHT_REVIEW_SCHEMA_VERSION}"`,
165
+ ],
166
+ };
167
+ }
156
168
  const concerns = Array.isArray(raw.concerns)
157
169
  ? raw.concerns.filter((c) => typeof c === "string")
158
170
  : [];
@@ -1 +1 @@
1
- {"version":3,"file":"leanFastPath.js","sourceRoot":"","sources":["../../../src/remediate/steps/leanFastPath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leanFastPath.js","sourceRoot":"","sources":["../../../src/remediate/steps/leanFastPath.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { type RemediationState, type HostCapabilities } from "../state/store.js";
2
2
  import type { RemediationBlock } from "../state/types.js";
3
- import { type FrictionTriageDecision, type InterpretedIntent, type SessionConfig, type HostModelRosterEntry, type CapacityPool, type RollingDispatchResult, type ProviderSlot, type HybridSpillCoordinator, type NodeAssignment, HostSessionQuotaSource, type DispatchableSource } from "audit-tools/shared";
3
+ import { type FrictionTriageDecision, type InterpretedIntent, type SessionConfig, type HostModelRosterEntry, type CapacityPool, type PartialCompletionTerminal, type RollingDispatchResult, type ProviderSlot, type HybridSpillCoordinator, type NodeAssignment, HostSessionQuotaSource, type DispatchableSource } from "audit-tools/shared";
4
4
  import { type WorktreeNodeWorker } from "./dispatch.js";
5
5
  import type { RemediationStep, RemediationDispatchPlan } from "./types.js";
6
6
  import { isTerminalStatus, isVerifiedCompleteStatus } from "../state/itemStatus.js";
7
- import { isAuditToolsMonorepo, toolOwnedFinalGateCommands, type FinalGateCommandSpec } from "./gateCommands.js";
7
+ import { type GateRunner } from "./finalGate.js";
8
8
  import type { IntentCheckpoint } from "audit-tools/shared";
9
9
  export interface NextStepOptions {
10
10
  root?: string;
@@ -191,6 +191,14 @@ export interface DriveRollingDispatchResult {
191
191
  }>;
192
192
  /** Number of inter-level shared rebuilds performed (== levels.length - 1 when >1 level). */
193
193
  rebuilds: number;
194
+ /**
195
+ * The rolling engine's partial-completion terminal, if any wave stranded work
196
+ * (piece D `quota_paused`, or the pre-existing `empty_pool`). Aggregated across
197
+ * waves as the EARLIEST-reset terminal so the consumer can keep the stranded
198
+ * nodes pending (quota_paused) or block them (empty_pool). Absent when every
199
+ * packet completed.
200
+ */
201
+ terminal?: PartialCompletionTerminal;
194
202
  }
195
203
  /**
196
204
  * Drive a rolling per-node dispatch run IN PROCESS over the precomputed
@@ -321,86 +329,8 @@ export declare function executeInProcessPartition(params: {
321
329
  */
322
330
  sourceByPoolId?: Map<string, DispatchableSource>;
323
331
  }): Promise<InProcessPartitionResult>;
324
- export { isAuditToolsMonorepo, toolOwnedFinalGateCommands };
325
- export type { FinalGateCommandSpec };
326
- /** A command's recorded outcome within a gate run. */
327
- export interface FinalGateCommandResult {
328
- argv: string[];
329
- layer: FinalGateCommandSpec["layer"];
330
- package_dir?: string;
331
- exit_code: number | null;
332
- passed: boolean;
333
- }
334
- export interface ToolOwnedFinalGateResult {
335
- passed: boolean;
336
- results: FinalGateCommandResult[];
337
- /**
338
- * True when the audit-tools-specific suite did not apply (target is not the
339
- * audit-tools monorepo). The gate then does not block; it is a declared scope,
340
- * not a vacuous pass.
341
- */
342
- scoped_out: boolean;
343
- /**
344
- * The runtime/packaging surface the hard floor does NOT gate, declared as a
345
- * residual for a separate pass (CE-002). Always present (the floor is scoped
346
- * to build+check+unit by design).
347
- */
348
- runtime_residual: {
349
- surface: string;
350
- commands: string[];
351
- };
352
- }
353
- /** Injectable runner so the gate is unit-testable without spawning a real build. */
354
- export type GateRunner = (argv: string[], cwd: string, packageDir?: string) => {
355
- status: number | null;
356
- };
357
- /**
358
- * Run the tool-owned final gate (INV-RS-10). Each command runs through
359
- * `runCommand` → shared `runTracked`, which scrubs CLAUDECODE / CLAUDE_CODE_*.
360
- * The first failing command short-circuits the floor (a broken build makes the
361
- * later layers meaningless). A `runner` may be injected for tests. When the
362
- * audit-tools suite does not apply (non-monorepo target), the gate is
363
- * `scoped_out` (does not block) rather than vacuously passing.
364
- */
365
- export declare function runToolOwnedFinalGate(root: string, opts?: {
366
- runner?: GateRunner;
367
- }): Promise<ToolOwnedFinalGateResult>;
368
- /**
369
- * The bound on coarse re-block iterations before the run converges to a terminal
370
- * `blocked` close (CE-003). Two re-block attempts give a flaky-but-recoverable
371
- * suite a chance to settle; the third unattributable red terminates
372
- * deterministically rather than livelocking.
373
- */
374
- export declare const COARSE_REBLOCK_BOUND = 2;
375
- export type CoarseReblockAction = "reattempt_all" | "terminal_blocked";
376
- export interface CoarseReblockDecision {
377
- state: RemediationState;
378
- action: CoarseReblockAction;
379
- next_count: number;
380
- }
381
- /**
382
- * Coarse re-block-ALL-non-terminal on an unattributable final-gate red
383
- * (INV-RS-09) with a bounded, monotonic auto-terminate (CE-003).
384
- *
385
- * The tool-owned gate is whole-repo, so a red is inherently unattributable to a
386
- * single node. Below the bound, EVERY non-skip item (including `resolved` ones —
387
- * a resolved item's own change may have caused the red) is re-opened to `pending`
388
- * and the run re-attempts the whole repo through the rolling scheduler
389
- * (`reattempt_all` → `implementing`). At or above the bound, the run STOPS
390
- * re-attempting and converges DETERMINISTICALLY: every non-skip item becomes
391
- * terminal `blocked` and the run advances to `closing`.
392
- *
393
- * CE-003 no-human-host guarantee: the loop is owned entirely by the gate + the
394
- * rolling scheduler — it NEVER routes through the human triage prompt
395
- * (`waiting_for_triage`) and is bounded by `bound`, so a permanently-red sibling
396
- * converges to a terminal `blocked` close deterministically: never livelocking,
397
- * never stranding on a human prompt, and never force-closed to green (a RED gate
398
- * always leaves `blocked` items, so close.ts's `!anyBlocked` guard keeps the run
399
- * out of the fully-green path). User SKIP dispositions (ignored /
400
- * deemed_inappropriate) are settled decisions and are left alone. Pure (the
401
- * counter is supplied / returned).
402
- */
403
- export declare function applyCoarseReblock(state: RemediationState, currentCount: number, gateSummary: string, bound?: number): CoarseReblockDecision;
332
+ export { isAuditToolsMonorepo, toolOwnedFinalGateCommands, runToolOwnedFinalGate, applyCoarseReblock, COARSE_REBLOCK_BOUND, } from "./finalGate.js";
333
+ export type { FinalGateCommandSpec, FinalGateCommandResult, ToolOwnedFinalGateResult, GateRunner, CoarseReblockAction, CoarseReblockDecision, } from "./finalGate.js";
404
334
  /**
405
335
  * The terminal friction-TRIAGE close-out for the remediate half. Thin delegation to
406
336
  * the single-sourced `decideFrictionTriage` (`audit-tools/shared`) — the exact analog
@@ -1 +1 @@
1
- {"version":3,"file":"nextStep.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/nextStep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nextStep.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/nextStep.ts"],"names":[],"mappings":"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"}