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
package/README.md CHANGED
@@ -212,8 +212,21 @@ npm test # build + test
212
212
  Missing `node_modules` makes `audit-tools/shared` resolve a stale `dist/`, producing
213
213
  misleading "no exported member" type errors, so install before build/check/test.
214
214
 
215
- See [`CLAUDE.md`](CLAUDE.md) for architecture and design decisions, the specs in
216
- [`spec/`](spec/), and the product/operator/contract guides in `docs/audit-pkg/`.
215
+ The published package carries the consumer-facing guides only:
216
+
217
+ - [Product overview](docs/audit-pkg/product.md)
218
+ - [Operator guide](docs/audit-pkg/operator-guide.md)
219
+ - [Contract reference](docs/audit-pkg/contracts.md)
220
+
221
+ Everything else is repository-only and therefore linked absolutely: architecture
222
+ and design decisions
223
+ ([`CLAUDE.md`](https://github.com/OhOkThisIsFine/audit-tools/blob/HEAD/CLAUDE.md)),
224
+ the normative specs
225
+ ([`spec/`](https://github.com/OhOkThisIsFine/audit-tools/tree/HEAD/spec)), the
226
+ contributor guide
227
+ ([`docs/audit-pkg/development.md`](https://github.com/OhOkThisIsFine/audit-tools/blob/HEAD/docs/audit-pkg/development.md)),
228
+ and the release runbook
229
+ ([`docs/audit-pkg/release.md`](https://github.com/OhOkThisIsFine/audit-tools/blob/HEAD/docs/audit-pkg/release.md)).
217
230
 
218
231
  ## License
219
232
 
@@ -1 +1 @@
1
- {"version":3,"file":"charterExtractionPrompt.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/charterExtractionPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;;;;;;;;;;;;;GAeG;AAEH,uEAAuE;AACvE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,OAAO,GAChB,oBAAoB,EAAE,CAExB;AA2CD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IACJ,IAAI,EAAE,oBAAoB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,GACA,MAAM,CAsFR"}
1
+ {"version":3,"file":"charterExtractionPrompt.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/charterExtractionPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAK/D;;;;;;;;;;;;;;;GAeG;AAEH,uEAAuE;AACvE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,OAAO,GAChB,oBAAoB,EAAE,CAExB;AA2CD;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IACJ,IAAI,EAAE,oBAAoB,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB,GACA,MAAM,CA6FR"}
@@ -1,3 +1,6 @@
1
+ import { CharterProvenanceSchema } from "audit-tools/shared";
2
+ /** The provenance-kind alternation, DERIVED from the schema at render time. */
3
+ const PROVENANCE_KINDS = CharterProvenanceSchema.shape.kind.options.join("|");
1
4
  /**
2
5
  * The extraction kinds a run's ceiling requests, in canonical order. The three
3
6
  * estimator channels extract at every charter-authorizing ceiling; `deepest`
@@ -123,7 +126,14 @@ export function renderCharterKindLanePrompt(bundle, opts) {
123
126
  ' "purpose": "<telos, not mechanism>",',
124
127
  ' "premise_height": 0,',
125
128
  ' "files": ["<repo-relative path>", "..."],',
126
- ' "provenance": [{ "kind": "doc|code|comment|inferred|...", "ref": "<path/id>", "quote": "<optional>" }],',
129
+ // Closed enum, exhaustive, NO trailing ellipsis DERIVED from
130
+ // CharterProvenanceSchema at render time, so a schema enum change flows into
131
+ // the prompt automatically; the behavioral pin in
132
+ // tests/shared/prompt-renders-its-contract.test.ts holds exhaustiveness and
133
+ // closedness of the RENDERED text instead of teaching a worker a smaller
134
+ // contract (an open list here coined a member and quarantined a 34-minute
135
+ // lane run).
136
+ ` "provenance": [{ "kind": "${PROVENANCE_KINDS}", "ref": "<path/id>", "quote": "<optional>" }],`,
127
137
  ' "confidence": "high|medium|low"',
128
138
  " }",
129
139
  " ]",
@@ -1 +1 @@
1
- {"version":3,"file":"charterExtractionPrompt.js","sourceRoot":"","sources":["../../../src/audit/cli/charterExtractionPrompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"charterExtractionPrompt.js","sourceRoot":"","sources":["../../../src/audit/cli/charterExtractionPrompt.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,27 @@
1
+ export type CleanupTargetValidation = {
2
+ ok: true;
3
+ } | {
4
+ ok: false;
5
+ reason: string;
6
+ };
7
+ /**
8
+ * Validate the cleanup TARGET itself — a purely structural check, independent
9
+ * of audit state, flags, and eligibility (CP-NODE-16). `--force` overrides the
10
+ * interactive/status confirmation inside cleanupStaleArtifactsDir; it must
11
+ * never override this: a mistyped or overly broad `--artifacts-dir` (`.`, a
12
+ * checkout root, a filesystem root) reaching a recursive rm is exactly the
13
+ * accident this verb has to make impossible.
14
+ *
15
+ * Two rules:
16
+ * 1. the path must BE an artifacts dir — `<X>/.audit-tools/audit`, never a
17
+ * filesystem root — decided from the path shape alone, so it holds even
18
+ * when the directory does not exist yet;
19
+ * 2. `--force` additionally requires the `audit_state.json` marker on disk:
20
+ * force waives the STATUS evidence, never the IDENTITY evidence. Without
21
+ * `--force` a missing marker changes nothing — the eligibility gate in
22
+ * cleanupStaleArtifactsDir already refuses to delete, so the verb's
23
+ * skipped / crashed-audit contract is untouched.
24
+ */
25
+ export declare function validateCleanupTarget(artifactsDir: string): CleanupTargetValidation;
1
26
  export declare function cmdCleanup(argv: string[]): Promise<void>;
2
27
  //# sourceMappingURL=cleanupCommand.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanupCommand.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/cleanupCommand.ts"],"names":[],"mappings":"AAGA,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC9D"}
1
+ {"version":3,"file":"cleanupCommand.d.ts","sourceRoot":"","sources":["../../../src/audit/cli/cleanupCommand.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,uBAAuB,GAC/B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,GACnB,uBAAuB,CAqBzB;AAsBD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD9D"}
@@ -1,9 +1,78 @@
1
+ import { existsSync } from "node:fs";
2
+ import { basename, dirname, parse, resolve } from "node:path";
3
+ import { AUDIT_TOOLS_DIRNAME, auditArtifactsDir } from "audit-tools/shared";
1
4
  import { getArtifactsDir, hasFlag } from "./args.js";
2
5
  import { cleanupStaleArtifactsDir } from "./cleanup.js";
6
+ // The structural identity of an audit artifacts directory, which the `cleanup`
7
+ // verb has to PROVE a target carries before recursively deleting it
8
+ // (CP-NODE-16). Both segments come from the single-sourced layout in
9
+ // audit-tools/shared (src/shared/io/auditToolsPaths.ts): the dirname constant
10
+ // directly, the area segment derived from the helper that builds it — so a
11
+ // layout change moves this guard with it instead of silently disarming it.
12
+ const AUDIT_AREA_DIRNAME = basename(auditArtifactsDir("."));
13
+ // The supervisor state marker; audit-tools/shared exposes no constant for it yet
14
+ // (the literal is spelled at every producer/consumer site), so it is named here.
15
+ const AUDIT_STATE_FILENAME = "audit_state.json";
16
+ /**
17
+ * Validate the cleanup TARGET itself — a purely structural check, independent
18
+ * of audit state, flags, and eligibility (CP-NODE-16). `--force` overrides the
19
+ * interactive/status confirmation inside cleanupStaleArtifactsDir; it must
20
+ * never override this: a mistyped or overly broad `--artifacts-dir` (`.`, a
21
+ * checkout root, a filesystem root) reaching a recursive rm is exactly the
22
+ * accident this verb has to make impossible.
23
+ *
24
+ * Two rules:
25
+ * 1. the path must BE an artifacts dir — `<X>/.audit-tools/audit`, never a
26
+ * filesystem root — decided from the path shape alone, so it holds even
27
+ * when the directory does not exist yet;
28
+ * 2. `--force` additionally requires the `audit_state.json` marker on disk:
29
+ * force waives the STATUS evidence, never the IDENTITY evidence. Without
30
+ * `--force` a missing marker changes nothing — the eligibility gate in
31
+ * cleanupStaleArtifactsDir already refuses to delete, so the verb's
32
+ * skipped / crashed-audit contract is untouched.
33
+ */
34
+ export function validateCleanupTarget(artifactsDir) {
35
+ const resolved = resolve(artifactsDir);
36
+ if (resolved === parse(resolved).root) {
37
+ return {
38
+ ok: false,
39
+ reason: `refusing to delete ${resolved}: it is a filesystem root, not an ${AUDIT_TOOLS_DIRNAME}/${AUDIT_AREA_DIRNAME} artifacts directory`,
40
+ };
41
+ }
42
+ if (basename(resolved) !== AUDIT_AREA_DIRNAME ||
43
+ basename(dirname(resolved)) !== AUDIT_TOOLS_DIRNAME) {
44
+ return {
45
+ ok: false,
46
+ reason: `refusing to delete ${resolved}: not an ${AUDIT_TOOLS_DIRNAME}/${AUDIT_AREA_DIRNAME} artifacts directory — pass --artifacts-dir pointing at the audit artifacts dir`,
47
+ };
48
+ }
49
+ return { ok: true };
50
+ }
51
+ function emitRefusal(artifactsDir, reason, dryRun) {
52
+ console.log(JSON.stringify({
53
+ artifacts_dir: artifactsDir,
54
+ action: "refused",
55
+ reason,
56
+ dry_run: dryRun,
57
+ }, null, 2));
58
+ process.exitCode = 1;
59
+ }
3
60
  export async function cmdCleanup(argv) {
4
61
  const artifactsDir = getArtifactsDir(argv);
5
62
  const dryRun = hasFlag(argv, "--dry-run");
6
63
  const force = hasFlag(argv, "--force");
64
+ // Target validation precedes EVERY recursive-delete path (CP-NODE-16):
65
+ // --force relaxes the status confirmation only, never the structural check.
66
+ const validation = validateCleanupTarget(artifactsDir);
67
+ if (!validation.ok) {
68
+ emitRefusal(artifactsDir, validation.reason, dryRun);
69
+ return;
70
+ }
71
+ const markerPath = resolve(artifactsDir, AUDIT_STATE_FILENAME);
72
+ if (force && !existsSync(markerPath)) {
73
+ emitRefusal(artifactsDir, `--force given, but ${markerPath} does not exist — the directory carries no audit_state.json marker, so it is not provably an audit artifacts dir; refusing to delete`, dryRun);
74
+ return;
75
+ }
7
76
  const result = await cleanupStaleArtifactsDir(artifactsDir, { force, dryRun });
8
77
  if (result.action === "skipped") {
9
78
  console.log(JSON.stringify({
@@ -1 +1 @@
1
- {"version":3,"file":"cleanupCommand.js","sourceRoot":"","sources":["../../../src/audit/cli/cleanupCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,wBAAwB,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAE/E,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;YACE,aAAa,EAAE,YAAY;YAC3B,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,iGAAiG;YAC1H,OAAO,EAAE,MAAM;SAChB,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;QACF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;QACE,aAAa,EAAE,YAAY;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM;KAChB,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cleanupCommand.js","sourceRoot":"","sources":["../../../src/audit/cli/cleanupCommand.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { type RunLogger, type SubmissionIssue } from "audit-tools/shared";
2
- import { type AuditResult } from "../../types.js";
1
+ import { type RunLogger } from "audit-tools/shared";
2
+ import { type AuditResult, type AuditTask } from "../../types.js";
3
+ import type { AuditHostIngestIssue } from "../../validation/ingestIssueCodes.js";
3
4
  declare const WORKLOAD_CONTRACT_VERSION: "audit-host-workload/v1alpha1";
4
5
  declare const RESULT_MAP_CONTRACT_VERSION: "audit-host-result-map/v1alpha1";
5
6
  export interface AuditHostTask {
@@ -54,6 +55,17 @@ export interface PreparedAuditHostHandoff {
54
55
  readonly workload_path: string;
55
56
  readonly result_map_path: string;
56
57
  }
58
+ /**
59
+ * One ADVISORY validation finding on an ACCEPTED result. Deliberately not a
60
+ * {@link SubmissionIssue}: an accepted result was never refused, so it must
61
+ * never ride (or be recorded through) the rejection-classified channel — see
62
+ * {@link AuditHostIngestSummary.validation_warnings}.
63
+ */
64
+ export interface AuditHostValidationWarning {
65
+ readonly work_item_id: string;
66
+ readonly result_path: string;
67
+ readonly message: string;
68
+ }
57
69
  export interface AuditHostIngestSummary {
58
70
  readonly accepted_count: number;
59
71
  readonly accepted_results: readonly AuditResult[];
@@ -69,7 +81,15 @@ export interface AuditHostIngestSummary {
69
81
  * garbage were indistinguishable to every caller, which is exactly the
70
82
  * measured drift P25 exists to make visible.
71
83
  */
72
- readonly issues: readonly SubmissionIssue[];
84
+ readonly issues: readonly AuditHostIngestIssue[];
85
+ /**
86
+ * Advisory validation findings on results that WERE accepted — a small
87
+ * coverage-stat divergence, verification metadata on a non-verification
88
+ * task. Never a refusal: they ride this separate channel precisely so the
89
+ * rejection list stays rejections only, and no ledger records an acceptance
90
+ * as one.
91
+ */
92
+ readonly validation_warnings: readonly AuditHostValidationWarning[];
73
93
  }
74
94
  export declare function prepareAuditHostHandoff(params: {
75
95
  readonly root: string;
@@ -87,8 +107,49 @@ export declare function ingestAuditHostResults(params: {
87
107
  readonly root: string;
88
108
  readonly artifactsDir: string;
89
109
  readonly runId: string;
110
+ /**
111
+ * The active audit-task manifest, REQUIRED: every task-known result is put
112
+ * through the SAME per-result rules `validateAuditResults` applies to the
113
+ * batch BEFORE it is written to the accepted pair; a task-unknown (orphan)
114
+ * result passes through unvalidated, mirroring the batch gate's retention of
115
+ * orphans. Requiring it here means no caller can silently regain
116
+ * accept-without-validation by forgetting to pass the manifest.
117
+ */
118
+ readonly auditTasks: readonly AuditTask[];
119
+ /**
120
+ * Normalized path → actual line count, built from the repo manifest exactly as
121
+ * {@link runAuditStep} builds it. Threads the line-count rules of the batch
122
+ * gate into the accept decision; absent means those checks degrade to skips,
123
+ * never to errors.
124
+ */
125
+ readonly lineIndex?: Record<string, number>;
90
126
  /** See {@link prepareAuditHostHandoff}'s `logger`. */
91
127
  readonly logger?: RunLogger;
92
128
  }): Promise<AuditHostIngestSummary>;
129
+ /**
130
+ * Remove accepted entries — the supported way back out of an acceptance.
131
+ *
132
+ * An accepted binding is skipped forever by {@link ingestAuditHostResults}, so
133
+ * before this verb existed the only exit from a poisoned acceptance was editing
134
+ * both files of the pair by hand. This runs under the SAME lock the writers use,
135
+ * rewrites BOTH files together (they are one logical record), refuses a ledger
136
+ * that fails the strict loader rather than truncating what it cannot validate,
137
+ * records each removal on the shared submission ledger so a repaired run stays
138
+ * distinguishable from a clean one, and invalidates the persisted step contract
139
+ * — a stale live instruction may not survive a verb that mutates run state.
140
+ */
141
+ export declare function dropAcceptedResults(params: {
142
+ readonly root: string;
143
+ readonly artifactsDir: string;
144
+ readonly runId: string;
145
+ /** Work items to drop. Required unless {@link dropAcceptedResults.all}. */
146
+ readonly workItemIds?: readonly string[];
147
+ /** Drop EVERY entry. */
148
+ readonly all?: boolean;
149
+ /** See {@link prepareAuditHostHandoff}'s `logger`. */
150
+ readonly logger?: RunLogger;
151
+ }): Promise<{
152
+ readonly dropped_work_item_ids: readonly string[];
153
+ }>;
93
154
  export {};
94
155
  //# sourceMappingURL=hostHandoff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hostHandoff.d.ts","sourceRoot":"","sources":["../../../../src/audit/cli/dispatch/hostHandoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hostHandoff.d.ts","sourceRoot":"","sources":["../../../../src/audit/cli/dispatch/hostHandoff.ts"],"names":[],"mappings":"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"}