audit-tools 0.42.1 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/dispatch/merge-results.mjs +229 -140
  2. package/dispatch/validate-result.mjs +98 -40
  3. package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
  4. package/dist/audit/cli/conceptualDispatch.js +35 -3
  5. package/dist/audit/cli/conceptualDispatch.js.map +1 -1
  6. package/dist/audit/cli/dispatch/hostHandoff.d.ts +9 -1
  7. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  8. package/dist/audit/cli/dispatch/hostHandoff.js +94 -38
  9. package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
  10. package/dist/audit/cli/laneSubmissions.d.ts +2 -2
  11. package/dist/audit/cli/laneSubmissions.js +2 -2
  12. package/dist/audit/cli/nextStepCommand.d.ts +64 -0
  13. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  14. package/dist/audit/cli/nextStepCommand.js +877 -783
  15. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  16. package/dist/audit/cli/nextStepHelpers.d.ts +12 -36
  17. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  18. package/dist/audit/cli/nextStepHelpers.js +34 -77
  19. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  20. package/dist/audit/cli/steps.d.ts +2 -2
  21. package/dist/audit/extractors/graph.d.ts +28 -2
  22. package/dist/audit/extractors/graph.d.ts.map +1 -1
  23. package/dist/audit/extractors/graph.js +122 -11
  24. package/dist/audit/extractors/graph.js.map +1 -1
  25. package/dist/audit/extractors/graphRoutes.d.ts +8 -0
  26. package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
  27. package/dist/audit/extractors/graphRoutes.js +71 -4
  28. package/dist/audit/extractors/graphRoutes.js.map +1 -1
  29. package/dist/audit/io/artifacts.d.ts +55 -0
  30. package/dist/audit/io/artifacts.d.ts.map +1 -1
  31. package/dist/audit/io/artifacts.js +189 -12
  32. package/dist/audit/io/artifacts.js.map +1 -1
  33. package/dist/audit/io/toolingManifest.d.ts +11 -0
  34. package/dist/audit/io/toolingManifest.d.ts.map +1 -1
  35. package/dist/audit/io/toolingManifest.js +13 -3
  36. package/dist/audit/io/toolingManifest.js.map +1 -1
  37. package/dist/audit/orchestrator/advance.d.ts +64 -0
  38. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  39. package/dist/audit/orchestrator/advance.js +191 -57
  40. package/dist/audit/orchestrator/advance.js.map +1 -1
  41. package/dist/audit/orchestrator/charterClarificationExecutor.d.ts.map +1 -1
  42. package/dist/audit/orchestrator/charterClarificationExecutor.js +55 -21
  43. package/dist/audit/orchestrator/charterClarificationExecutor.js.map +1 -1
  44. package/dist/audit/orchestrator/flowCoverage.d.ts.map +1 -1
  45. package/dist/audit/orchestrator/flowCoverage.js +7 -10
  46. package/dist/audit/orchestrator/flowCoverage.js.map +1 -1
  47. package/dist/audit/orchestrator/flowPlanning.d.ts +54 -1
  48. package/dist/audit/orchestrator/flowPlanning.d.ts.map +1 -1
  49. package/dist/audit/orchestrator/flowPlanning.js +77 -18
  50. package/dist/audit/orchestrator/flowPlanning.js.map +1 -1
  51. package/dist/audit/orchestrator/flowRequeue.d.ts.map +1 -1
  52. package/dist/audit/orchestrator/flowRequeue.js +6 -10
  53. package/dist/audit/orchestrator/flowRequeue.js.map +1 -1
  54. package/dist/audit/orchestrator/requeueFold.d.ts.map +1 -1
  55. package/dist/audit/orchestrator/requeueFold.js +18 -5
  56. package/dist/audit/orchestrator/requeueFold.js.map +1 -1
  57. package/dist/audit/orchestrator/staleness.d.ts +24 -1
  58. package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
  59. package/dist/audit/orchestrator/staleness.js +147 -16
  60. package/dist/audit/orchestrator/staleness.js.map +1 -1
  61. package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts +26 -0
  62. package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts.map +1 -1
  63. package/dist/audit/orchestrator/syntaxResolutionExecutor.js +97 -12
  64. package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -1
  65. package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
  66. package/dist/audit/orchestrator/taskBuilder.js +111 -21
  67. package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
  68. package/dist/audit/orchestrator/trivialAudit.d.ts +17 -1
  69. package/dist/audit/orchestrator/trivialAudit.d.ts.map +1 -1
  70. package/dist/audit/orchestrator/trivialAudit.js +31 -4
  71. package/dist/audit/orchestrator/trivialAudit.js.map +1 -1
  72. package/dist/audit/types/analyzerCapability.d.ts +6 -6
  73. package/dist/audit/types/charterRegister.d.ts +30 -12
  74. package/dist/audit/types/charterRegister.d.ts.map +1 -1
  75. package/dist/audit/types/charterRegister.js +22 -9
  76. package/dist/audit/types/charterRegister.js.map +1 -1
  77. package/dist/audit/validation/anchorGrounding.d.ts.map +1 -1
  78. package/dist/audit/validation/anchorGrounding.js +17 -0
  79. package/dist/audit/validation/anchorGrounding.js.map +1 -1
  80. package/dist/audit/validation/auditResults.d.ts +17 -0
  81. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  82. package/dist/audit/validation/auditResults.js +50 -17
  83. package/dist/audit/validation/auditResults.js.map +1 -1
  84. package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts +48 -0
  85. package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +1 -1
  86. package/dist/remediate/contractPipeline/cyclicSeamResolution.js +128 -0
  87. package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +1 -1
  88. package/dist/remediate/contractPipeline/derive.d.ts +8 -5
  89. package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
  90. package/dist/remediate/contractPipeline/derive.js +8 -16
  91. package/dist/remediate/contractPipeline/derive.js.map +1 -1
  92. package/dist/remediate/index.d.ts.map +1 -1
  93. package/dist/remediate/index.js +43 -2
  94. package/dist/remediate/index.js.map +1 -1
  95. package/dist/remediate/intent/intentOrdering.d.ts +13 -5
  96. package/dist/remediate/intent/intentOrdering.d.ts.map +1 -1
  97. package/dist/remediate/intent/intentOrdering.js +56 -25
  98. package/dist/remediate/intent/intentOrdering.js.map +1 -1
  99. package/dist/remediate/phases/close.d.ts +57 -2
  100. package/dist/remediate/phases/close.d.ts.map +1 -1
  101. package/dist/remediate/phases/close.js +260 -36
  102. package/dist/remediate/phases/close.js.map +1 -1
  103. package/dist/remediate/phases/triage.d.ts.map +1 -1
  104. package/dist/remediate/phases/triage.js +14 -2
  105. package/dist/remediate/phases/triage.js.map +1 -1
  106. package/dist/remediate/state/disposition.d.ts +26 -4
  107. package/dist/remediate/state/disposition.d.ts.map +1 -1
  108. package/dist/remediate/state/itemStatus.d.ts +33 -6
  109. package/dist/remediate/state/itemStatus.d.ts.map +1 -1
  110. package/dist/remediate/state/itemStatus.js +154 -39
  111. package/dist/remediate/state/itemStatus.js.map +1 -1
  112. package/dist/remediate/state/types.d.ts +41 -2
  113. package/dist/remediate/state/types.d.ts.map +1 -1
  114. package/dist/remediate/state/types.js.map +1 -1
  115. package/dist/remediate/steps/contractPipeline.d.ts +296 -15
  116. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  117. package/dist/remediate/steps/contractPipeline.js +1783 -1001
  118. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  119. package/dist/remediate/steps/dispatch/hostHandoff.d.ts +137 -2
  120. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  121. package/dist/remediate/steps/dispatch/hostHandoff.js +657 -59
  122. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  123. package/dist/remediate/steps/finalGate.d.ts +136 -37
  124. package/dist/remediate/steps/finalGate.d.ts.map +1 -1
  125. package/dist/remediate/steps/finalGate.js +120 -86
  126. package/dist/remediate/steps/finalGate.js.map +1 -1
  127. package/dist/remediate/steps/gateCommands.d.ts +8 -0
  128. package/dist/remediate/steps/gateCommands.d.ts.map +1 -1
  129. package/dist/remediate/steps/gateCommands.js +40 -11
  130. package/dist/remediate/steps/gateCommands.js.map +1 -1
  131. package/dist/remediate/steps/nextStep.d.ts +96 -5
  132. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  133. package/dist/remediate/steps/nextStep.js +668 -147
  134. package/dist/remediate/steps/nextStep.js.map +1 -1
  135. package/dist/remediate/steps/types.d.ts +4 -3
  136. package/dist/remediate/steps/types.d.ts.map +1 -1
  137. package/dist/remediate/steps/types.js +10 -2
  138. package/dist/remediate/steps/types.js.map +1 -1
  139. package/dist/remediate/validation/artifacts.d.ts +20 -2
  140. package/dist/remediate/validation/artifacts.d.ts.map +1 -1
  141. package/dist/remediate/validation/artifacts.js +224 -130
  142. package/dist/remediate/validation/artifacts.js.map +1 -1
  143. package/dist/remediate/validation/contractPipelineGates.d.ts +58 -0
  144. package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
  145. package/dist/remediate/validation/contractPipelineGates.js +143 -27
  146. package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
  147. package/dist/shared/analyzers/acquisitionEngine.d.ts +72 -25
  148. package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -1
  149. package/dist/shared/analyzers/acquisitionEngine.js +149 -15
  150. package/dist/shared/analyzers/acquisitionEngine.js.map +1 -1
  151. package/dist/shared/analyzers/binaryAcquisition.d.ts +27 -2
  152. package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -1
  153. package/dist/shared/analyzers/binaryAcquisition.js +149 -43
  154. package/dist/shared/analyzers/binaryAcquisition.js.map +1 -1
  155. package/dist/shared/analyzers/candidates.d.ts +9 -8
  156. package/dist/shared/analyzers/candidates.d.ts.map +1 -1
  157. package/dist/shared/analyzers/candidates.js +96 -64
  158. package/dist/shared/analyzers/candidates.js.map +1 -1
  159. package/dist/shared/analyzers/normalizeExternal.d.ts +40 -12
  160. package/dist/shared/analyzers/normalizeExternal.d.ts.map +1 -1
  161. package/dist/shared/analyzers/normalizeExternal.js +74 -18
  162. package/dist/shared/analyzers/normalizeExternal.js.map +1 -1
  163. package/dist/shared/analyzers/rubocop.d.ts +14 -13
  164. package/dist/shared/analyzers/rubocop.d.ts.map +1 -1
  165. package/dist/shared/analyzers/rubocop.js +29 -6
  166. package/dist/shared/analyzers/rubocop.js.map +1 -1
  167. package/dist/shared/analyzers/types.d.ts +196 -13
  168. package/dist/shared/analyzers/types.d.ts.map +1 -1
  169. package/dist/shared/analyzers/types.js +122 -9
  170. package/dist/shared/analyzers/types.js.map +1 -1
  171. package/dist/shared/decompose/charterClarification.d.ts +12 -1
  172. package/dist/shared/decompose/charterClarification.d.ts.map +1 -1
  173. package/dist/shared/decompose/charterClarification.js +11 -4
  174. package/dist/shared/decompose/charterClarification.js.map +1 -1
  175. package/dist/shared/decompose/charterExtraction.d.ts +20 -10
  176. package/dist/shared/decompose/charterExtraction.d.ts.map +1 -1
  177. package/dist/shared/decompose/charterExtraction.js +52 -23
  178. package/dist/shared/decompose/charterExtraction.js.map +1 -1
  179. package/dist/shared/index.d.ts +1 -0
  180. package/dist/shared/index.d.ts.map +1 -1
  181. package/dist/shared/index.js +5 -0
  182. package/dist/shared/index.js.map +1 -1
  183. package/dist/shared/intent/freeFormIntentInterpreter.d.ts +12 -2
  184. package/dist/shared/intent/freeFormIntentInterpreter.d.ts.map +1 -1
  185. package/dist/shared/intent/freeFormIntentInterpreter.js +27 -22
  186. package/dist/shared/intent/freeFormIntentInterpreter.js.map +1 -1
  187. package/dist/shared/intent/pathScope.d.ts +12 -1
  188. package/dist/shared/intent/pathScope.d.ts.map +1 -1
  189. package/dist/shared/intent/pathScope.js +56 -19
  190. package/dist/shared/intent/pathScope.js.map +1 -1
  191. package/dist/shared/intent/sharedIntentData.d.ts +19 -1
  192. package/dist/shared/intent/sharedIntentData.d.ts.map +1 -1
  193. package/dist/shared/intent/sharedIntentData.js +33 -8
  194. package/dist/shared/intent/sharedIntentData.js.map +1 -1
  195. package/dist/shared/io/fileLock.d.ts +12 -0
  196. package/dist/shared/io/fileLock.d.ts.map +1 -1
  197. package/dist/shared/io/fileLock.js +48 -5
  198. package/dist/shared/io/fileLock.js.map +1 -1
  199. package/dist/shared/io/json.d.ts +13 -0
  200. package/dist/shared/io/json.d.ts.map +1 -1
  201. package/dist/shared/io/json.js +19 -1
  202. package/dist/shared/io/json.js.map +1 -1
  203. package/dist/shared/steps/stepEmissionScaffold.d.ts +69 -0
  204. package/dist/shared/steps/stepEmissionScaffold.d.ts.map +1 -0
  205. package/dist/shared/steps/stepEmissionScaffold.js +83 -0
  206. package/dist/shared/steps/stepEmissionScaffold.js.map +1 -0
  207. package/dist/shared/submission/handRecovery.d.ts.map +1 -1
  208. package/dist/shared/submission/handRecovery.js +69 -4
  209. package/dist/shared/submission/handRecovery.js.map +1 -1
  210. package/dist/shared/submission/submissionIdentity.d.ts +10 -1
  211. package/dist/shared/submission/submissionIdentity.d.ts.map +1 -1
  212. package/dist/shared/submission/submissionIdentity.js +12 -3
  213. package/dist/shared/submission/submissionIdentity.js.map +1 -1
  214. package/dist/shared/submission/submissionLedger.d.ts +43 -2
  215. package/dist/shared/submission/submissionLedger.d.ts.map +1 -1
  216. package/dist/shared/submission/submissionLedger.js +50 -7
  217. package/dist/shared/submission/submissionLedger.js.map +1 -1
  218. package/dist/shared/tooling/allowlistedExec.d.ts +9 -0
  219. package/dist/shared/tooling/allowlistedExec.d.ts.map +1 -1
  220. package/dist/shared/tooling/allowlistedExec.js +19 -2
  221. package/dist/shared/tooling/allowlistedExec.js.map +1 -1
  222. package/dist/shared/tooling/commandShape.d.ts +21 -0
  223. package/dist/shared/tooling/commandShape.d.ts.map +1 -0
  224. package/dist/shared/tooling/commandShape.js +120 -0
  225. package/dist/shared/tooling/commandShape.js.map +1 -0
  226. package/dist/shared/types/charter.d.ts +24 -0
  227. package/dist/shared/types/charter.d.ts.map +1 -1
  228. package/dist/shared/types/charter.js +9 -0
  229. package/dist/shared/types/charter.js.map +1 -1
  230. package/dist/shared/types/remediationOutcome.d.ts +282 -9
  231. package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
  232. package/dist/shared/types/remediationOutcome.js +174 -1
  233. package/dist/shared/types/remediationOutcome.js.map +1 -1
  234. package/package.json +2 -1
  235. package/remediate-code.mjs +15 -0
  236. package/wrapper/remediate-code-wrapper-install-hosts.mjs +45 -4
  237. package/wrapper/remediate-code-wrapper-install-renderers.mjs +12 -2
@@ -1,13 +1,18 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { readdir } from "node:fs/promises";
3
- import { join } from "node:path";
4
- import { readJsonFile } from "audit-tools/shared";
3
+ import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
4
+ import { absoluteSubmissionPath, readJsonFile, readSubmissionLedger, } from "audit-tools/shared";
5
5
  import { verificationReportPath } from "../../shared/io/auditToolsPaths.js";
6
6
  import { StateStore } from "../state/store.js";
7
+ import { isInProgressStatus } from "../state/itemStatus.js";
7
8
  import { validateClarificationRequest, validateItemSpec, validateRemediationPlan, validateTriageResolution, } from "./remediationState.js";
8
9
  import { formatValidationIssues, isRecord, pushValidationIssue, } from "audit-tools/shared";
9
- import { REMEDIATION_CLOSING_RESULT_CONTRACT_VERSION, REMEDIATION_DISPATCH_PLAN_CONTRACT_VERSION, REMEDIATION_STEP_CONTRACT_VERSION, REMEDIATION_WORKER_RESULT_CONTRACT_VERSION, } from "../steps/types.js";
10
- import { CONTRACT_PIPELINE_VALIDATORS, validateVerificationReport, evaluateContractPipelineCrossGates, } from "./contractPipeline.js";
10
+ import { REMEDIATION_CLOSING_RESULT_CONTRACT_VERSION, REMEDIATION_HOST_DECISION_CONTRACT_VERSION, REMEDIATION_HOST_RESULT_CONTRACT_VERSION, REMEDIATION_STEP_CONTRACT_VERSION, } from "../steps/types.js";
11
+ import { CONTRACT_PIPELINE_VALIDATORS, validateVerificationReport, } from "./contractPipeline.js";
12
+ // The OUTCOMES variant, imported from the gate module directly (the same import
13
+ // the next-step gates use): it reports which gates actually ran, so an empty
14
+ // issues array from a gate whose input was absent is not read as proof-of-clean.
15
+ import { evaluateContractPipelineCrossGateOutcomes } from "./contractPipelineGates.js";
11
16
  import { CP_ARTIFACT_NAMES, contractPipelineDir, } from "../contractPipeline/artifactStore.js";
12
17
  import { intakePaths } from "../intake.js";
13
18
  /**
@@ -86,100 +91,6 @@ function validateCurrentStep(value, path) {
86
91
  }
87
92
  return issues;
88
93
  }
89
- function validateDispatchPlan(value, path) {
90
- const issues = [];
91
- const resultPaths = [];
92
- if (!isRecord(value)) {
93
- pushValidationIssue(issues, path, `${path} must be an object.`);
94
- return { issues, resultPaths };
95
- }
96
- if (value.contract_version !== REMEDIATION_DISPATCH_PLAN_CONTRACT_VERSION) {
97
- pushValidationIssue(issues, `${path}.contract_version`, `${path} has unsupported contract_version.`);
98
- }
99
- const phase = value.phase === "implement" || value.phase === "document"
100
- ? value.phase
101
- : undefined;
102
- if (!phase) {
103
- pushValidationIssue(issues, `${path}.phase`, `${path}.phase must be "document" or "implement".`);
104
- }
105
- for (const key of ["run_id", "repo_root", "artifacts_dir"]) {
106
- if (typeof value[key] !== "string") {
107
- pushValidationIssue(issues, `${path}.${key}`, `${path}.${key} must be a string.`);
108
- }
109
- }
110
- if (!Array.isArray(value.items)) {
111
- pushValidationIssue(issues, `${path}.items`, `${path}.items must be an array.`);
112
- return { issues, phase, resultPaths };
113
- }
114
- for (const [index, item] of value.items.entries()) {
115
- const itemPath = `${path}.items[${index}]`;
116
- if (!isRecord(item)) {
117
- pushValidationIssue(issues, itemPath, `${itemPath} must be an object.`);
118
- continue;
119
- }
120
- for (const key of ["task_id", "prompt_path", "result_path"]) {
121
- if (typeof item[key] !== "string") {
122
- pushValidationIssue(issues, `${itemPath}.${key}`, `${itemPath}.${key} must be a string.`);
123
- }
124
- }
125
- if (phase === "implement" && typeof item.block_id !== "string") {
126
- pushValidationIssue(issues, `${itemPath}.block_id`, `${itemPath}.block_id must be a string for implement dispatch.`);
127
- }
128
- // The fit gates read this off the item and deliberately do not default it, so
129
- // a plan that omits it would strand the node rather than mis-size it. Refuse
130
- // it here, where the producer bug is still attributable to the producer.
131
- if (phase === "implement" &&
132
- (typeof item.estimated_input_tokens !== "number" ||
133
- !Number.isFinite(item.estimated_input_tokens) ||
134
- item.estimated_input_tokens <= 0)) {
135
- pushValidationIssue(issues, `${itemPath}.estimated_input_tokens`, `${itemPath}.estimated_input_tokens must be a positive number for implement dispatch.`);
136
- }
137
- if (phase === "document" && typeof item.finding_id !== "string") {
138
- pushValidationIssue(issues, `${itemPath}.finding_id`, `${itemPath}.finding_id must be a string for document dispatch.`);
139
- }
140
- if (typeof item.prompt_path === "string" && !existsSync(item.prompt_path)) {
141
- pushValidationIssue(issues, `${itemPath}.prompt_path`, `${itemPath}.prompt_path points to a missing file: ${item.prompt_path}.`);
142
- }
143
- if (typeof item.result_path === "string") {
144
- resultPaths.push(item.result_path);
145
- }
146
- }
147
- return { issues, phase, resultPaths };
148
- }
149
- export function validateImplementWorkerResult(value, path) {
150
- const issues = [];
151
- if (!isRecord(value)) {
152
- pushValidationIssue(issues, path, `${path} implement worker result must be an object.`);
153
- return issues;
154
- }
155
- if (value.contract_version !== REMEDIATION_WORKER_RESULT_CONTRACT_VERSION) {
156
- pushValidationIssue(issues, `${path}.contract_version`, `${path} implement worker result has unsupported contract_version.`);
157
- }
158
- if (value.phase !== "implement") {
159
- pushValidationIssue(issues, `${path}.phase`, `${path} implement worker result phase must be implement.`);
160
- }
161
- if (!Array.isArray(value.item_results)) {
162
- pushValidationIssue(issues, `${path}.item_results`, `${path} implement worker result item_results must be an array.`);
163
- return issues;
164
- }
165
- for (const [index, result] of value.item_results.entries()) {
166
- const resultPath = `${path}.item_results[${index}]`;
167
- if (!isRecord(result)) {
168
- pushValidationIssue(issues, resultPath, `${resultPath} must be an object.`);
169
- continue;
170
- }
171
- if (typeof result.finding_id !== "string") {
172
- pushValidationIssue(issues, `${resultPath}.finding_id`, `${resultPath}.finding_id must be a string.`);
173
- }
174
- if (result.status !== "resolved" &&
175
- result.status !== "resolved_no_change" &&
176
- result.status !== "blocked" &&
177
- result.status !== "needs_clarification") {
178
- pushValidationIssue(issues, `${resultPath}.status`, `${resultPath}.status must be resolved, resolved_no_change, blocked, or needs_clarification.`);
179
- }
180
- }
181
- return issues;
182
- }
183
94
  function validateClosingResult(value, path) {
184
95
  const issues = [];
185
96
  if (!isRecord(value)) {
@@ -213,35 +124,199 @@ function validateClosingResult(value, path) {
213
124
  }
214
125
  return issues;
215
126
  }
216
- async function validateDispatchArtifacts(artifactsDir, issues) {
127
+ /**
128
+ * The ONE filename rule a host submission lands under: the sha256 of the
129
+ * submission id. This is the join the discovery scan needs.
130
+ */
131
+ const HOST_SUBMISSION_FILENAME = /^[0-9a-f]{64}\.json$/u;
132
+ /** OS-agnostic identity for two absolute paths derived in the same process. */
133
+ function pathKey(path) {
134
+ return resolve(path).replaceAll("\\", "/");
135
+ }
136
+ /**
137
+ * The run id owning a file beneath `runs/` — its first path segment, which is
138
+ * the run directory the boundary mints. Undefined for anything not actually
139
+ * under `runs/`, so a caller filtering on it excludes rather than guesses.
140
+ */
141
+ function runDirectoryOf(runsDir, file) {
142
+ const rel = relative(resolve(runsDir), resolve(file));
143
+ if (rel.length === 0 || isAbsolute(rel) || rel.startsWith("..")) {
144
+ return undefined;
145
+ }
146
+ return rel.split(/[\\/]/u)[0];
147
+ }
148
+ function validateHostSubmission(value, path) {
149
+ const issues = [];
150
+ if (!isRecord(value)) {
151
+ pushValidationIssue(issues, path, `${path} host submission must be an object.`);
152
+ return issues;
153
+ }
154
+ const version = value.contract_version;
155
+ const isDecision = version === REMEDIATION_HOST_DECISION_CONTRACT_VERSION;
156
+ if (version !== REMEDIATION_HOST_RESULT_CONTRACT_VERSION && !isDecision) {
157
+ pushValidationIssue(issues, `${path}.contract_version`, `${path} host submission has unsupported contract_version.`);
158
+ return issues;
159
+ }
160
+ for (const key of ["result_id", "run_id", "work_item_id", "prompt_sha256"]) {
161
+ if (typeof value[key] !== "string" || value[key].length === 0) {
162
+ pushValidationIssue(issues, `${path}.${key}`, `${path}.${key} must be a non-empty string.`);
163
+ }
164
+ }
165
+ if (isDecision) {
166
+ if (!isRecord(value.outcome) || typeof value.outcome.status !== "string") {
167
+ pushValidationIssue(issues, `${path}.outcome`, `${path}.outcome must be an object carrying a status string.`);
168
+ }
169
+ return issues;
170
+ }
171
+ validateStringArray(value.changed_files, `${path}.changed_files`, issues);
172
+ if (Array.isArray(value.changed_files) && value.changed_files.length === 0) {
173
+ pushValidationIssue(issues, `${path}.changed_files`, `${path}.changed_files must be non-empty for a landed result.`);
174
+ }
175
+ for (const key of ["commit_evidence", "worktree_evidence", "acceptance", "merge"]) {
176
+ if (!isRecord(value[key])) {
177
+ pushValidationIssue(issues, `${path}.${key}`, `${path}.${key} must be an object.`);
178
+ }
179
+ }
180
+ if (!Array.isArray(value.test_evidence)) {
181
+ pushValidationIssue(issues, `${path}.test_evidence`, `${path}.test_evidence must be an array.`);
182
+ }
183
+ return issues;
184
+ }
185
+ /**
186
+ * Work-item (block) ids this run has ALREADY recorded a submission for, read
187
+ * from the records the acceptance path persists — never from the live workload,
188
+ * which is rewritten frontier-by-frontier and therefore remembers nothing.
189
+ *
190
+ * Two sources, both artifactsDir-scoped:
191
+ * - state.json item records, via `!isInProgressStatus`.
192
+ * - the submission ledger, whose events name the submission they accepted.
193
+ *
194
+ * `!isInProgressStatus` DELIBERATELY OVER-APPROXIMATES. It is not "a submission
195
+ * was ingested for this block" — `ignored`, `deemed_inappropriate` and
196
+ * `abandoned` are all reachable with no submission at all (the planning review
197
+ * gate's batched decline; the force-close backstop). The over-approximation is
198
+ * the point, in both directions: it errs toward never flagging accepted-or-
199
+ * adjacent work, and it is also what keeps a `blocked` or `needs_clarification`
200
+ * item's DECISION document — a real host submission that resolved nothing — from
201
+ * being reported as stale. The cost of admitting a block that never submitted is
202
+ * one path that matches no file on disk; the cost of missing one is a false
203
+ * "stale" against real work, so the bias is chosen, not accidental.
204
+ *
205
+ * A malformed or absent ledger contributes nothing rather than failing the scan:
206
+ * this set only ever WIDENS what counts as referenced, so an empty answer is the
207
+ * strict one.
208
+ */
209
+ async function recordedSubmissionIds(artifactsDir, state) {
210
+ const recorded = new Set();
211
+ for (const item of Object.values(state?.items ?? {})) {
212
+ if (item.block_id && !isInProgressStatus(item.status)) {
213
+ recorded.add(item.block_id);
214
+ }
215
+ }
216
+ try {
217
+ for (const event of await readSubmissionLedger(artifactsDir)) {
218
+ if (event.submission_id)
219
+ recorded.add(event.submission_id);
220
+ }
221
+ }
222
+ catch {
223
+ // See above: an unreadable ledger narrows the set, never breaks the scan.
224
+ }
225
+ return recorded;
226
+ }
227
+ /**
228
+ * Scan the dispatch/result surface: the host workloads the boundary writes and
229
+ * the submissions it reads back, joined on the filenames the tool actually
230
+ * mints. Returns what it examined, so a caller can tell a clean run from an
231
+ * unscanned one.
232
+ *
233
+ * The join is the live frontier UNION THE RUN'S RECORDED HISTORY. `prepare`
234
+ * REWRITES host-workload.json with the current dependency frontier alone, and an
235
+ * accepted block leaves that frontier — so a join against the live workload by
236
+ * itself reported every accepted submission of the run as stale, which is the
237
+ * whole result surface of any run that got past its first level. Recorded
238
+ * submissions are re-minted through the SAME shared identity rule the boundary
239
+ * writes with, so this is the producer's join, not a second copy of it.
240
+ *
241
+ * Scoped to ONE run. `runs/` accumulates: nothing deletes a finished run's
242
+ * directory, and the records a stale check joins against — state.json, the
243
+ * ledger — describe the CURRENT run only. Scanning every run directory therefore
244
+ * reported the previous run's accepted submissions as stale from run 2 onward,
245
+ * permanently. A run directory that is not this run's is skipped whole: its
246
+ * result surface was validated while it WAS the current run, and this call has
247
+ * nothing left to say about it.
248
+ */
249
+ async function validateHostSubmissions(artifactsDir, root, issues,
250
+ /**
251
+ * Work-item ids the persisted records say this run already has a submission
252
+ * for — see {@link recordedSubmissionIds}. Empty when there is no state and no
253
+ * ledger, which leaves the join exactly as strict as the live workload alone.
254
+ */
255
+ recordedIds,
256
+ /**
257
+ * The run whose directory is in scope — the plan id, which IS the host run id
258
+ * (`stateRunId`). Undefined when there is no persisted plan to name a current
259
+ * run, and then every run directory is scanned, exactly as before.
260
+ */
261
+ currentRunId) {
217
262
  const runsDir = join(artifactsDir, "runs");
218
- const files = await collectFiles(runsDir);
219
- const dispatchPlanPaths = files.filter((file) => file.endsWith("dispatch-plan.json"));
220
- const resultFiles = files.filter((file) => file.endsWith(".result.json"));
221
- const referencedResults = new Map();
222
- for (const dispatchPlanPath of dispatchPlanPaths) {
223
- const plan = await readJsonForValidation(dispatchPlanPath, issues);
224
- if (!plan)
263
+ const files = (await collectFiles(runsDir)).filter((file) => currentRunId === undefined ||
264
+ runDirectoryOf(runsDir, file) === currentRunId);
265
+ const submissions = files.filter((file) => HOST_SUBMISSION_FILENAME.test(basename(file)));
266
+ const bound = new Set();
267
+ const submissionDirs = new Set();
268
+ for (const file of files.filter((candidate) => basename(candidate) === "host-workload.json")) {
269
+ const workload = await readJsonForValidation(file, issues);
270
+ if (workload === undefined)
225
271
  continue;
226
- const { issues: planIssues, phase, resultPaths } = validateDispatchPlan(plan, dispatchPlanPath);
227
- pushErrorIssues(issues, planIssues);
228
- if (!phase)
272
+ if (!isRecord(workload) || !Array.isArray(workload.work_items)) {
273
+ issues.push(`${file} is not a host workload with a work_items array.`);
229
274
  continue;
230
- for (const resultPath of resultPaths) {
231
- referencedResults.set(resultPath, phase);
232
- if (!existsSync(resultPath))
233
- continue;
234
- const result = await readJsonForValidation(resultPath, issues);
235
- if (!result)
236
- continue;
237
- pushErrorIssues(issues, validateImplementWorkerResult(result, resultPath));
275
+ }
276
+ for (const item of workload.work_items) {
277
+ if (isRecord(item) && typeof item.result_path === "string") {
278
+ const absolute = join(root, item.result_path);
279
+ bound.add(pathKey(absolute));
280
+ // Derived from the workload's own bound paths rather than by rebuilding
281
+ // the run directory here: the boundary owns where submissions land, and
282
+ // a second copy of that layout would drift.
283
+ submissionDirs.add(dirname(absolute));
284
+ }
238
285
  }
239
286
  }
240
- for (const resultFile of resultFiles) {
241
- if (!referencedResults.has(resultFile)) {
242
- issues.push(`Stale worker result is not referenced by any dispatch plan: ${resultFile}.`);
287
+ for (const submissionDir of submissionDirs) {
288
+ for (const workItemId of recordedIds) {
289
+ try {
290
+ bound.add(pathKey(absoluteSubmissionPath({ root, submissionDir }, workItemId)));
291
+ }
292
+ catch {
293
+ // An id the shared rule refuses to mint a path for cannot have produced
294
+ // a submission, so it contributes nothing to the join.
295
+ }
296
+ }
297
+ }
298
+ // AN EMPTY SCAN IS NOT A PASS. If a live workload's bound submissions exist on
299
+ // disk and the discovery filter matched none of them, the join is broken —
300
+ // which is exactly the state that returned `ok` with issue_count 0 for a run
301
+ // whose whole result surface went unchecked. Report it rather than pass.
302
+ const boundOnDisk = [...bound.keys()].filter((path) => existsSync(path));
303
+ if (boundOnDisk.length > 0 && submissions.length === 0) {
304
+ issues.push(`No host submissions were discovered under ${join(artifactsDir, "runs")}, yet ` +
305
+ `${String(boundOnDisk.length)} bound submission file(s) exist on disk — the validator's ` +
306
+ "filename join no longer matches what the host handoff mints.");
307
+ }
308
+ let validated = 0;
309
+ for (const submission of submissions) {
310
+ const payload = await readJsonForValidation(submission, issues);
311
+ if (payload === undefined)
312
+ continue;
313
+ validated += 1;
314
+ pushErrorIssues(issues, validateHostSubmission(payload, submission));
315
+ if (bound.size > 0 && !bound.has(pathKey(submission))) {
316
+ issues.push(`Stale host submission is not referenced by any host workload: ${submission}.`);
243
317
  }
244
318
  }
319
+ return { discovered: submissions.length, validated };
245
320
  }
246
321
  export async function validateArtifacts(artifactsDir, root = ".") {
247
322
  const issues = [];
@@ -298,7 +373,7 @@ export async function validateArtifacts(artifactsDir, root = ".") {
298
373
  if (currentStep) {
299
374
  pushErrorIssues(issues, validateCurrentStep(currentStep, "current-step.json"));
300
375
  }
301
- await validateDispatchArtifacts(artifactsDir, issues);
376
+ const submissionScan = await validateHostSubmissions(artifactsDir, root, issues, await recordedSubmissionIds(artifactsDir, state), state?.plan?.plan_id);
302
377
  const closingResultPath = join(artifactsDir, "remediation-closing-result.json");
303
378
  const closingResult = await readJsonForValidation(closingResultPath, issues);
304
379
  if (closingResult) {
@@ -323,21 +398,34 @@ export async function validateArtifacts(artifactsDir, root = ".") {
323
398
  cpPayloads.set(name, payload);
324
399
  pushErrorIssues(issues, CONTRACT_PIPELINE_VALIDATORS[name](payload, name), `${cpPath}:`);
325
400
  }
326
- // Cross-artifact + decomposition gates. Single-sourced in
327
- // evaluateContractPipelineCrossGates (MNT — validate-artifact self-check
328
- // parity): each gate is individually tolerant of an absent input (returns []
329
- // when its primary payload is missing/malformed), so an incomplete pipeline
330
- // never fabricates errors — only present artifacts are gated. This is the
331
- // SAME runner the singular `validate-artifact --name X` self-check uses, so
332
- // the two can never diverge.
401
+ // Cross-artifact + decomposition gates. Each gate is individually tolerant of
402
+ // an absent input (returns [] when its primary payload is missing/malformed),
403
+ // so an incomplete pipeline never fabricates errors — only present artifacts
404
+ // are gated.
405
+ //
406
+ // NOT the same function as the singular self-check: this plural sweep calls
407
+ // `evaluateContractPipelineCrossGateOutcomes` (which reports which gates ran)
408
+ // while `index.ts`'s `validate-artifact --name X` calls
409
+ // `evaluateContractPipelineCrossGates` (issues only). They are two entry
410
+ // points over one gate list, so they CAN diverge — what holds them together is
411
+ // the drift test that runs both over the same payloads
412
+ // (tests/remediate/validate-artifact-cross-gates.test.ts, "is additive"), not a
413
+ // shared call. Collapsing the pair into one evaluator is tracked as backlog
414
+ // work.
415
+ let gatesEvaluated = 0;
416
+ let gatesSkipped = 0;
333
417
  if (cpPayloads.size > 0) {
334
418
  const findingEnumeration = await readJsonForValidation(intakePaths(artifactsDir).findingEnumeration, issues);
335
- for (const gateIssues of evaluateContractPipelineCrossGates({
419
+ for (const outcome of evaluateContractPipelineCrossGateOutcomes({
336
420
  payloads: cpPayloads,
337
421
  findingEnumeration,
338
422
  root,
339
423
  })) {
340
- pushErrorIssues(issues, gateIssues);
424
+ if (outcome.evaluated)
425
+ gatesEvaluated += 1;
426
+ else
427
+ gatesSkipped += 1;
428
+ pushErrorIssues(issues, outcome.issues);
341
429
  }
342
430
  }
343
431
  // Verification report at the root artifacts dir (from FINDING-027).
@@ -350,6 +438,12 @@ export async function validateArtifacts(artifactsDir, root = ".") {
350
438
  status: issues.length > 0 ? "error" : "ok",
351
439
  issue_count: issues.length,
352
440
  issues,
441
+ scan: {
442
+ submissions_discovered: submissionScan.discovered,
443
+ submissions_validated: submissionScan.validated,
444
+ gates_evaluated: gatesEvaluated,
445
+ gates_skipped: gatesSkipped,
446
+ },
353
447
  };
354
448
  }
355
449
  //# sourceMappingURL=artifacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/remediate/validation/artifacts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/remediate/validation/artifacts.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,27 @@ export declare function validateGoalIdConsistency(artifacts: Record<string, unkn
39
39
  * is responsible for ensuring the artifacts exist before calling this gate).
40
40
  */
41
41
  export declare function validateImplementationDAGIntegrity(dagPayload: unknown, obligationLedgerPayload: unknown, counterexamplePayload: unknown, judgeReportPayload: unknown): ValidationIssue[];
42
+ /**
43
+ * Testable obligation kinds — THE single source of truth for whether an
44
+ * obligation needs a test-plan spec (derive.ts's buildTestValidatorPlanScaffold)
45
+ * and whether the coverage gate below requires that spec to be filled
46
+ * (validatePairedObligations). MNT-e10b9d9b: previously duplicated by hand as
47
+ * TESTABLE_KINDS in derive.ts and TESTABLE_OBLIGATION_KINDS here, and the two
48
+ * copies had already diverged — derive.ts failed OPEN on an unrecognized kind
49
+ * (conservatively testable) while this file failed CLOSED (silently skipped,
50
+ * i.e. treated as non-testable, so a scaffold-offered spec was never actually
51
+ * required). Single-sourced here; derive.ts imports isTestablePhaseObligation
52
+ * from this module instead of re-declaring it.
53
+ */
54
+ export declare const TESTABLE_OBLIGATION_KINDS: Set<string>;
55
+ /**
56
+ * testable (invariant/behavioral) → true; the structural contract-conformance
57
+ * kind → false; an unrecognized/unexpected kind → true (fail-OPEN into the
58
+ * paired-test gate rather than silently skipping coverage — matches
59
+ * derive.ts's original scaffold semantics, which this predicate now also
60
+ * governs on the coverage-gate side, closing the divergence).
61
+ */
62
+ export declare function isTestablePhaseObligation(kind: string): boolean;
42
63
  /**
43
64
  * OBL-CO-01 / DC-5 — paired-obligation gate (fail-closed, change-scoped).
44
65
  *
@@ -221,6 +242,32 @@ export declare function validateDecompositionFileScope(moduleDecompositionPayloa
221
242
  * a partial single-artifact self-check, must never fabricate an issue).
222
243
  */
223
244
  export declare function validateFinalizedModuleSetPreserved(draftedModuleContracts: unknown, finalizedModuleContracts: unknown): ValidationIssue[];
245
+ /**
246
+ * Whether one of the eight cross-artifact gates genuinely ran (`evaluated`),
247
+ * or was skipped because its primary input was absent, malformed, or (digest
248
+ * coverage only) its source was not enumerable — OBS-cca3801c / OBS-cca3801c-2.
249
+ * An empty `issues` array alone cannot distinguish "ran clean" from "never
250
+ * ran"; `evaluated` can. `reason` is present only when `evaluated` is false.
251
+ *
252
+ * INV-CPGV-OUTCOME-RECORD-OWNER: this module owns this record. The finalized
253
+ * module contract's fuller design places the shared type in audit-tools/shared
254
+ * so both adopters (contract-pipeline-orchestration,
255
+ * remediate-nextstep-and-final-gate) import one shape — that relocation needs
256
+ * an edit outside this work item's write scope (src/remediate/validation/ +
257
+ * src/remediate/contractPipeline/ only), so it is deliberately deferred to
258
+ * whichever work item can touch src/shared. The type is defined here,
259
+ * additively, alongside the gates it classifies, so the OBS-cca3801c /
260
+ * OBS-cca3801c-2 signalling obligation is discharged now rather than blocked
261
+ * on that follow-up; see CP-BLOCK-CP-NODE-14's result deviations.
262
+ */
263
+ export interface GateOutcome {
264
+ /** Stable identity, in evaluateContractPipelineCrossGates's fixed canonical order. */
265
+ gate: "paired_obligations" | "evidence_threaded" | "digest_coverage" | "reconciliation_derivation" | "design_spec" | "implementation_dag_integrity" | "decomposition_file_scope" | "finalized_module_set_preserved";
266
+ evaluated: boolean;
267
+ issues: ValidationIssue[];
268
+ /** Present only when `evaluated` is false. */
269
+ reason?: string;
270
+ }
224
271
  /** Input to {@link evaluateContractPipelineCrossGates}. */
225
272
  export interface ContractPipelineCrossGateInputs {
226
273
  /** Every contract-pipeline artifact payload currently known, by name. An
@@ -275,4 +322,15 @@ export interface ContractPipelineCrossGateInputs {
275
322
  * lacking its input contributes an empty array, not a fabricated issue.
276
323
  */
277
324
  export declare function evaluateContractPipelineCrossGates(inputs: ContractPipelineCrossGateInputs): ValidationIssue[][];
325
+ /**
326
+ * Evaluate the SAME 8 cross-artifact gates {@link evaluateContractPipelineCrossGates}
327
+ * calls, in the SAME canonical order, additionally classifying each as
328
+ * evaluated or skipped-with-reason (OBS-cca3801c / OBS-cca3801c-2, see
329
+ * {@link GateOutcome}). Additive: evaluateContractPipelineCrossGates keeps its
330
+ * existing `ValidationIssue[][]` shape unchanged for its existing callers
331
+ * (validation/artifacts.ts, index.ts) — this is a parallel, richer view for a
332
+ * caller that must refuse an empty `issues` array as proof-of-clean without
333
+ * checking `evaluated` first.
334
+ */
335
+ export declare function evaluateContractPipelineCrossGateOutcomes(inputs: ContractPipelineCrossGateInputs): GateOutcome[];
278
336
  //# sourceMappingURL=contractPipelineGates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contractPipelineGates.d.ts","sourceRoot":"","sources":["../../../src/remediate/validation/contractPipelineGates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contractPipelineGates.d.ts","sourceRoot":"","sources":["../../../src/remediate/validation/contractPipelineGates.ts"],"names":[],"mappings":"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"}