audit-tools 0.55.4 → 0.55.6

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 (262) hide show
  1. package/dist/audit/cli/auditReviewBindings.d.ts +4 -4
  2. package/dist/audit/cli/auditStep.d.ts +15 -1
  3. package/dist/audit/cli/auditStep.d.ts.map +1 -1
  4. package/dist/audit/cli/auditStep.js +24 -11
  5. package/dist/audit/cli/auditStep.js.map +1 -1
  6. package/dist/audit/cli/charterExtractionPrompt.d.ts.map +1 -1
  7. package/dist/audit/cli/charterExtractionPrompt.js +3 -1
  8. package/dist/audit/cli/charterExtractionPrompt.js.map +1 -1
  9. package/dist/audit/cli/cleanup.d.ts.map +1 -1
  10. package/dist/audit/cli/cleanup.js +26 -2
  11. package/dist/audit/cli/cleanup.js.map +1 -1
  12. package/dist/audit/cli/conceptualDispatch.d.ts +2 -0
  13. package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
  14. package/dist/audit/cli/conceptualDispatch.js +29 -8
  15. package/dist/audit/cli/conceptualDispatch.js.map +1 -1
  16. package/dist/audit/cli/dispatch/hostHandoff.d.ts +37 -3
  17. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  18. package/dist/audit/cli/dispatch/hostHandoff.js +185 -16
  19. package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
  20. package/dist/audit/cli/dispatch/packetFilter.d.ts +1 -1
  21. package/dist/audit/cli/envelope.d.ts +1 -1
  22. package/dist/audit/cli/envelope.d.ts.map +1 -1
  23. package/dist/audit/cli/envelope.js +4 -1
  24. package/dist/audit/cli/envelope.js.map +1 -1
  25. package/dist/audit/cli/fanoutLanes.d.ts +30 -0
  26. package/dist/audit/cli/fanoutLanes.d.ts.map +1 -1
  27. package/dist/audit/cli/fanoutLanes.js +76 -8
  28. package/dist/audit/cli/fanoutLanes.js.map +1 -1
  29. package/dist/audit/cli/laneValidators.d.ts +9 -6
  30. package/dist/audit/cli/laneValidators.d.ts.map +1 -1
  31. package/dist/audit/cli/laneValidators.js +22 -7
  32. package/dist/audit/cli/laneValidators.js.map +1 -1
  33. package/dist/audit/cli/nextStepCommand.d.ts +3 -0
  34. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  35. package/dist/audit/cli/nextStepCommand.js +104 -66
  36. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  37. package/dist/audit/cli/nextStepHelpers.d.ts +49 -14
  38. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  39. package/dist/audit/cli/nextStepHelpers.js +169 -68
  40. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  41. package/dist/audit/cli/reviewRun.d.ts +10 -0
  42. package/dist/audit/cli/reviewRun.d.ts.map +1 -1
  43. package/dist/audit/cli/reviewRun.js +4 -3
  44. package/dist/audit/cli/reviewRun.js.map +1 -1
  45. package/dist/audit/cli/sampleRunCommand.d.ts +1 -1
  46. package/dist/audit/cli/semanticReviewStep.d.ts +2 -0
  47. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  48. package/dist/audit/cli/semanticReviewStep.js +5 -50
  49. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  50. package/dist/audit/cli/validateResultsCommand.d.ts.map +1 -1
  51. package/dist/audit/cli/validateResultsCommand.js +3 -1
  52. package/dist/audit/cli/validateResultsCommand.js.map +1 -1
  53. package/dist/audit/contracts/workerSchemas.d.ts +14 -14
  54. package/dist/audit/extractors/fsIntake.d.ts +13 -0
  55. package/dist/audit/extractors/fsIntake.d.ts.map +1 -1
  56. package/dist/audit/extractors/fsIntake.js +11 -1
  57. package/dist/audit/extractors/fsIntake.js.map +1 -1
  58. package/dist/audit/io/artifacts.d.ts +35 -9
  59. package/dist/audit/io/artifacts.d.ts.map +1 -1
  60. package/dist/audit/io/artifacts.js +84 -67
  61. package/dist/audit/io/artifacts.js.map +1 -1
  62. package/dist/audit/io/rollover.d.ts +18 -0
  63. package/dist/audit/io/rollover.d.ts.map +1 -0
  64. package/dist/audit/io/rollover.js +152 -0
  65. package/dist/audit/io/rollover.js.map +1 -0
  66. package/dist/audit/io/runSnapshot.d.ts +149 -0
  67. package/dist/audit/io/runSnapshot.d.ts.map +1 -0
  68. package/dist/audit/io/runSnapshot.js +710 -0
  69. package/dist/audit/io/runSnapshot.js.map +1 -0
  70. package/dist/audit/orchestrator/advanceTypes.d.ts +11 -0
  71. package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
  72. package/dist/audit/orchestrator/autoFixExecutor.d.ts +9 -0
  73. package/dist/audit/orchestrator/autoFixExecutor.d.ts.map +1 -1
  74. package/dist/audit/orchestrator/autoFixExecutor.js +22 -2
  75. package/dist/audit/orchestrator/autoFixExecutor.js.map +1 -1
  76. package/dist/audit/orchestrator/charterExtractionExecutor.d.ts.map +1 -1
  77. package/dist/audit/orchestrator/charterExtractionExecutor.js +18 -3
  78. package/dist/audit/orchestrator/charterExtractionExecutor.js.map +1 -1
  79. package/dist/audit/orchestrator/charterPackets.d.ts +11 -1
  80. package/dist/audit/orchestrator/charterPackets.d.ts.map +1 -1
  81. package/dist/audit/orchestrator/charterPackets.js +13 -0
  82. package/dist/audit/orchestrator/charterPackets.js.map +1 -1
  83. package/dist/audit/orchestrator/dependencyMap.d.ts.map +1 -1
  84. package/dist/audit/orchestrator/dependencyMap.js +6 -0
  85. package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
  86. package/dist/audit/orchestrator/dependencySlices.d.ts.map +1 -1
  87. package/dist/audit/orchestrator/dependencySlices.js +35 -11
  88. package/dist/audit/orchestrator/dependencySlices.js.map +1 -1
  89. package/dist/audit/orchestrator/designReviewPrompt.d.ts +9 -0
  90. package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
  91. package/dist/audit/orchestrator/designReviewPrompt.js +69 -31
  92. package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
  93. package/dist/audit/orchestrator/designReviewSnapshot.d.ts +1 -0
  94. package/dist/audit/orchestrator/designReviewSnapshot.d.ts.map +1 -1
  95. package/dist/audit/orchestrator/designReviewSnapshot.js +2 -1
  96. package/dist/audit/orchestrator/designReviewSnapshot.js.map +1 -1
  97. package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
  98. package/dist/audit/orchestrator/executorRunners.js +13 -4
  99. package/dist/audit/orchestrator/executorRunners.js.map +1 -1
  100. package/dist/audit/orchestrator/hostInputPause.js +1 -1
  101. package/dist/audit/orchestrator/hostInputPause.js.map +1 -1
  102. package/dist/audit/orchestrator/intakeExecutors.d.ts +8 -1
  103. package/dist/audit/orchestrator/intakeExecutors.d.ts.map +1 -1
  104. package/dist/audit/orchestrator/intakeExecutors.js +13 -4
  105. package/dist/audit/orchestrator/intakeExecutors.js.map +1 -1
  106. package/dist/audit/orchestrator/obligationPolicy.d.ts.map +1 -1
  107. package/dist/audit/orchestrator/obligationPolicy.js +4 -1
  108. package/dist/audit/orchestrator/obligationPolicy.js.map +1 -1
  109. package/dist/audit/orchestrator/planningExecutors.d.ts +1 -1
  110. package/dist/audit/orchestrator/planningExecutors.d.ts.map +1 -1
  111. package/dist/audit/orchestrator/planningExecutors.js +40 -6
  112. package/dist/audit/orchestrator/planningExecutors.js.map +1 -1
  113. package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
  114. package/dist/audit/orchestrator/systemicChallengeExecutor.d.ts.map +1 -1
  115. package/dist/audit/orchestrator/systemicChallengeExecutor.js +4 -1
  116. package/dist/audit/orchestrator/systemicChallengeExecutor.js.map +1 -1
  117. package/dist/audit/orchestrator/taskBuilder.d.ts +20 -0
  118. package/dist/audit/orchestrator/taskBuilder.d.ts.map +1 -1
  119. package/dist/audit/orchestrator/taskBuilder.js +80 -18
  120. package/dist/audit/orchestrator/taskBuilder.js.map +1 -1
  121. package/dist/audit/systemic/reviewFileMap.d.ts +72 -21
  122. package/dist/audit/systemic/reviewFileMap.d.ts.map +1 -1
  123. package/dist/audit/systemic/reviewFileMap.js +96 -45
  124. package/dist/audit/systemic/reviewFileMap.js.map +1 -1
  125. package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts +7 -0
  126. package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts.map +1 -1
  127. package/dist/audit/systemic/secondOrderAdversaryPrompt.js +39 -8
  128. package/dist/audit/systemic/secondOrderAdversaryPrompt.js.map +1 -1
  129. package/dist/audit/types.d.ts +12 -12
  130. package/dist/audit/validation/auditResults.d.ts +1 -0
  131. package/dist/audit/validation/auditResults.d.ts.map +1 -1
  132. package/dist/audit/validation/auditResults.js +1 -0
  133. package/dist/audit/validation/auditResults.js.map +1 -1
  134. package/dist/remediate/findingFilter.js +1 -1
  135. package/dist/remediate/findingFilter.js.map +1 -1
  136. package/dist/remediate/phases/close.d.ts +1 -0
  137. package/dist/remediate/phases/close.d.ts.map +1 -1
  138. package/dist/remediate/phases/close.js +29 -5
  139. package/dist/remediate/phases/close.js.map +1 -1
  140. package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts +1 -1
  141. package/dist/remediate/phases/triage.d.ts +2 -1
  142. package/dist/remediate/phases/triage.d.ts.map +1 -1
  143. package/dist/remediate/phases/triage.js +46 -25
  144. package/dist/remediate/phases/triage.js.map +1 -1
  145. package/dist/remediate/phases/triageConformance.d.ts +14 -0
  146. package/dist/remediate/phases/triageConformance.d.ts.map +1 -0
  147. package/dist/remediate/phases/triageConformance.js +189 -0
  148. package/dist/remediate/phases/triageConformance.js.map +1 -0
  149. package/dist/remediate/state/decisionConsumption.d.ts +110 -0
  150. package/dist/remediate/state/decisionConsumption.d.ts.map +1 -0
  151. package/dist/remediate/state/decisionConsumption.js +122 -0
  152. package/dist/remediate/state/decisionConsumption.js.map +1 -0
  153. package/dist/remediate/state/store.d.ts +4 -0
  154. package/dist/remediate/state/store.d.ts.map +1 -1
  155. package/dist/remediate/state/store.js +16 -0
  156. package/dist/remediate/state/store.js.map +1 -1
  157. package/dist/remediate/steps/contractPipeline.d.ts +0 -6
  158. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  159. package/dist/remediate/steps/contractPipeline.js +3 -32
  160. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  161. package/dist/remediate/steps/dispatch/contractConformanceReview.d.ts +9 -0
  162. package/dist/remediate/steps/dispatch/contractConformanceReview.d.ts.map +1 -1
  163. package/dist/remediate/steps/dispatch/contractConformanceReview.js +32 -14
  164. package/dist/remediate/steps/dispatch/contractConformanceReview.js.map +1 -1
  165. package/dist/remediate/steps/dispatch/hostContracts.js +1 -1
  166. package/dist/remediate/steps/dispatch/hostContracts.js.map +1 -1
  167. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  168. package/dist/remediate/steps/dispatch/hostHandoff.js +6 -2
  169. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  170. package/dist/remediate/steps/dispatch/requiredTests.js +1 -1
  171. package/dist/remediate/steps/dispatch/requiredTests.js.map +1 -1
  172. package/dist/remediate/steps/gateCommands.d.ts +1 -0
  173. package/dist/remediate/steps/gateCommands.d.ts.map +1 -1
  174. package/dist/remediate/steps/gateCommands.js +8 -52
  175. package/dist/remediate/steps/gateCommands.js.map +1 -1
  176. package/dist/remediate/steps/nextStep.d.ts +7 -0
  177. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  178. package/dist/remediate/steps/nextStep.js +69 -75
  179. package/dist/remediate/steps/nextStep.js.map +1 -1
  180. package/dist/remediate/steps/prompts.d.ts.map +1 -1
  181. package/dist/remediate/steps/prompts.js +6 -9
  182. package/dist/remediate/steps/prompts.js.map +1 -1
  183. package/dist/remediate/steps/recoverIngest.js +1 -1
  184. package/dist/remediate/steps/recoverIngest.js.map +1 -1
  185. package/dist/shared/analyzers/provenance.d.ts +1 -1
  186. package/dist/shared/analyzers/provenance.js +1 -1
  187. package/dist/shared/contentKey.d.ts +3 -2
  188. package/dist/shared/contentKey.d.ts.map +1 -1
  189. package/dist/shared/contentKey.js +3 -2
  190. package/dist/shared/contentKey.js.map +1 -1
  191. package/dist/shared/decompose/charterExtraction.d.ts +200 -13
  192. package/dist/shared/decompose/charterExtraction.d.ts.map +1 -1
  193. package/dist/shared/decompose/charterExtraction.js +34 -6
  194. package/dist/shared/decompose/charterExtraction.js.map +1 -1
  195. package/dist/shared/decompose/systemicChallenge.js +1 -1
  196. package/dist/shared/decompose/systemicChallenge.js.map +1 -1
  197. package/dist/shared/engine/obligationEngine.d.ts +1 -1
  198. package/dist/shared/engine/obligationEngine.js +1 -1
  199. package/dist/shared/findings/dedupe.js +1 -1
  200. package/dist/shared/findings/dedupe.js.map +1 -1
  201. package/dist/shared/git.d.ts +30 -1
  202. package/dist/shared/git.d.ts.map +1 -1
  203. package/dist/shared/git.js +65 -6
  204. package/dist/shared/git.js.map +1 -1
  205. package/dist/shared/index.d.ts +1 -0
  206. package/dist/shared/index.d.ts.map +1 -1
  207. package/dist/shared/index.js +1 -0
  208. package/dist/shared/index.js.map +1 -1
  209. package/dist/shared/intent/clauseBoundaries.d.ts +1 -0
  210. package/dist/shared/intent/clauseBoundaries.d.ts.map +1 -1
  211. package/dist/shared/intent/clauseBoundaries.js +1 -0
  212. package/dist/shared/intent/clauseBoundaries.js.map +1 -1
  213. package/dist/shared/intent/pathScope.d.ts +1 -0
  214. package/dist/shared/intent/pathScope.d.ts.map +1 -1
  215. package/dist/shared/intent/pathScope.js +1 -0
  216. package/dist/shared/intent/pathScope.js.map +1 -1
  217. package/dist/shared/io/nodeWorktreeGuard.d.ts +1 -1
  218. package/dist/shared/io/nodeWorktreeGuard.js +1 -1
  219. package/dist/shared/io/pathIdentity.d.ts.map +1 -1
  220. package/dist/shared/io/pathIdentity.js +1 -0
  221. package/dist/shared/io/pathIdentity.js.map +1 -1
  222. package/dist/shared/io/stepContractWriter.d.ts +1 -0
  223. package/dist/shared/io/stepContractWriter.d.ts.map +1 -1
  224. package/dist/shared/io/stepContractWriter.js +1 -0
  225. package/dist/shared/io/stepContractWriter.js.map +1 -1
  226. package/dist/shared/loopCorePaths.d.ts.map +1 -1
  227. package/dist/shared/loopCorePaths.js +11 -0
  228. package/dist/shared/loopCorePaths.js.map +1 -1
  229. package/dist/shared/prompts.d.ts +2 -0
  230. package/dist/shared/prompts.d.ts.map +1 -1
  231. package/dist/shared/prompts.js +8 -2
  232. package/dist/shared/prompts.js.map +1 -1
  233. package/dist/shared/submission/ingestReport.d.ts.map +1 -1
  234. package/dist/shared/submission/ingestReport.js +19 -1
  235. package/dist/shared/submission/ingestReport.js.map +1 -1
  236. package/dist/shared/submission/submissionLedger.js +2 -2
  237. package/dist/shared/submission/submissionLedger.js.map +1 -1
  238. package/dist/shared/submission/submissionScan.js +1 -1
  239. package/dist/shared/submission/submissionScan.js.map +1 -1
  240. package/dist/shared/tooling/exec.js +2 -2
  241. package/dist/shared/tooling/exec.js.map +1 -1
  242. package/dist/shared/types/charter.d.ts +9 -0
  243. package/dist/shared/types/charter.d.ts.map +1 -1
  244. package/dist/shared/types/charter.js +7 -0
  245. package/dist/shared/types/charter.js.map +1 -1
  246. package/dist/shared/types/closingActions.js +1 -1
  247. package/dist/shared/types/closingActions.js.map +1 -1
  248. package/dist/shared/types/finding.js +2 -2
  249. package/dist/shared/types/finding.js.map +1 -1
  250. package/dist/shared/types/stepContract.js +1 -1
  251. package/dist/shared/types/stepContract.js.map +1 -1
  252. package/dist/shared/validation/findingGrounding.d.ts +1 -0
  253. package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
  254. package/dist/shared/validation/findingGrounding.js +1 -0
  255. package/dist/shared/validation/findingGrounding.js.map +1 -1
  256. package/dist/shared/validation/producerBoundary.d.ts +10 -0
  257. package/dist/shared/validation/producerBoundary.d.ts.map +1 -0
  258. package/dist/shared/validation/producerBoundary.js +26 -0
  259. package/dist/shared/validation/producerBoundary.js.map +1 -0
  260. package/docs/audit-pkg/contracts.md +6 -2
  261. package/docs/audit-pkg/operator-guide.md +13 -4
  262. package/package.json +5 -1
@@ -0,0 +1,189 @@
1
+ // sites-pinned: tests/remediate/phase-triage.test.ts, tests/remediate/host-handoff-corroboration-obligations.test.ts
2
+ import { join, relative } from "node:path";
3
+ import { z } from "zod";
4
+ import { readFile, readdir, lstat, readlink } from "node:fs/promises";
5
+ import { hashContent } from "../../shared/hash.js";
6
+ import { stableStringify } from "../../shared/stableStringify.js";
7
+ import { headCommit } from "../../shared/git.js";
8
+ import { AUDIT_TOOLS_DIRNAME, readOptionalJsonFile, writeJsonFile, parseCommandString, resolveWithinRoot } from "audit-tools/shared";
9
+ import { worktreeContentId } from "../steps/gateCommands.js";
10
+ import { checkConformanceSubject, conformanceReviewPaths } from "../steps/dispatch/contractConformanceReview.js";
11
+ import { readSubmissionDocument } from "../../shared/submission/submissionClassifier.js";
12
+ const digest = (value) => hashContent(stableStringify(value));
13
+ /** Historical evidence only; admission continues to use the run's live request and state. */
14
+ export async function archiveConformanceSubjects(artifactsDir, outputDir) {
15
+ const sourceDir = join(artifactsDir, "conformance-review", "subjects");
16
+ let names;
17
+ try {
18
+ names = await readdir(sourceDir);
19
+ }
20
+ catch (error) {
21
+ if (error.code === "ENOENT")
22
+ return;
23
+ throw error;
24
+ }
25
+ for (const name of names.sort()) {
26
+ if (!/^[a-f0-9]{64}(?:\.review)?\.json$/.test(name))
27
+ throw new Error(`Unexpected conformance subject filename: ${name}`);
28
+ const document = JSON.parse(await readFile(join(sourceDir, name), "utf8"));
29
+ await writeJsonFile(join(outputDir, "remediation-conformance", name), document);
30
+ }
31
+ }
32
+ const ObservationSchema = z.object({
33
+ schema_version: z.literal("triage-verification/v1"), producer: z.literal("triage_required_tests"),
34
+ context: z.unknown(), verification: z.array(z.object({ command: z.string().min(1), outcome: z.literal("passed"), exit_code: z.literal(0) }).strict()).min(1),
35
+ }).strict();
36
+ /** The full nonignored tree plus declared files, including ignored deliverables. */
37
+ export async function triageEvidenceContext(root, state, itemId) {
38
+ const unit = state.plan?.units.find(entry => entry.id === itemId);
39
+ if (!unit || !state.plan)
40
+ return null;
41
+ const tree = await worktreeContentId(root);
42
+ const head = await headCommit(root);
43
+ if (!tree || !head)
44
+ return null;
45
+ const files = {};
46
+ const visit = async (relative) => {
47
+ const normalized = relative.replaceAll("\\", "/").replace(/^\.\//u, "");
48
+ if (normalized === ".git" || normalized.startsWith(".git/") || normalized === AUDIT_TOOLS_DIRNAME || normalized.startsWith(AUDIT_TOOLS_DIRNAME + "/"))
49
+ return;
50
+ const stats = await lstat(join(root, relative));
51
+ if (stats.isSymbolicLink())
52
+ files[relative] = digest({ symlink: await readlink(join(root, relative)), target_hash: hashContent(await readFile(join(root, relative))) });
53
+ else if (stats.isDirectory()) {
54
+ files[relative] = "directory";
55
+ for (const child of (await readdir(join(root, relative))).sort())
56
+ await visit(join(relative, child));
57
+ }
58
+ else
59
+ files[relative] = hashContent(await readFile(join(root, relative)));
60
+ };
61
+ try {
62
+ for (const path of [...new Set([...unit.allowed_files, ...unit.read_paths])].sort())
63
+ await visit(path);
64
+ }
65
+ catch {
66
+ return null;
67
+ }
68
+ // Explicit test scripts can live in ignored scratch; bind their bytes too.
69
+ for (const command of unit.required_tests)
70
+ for (const argument of parseCommandString(command).slice(1)) {
71
+ if (argument.startsWith("-"))
72
+ continue;
73
+ const path = resolveWithinRoot(root, argument);
74
+ if (!path)
75
+ continue;
76
+ const rel = relative(root, path);
77
+ try {
78
+ const stats = await lstat(path);
79
+ if (stats.isFile() || stats.isSymbolicLink())
80
+ files[`test:${rel}`] = hashContent(await readFile(path));
81
+ }
82
+ catch (error) {
83
+ if (error.code !== "ENOENT")
84
+ return null;
85
+ }
86
+ }
87
+ return {
88
+ repository_root: root, run_id: state.plan.plan_id, work_item_id: itemId,
89
+ verified_head: head, verified_worktree: tree, declared_file_hashes: files,
90
+ requirements: state.plan.requirements.filter(requirement => unit.requirement_ids.includes(requirement.id)),
91
+ unit, review_revision_sha256: state.plan.review_revision_sha256,
92
+ accepted_counterexamples: (state.plan.review_counterexamples ?? []).filter(example => unit.addresses_counterexample_ids.includes(example.id)),
93
+ };
94
+ }
95
+ function triageObservationPath(artifactsDir, runId, itemId) {
96
+ return join(artifactsDir, "conformance-review", `${digest({ run_id: runId, work_item_id: itemId })}.observation.json`);
97
+ }
98
+ export async function readTriageObservation(artifactsDir, runId, itemId, context) {
99
+ const document = await readSubmissionDocument(triageObservationPath(artifactsDir, runId, itemId));
100
+ const parsed = ObservationSchema.safeParse(document.kind === "value" ? document.value : null);
101
+ if (!parsed.success || stableStringify(parsed.data.context) !== stableStringify(context))
102
+ return null;
103
+ const commands = context.unit.required_tests;
104
+ return stableStringify(parsed.data.verification.map(entry => entry.command)) === stableStringify(commands) ? parsed.data : null;
105
+ }
106
+ export async function checkTriageConformance(root, artifactsDir, state, itemId, context) {
107
+ const unit = state.plan.units.find(entry => entry.id === itemId);
108
+ const observation = context ? await readTriageObservation(artifactsDir, state.plan.plan_id, itemId, context) : null;
109
+ const checked = await checkConformanceSubject({ artifactsDir, runId: state.plan.plan_id, itemId,
110
+ obligationIds: unit.requirement_ids, content: { context, observation },
111
+ evidenceInstruction: "This is a tool-owned observation, not a host implementation result. Inspect the current working tree identified by verified_worktree and declared_file_hashes, including the required tests and contract. HEAD alone does not identify the reviewed uncommitted source. Explain why the observed tests and source satisfy every obligation. The full tree identity omits ignored files and run scratch; declared deliverables are also hashed explicitly.", });
112
+ if (!observation || stableStringify(await triageEvidenceContext(root, state, itemId)) !== stableStringify(context)) {
113
+ const paths = conformanceReviewPaths(artifactsDir, state.plan.plan_id, itemId);
114
+ return { ok: false, issue: { code: "conformance_review_required", work_item_id: itemId, result_path: paths.response, review_request_path: paths.request, message: "The working-tree verification context is unavailable or changed. Keep this unit blocked; resume against stable readable source before obtaining conformance review." } };
115
+ }
116
+ return checked;
117
+ }
118
+ export async function writeTriageObservation(artifactsDir, runId, itemId, context, commands) {
119
+ await writeJsonFile(triageObservationPath(artifactsDir, runId, itemId), { schema_version: "triage-verification/v1", producer: "triage_required_tests", context,
120
+ verification: commands.map(command => ({ command, outcome: "passed", exit_code: 0 })),
121
+ });
122
+ }
123
+ /** Successful terminal units must retain the receipt for their current review subject. */
124
+ export async function assertSuccessfulConformance(root, artifactsDir, state) {
125
+ if (!state.conformance_review?.enabled || !state.plan)
126
+ return;
127
+ for (const unit of state.plan.units) {
128
+ const item = state.items?.[unit.id];
129
+ if (!item || (item.status !== "resolved" && item.status !== "resolved_no_change"))
130
+ continue;
131
+ const fail = () => { throw new Error(`conformance_review_required: ${unit.id} lacks a current independently reviewed success receipt.`); };
132
+ const receipt = item.conformance_review;
133
+ if (!receipt || receipt.review.mode !== "independent")
134
+ fail();
135
+ const paths = conformanceReviewPaths(artifactsDir, state.plan.plan_id, unit.id);
136
+ const request = await readOptionalJsonFile(paths.request);
137
+ if (!request || request.binding !== receipt.binding || digest(request.content) !== receipt.binding)
138
+ fail();
139
+ const content = request.content;
140
+ if ("observation" in content) {
141
+ const context = await triageEvidenceContext(root, state, unit.id);
142
+ const observation = context && await readTriageObservation(artifactsDir, state.plan.plan_id, unit.id, context);
143
+ if (!observation || digest({ context, observation }) !== receipt.binding)
144
+ fail();
145
+ }
146
+ else {
147
+ const requirements = state.plan.requirements.filter(requirement => unit.requirement_ids.includes(requirement.id));
148
+ const examples = (state.plan.review_counterexamples ?? []).filter(example => unit.addresses_counterexample_ids.includes(example.id));
149
+ if (content.run_id !== state.plan.plan_id || content.work_item_id !== unit.id || content.review_revision_sha256 !== state.plan.review_revision_sha256 ||
150
+ stableStringify(content.unit) !== stableStringify(unit) || stableStringify(content.requirements) !== stableStringify(requirements) ||
151
+ stableStringify(content.accepted_counterexamples) !== stableStringify(examples))
152
+ fail();
153
+ // Host success is a review of immutable committed evidence; later units may land.
154
+ }
155
+ }
156
+ }
157
+ /** Refresh stale mutable-tree successes, or abandon them after an explicit halt; retain historical receipts. */
158
+ export async function reopenStaleTriageSuccesses(root, artifactsDir, state) {
159
+ if (!state.conformance_review?.enabled || !state.plan)
160
+ return false;
161
+ let reopened = false;
162
+ for (const unit of state.plan.units) {
163
+ const item = state.items?.[unit.id];
164
+ if (item?.status !== "resolved_no_change" || !item.conformance_review)
165
+ continue;
166
+ const request = await readOptionalJsonFile(conformanceReviewPaths(artifactsDir, state.plan.plan_id, unit.id).request);
167
+ if (!request || !("observation" in request.content))
168
+ continue;
169
+ const context = await triageEvidenceContext(root, state, unit.id);
170
+ const observation = context && await readTriageObservation(artifactsDir, state.plan.plan_id, unit.id, context);
171
+ if (!observation || digest({ context, observation }) !== item.conformance_review.binding) {
172
+ if (state.closing_context === "user_halted") {
173
+ item.status = "abandoned";
174
+ item.failure_reason = "The owner halted this run after the reviewed tool-owned success observation became stale. Historical conformance evidence is retained; current success is not claimed.";
175
+ item.completed_at = new Date().toISOString();
176
+ }
177
+ else {
178
+ item.status = "blocked";
179
+ item.failure_reason = "The working tree changed since this tool-owned success observation was reviewed. Reverify and obtain a current bound review.";
180
+ delete item.completed_at;
181
+ }
182
+ reopened = true;
183
+ }
184
+ }
185
+ if (reopened && state.closing_context !== "user_halted")
186
+ state.status = "triage";
187
+ return reopened;
188
+ }
189
+ //# sourceMappingURL=triageConformance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"triageConformance.js","sourceRoot":"","sources":["../../../src/remediate/phases/triageConformance.ts"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAErI,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAA+B,MAAM,gDAAgD,CAAC;AAC9I,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,MAAM,MAAM,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AAE/E,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,YAAoB,EAAE,SAAiB;IACtF,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;IACvE,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QAAC,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IAAC,CAAC;IACzC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC/D,MAAM,KAAK,CAAC;IACd,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,IAAI,EAAE,CAAC,CAAC;QACzH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAY,CAAC;QACtF,MAAM,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AACD,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACjG,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC7J,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAY,EAAE,KAAuB,EAAE,MAAc;IAC/F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IAClE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,KAAK,EAAE,QAAgB,EAAiB,EAAE;QACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,UAAU,KAAK,mBAAmB,IAAI,UAAU,CAAC,UAAU,CAAC,mBAAmB,GAAG,GAAG,CAAC;YAAE,OAAO;QAC9J,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,cAAc,EAAE;YAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACnK,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7B,KAAK,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;YAC9B,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAAE,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;QACvG,CAAC;;YAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC;IACF,IAAI,CAAC;QAAC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;YAAE,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAC/G,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACtB,2EAA2E;IAC3E,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc;QAAE,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACvG,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACvC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE;oBAAE,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACzG,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;oBAAE,OAAO,IAAI,CAAC;YACtE,CAAC;QACH,CAAC;IACD,OAAO;QACL,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM;QACvE,aAAa,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK;QACzE,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC1G,IAAI,EAAE,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB;QAC/D,wBAAwB,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KAC9I,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,YAAoB,EAAE,KAAa,EAAE,MAAc;IAChF,OAAO,IAAI,CAAC,YAAY,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,CAAC;AACzH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,YAAoB,EAAE,KAAa,EAAE,MAAc,EAAE,OAAgB;IAC/G,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAClG,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9F,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACtG,MAAM,QAAQ,GAAI,OAAkD,CAAC,IAAI,CAAC,cAAc,CAAC;IACzF,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAClI,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAY,EAAE,YAAoB,EAAE,KAAuB,EAAE,MAAc,EAAE,OAAuB;IAC/I,MAAM,IAAI,GAAG,KAAK,CAAC,IAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAE,CAAC;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrH,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,IAAK,CAAC,OAAO,EAAE,MAAM;QAC9F,aAAa,EAAE,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QACtE,mBAAmB,EAAE,2bAA2b,GACjd,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QACnH,MAAM,KAAK,GAAG,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAChF,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,qKAAqK,EAAE,EAAE,CAAC;IAC9U,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,YAAoB,EAAE,KAAa,EAAE,MAAc,EAAE,OAAgB,EAAE,QAA2B;IAC7I,MAAM,aAAa,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,wBAAwB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO;QAC5J,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;KACtF,CAAC,CAAC;AACL,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,IAAY,EAAE,YAAoB,EAAE,KAAuB;IAC3G,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO;IAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC;YAAE,SAAS;QAC5F,MAAM,IAAI,GAAG,GAAU,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,EAAE,0DAA0D,CAAC,CAAC,CAAC,CAAC,CAAC;QAClJ,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACxC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa;YAAE,IAAI,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAwD,KAAK,CAAC,OAAO,CAAC,CAAC;QACjH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,OAAQ,CAAC,OAAO;YAAE,IAAI,EAAE,CAAC;QAC7G,MAAM,OAAO,GAAG,OAAQ,CAAC,OAAO,CAAC;QACjC,IAAI,aAAa,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,OAAO,IAAI,MAAM,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/G,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,KAAK,OAAQ,CAAC,OAAO;gBAAE,IAAI,EAAE,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YAClH,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;YACrI,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,sBAAsB,KAAK,KAAK,CAAC,IAAI,CAAC,sBAAsB;gBACnJ,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,eAAe,CAAC,YAAY,CAAC;gBAClI,eAAe,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,eAAe,CAAC,QAAQ,CAAC;gBAAE,IAAI,EAAE,CAAC;YAC1F,kFAAkF;QACpF,CAAC;IACH,CAAC;AACH,CAAC;AAED,gHAAgH;AAChH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAAY,EAAE,YAAoB,EAAE,KAAuB;IAC1G,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACpE,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,MAAM,KAAK,oBAAoB,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,SAAS;QAChF,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAwD,sBAAsB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7K,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;YAAE,SAAS;QAC9D,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,OAAO,IAAI,MAAM,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/G,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,KAAK,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;YACzF,IAAI,KAAK,CAAC,eAAe,KAAK,aAAa,EAAE,CAAC;gBAC5C,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC1B,IAAI,CAAC,cAAc,GAAG,wKAAwK,CAAC;gBAC/L,IAAI,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,IAAI,CAAC,cAAc,GAAG,8HAA8H,CAAC;gBACrJ,OAAO,IAAI,CAAC,YAAY,CAAC;YAC3B,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,IAAI,KAAK,CAAC,eAAe,KAAK,aAAa;QAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;IACjF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { z } from "zod";
2
+ import type { RemediationPlan, RemediationItemState } from "./types.js";
3
+ interface DecisionState {
4
+ plan?: RemediationPlan;
5
+ items?: Record<string, RemediationItemState>;
6
+ started_at?: string;
7
+ decision_applications?: DecisionApplicationReceipt[];
8
+ }
9
+ export declare const DecisionApplicationReceiptSchema: z.ZodObject<{
10
+ input: z.ZodEnum<["clarification_resolution.json", "triage_resolution.json"]>;
11
+ input_sha256: z.ZodString;
12
+ input_identity_sha256: z.ZodString;
13
+ context_sha256: z.ZodString;
14
+ run_id: z.ZodString;
15
+ revision_sha256: z.ZodString;
16
+ applied_at: z.ZodString;
17
+ cleanup_complete: z.ZodOptional<z.ZodBoolean>;
18
+ retry_results: z.ZodArray<z.ZodObject<{
19
+ path: z.ZodEffects<z.ZodString, string, string>;
20
+ sha256: z.ZodString;
21
+ identity_sha256: z.ZodString;
22
+ }, "strict", z.ZodTypeAny, {
23
+ path: string;
24
+ sha256: string;
25
+ identity_sha256: string;
26
+ }, {
27
+ path: string;
28
+ sha256: string;
29
+ identity_sha256: string;
30
+ }>, "many">;
31
+ outcome: z.ZodOptional<z.ZodObject<{
32
+ resolved_at: z.ZodString;
33
+ items: z.ZodArray<z.ZodObject<{
34
+ unit_id: z.ZodString;
35
+ action: z.ZodString;
36
+ }, "strict", z.ZodTypeAny, {
37
+ unit_id: string;
38
+ action: string;
39
+ }, {
40
+ unit_id: string;
41
+ action: string;
42
+ }>, "many">;
43
+ }, "strict", z.ZodTypeAny, {
44
+ items: {
45
+ unit_id: string;
46
+ action: string;
47
+ }[];
48
+ resolved_at: string;
49
+ }, {
50
+ items: {
51
+ unit_id: string;
52
+ action: string;
53
+ }[];
54
+ resolved_at: string;
55
+ }>>;
56
+ }, "strict", z.ZodTypeAny, {
57
+ run_id: string;
58
+ input: "clarification_resolution.json" | "triage_resolution.json";
59
+ revision_sha256: string;
60
+ input_sha256: string;
61
+ input_identity_sha256: string;
62
+ context_sha256: string;
63
+ applied_at: string;
64
+ retry_results: {
65
+ path: string;
66
+ sha256: string;
67
+ identity_sha256: string;
68
+ }[];
69
+ outcome?: {
70
+ items: {
71
+ unit_id: string;
72
+ action: string;
73
+ }[];
74
+ resolved_at: string;
75
+ } | undefined;
76
+ cleanup_complete?: boolean | undefined;
77
+ }, {
78
+ run_id: string;
79
+ input: "clarification_resolution.json" | "triage_resolution.json";
80
+ revision_sha256: string;
81
+ input_sha256: string;
82
+ input_identity_sha256: string;
83
+ context_sha256: string;
84
+ applied_at: string;
85
+ retry_results: {
86
+ path: string;
87
+ sha256: string;
88
+ identity_sha256: string;
89
+ }[];
90
+ outcome?: {
91
+ items: {
92
+ unit_id: string;
93
+ action: string;
94
+ }[];
95
+ resolved_at: string;
96
+ } | undefined;
97
+ cleanup_complete?: boolean | undefined;
98
+ }>;
99
+ export type DecisionApplicationReceipt = z.infer<typeof DecisionApplicationReceiptSchema>;
100
+ /** Hash and parse consumers use the same open-file snapshot, even if its path is replaced. */
101
+ export declare function readDecisionSnapshot(path: string): Promise<{
102
+ bytes: string;
103
+ sha256: string;
104
+ identity_sha256: string;
105
+ } | undefined>;
106
+ export declare function decisionContextDigest(state: DecisionState): string;
107
+ /** Only a durably committed receipt may authorize cleanup; mismatching replacement bytes survive. */
108
+ export declare function reconcileDecisionCleanup(state: DecisionState, artifactsDir: string): Promise<boolean>;
109
+ export {};
110
+ //# sourceMappingURL=decisionConsumption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisionConsumption.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/decisionConsumption.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxE,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,0BAA0B,EAAE,CAAC;CACtD;AAGD,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWlC,CAAC;AACZ,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,8FAA8F;AAC9F,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAgBxI;AAwBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAUlE;AAED,qGAAqG;AACrG,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA6B3G"}
@@ -0,0 +1,122 @@
1
+ // sites-pinned: tests/remediate/decision-consumption-recovery.test.ts, tests/remediate/clarification-round-contract.test.ts
2
+ import { open, rename, link, unlink } from "node:fs/promises";
3
+ import { isAbsolute, join } from "node:path";
4
+ import { z } from "zod";
5
+ import { compareCodeUnits, hashContent, stableStringify, withFsRetry, writeJsonFile } from "audit-tools/shared";
6
+ const Digest = z.string().regex(/^[0-9a-f]{64}$/u);
7
+ export const DecisionApplicationReceiptSchema = z.object({
8
+ input: z.enum(["clarification_resolution.json", "triage_resolution.json"]),
9
+ input_sha256: Digest,
10
+ input_identity_sha256: Digest,
11
+ context_sha256: Digest,
12
+ run_id: z.string().min(1),
13
+ revision_sha256: Digest,
14
+ applied_at: z.string().datetime(),
15
+ cleanup_complete: z.boolean().optional(),
16
+ retry_results: z.array(z.object({ path: z.string().min(1).refine(path => !isAbsolute(path) && !path.split(/[\\/]/u).includes("..")), sha256: Digest, identity_sha256: Digest }).strict()),
17
+ outcome: z.object({ resolved_at: z.string().datetime(), items: z.array(z.object({ unit_id: z.string(), action: z.string() }).strict()) }).strict().optional(),
18
+ }).strict();
19
+ /** Hash and parse consumers use the same open-file snapshot, even if its path is replaced. */
20
+ export async function readDecisionSnapshot(path) {
21
+ let handle;
22
+ try {
23
+ handle = await open(path, "r");
24
+ }
25
+ catch (error) {
26
+ if (error.code === "ENOENT")
27
+ return undefined;
28
+ throw error;
29
+ }
30
+ try {
31
+ const before = await handle.stat();
32
+ const data = await handle.readFile();
33
+ const bytes = data.toString("utf8");
34
+ const after = await handle.stat();
35
+ if (before.mtimeMs !== after.mtimeMs || before.size !== after.size)
36
+ throw new Error("Operator input changed while reading; retry without accepting it.");
37
+ const inputDigest = hashContent(data);
38
+ const identity_sha256 = hashContent(stableStringify({
39
+ sha256: inputDigest, dev: after.dev, ino: after.ino, birthtime: after.birthtimeMs, mtime: after.mtimeMs, size: after.size,
40
+ }));
41
+ return { bytes, sha256: inputDigest, identity_sha256 };
42
+ }
43
+ finally {
44
+ await handle.close();
45
+ }
46
+ }
47
+ async function archiveCommittedSnapshot(path, expected, archive) {
48
+ const staged = `${archive}.pending-cleanup`;
49
+ // A crash after rename resumes from this deterministic path before examining a replacement at the live path.
50
+ if (!(await readDecisionSnapshot(staged))) {
51
+ try {
52
+ await withFsRetry(() => rename(path, staged));
53
+ }
54
+ catch (error) {
55
+ if (error.code === "ENOENT")
56
+ return;
57
+ throw error;
58
+ }
59
+ }
60
+ const snapshot = await readDecisionSnapshot(staged);
61
+ if (!snapshot)
62
+ return;
63
+ if (snapshot.sha256 === expected.sha256 && snapshot.identity_sha256 === expected.identity_sha256) {
64
+ await withFsRetry(() => rename(staged, archive));
65
+ return;
66
+ }
67
+ // Hard-link restoration cannot overwrite a newer file that landed after staging.
68
+ // When a newer live file exists, retain the unmatched staged evidence alongside it.
69
+ try {
70
+ await link(staged, path);
71
+ await unlink(staged);
72
+ }
73
+ catch (error) {
74
+ if (error.code !== "EEXIST")
75
+ throw error;
76
+ await withFsRetry(() => rename(staged, `${archive}.replacement-preserved`));
77
+ }
78
+ }
79
+ export function decisionContextDigest(state) {
80
+ return hashContent(stableStringify({
81
+ plan_id: state.plan?.plan_id, revision: state.plan?.review_revision_sha256,
82
+ started_at: state.started_at,
83
+ items: Object.values(state.items ?? {}).map(item => ({
84
+ unit_id: item.unit_id, status: item.status, rework_count: item.rework_count ?? 0,
85
+ question: item.clarification_question, failure_reason: item.failure_reason,
86
+ last_successful_step: item.last_successful_step,
87
+ })).sort((a, b) => compareCodeUnits(a.unit_id, b.unit_id)),
88
+ }));
89
+ }
90
+ /** Only a durably committed receipt may authorize cleanup; mismatching replacement bytes survive. */
91
+ export async function reconcileDecisionCleanup(state, artifactsDir) {
92
+ let changed = false;
93
+ for (const receipt of state.decision_applications ?? []) {
94
+ try {
95
+ if (receipt.cleanup_complete) {
96
+ const input = join(artifactsDir, receipt.input);
97
+ const archive = `${input}.stale-${receipt.context_sha256}-${receipt.input_identity_sha256}`;
98
+ const staged = await readDecisionSnapshot(`${archive}.pending-cleanup`);
99
+ const snapshot = await readDecisionSnapshot(input);
100
+ if (staged || (snapshot?.sha256 === receipt.input_sha256 && snapshot.identity_sha256 === receipt.input_identity_sha256)) {
101
+ await archiveCommittedSnapshot(input, { sha256: receipt.input_sha256, identity_sha256: receipt.input_identity_sha256 }, archive);
102
+ }
103
+ continue;
104
+ }
105
+ if (receipt.outcome)
106
+ await writeJsonFile(join(artifactsDir, "triage-outcome.json"), receipt.outcome);
107
+ for (const result of receipt.retry_results) {
108
+ const path = join(artifactsDir, result.path);
109
+ await archiveCommittedSnapshot(path, result, `${path}.stale-${receipt.context_sha256}-${result.identity_sha256}`);
110
+ }
111
+ const input = join(artifactsDir, receipt.input);
112
+ await archiveCommittedSnapshot(input, { sha256: receipt.input_sha256, identity_sha256: receipt.input_identity_sha256 }, `${input}.consumed-${receipt.context_sha256}-${receipt.input_identity_sha256}`);
113
+ receipt.cleanup_complete = true;
114
+ changed = true;
115
+ }
116
+ catch (error) {
117
+ throw new Error(`Operator decision is committed; pending cleanup for ${receipt.input}. Resume to reconcile cleanup before continuing.`, { cause: error });
118
+ }
119
+ }
120
+ return changed;
121
+ }
122
+ //# sourceMappingURL=decisionConsumption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decisionConsumption.js","sourceRoot":"","sources":["../../../src/remediate/state/decisionConsumption.ts"],"names":[],"mappings":"AAAA,4HAA4H;AAC5H,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAShH,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACnD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,+BAA+B,EAAE,wBAAwB,CAAC,CAAC;IAC1E,YAAY,EAAE,MAAM;IACpB,qBAAqB,EAAE,MAAM;IAC7B,cAAc,EAAE,MAAM;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,eAAe,EAAE,MAAM;IACvB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACzL,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9J,CAAC,CAAC,MAAM,EAAE,CAAC;AAGZ,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QAAC,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAAC,CAAC;IACvC,OAAO,KAAK,EAAE,CAAC;QAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;IACxG,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;QACzJ,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;YAClD,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI;SAC1H,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IACzD,CAAC;YAAS,CAAC;QAAC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAAC,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,IAAY,EAAE,QAAqD,EAAE,OAAe;IAC1H,MAAM,MAAM,GAAG,GAAG,OAAO,kBAAkB,CAAC;IAC5C,6GAA6G;IAC7G,IAAI,CAAC,CAAC,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YAAC,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAAC,CAAC;QACtD,OAAO,KAAK,EAAE,CAAC;YAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO;YAAC,MAAM,KAAK,CAAC;QAAC,CAAC;IAChG,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,eAAe,EAAE,CAAC;QACjG,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,iFAAiF;IACjF,oFAAoF;IACpF,IAAI,CAAC;QAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAAC,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IACvD,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,KAAK,CAAC;QACpE,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,OAAO,wBAAwB,CAAC,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAoB;IACxD,OAAO,WAAW,CAAC,eAAe,CAAC;QACjC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,sBAAsB;QAC1E,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC;YAChF,QAAQ,EAAE,IAAI,CAAC,sBAAsB,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc;YAC1E,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;KAC3D,CAAC,CAAC,CAAC;AACN,CAAC;AAED,qGAAqG;AACrG,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAAoB,EAAE,YAAoB;IACvF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACL,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,GAAG,KAAK,UAAU,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,OAAO,kBAAkB,CAAC,CAAC;gBACxE,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,IAAI,QAAQ,CAAC,eAAe,KAAK,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBACxH,MAAM,wBAAwB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,qBAAqB,EAAE,EAAE,OAAO,CAAC,CAAC;gBACnI,CAAC;gBACD,SAAS;YACX,CAAC;YACC,IAAI,OAAO,CAAC,OAAO;gBAAE,MAAM,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACrG,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,UAAU,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;YACpH,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,wBAAwB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC,qBAAqB,EAAE,EACpH,GAAG,KAAK,aAAa,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;YAClF,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAChC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,uDAAuD,OAAO,CAAC,KAAK,kDAAkD,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5J,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { type DecisionApplicationReceipt } from "./decisionConsumption.js";
1
2
  import { z } from "zod";
2
3
  import { SKIP_WRITE } from "audit-tools/shared";
3
4
  import { type ConformanceReviewBinding, RemediationPlan, type FindingDisposition, type SourceVerification, RemediationItemState, ClosingPlan, CoverageLedger, RemediationHostHandoffRecord } from "./types.js";
@@ -86,6 +87,7 @@ export interface RemediationState {
86
87
  */
87
88
  contract_version?: typeof REMEDIATION_STATE_CONTRACT_VERSION;
88
89
  status: RemediationRunStatus;
90
+ decision_applications?: DecisionApplicationReceipt[];
89
91
  /** Tool-minted current-run snapshot; survives handoff/frontier replacement. */
90
92
  conformance_review?: ConformanceReviewBinding;
91
93
  plan?: RemediationPlan;
@@ -198,6 +200,8 @@ export declare class StateStore {
198
200
  * that no concurrent writer exists (e.g. single-agent close phase).
199
201
  */
200
202
  saveState(state: RemediationState): Promise<void>;
203
+ /** Caller holds the existing phase lock, including startup before ordinary decisions. */
204
+ reconcileDecisionApplications(state: RemediationState): Promise<void>;
201
205
  }
202
206
  export {};
203
207
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ // sites-pinned: tests/remediate/clarification-round-contract.test.ts, tests/remediate/phase-triage.test.ts
2
+ import { DecisionApplicationReceiptSchema, reconcileDecisionCleanup } from "./decisionConsumption.js";
1
3
  // sites-pinned: tests/remediate/clarification-round-contract.test.ts
2
4
  import { z } from "zod";
3
5
  import { executionPlanReferenceIssues } from "../../shared/types/executionPlan.js";
@@ -152,6 +154,8 @@ function validateState(value) {
152
154
  }
153
155
  }
154
156
  }
157
+ if (obj["decision_applications"] !== undefined && !z.array(DecisionApplicationReceiptSchema).safeParse(obj["decision_applications"]).success)
158
+ errors.push("decision_applications contains invalid application receipts");
155
159
  errors.push(...clarificationQuestionErrors(obj));
156
160
  if (status === "closing") {
157
161
  const closingPlan = obj["closing_plan"];
@@ -404,6 +408,18 @@ export class StateStore {
404
408
  // path must not be the one door a worker-context write can still use.
405
409
  assertNotNodeWorktreeCwd("a remediation state.json write");
406
410
  await this.store.replace(stampedState(state));
411
+ await this.reconcileDecisionApplications(state);
412
+ }
413
+ /** Caller holds the existing phase lock, including startup before ordinary decisions. */
414
+ async reconcileDecisionApplications(state) {
415
+ if (await reconcileDecisionCleanup(state, this.artifactsDir)) {
416
+ try {
417
+ await this.store.replace(stampedState(state));
418
+ }
419
+ catch (error) {
420
+ throw new Error("Operator decision is committed; pending cleanup receipt persistence. Resume to reconcile before continuing.", { cause: error });
421
+ }
422
+ }
407
423
  }
408
424
  }
409
425
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/remediate/state/store.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,OAAO,EAAE,gCAAgC,EAAE,wBAAwB,EAAmC,MAAM,0BAA0B,CAAC;AACvI,qEAAqE;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAEL,qBAAqB,EACrB,4BAA4B,EAC5B,0BAA0B,EAC1B,UAAU,EACV,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,YAAY,GACb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,wBAAwB,EACxB,qBAAqB,EAGrB,uBAAuB,EAGvB,kCAAkC,GACnC,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,gBAAgB,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,yBAAkC,CAAC;AAErC,iFAAiF;AACjF,MAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,MAAM,CAAC,MAAM,2BAA2B,GAAG,yBAAyB,CAAC;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,mCAA4C,CAAC;AACvF,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC;IACvD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,4EAA4E;IAC5E,8DAA8D;IAC9D,uBAAuB,EAAE,CAAC,CAAC,MAAM,CAAC;QAChC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,QAAQ,EAAE;QAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACvC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACtC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACvB,CAAC,CAAC,MAAM,EAAE,CAAC;AAyEZ;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAS;IAC7C,cAAc;IACd,QAAQ;IACR,oBAAoB;IACpB,SAAS;CACV,CAAC,CAAC;AAEH,sEAAsE;AACtE,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,8EAA8E;IAC9E,8EAA8E;IAC9E,wDAAwD;IACxD,+EAA+E;IAC/E,0EAA0E;IAC1E,sBAAsB;IACtB,IACE,GAAG,CAAC,kBAAkB,CAAC,KAAK,SAAS;QACrC,GAAG,CAAC,kBAAkB,CAAC,KAAK,kCAAkC,EAC9D,CAAC;QACD,MAAM,IAAI,0BAA0B,CAClC,cAAc,EACd,kCAAkC,EAClC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAChC,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CACT,mBAAmB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,uBAAuB,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrG,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE7B,4EAA4E;IAC5E,yEAAyE;IACzE,oEAAoE;IACpE,IAAI,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,6BAA6B,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAE1H,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,4BAA4B,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7D,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,sBAAsB,CAAC,CAAC;oBACjD,SAAS;gBACX,CAAC;gBACD,MAAM,EAAE,GAAG,IAA+B,CAAC;gBAC3C,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,oCAAoC,CAAC,CAAC;gBAC9G,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,SAAS,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,SAAS;oBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,wCAAwC,CAAC,CAAC;gBACvI,IAAI,CAAE,aAAoC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,GAAG,0BAA0B,CAAC,CAAC;YAE1H,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aACnH,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3G,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAwC,CAAC;YAClE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChE,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;gBAC5G,KAAK,MAAM,EAAE,IAAI,OAAO;oBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wBAAE,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAAC;YACjG,CAAC;YACD,IAAI,GAAG,CAAC,sBAAsB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAC5G,IAAI,CAAC,aAAa,CAAC,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;;oBACvF,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;wBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;4BAAE,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;YACjL,CAAC;YACD,MAAM,YAAY,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBAC7J,IAAI,CAAC,KAAK,CAAC,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;;oBACrG,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;4BAAE,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE,GAAG,CAAC,CAAC;YACzK,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,uBAAuB,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO;QAAE,MAAM,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;IACzN,MAAM,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;QACxC,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAClF,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,kCAAkC,CAAC,SAAS,CACzD,GAAG,CAAC,cAAc,CAAC,CACpB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CACT,0CAA0C,MAAM,CAAC,KAAK,CAAC,MAAM;iBAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,cAAc,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;iBAC7E,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACJ,CAAC;aAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,2BAA2B,CAAC,GAA4B;IAC/D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,GAAG,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CACT,0FAA0F,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC/E,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,SAAS;QACvE,MAAM,EAAE,GAAG,IAA+B,CAAC;QAC3C,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,qBAAqB;YAAE,SAAS;QACrD,MAAM,QAAQ,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IACE,CAAC,QAAQ;YACT,OAAO,QAAQ,KAAK,QAAQ;YAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvB,CAAC,uBAAuB,CAAE,QAAoC,CAAC,UAAU,CAAC,CAAC;YAC3E,OAAQ,QAAoC,CAAC,aAAa,CAAC,KAAK,QAAQ;YACtE,QAAoC,CAAC,aAAa,CAAY,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACpF,CAAC;YACD,MAAM,CAAC,IAAI,CACT,UAAU,GAAG,wEAAwE;gBACnF,0CAA0C,CAC7C,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,aAAa,GAAG,YAAY,CAAC;AACnC,4EAA4E;AAC5E,iFAAiF;AACjF,2EAA2E;AAC3E,8EAA8E;AAC9E,MAAM,CAAC,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAE5D,SAAS,SAAS,CAAC,YAAoB;IACrC,OAAO,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,YAAoB;IACpC,OAAO,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,OAAO,UAAU;IAWX;IAES;IAZnB;;;;;;OAMG;IACc,KAAK,CAA2C;IAEjE,YACU,YAAoB;IAC5B,4EAA4E;IAC3D,cAAuB;QAFhC,iBAAY,GAAZ,YAAY,CAAQ;QAEX,mBAAc,GAAd,cAAc,CAAS;QAExC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAA0B;YAC1D,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC;YAC7B,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC;YAChC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE;gBACb,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,wEAAwE;gBACxE,sEAAsE;gBACtE,gEAAgE;gBAChE,MAAM,OAAO,GAAG,GAAG,CAAC;gBACpB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CACb,wCAAwC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;gBACJ,CAAC;gBACD,oEAAoE;gBACpE,sEAAsE;gBACtE,sEAAsE;gBACtE,mEAAmE;gBACnE,sEAAsE;gBACtE,sEAAsE;gBACtE,uEAAuE;gBACvE,OAAO,OAA2B,CAAC;YACrC,CAAC;YACD,wEAAwE;YACxE,wEAAwE;YACxE,qEAAqE;YACrE,wEAAwE;YACxE,wEAAwE;YACxE,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;gBACjB,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO;gBAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACrD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAU,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC,CAAC;QACtG,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,iCAAiC,GAAG,CAAC,CAAC;QAC7J,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,kBAAkB,CAAI,IAAsB;QAChD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClC,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6EAA6E;IAC7E,KAAK,CAAC,kCAAkC,CACtC,MAA+B,EAC/B,UAA6C,EAC7C,SAAmC,UAAU;QAE7C,wBAAwB,CAAC,6CAA6C,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACnD,IAAI,OAAO,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;YACrH,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAAsB,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;YACzD,gBAAgB,EAAE,0BAA0B;YAC5C,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvE,CAAC;QACF,IAAI,UAAU;YAAE,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;QAC1E,IAAI,MAAM,KAAK,WAAW;YAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aAC7C,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAAC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;YAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAAC,CAAC;aAC1E,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;YACxD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,MAAM,KAAK,QAAQ;gBAAE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAChD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,GAAG;gBAC7B,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,IAAI;gBAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI;gBACrC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC;qBAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;gBACtF,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxF,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,2BAA2B,CAAC,EAAE,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/G,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,MAAM,CACV,EAEkD;QAElD,uEAAuE;QACvE,sEAAsE;QACtE,iDAAiD;QACjD,wBAAwB,CAAC,qCAAqC,CAAC,CAAC;QAChE,IAAI,IAAI,GAAyC,UAAU,CAAC;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC1D,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;YACnC,uEAAuE;YACvE,kEAAkE;YAClE,wEAAwE;YACxE,0EAA0E;YAC1E,qCAAqC;YACrC,IAAI,GAAG,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YACrE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QACrC,6EAA6E;QAC7E,yEAAyE;QACzE,4EAA4E;QAC5E,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,SAAS,CAAC,KAAuB;QACrC,0EAA0E;QAC1E,sEAAsE;QACtE,wBAAwB,CAAC,gCAAgC,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,yFAAyF;IACzF,KAAK,CAAC,6BAA6B,CAAC,KAAuB;QACzD,IAAI,MAAM,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC;gBAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YAAC,CAAC;YACtD,OAAO,KAAK,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,6GAA6G,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,CAAC;QACrK,CAAC;IACH,CAAC;CAEF;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,YAAY,CAAC,KAAuB;IAC3C,OAAO,KAAK,CAAC,gBAAgB,KAAK,SAAS;QACzC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,kCAAkC,EAAE;QACpE,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC"}
@@ -14,10 +14,4 @@ export declare function resolveAdversarialDepth(artifactsDir: string): Promise<{
14
14
  export declare function writePathASeedFromFindings(artifactsDir: string, sourcePath: string, payload: unknown): Promise<void>;
15
15
  /** One author/revision loop, with independent review over the executable plan itself. */
16
16
  export declare function buildNextContractPipelineStep(options: ContractPipelineStepOptions): Promise<RemediationStep | null>;
17
- export interface BlockWriteScopeNormalization {
18
- touched_files: string[];
19
- refusals: string[];
20
- }
21
- export declare function normalizeBlockTouchedFiles(root: string, files: readonly string[], id: string): BlockWriteScopeNormalization;
22
- export declare function checkWriteScopePathsAgainstTrackedTree(root: string, paths: readonly string[], label: string): Promise<string[]>;
23
17
  //# sourceMappingURL=contractPipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contractPipeline.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/contractPipeline.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAUlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CACpG;AAED,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,MAAM;;;GAWjE;AAOD,wBAAsB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1H;AA2HD,yFAAyF;AACzF,wBAAsB,6BAA6B,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAgFzH;AAED,MAAM,WAAW,4BAA4B;IAAG,aAAa,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE;AAC7F,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,4BAA4B,CAO3H;AACD,wBAAsB,sCAAsC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAUrI"}
1
+ {"version":3,"file":"contractPipeline.d.ts","sourceRoot":"","sources":["../../../src/remediate/steps/contractPipeline.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAUlD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CACpG;AAED,wBAAsB,uBAAuB,CAAC,YAAY,EAAE,MAAM;;;GAWjE;AAOD,wBAAsB,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAc1H;AA2HD,yFAAyF;AACzF,wBAAsB,6BAA6B,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAgFzH"}