audit-tools 0.44.0 → 0.46.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 (266) hide show
  1. package/README.md +15 -2
  2. package/dist/audit/cli/charterExtractionPrompt.d.ts.map +1 -1
  3. package/dist/audit/cli/charterExtractionPrompt.js +11 -1
  4. package/dist/audit/cli/charterExtractionPrompt.js.map +1 -1
  5. package/dist/audit/cli/cleanupCommand.d.ts +25 -0
  6. package/dist/audit/cli/cleanupCommand.d.ts.map +1 -1
  7. package/dist/audit/cli/cleanupCommand.js +69 -0
  8. package/dist/audit/cli/cleanupCommand.js.map +1 -1
  9. package/dist/audit/cli/dispatch/hostHandoff.d.ts +64 -3
  10. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  11. package/dist/audit/cli/dispatch/hostHandoff.js +247 -99
  12. package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
  13. package/dist/audit/cli/dispatch/packetFilter.d.ts +1 -1
  14. package/dist/audit/cli/dispatch.d.ts +1 -1
  15. package/dist/audit/cli/dispatch.d.ts.map +1 -1
  16. package/dist/audit/cli/dispatch.js +1 -1
  17. package/dist/audit/cli/dispatch.js.map +1 -1
  18. package/dist/audit/cli/fanoutLanes.d.ts.map +1 -1
  19. package/dist/audit/cli/fanoutLanes.js +6 -1
  20. package/dist/audit/cli/fanoutLanes.js.map +1 -1
  21. package/dist/audit/cli/laneSubmissions.d.ts +16 -2
  22. package/dist/audit/cli/laneSubmissions.d.ts.map +1 -1
  23. package/dist/audit/cli/laneSubmissions.js +38 -27
  24. package/dist/audit/cli/laneSubmissions.js.map +1 -1
  25. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  26. package/dist/audit/cli/nextStepCommand.js +9 -6
  27. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  28. package/dist/audit/cli/nextStepHelpers.d.ts +39 -4
  29. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  30. package/dist/audit/cli/nextStepHelpers.js +132 -42
  31. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  32. package/dist/audit/cli/reviewRun.d.ts +1 -1
  33. package/dist/audit/cli/reviewRun.d.ts.map +1 -1
  34. package/dist/audit/cli/reviewRun.js +2 -9
  35. package/dist/audit/cli/reviewRun.js.map +1 -1
  36. package/dist/audit/cli/sampleRunCommand.d.ts.map +1 -1
  37. package/dist/audit/cli/sampleRunCommand.js +12 -1
  38. package/dist/audit/cli/sampleRunCommand.js.map +1 -1
  39. package/dist/audit/cli/semanticReviewStep.d.ts +5 -2
  40. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  41. package/dist/audit/cli/semanticReviewStep.js +28 -1
  42. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  43. package/dist/audit/cli/steps.d.ts +6 -6
  44. package/dist/audit/cli/unacceptResultsCommand.d.ts +18 -0
  45. package/dist/audit/cli/unacceptResultsCommand.d.ts.map +1 -0
  46. package/dist/audit/cli/unacceptResultsCommand.js +49 -0
  47. package/dist/audit/cli/unacceptResultsCommand.js.map +1 -0
  48. package/dist/audit/cli.d.ts +6 -0
  49. package/dist/audit/cli.d.ts.map +1 -1
  50. package/dist/audit/cli.js +34 -59
  51. package/dist/audit/cli.js.map +1 -1
  52. package/dist/audit/contracts/findingContractPrompt.d.ts +11 -0
  53. package/dist/audit/contracts/findingContractPrompt.d.ts.map +1 -0
  54. package/dist/audit/contracts/findingContractPrompt.js +112 -0
  55. package/dist/audit/contracts/findingContractPrompt.js.map +1 -0
  56. package/dist/audit/contracts/workerSchemas.d.ts +106 -42
  57. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  58. package/dist/audit/contracts/workerSchemas.js +16 -7
  59. package/dist/audit/contracts/workerSchemas.js.map +1 -1
  60. package/dist/audit/contracts/wrapperResponse.d.ts +52 -28
  61. package/dist/audit/contracts/wrapperResponse.d.ts.map +1 -1
  62. package/dist/audit/contracts/wrapperResponse.js +8 -5
  63. package/dist/audit/contracts/wrapperResponse.js.map +1 -1
  64. package/dist/audit/decompose/sources.d.ts.map +1 -1
  65. package/dist/audit/decompose/sources.js +21 -5
  66. package/dist/audit/decompose/sources.js.map +1 -1
  67. package/dist/audit/extractors/analyzers/registry.d.ts +8 -5
  68. package/dist/audit/extractors/analyzers/registry.d.ts.map +1 -1
  69. package/dist/audit/extractors/analyzers/registry.js +28 -7
  70. package/dist/audit/extractors/analyzers/registry.js.map +1 -1
  71. package/dist/audit/extractors/designAssessment.js +1 -1
  72. package/dist/audit/extractors/gitHistory.d.ts +1 -1
  73. package/dist/audit/extractors/gitHistory.js +1 -1
  74. package/dist/audit/extractors/graph.d.ts +1 -1
  75. package/dist/audit/extractors/graph.js +1 -1
  76. package/dist/audit/extractors/risk.d.ts +1 -1
  77. package/dist/audit/extractors/risk.js +1 -1
  78. package/dist/audit/io/artifacts.d.ts.map +1 -1
  79. package/dist/audit/io/artifacts.js +5 -5
  80. package/dist/audit/io/artifacts.js.map +1 -1
  81. package/dist/audit/orchestrator/acquisitionExecutor.d.ts +11 -6
  82. package/dist/audit/orchestrator/acquisitionExecutor.d.ts.map +1 -1
  83. package/dist/audit/orchestrator/acquisitionExecutor.js +1 -1
  84. package/dist/audit/orchestrator/acquisitionExecutor.js.map +1 -1
  85. package/dist/audit/orchestrator/advance.d.ts +14 -10
  86. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  87. package/dist/audit/orchestrator/advance.js +49 -24
  88. package/dist/audit/orchestrator/advance.js.map +1 -1
  89. package/dist/audit/orchestrator/advanceTypes.d.ts +14 -0
  90. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  91. package/dist/audit/orchestrator/autoFixExecutor.d.ts +20 -1
  92. package/dist/audit/orchestrator/autoFixExecutor.d.ts.map +1 -1
  93. package/dist/audit/orchestrator/autoFixExecutor.js +77 -15
  94. package/dist/audit/orchestrator/autoFixExecutor.js.map +1 -1
  95. package/dist/audit/orchestrator/dependencyMap.js +1 -1
  96. package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
  97. package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
  98. package/dist/audit/orchestrator/executorRunners.js +18 -4
  99. package/dist/audit/orchestrator/executorRunners.js.map +1 -1
  100. package/dist/audit/orchestrator/executors.d.ts +54 -0
  101. package/dist/audit/orchestrator/executors.d.ts.map +1 -1
  102. package/dist/audit/orchestrator/executors.js +352 -0
  103. package/dist/audit/orchestrator/executors.js.map +1 -1
  104. package/dist/audit/orchestrator/hostInputPause.d.ts +20 -11
  105. package/dist/audit/orchestrator/hostInputPause.d.ts.map +1 -1
  106. package/dist/audit/orchestrator/hostInputPause.js +17 -11
  107. package/dist/audit/orchestrator/hostInputPause.js.map +1 -1
  108. package/dist/audit/orchestrator/localCommands.d.ts +24 -1
  109. package/dist/audit/orchestrator/localCommands.d.ts.map +1 -1
  110. package/dist/audit/orchestrator/localCommands.js +44 -9
  111. package/dist/audit/orchestrator/localCommands.js.map +1 -1
  112. package/dist/audit/orchestrator/nextStep.d.ts +13 -0
  113. package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
  114. package/dist/audit/orchestrator/nextStep.js +13 -0
  115. package/dist/audit/orchestrator/nextStep.js.map +1 -1
  116. package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
  117. package/dist/audit/orchestrator/runtimeCommand.d.ts +32 -1
  118. package/dist/audit/orchestrator/runtimeCommand.d.ts.map +1 -1
  119. package/dist/audit/orchestrator/runtimeCommand.js +90 -3
  120. package/dist/audit/orchestrator/runtimeCommand.js.map +1 -1
  121. package/dist/audit/orchestrator/structureExecutors.js +1 -1
  122. package/dist/audit/orchestrator/structureExecutors.js.map +1 -1
  123. package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts +11 -1
  124. package/dist/audit/orchestrator/syntaxResolutionExecutor.d.ts.map +1 -1
  125. package/dist/audit/orchestrator/syntaxResolutionExecutor.js +25 -9
  126. package/dist/audit/orchestrator/syntaxResolutionExecutor.js.map +1 -1
  127. package/dist/audit/supervisor/operatorHandoff.d.ts +0 -1
  128. package/dist/audit/supervisor/operatorHandoff.d.ts.map +1 -1
  129. package/dist/audit/supervisor/operatorHandoff.js +2 -1
  130. package/dist/audit/supervisor/operatorHandoff.js.map +1 -1
  131. package/dist/audit/types.d.ts +33 -19
  132. package/dist/audit/types.d.ts.map +1 -1
  133. package/dist/audit/validation/auditResults.d.ts +39 -0
  134. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  135. package/dist/audit/validation/auditResults.js +111 -53
  136. package/dist/audit/validation/auditResults.js.map +1 -1
  137. package/dist/audit/validation/ingestIssueCodes.d.ts +18 -0
  138. package/dist/audit/validation/ingestIssueCodes.d.ts.map +1 -0
  139. package/dist/audit/validation/ingestIssueCodes.js +26 -0
  140. package/dist/audit/validation/ingestIssueCodes.js.map +1 -0
  141. package/dist/remediate/contractPipeline/derive.d.ts.map +1 -1
  142. package/dist/remediate/contractPipeline/derive.js +1 -0
  143. package/dist/remediate/contractPipeline/derive.js.map +1 -1
  144. package/dist/remediate/contractPipeline/semanticProjection.d.ts +5 -4
  145. package/dist/remediate/contractPipeline/semanticProjection.d.ts.map +1 -1
  146. package/dist/remediate/contractPipeline/semanticProjection.js +34 -19
  147. package/dist/remediate/contractPipeline/semanticProjection.js.map +1 -1
  148. package/dist/remediate/index.d.ts.map +1 -1
  149. package/dist/remediate/index.js +3 -2
  150. package/dist/remediate/index.js.map +1 -1
  151. package/dist/remediate/phases/close.d.ts +37 -2
  152. package/dist/remediate/phases/close.d.ts.map +1 -1
  153. package/dist/remediate/phases/close.js +100 -31
  154. package/dist/remediate/phases/close.js.map +1 -1
  155. package/dist/remediate/phases/closeVerifyAnalyzerLeads.js +2 -2
  156. package/dist/remediate/phases/closeVerifyAnalyzerLeads.js.map +1 -1
  157. package/dist/remediate/phases/triage.d.ts.map +1 -1
  158. package/dist/remediate/phases/triage.js +61 -19
  159. package/dist/remediate/phases/triage.js.map +1 -1
  160. package/dist/remediate/state/types.d.ts +15 -1
  161. package/dist/remediate/state/types.d.ts.map +1 -1
  162. package/dist/remediate/steps/contractPipeline.d.ts +13 -0
  163. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  164. package/dist/remediate/steps/contractPipeline.js +82 -3
  165. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  166. package/dist/remediate/steps/dispatch/hostHandoff.d.ts +1 -1
  167. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  168. package/dist/remediate/steps/dispatch/hostHandoff.js +297 -139
  169. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  170. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  171. package/dist/remediate/steps/nextStep.js +37 -7
  172. package/dist/remediate/steps/nextStep.js.map +1 -1
  173. package/dist/remediate/types/options.d.ts +1 -1
  174. package/dist/shared/analyzers/acquisitionEngine.d.ts +61 -28
  175. package/dist/shared/analyzers/acquisitionEngine.d.ts.map +1 -1
  176. package/dist/shared/analyzers/acquisitionEngine.js +83 -24
  177. package/dist/shared/analyzers/acquisitionEngine.js.map +1 -1
  178. package/dist/shared/analyzers/binaryAcquisition.d.ts +8 -2
  179. package/dist/shared/analyzers/binaryAcquisition.d.ts.map +1 -1
  180. package/dist/shared/analyzers/binaryAcquisition.js +4 -4
  181. package/dist/shared/analyzers/binaryAcquisition.js.map +1 -1
  182. package/dist/shared/constitutionalDocPaths.d.ts.map +1 -1
  183. package/dist/shared/constitutionalDocPaths.js +7 -0
  184. package/dist/shared/constitutionalDocPaths.js.map +1 -1
  185. package/dist/shared/decompose/systemicChallenge.d.ts +15 -1
  186. package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -1
  187. package/dist/shared/engine/obligationEngine.d.ts +44 -3
  188. package/dist/shared/engine/obligationEngine.d.ts.map +1 -1
  189. package/dist/shared/engine/obligationEngine.js +53 -7
  190. package/dist/shared/engine/obligationEngine.js.map +1 -1
  191. package/dist/shared/findings/dedupe.d.ts.map +1 -1
  192. package/dist/shared/findings/dedupe.js +8 -0
  193. package/dist/shared/findings/dedupe.js.map +1 -1
  194. package/dist/shared/friction/frictionRecord.d.ts +42 -2
  195. package/dist/shared/friction/frictionRecord.d.ts.map +1 -1
  196. package/dist/shared/friction/frictionRecord.js +111 -3
  197. package/dist/shared/friction/frictionRecord.js.map +1 -1
  198. package/dist/shared/friction/triage.d.ts +15 -0
  199. package/dist/shared/friction/triage.d.ts.map +1 -1
  200. package/dist/shared/friction/triage.js +33 -2
  201. package/dist/shared/friction/triage.js.map +1 -1
  202. package/dist/shared/index.d.ts +16 -11
  203. package/dist/shared/index.d.ts.map +1 -1
  204. package/dist/shared/index.js +16 -9
  205. package/dist/shared/index.js.map +1 -1
  206. package/dist/shared/io/fileLock.d.ts.map +1 -1
  207. package/dist/shared/io/fileLock.js +22 -3
  208. package/dist/shared/io/fileLock.js.map +1 -1
  209. package/dist/shared/io/frictionCapture.d.ts +73 -19
  210. package/dist/shared/io/frictionCapture.d.ts.map +1 -1
  211. package/dist/shared/io/frictionCapture.js +21 -30
  212. package/dist/shared/io/frictionCapture.js.map +1 -1
  213. package/dist/shared/io/lockedJsonStore.d.ts +24 -3
  214. package/dist/shared/io/lockedJsonStore.d.ts.map +1 -1
  215. package/dist/shared/io/lockedJsonStore.js +35 -7
  216. package/dist/shared/io/lockedJsonStore.js.map +1 -1
  217. package/dist/shared/io/stepContractWriter.d.ts +3 -3
  218. package/dist/shared/io/stepContractWriter.d.ts.map +1 -1
  219. package/dist/shared/io/stepContractWriter.js +97 -13
  220. package/dist/shared/io/stepContractWriter.js.map +1 -1
  221. package/dist/shared/submission/expectedSubmissions.d.ts +18 -0
  222. package/dist/shared/submission/expectedSubmissions.d.ts.map +1 -1
  223. package/dist/shared/submission/expectedSubmissions.js +17 -0
  224. package/dist/shared/submission/expectedSubmissions.js.map +1 -1
  225. package/dist/shared/submission/handRecovery.d.ts.map +1 -1
  226. package/dist/shared/submission/handRecovery.js +9 -11
  227. package/dist/shared/submission/handRecovery.js.map +1 -1
  228. package/dist/shared/submission/hostHandoffCore.d.ts +155 -0
  229. package/dist/shared/submission/hostHandoffCore.d.ts.map +1 -0
  230. package/dist/shared/submission/hostHandoffCore.js +210 -0
  231. package/dist/shared/submission/hostHandoffCore.js.map +1 -0
  232. package/dist/shared/submission/submissionClassifier.d.ts +4 -1
  233. package/dist/shared/submission/submissionClassifier.d.ts.map +1 -1
  234. package/dist/shared/submission/submissionClassifier.js.map +1 -1
  235. package/dist/shared/submission/submissionLedger.d.ts +16 -5
  236. package/dist/shared/submission/submissionLedger.d.ts.map +1 -1
  237. package/dist/shared/submission/submissionLedger.js +42 -3
  238. package/dist/shared/submission/submissionLedger.js.map +1 -1
  239. package/dist/shared/tooling/commandShape.d.ts +29 -0
  240. package/dist/shared/tooling/commandShape.d.ts.map +1 -1
  241. package/dist/shared/tooling/commandShape.js +82 -10
  242. package/dist/shared/tooling/commandShape.js.map +1 -1
  243. package/dist/shared/tooling/exec.d.ts +32 -0
  244. package/dist/shared/tooling/exec.d.ts.map +1 -1
  245. package/dist/shared/tooling/exec.js +189 -0
  246. package/dist/shared/tooling/exec.js.map +1 -1
  247. package/dist/shared/types/finding.d.ts +132 -20
  248. package/dist/shared/types/finding.d.ts.map +1 -1
  249. package/dist/shared/types/finding.js +70 -63
  250. package/dist/shared/types/finding.js.map +1 -1
  251. package/docs/audit-pkg/contracts.md +8 -1
  252. package/docs/audit-pkg/operator-guide.md +13 -2
  253. package/docs/audit-pkg/product.md +22 -6
  254. package/package.json +10 -6
  255. package/schemas/audit-code-v1alpha1.schema.json +297 -0
  256. package/schemas/audit_result.schema.json +5 -1
  257. package/schemas/audit_results.schema.json +5 -1
  258. package/schemas/finding.schema.json +1 -1
  259. package/scripts/shared/install-host-assets.mjs +8 -5
  260. package/skills/audit-code/SKILL.md +4 -2
  261. package/skills/audit-code/audit-code.prompt.md +5 -2
  262. package/skills/audit-code/opencode-command-template.txt +1 -1
  263. package/wrapper/audit-code-wrapper-lib.mjs +82 -16
  264. package/wrapper/installer-verb-help.mjs +14 -4
  265. package/docs/audit-pkg/development.md +0 -113
  266. package/docs/audit-pkg/release.md +0 -140
@@ -1,46 +1,42 @@
1
1
  import { mkdir } from "node:fs/promises";
2
- import { join, resolve } from "node:path";
3
- import { FindingSchema, createMemoizedSourceReader, findingContractPromptLines, assertSubmissionRunId, hashContent, isFileMissingError, readJsonFile, readSubmissionDocument, repoRelativePath, resolveContainedPath, stableStringify, submissionPathFor, verifyFindingGrounding, withFileLock, writeJsonFile, } from "audit-tools/shared";
2
+ import { join } from "node:path";
3
+ import { createMemoizedSourceReader, appendSubmissionEvent, SUBMISSION_LEDGER_EVENT_CONTRACT_VERSION, bindingIdentity, compareCodeUnits, contentSha256, firstDuplicateIdentity, hasExactKeys, hostHandoffResultPath, isFileMissingError, isRecord, isSha256, parseAllWorkloadItems, parseWorkloadEnvelope, promptSha256, readJsonFile, readSubmissionDocument, repoRelativePath, requireNonEmptyString, resolveContainedPath, resolveHostHandoffPaths, resultMapIdentity, siblingLockPath, sameStrings, stableStringify, verifyFindingGrounding, withFileLock, writeBlockedStepContract, writeJsonFile, } from "audit-tools/shared";
4
+ import { findingContractPromptLines } from "../../contracts/findingContractPrompt.js";
5
+ import { WorkerFindingSchema } from "../../contracts/workerSchemas.js";
4
6
  import { AuditResultSchema } from "../../types.js";
7
+ import { validateOneAuditResult, formatAuditResultIssues, } from "../../validation/auditResults.js";
5
8
  const WORKLOAD_CONTRACT_VERSION = "audit-host-workload/v1alpha1";
6
9
  const RESULT_MAP_CONTRACT_VERSION = "audit-host-result-map/v1alpha1";
7
10
  const RESULT_CONTRACT_VERSION = "audit-host-result/v1alpha1";
8
11
  const TASK_BINDINGS_CONTRACT_VERSION = "audit-host-task-bindings/v1alpha1";
9
12
  const ACCEPTED_RESULTS_CONTRACT_VERSION = "audit-host-accepted-results/v1alpha1";
10
- function compareCodeUnits(left, right) {
11
- return left < right ? -1 : left > right ? 1 : 0;
12
- }
13
- function isRecord(value) {
14
- return value !== null && typeof value === "object" && !Array.isArray(value);
15
- }
16
- function hasExactKeys(value, expected) {
17
- const actual = Object.keys(value).sort(compareCodeUnits);
18
- return (actual.length === expected.length &&
19
- actual.every((key, index) => key === [...expected].sort(compareCodeUnits)[index]));
20
- }
21
- function isSha256(value) {
22
- return typeof value === "string" && /^[0-9a-f]{64}$/u.test(value);
23
- }
13
+ /**
14
+ * The audit draw's boundary paths: the SHARED resolution (run-id grammar,
15
+ * containment, `runs/<id>`), plus the four files this boundary persists beyond
16
+ * the workload — the result map, the trusted task bindings, and the
17
+ * accepted-results pair with its one serializing lock.
18
+ */
24
19
  function resolveBoundaryPaths(params) {
25
- assertSubmissionRunId(params.runId, "audit host run id");
26
- const root = resolve(params.root);
27
- const artifactsDir = resolveContainedPath(root, params.artifactsDir, "artifactsDir");
28
- const runDir = resolveContainedPath(artifactsDir, join("runs", params.runId), "audit host run directory");
20
+ const core = resolveHostHandoffPaths({
21
+ ...params,
22
+ runDirSegments: [],
23
+ runIdLabel: "audit host run id",
24
+ });
29
25
  return {
30
- root,
26
+ root: core.root,
31
27
  runId: params.runId,
32
- artifactsDir,
33
- runDir,
34
- resultDir: join(runDir, "host-results"),
35
- workloadPath: join(runDir, "host-workload.json"),
36
- resultMapPath: join(runDir, "host-result-map.json"),
37
- taskBindingsPath: join(runDir, "host-task-bindings.json"),
38
- acceptedLedgerPath: join(runDir, "host-accepted-results-ledger.json"),
39
- acceptedResultsPath: join(runDir, "host-accepted-results.json"),
28
+ artifactsDir: core.artifactsDir,
29
+ runDir: core.runDir,
30
+ resultDir: core.resultDir,
31
+ workloadPath: core.workloadPath,
32
+ resultMapPath: join(core.runDir, "host-result-map.json"),
33
+ taskBindingsPath: join(core.runDir, "host-task-bindings.json"),
34
+ acceptedLedgerPath: join(core.runDir, "host-accepted-results-ledger.json"),
35
+ acceptedResultsPath: join(core.runDir, "host-accepted-results.json"),
40
36
  // Named off the pair's own stem, so the lock is visibly the lock FOR those
41
37
  // two files rather than an independently-invented name. It is transient
42
38
  // infrastructure, not a run artifact anything cites.
43
- acceptedLockPath: `${join(runDir, "host-accepted-results")}.lock`,
39
+ acceptedLockPath: siblingLockPath(join(core.runDir, "host-accepted-results")),
44
40
  };
45
41
  }
46
42
  /**
@@ -62,25 +58,28 @@ function resolveBoundaryPaths(params) {
62
58
  async function withAcceptedResultsLock(paths, logger, mutate) {
63
59
  return withFileLock(paths.acceptedLockPath, async () => mutate(await loadAcceptedResults(paths.acceptedLedgerPath, paths.runId)), undefined, logger);
64
60
  }
65
- /** Persist the accepted-results pair. Only ever called under the lock above. */
61
+ /**
62
+ * Persist the accepted-results pair. Only ever called under the lock above.
63
+ *
64
+ * ORDER IS LOAD-BEARING — the LEDGER is written FIRST, the results render
65
+ * second. The strict loader (`loadAcceptedResults`) reads the ledger as truth;
66
+ * a throw between the two writes must therefore be able to leave the render
67
+ * STALE, never AHEAD of it: a render naming an entry the ledger has not yet
68
+ * recorded would re-serve that result on every future ingest (the ledger is
69
+ * what dedupes), while a stale render is simply regenerated by the next
70
+ * successful write of this pair.
71
+ */
66
72
  async function writeAcceptedResults(paths, ledger) {
67
- await writeJsonFile(paths.acceptedResultsPath, ledger.entries.map((entry) => entry.audit_result));
68
73
  await writeJsonFile(paths.acceptedLedgerPath, ledger);
74
+ await writeJsonFile(paths.acceptedResultsPath, ledger.entries.map((entry) => entry.audit_result));
69
75
  }
70
76
  /**
71
77
  * The bound path for one work item's submission — the SHARED rule, not a local
72
- * copy of it. The audit and remediate handoffs both derived
73
- * `<resultDir>/<sha256(id)>.json` in their own private helpers; a divergence
74
- * between the two would have been silent on both sides.
78
+ * copy of it. This and the remediate twin were byte-equivalent private helpers;
79
+ * a divergence between them would have been silent on both sides.
75
80
  */
76
81
  function resultPathFor(paths, workItemId) {
77
- return submissionPathFor({ root: paths.root, submissionDir: paths.resultDir }, workItemId);
78
- }
79
- function requireNonEmptyString(value, label) {
80
- if (typeof value !== "string" || value.length === 0) {
81
- throw new Error(`${label} must be a non-empty string`);
82
- }
83
- return value;
82
+ return hostHandoffResultPath({ root: paths.root, artifactsDir: paths.artifactsDir, runDir: paths.runDir, resultDir: paths.resultDir, workloadPath: paths.workloadPath }, workItemId);
84
83
  }
85
84
  function normalizeTask(task, root) {
86
85
  if (!isRecord(task)) {
@@ -175,7 +174,7 @@ function buildWorkItem(paths, task) {
175
174
  token_estimate: task.token_estimate,
176
175
  },
177
176
  prompt: {
178
- sha256: hashContent(promptText),
177
+ sha256: promptSha256(promptText),
179
178
  text: promptText,
180
179
  },
181
180
  scope: {
@@ -204,7 +203,7 @@ function validateAcceptedEntry(value) {
204
203
  typeof value.result_id === "string" &&
205
204
  isSha256(value.result_sha256) &&
206
205
  isRecord(value.result) &&
207
- value.result_sha256 === hashContent(stableStringify(value.result)) &&
206
+ value.result_sha256 === contentSha256(value.result) &&
208
207
  value.result.work_item_id === value.work_item_id &&
209
208
  value.result.prompt_sha256 === value.prompt_sha256 &&
210
209
  value.result.result_id === value.result_id &&
@@ -235,19 +234,12 @@ async function loadAcceptedResults(path, runId) {
235
234
  !value.entries.every(validateAcceptedEntry)) {
236
235
  throw new Error(`Invalid accepted audit host results ledger: ${path}`);
237
236
  }
238
- const identities = new Set();
239
- for (const entry of value.entries) {
240
- const identity = `${entry.work_item_id}\u0000${entry.prompt_sha256}`;
241
- if (identities.has(identity)) {
242
- throw new Error(`Duplicate accepted audit host result binding: ${entry.work_item_id}`);
243
- }
244
- identities.add(identity);
237
+ const duplicate = firstDuplicateIdentity(value.entries, bindingIdentity);
238
+ if (duplicate !== null) {
239
+ throw new Error(`Duplicate accepted audit host result binding: ${duplicate.work_item_id}`);
245
240
  }
246
241
  return value;
247
242
  }
248
- function bindingIdentity(entry) {
249
- return `${entry.work_item_id}\u0000${entry.prompt_sha256}`;
250
- }
251
243
  export async function prepareAuditHostHandoff(params) {
252
244
  if (!Array.isArray(params.tasks)) {
253
245
  throw new Error("Audit host tasks must be an array");
@@ -343,7 +335,7 @@ function parseWorkItem(value) {
343
335
  !hasExactKeys(value.prompt, ["sha256", "text"]) ||
344
336
  !isSha256(value.prompt.sha256) ||
345
337
  typeof value.prompt.text !== "string" ||
346
- hashContent(value.prompt.text) !== value.prompt.sha256 ||
338
+ promptSha256(value.prompt.text) !== value.prompt.sha256 ||
347
339
  !isRecord(value.scope) ||
348
340
  !hasExactKeys(value.scope, ["files", "unit_ids"]) ||
349
341
  !Array.isArray(value.scope.files) ||
@@ -355,15 +347,17 @@ function parseWorkItem(value) {
355
347
  return value;
356
348
  }
357
349
  function parseWorkload(value, runId) {
358
- if (!isRecord(value) ||
359
- !hasExactKeys(value, ["contract_version", "run_id", "work_items"]) ||
360
- value.contract_version !== WORKLOAD_CONTRACT_VERSION ||
361
- value.run_id !== runId ||
362
- !Array.isArray(value.work_items)) {
350
+ // Envelope + all-items parsing is the CORE's scaffolding; the audit draw
351
+ // selects only its own contract version and item parser.
352
+ const envelope = parseWorkloadEnvelope(value, {
353
+ contractVersion: WORKLOAD_CONTRACT_VERSION,
354
+ runId,
355
+ });
356
+ if (!envelope.ok) {
363
357
  throw new Error("Invalid audit host workload");
364
358
  }
365
- const workItems = value.work_items.map(parseWorkItem);
366
- if (workItems.some((entry) => entry === null)) {
359
+ const workItems = parseAllWorkloadItems(envelope.rawItems, parseWorkItem);
360
+ if (workItems === null) {
367
361
  throw new Error("Invalid audit host work item");
368
362
  }
369
363
  return value;
@@ -444,25 +438,20 @@ function validateHandoffBinding(paths, workload, resultMap, taskBindings) {
444
438
  binding.lens !== item.lens ||
445
439
  item.scope.unit_ids.length !== 1 ||
446
440
  binding.unit_id !== item.scope.unit_ids[0] ||
447
- Object.keys(binding.file_line_counts).sort(compareCodeUnits).join("\u0000") !==
448
- [...item.scope.files].sort(compareCodeUnits).join("\u0000")) {
441
+ !sameStrings(Object.keys(binding.file_line_counts).sort(compareCodeUnits), [...item.scope.files].sort(compareCodeUnits))) {
449
442
  throw new Error(`Invalid audit host task binding: ${item.id}`);
450
443
  }
451
444
  items.set(item.id, item);
452
445
  }
453
- if (resultMap.entries.length !== items.size) {
454
- throw new Error("Audit host result map does not cover the workload exactly");
455
- }
456
- const mapped = new Set();
457
- for (const entry of resultMap.entries) {
458
- const item = items.get(entry.work_item_id);
459
- if (item === undefined ||
460
- mapped.has(entry.work_item_id) ||
461
- entry.prompt_sha256 !== item.prompt.sha256 ||
462
- entry.result_path !== item.result_path) {
463
- throw new Error(`Invalid audit host result binding: ${entry.work_item_id}`);
464
- }
465
- mapped.add(entry.work_item_id);
446
+ // The result-map identity half is the CORE's check, with its failure
447
+ // CLASSIFIED: a coverage miss says the MAP is wrong; an identity miss names
448
+ // the entry whose prompt digest or bound path broke. Both of the audit
449
+ // draw's original refusals survive — they are not collapsed into one.
450
+ const identity = resultMapIdentity([...items.values()], resultMap.entries);
451
+ if (!identity.ok) {
452
+ throw new Error(identity.reason === "coverage"
453
+ ? "Audit host result map does not cover the workload exactly"
454
+ : `Invalid audit host result binding: ${identity.workItemId ?? "unknown"}`);
466
455
  }
467
456
  return items;
468
457
  }
@@ -474,25 +463,39 @@ function issueLocation(prefix, path) {
474
463
  return [prefix, ...path.map((segment) => String(segment))].join(".");
475
464
  }
476
465
  function parseFindings(findings) {
466
+ const parsedFindings = [];
477
467
  for (const [index, finding] of findings.entries()) {
478
468
  // S7: `grounding` is the TOOL's re-check of the worker's own quote — the one
479
469
  // bit ingestion exists to compute. A submission that supplies it is
480
470
  // self-certifying that bit, so it is REFUSED (never silently overwritten):
481
- // the host must see that the field is not its to send.
471
+ // the host must see that the field is not its to send. Stated ahead of the
472
+ // schema check because this message names the field as the WORKER's mistake;
473
+ // the strict schema would report it only as an unrecognized key.
482
474
  if (isRecord(finding) && "grounding" in finding) {
483
- return refuse(`findings[${index}].grounding: grounding is tool-computed at ingest and must not be supplied`);
475
+ return {
476
+ ok: false,
477
+ detail: `findings[${index}].grounding: grounding is tool-computed at ingest and must not be supplied`,
478
+ };
484
479
  }
485
- const parsed = FindingSchema.safeParse(finding);
486
- if (parsed.success)
487
- continue;
488
- const issue = parsed.error.issues[0];
489
- const location = issue === undefined
490
- ? `findings[${index}]`
491
- : issueLocation(`findings[${index}]`, issue.path);
492
- const reason = issue === undefined ? "invalid" : issue.message;
493
- return refuse(`findings failed the audit finding contract at ${location}: ${reason}`);
494
- }
495
- return null;
480
+ // The STRICT WORKER PROJECTION — the same contract the dispatch prompt
481
+ // renders (`findingContractPromptLines`). Parsing the lenient base schema
482
+ // here accepted a prompt-obedient submission that downstream validation
483
+ // then failed (evidence missing), which is exactly the two-sources defect.
484
+ const parsed = WorkerFindingSchema.safeParse(finding);
485
+ if (!parsed.success) {
486
+ const issue = parsed.error.issues[0];
487
+ const location = issue === undefined
488
+ ? `findings[${index}]`
489
+ : issueLocation(`findings[${index}]`, issue.path);
490
+ const reason = issue === undefined ? "invalid" : issue.message;
491
+ return {
492
+ ok: false,
493
+ detail: `findings failed the audit finding contract at ${location}: ${reason}`,
494
+ };
495
+ }
496
+ parsedFindings.push(parsed.data);
497
+ }
498
+ return { ok: true, findings: parsedFindings };
496
499
  }
497
500
  function parseHostResult(value, runId, item, binding) {
498
501
  if (!isRecord(value) ||
@@ -526,9 +529,12 @@ function parseHostResult(value, runId, item, binding) {
526
529
  if (!Array.isArray(value.findings)) {
527
530
  return refuse("findings failed the audit finding contract: findings must be an array");
528
531
  }
529
- const findingRefusal = parseFindings(value.findings);
530
- if (findingRefusal !== null)
531
- return findingRefusal;
532
+ // The parsed findings ride ON the result, so `toAuditResult` never has to
533
+ // re-parse them (one parse, one door).
534
+ const findingsParse = parseFindings(value.findings);
535
+ if (!findingsParse.ok)
536
+ return refuse(findingsParse.detail);
537
+ const { findings } = findingsParse;
532
538
  const coveragePaths = new Set();
533
539
  for (const coverage of value.file_coverage) {
534
540
  if (!isRecord(coverage) ||
@@ -560,12 +566,22 @@ function parseHostResult(value, runId, item, binding) {
560
566
  ? `file coverage: the assigned scope is not fully covered (missing ${uncovered.join(", ")})`
561
567
  : "file coverage: entries do not match the assigned scope exactly");
562
568
  }
563
- return {
564
- ok: true,
565
- result: JSON.parse(stableStringify(value)),
566
- };
569
+ const result = JSON.parse(stableStringify({
570
+ ...value,
571
+ findings,
572
+ }));
573
+ return { ok: true, result };
567
574
  }
568
575
  function toAuditResult(result, binding) {
576
+ // Findings arrive already parsed against the strict worker projection
577
+ // (`parseFindings`, threaded through `AuditHostResult.findings`) — this is a
578
+ // mapping, not a second validation. `lens` defaults from the enclosing
579
+ // AuditResult — the binding's lens, which IS this result's lens — exactly as
580
+ // the projection's `.describe()` states.
581
+ const findings = result.findings.map((finding) => ({
582
+ ...finding,
583
+ lens: finding.lens ?? binding.lens,
584
+ }));
569
585
  const parsed = AuditResultSchema.safeParse({
570
586
  task_id: binding.work_item_id,
571
587
  unit_id: binding.unit_id,
@@ -577,7 +593,7 @@ function toAuditResult(result, binding) {
577
593
  total_lines: coverage.total_lines,
578
594
  }))
579
595
  .sort((left, right) => compareCodeUnits(left.path, right.path)),
580
- findings: result.findings,
596
+ findings,
581
597
  reviewed_clean: result.findings.length === 0,
582
598
  run_id: result.run_id,
583
599
  });
@@ -646,8 +662,10 @@ export async function ingestAuditHostResults(params) {
646
662
  const resultIds = new Set(accepted.entries.map((entry) => entry.result_id));
647
663
  const additions = [];
648
664
  const issues = [];
665
+ const validation_warnings = [];
649
666
  // One memoized reader for the whole ingest: N findings citing one file read it once.
650
667
  const readSource = createMemoizedSourceReader();
668
+ const activeTaskIds = new Set(params.auditTasks.map((task) => task.task_id));
651
669
  for (const entry of resultMap.entries) {
652
670
  if (acceptedBindings.has(bindingIdentity(entry)))
653
671
  continue;
@@ -683,6 +701,54 @@ export async function ingestAuditHostResults(params) {
683
701
  });
684
702
  continue;
685
703
  }
704
+ // VALIDATE BEFORE ACCEPT. The conversion above proves only the envelope
705
+ // contract (`FindingSchema` admits an evidence-less finding); these are the
706
+ // per-result rules the downstream batch gate applies, applied HERE so an
707
+ // error-severity issue never reaches the accepted pair. A rejected item is
708
+ // simply never in the ledger, so the corrected file at the same bound path
709
+ // is re-read on the next fold — acceptance used to be terminal instead, and
710
+ // a failed batch gate then wedged the run permanently.
711
+ //
712
+ // Orphans (task pruned by a re-plan) pass through UNVALIDATED with the same
713
+ // stderr notice the batch gate uses — never newly rejected: refusing one
714
+ // here would strand it outside the append-only ledger entirely.
715
+ if (!activeTaskIds.has(entry.work_item_id)) {
716
+ process.stderr.write(`audit host-handoff ingest: result for '${entry.work_item_id}' is not in the ` +
717
+ `active task manifest (orphaned by re-planning); retained in the accepted pair ` +
718
+ `but skipped at the validation gate\n`);
719
+ }
720
+ else {
721
+ const validationIssues = validateOneAuditResult(converted.auditResult, [
722
+ ...params.auditTasks,
723
+ ], {
724
+ lineIndex: params.lineIndex,
725
+ });
726
+ const errors = validationIssues.filter((issue) => issue.severity === "error");
727
+ if (errors.length > 0) {
728
+ issues.push({
729
+ code: "result_validation_failed",
730
+ message: `work item '${entry.work_item_id}' failed audit-results validation ` +
731
+ `(${errors.length} error(s)); fix the result file at its bound path and call next-step again: ` +
732
+ formatAuditResultIssues(errors),
733
+ work_item_id: entry.work_item_id,
734
+ result_path: entry.result_path,
735
+ });
736
+ continue;
737
+ }
738
+ // Warnings are NOT rejections: an accepted result never refused anything,
739
+ // so a warning must never reach the rejection-classified issue list — the
740
+ // ONE ledger recorder would otherwise record kind:'rejected' for a result
741
+ // that was accepted, manufacturing a repair story that never happened.
742
+ // They ride the separate advisory channel instead (rendered for the
743
+ // operator; never counted as a submission that could not be accepted).
744
+ validation_warnings.push(...validationIssues
745
+ .filter((issue) => issue.severity === "warning")
746
+ .map((warning) => ({
747
+ work_item_id: entry.work_item_id,
748
+ result_path: entry.result_path,
749
+ message: `${warning.message} (${warning.field})`,
750
+ })));
751
+ }
686
752
  // S7 quote-and-verify: the tool re-reads each cited span from disk and
687
753
  // stamps the verdict. It NEVER rejects — a quote that does not re-verify
688
754
  // rides through as `ungrounded` and synthesis surfaces it under "Ungrounded
@@ -697,7 +763,7 @@ export async function ingestAuditHostResults(params) {
697
763
  prompt_sha256: entry.prompt_sha256,
698
764
  result_path: entry.result_path,
699
765
  result_id: result.result_id,
700
- result_sha256: hashContent(stableStringify(result)),
766
+ result_sha256: contentSha256(result),
701
767
  result,
702
768
  audit_result: converted.auditResult,
703
769
  });
@@ -740,14 +806,96 @@ export async function ingestAuditHostResults(params) {
740
806
  result_path: addition.result_path,
741
807
  });
742
808
  }
809
+ // Ledger recording is NOT done here. The shared submission ledger is written
810
+ // by the ONE recorder, `recordHostResultOutcomes`, at this ingest's only
811
+ // production caller — fed these very `issues` and `completed_work_item_ids` —
812
+ // so every rejection below already lands there in arrival order. A second
813
+ // writer inside the boundary would double-record the same fact.
743
814
  return {
744
815
  accepted_count: landed.length,
745
816
  accepted_results: ledger.entries.map((entry) => entry.audit_result),
746
817
  accepted_results_path: paths.acceptedResultsPath,
818
+ validation_warnings,
747
819
  completed_work_item_ids: [
748
820
  ...new Set(ledger.entries.map((entry) => entry.work_item_id)),
749
821
  ].sort(compareCodeUnits),
750
822
  issues,
751
823
  };
752
824
  }
825
+ /**
826
+ * Remove accepted entries — the supported way back out of an acceptance.
827
+ *
828
+ * An accepted binding is skipped forever by {@link ingestAuditHostResults}, so
829
+ * before this verb existed the only exit from a poisoned acceptance was editing
830
+ * both files of the pair by hand. This runs under the SAME lock the writers use,
831
+ * rewrites BOTH files together (they are one logical record), refuses a ledger
832
+ * that fails the strict loader rather than truncating what it cannot validate,
833
+ * records each removal on the shared submission ledger so a repaired run stays
834
+ * distinguishable from a clean one, and invalidates the persisted step contract
835
+ * — a stale live instruction may not survive a verb that mutates run state.
836
+ */
837
+ export async function dropAcceptedResults(params) {
838
+ if (params.all !== true && (params.workItemIds ?? []).length === 0) {
839
+ throw new Error("unaccept-results requires --work-item <id> (repeatable) or --all");
840
+ }
841
+ const paths = resolveBoundaryPaths(params);
842
+ const targets = params.all === true ? undefined : new Set(params.workItemIds ?? []);
843
+ let droppedWorkItemIds = [];
844
+ await withAcceptedResultsLock(paths, params.logger, async (current) => {
845
+ if (current.entries.length === 0)
846
+ return current;
847
+ const isTarget = (workItemId) => params.all === true ? true : (targets?.has(workItemId) ?? false);
848
+ const kept = current.entries.filter((entry) => !isTarget(entry.work_item_id));
849
+ droppedWorkItemIds = current.entries
850
+ .filter((entry) => isTarget(entry.work_item_id))
851
+ .map((entry) => entry.work_item_id);
852
+ if (droppedWorkItemIds.length === 0)
853
+ return current;
854
+ await writeAcceptedResults(paths, {
855
+ contract_version: ACCEPTED_RESULTS_CONTRACT_VERSION,
856
+ run_id: params.runId,
857
+ entries: kept,
858
+ });
859
+ return { ...current, entries: kept };
860
+ });
861
+ // Record each removal AFTER the pair is rewritten: the withdrawal must be on
862
+ // the record even though the accepted pair no longer mentions the item.
863
+ // Best-effort, like every other ledger write.
864
+ try {
865
+ for (const workItemId of droppedWorkItemIds) {
866
+ await appendSubmissionEvent(paths.artifactsDir, {
867
+ contract_version: SUBMISSION_LEDGER_EVENT_CONTRACT_VERSION,
868
+ run_id: params.runId,
869
+ submission_id: workItemId,
870
+ lane: workItemId,
871
+ kind: "removed_by_operator",
872
+ message: "removed from the accepted results pair by unaccept-results",
873
+ recorded_at: new Date().toISOString(),
874
+ });
875
+ }
876
+ }
877
+ catch (error) {
878
+ params.logger?.event?.({
879
+ phase: "advance",
880
+ kind: "error",
881
+ note: `submission-ledger removal record failed (non-fatal): ${error instanceof Error ? error.message : String(error)}`,
882
+ });
883
+ }
884
+ // Refresh-or-invalidate the persisted step contract: after mutating run state
885
+ // there must be no stale live instruction left on disk. The next `next-step`
886
+ // derives the real step fresh; until then the contract says blocked — through
887
+ // the ONE shared blocked-step assembly, never a hand-built writer here.
888
+ const reason = droppedWorkItemIds.length > 0
889
+ ? `unaccept-results removed ${droppedWorkItemIds.length} accepted result(s) (${[...droppedWorkItemIds].sort().join(", ")}); run next-step to re-dispatch or re-ingest them`
890
+ : "unaccept-results ran but no accepted entry matched; run next-step to continue";
891
+ await writeBlockedStepContract({
892
+ tool: "audit-code",
893
+ contractVersion: "audit-code-step/v1alpha1",
894
+ artifactsDir: paths.artifactsDir,
895
+ repoRoot: paths.root,
896
+ runId: null,
897
+ reason,
898
+ });
899
+ return { dropped_work_item_ids: droppedWorkItemIds };
900
+ }
753
901
  //# sourceMappingURL=hostHandoff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hostHandoff.js","sourceRoot":"","sources":["../../../../src/audit/cli/dispatch/hostHandoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hostHandoff.js","sourceRoot":"","sources":["../../../../src/audit/cli/dispatch/hostHandoff.ts"],"names":[],"mappings":"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"}