audit-tools 0.52.5 → 0.54.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 (384) hide show
  1. package/dist/audit/cli/auditStep.d.ts +1 -1
  2. package/dist/audit/cli/conceptualDispatch.d.ts +2 -2
  3. package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
  4. package/dist/audit/cli/conceptualDispatch.js +6 -5
  5. package/dist/audit/cli/conceptualDispatch.js.map +1 -1
  6. package/dist/audit/cli/confirmIntentStep.d.ts.map +1 -1
  7. package/dist/audit/cli/confirmIntentStep.js +3 -16
  8. package/dist/audit/cli/confirmIntentStep.js.map +1 -1
  9. package/dist/audit/cli/dispatch/hostHandoff.d.ts +2 -0
  10. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  11. package/dist/audit/cli/dispatch/hostHandoff.js +22 -1
  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/packetFilter.d.ts.map +1 -1
  15. package/dist/audit/cli/dispatch/packetFilter.js +1 -1
  16. package/dist/audit/cli/dispatch/packetFilter.js.map +1 -1
  17. package/dist/audit/cli/functionalPreflight.d.ts.map +1 -1
  18. package/dist/audit/cli/functionalPreflight.js +6 -3
  19. package/dist/audit/cli/functionalPreflight.js.map +1 -1
  20. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  21. package/dist/audit/cli/nextStepCommand.js +57 -34
  22. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  23. package/dist/audit/cli/nextStepHelpers.d.ts +3 -3
  24. package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
  25. package/dist/audit/cli/nextStepHelpers.js +52 -77
  26. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  27. package/dist/audit/cli/prompts.d.ts +1 -2
  28. package/dist/audit/cli/prompts.d.ts.map +1 -1
  29. package/dist/audit/cli/prompts.js +2 -12
  30. package/dist/audit/cli/prompts.js.map +1 -1
  31. package/dist/audit/cli/sampleRunCommand.d.ts +2 -2
  32. package/dist/audit/cli/semanticReviewStep.d.ts +11 -2
  33. package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
  34. package/dist/audit/cli/semanticReviewStep.js +14 -10
  35. package/dist/audit/cli/semanticReviewStep.js.map +1 -1
  36. package/dist/audit/contracts/workerSchemas.d.ts +14 -14
  37. package/dist/audit/contracts/wrapperResponse.d.ts +6 -6
  38. package/dist/audit/extractors/graphRoutes.d.ts.map +1 -1
  39. package/dist/audit/extractors/graphRoutes.js +1 -3
  40. package/dist/audit/extractors/graphRoutes.js.map +1 -1
  41. package/dist/audit/io/artifacts.d.ts.map +1 -1
  42. package/dist/audit/io/artifacts.js +2 -3
  43. package/dist/audit/io/artifacts.js.map +1 -1
  44. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  45. package/dist/audit/orchestrator/advance.js +21 -1
  46. package/dist/audit/orchestrator/advance.js.map +1 -1
  47. package/dist/audit/orchestrator/architectureDiscovery.d.ts +25 -0
  48. package/dist/audit/orchestrator/architectureDiscovery.d.ts.map +1 -0
  49. package/dist/audit/orchestrator/architectureDiscovery.js +193 -0
  50. package/dist/audit/orchestrator/architectureDiscovery.js.map +1 -0
  51. package/dist/audit/orchestrator/dependencyMap.d.ts +20 -0
  52. package/dist/audit/orchestrator/dependencyMap.d.ts.map +1 -1
  53. package/dist/audit/orchestrator/dependencyMap.js +47 -0
  54. package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
  55. package/dist/audit/orchestrator/dependencySlices.d.ts.map +1 -1
  56. package/dist/audit/orchestrator/dependencySlices.js +37 -3
  57. package/dist/audit/orchestrator/dependencySlices.js.map +1 -1
  58. package/dist/audit/orchestrator/designReviewProjection.d.ts +2 -6
  59. package/dist/audit/orchestrator/designReviewProjection.d.ts.map +1 -1
  60. package/dist/audit/orchestrator/designReviewProjection.js +2 -6
  61. package/dist/audit/orchestrator/designReviewProjection.js.map +1 -1
  62. package/dist/audit/orchestrator/designReviewPrompt.d.ts +2 -2
  63. package/dist/audit/orchestrator/designReviewPrompt.js +2 -2
  64. package/dist/audit/orchestrator/designReviewSnapshot.d.ts +2 -3
  65. package/dist/audit/orchestrator/designReviewSnapshot.d.ts.map +1 -1
  66. package/dist/audit/orchestrator/designReviewSnapshot.js +2 -3
  67. package/dist/audit/orchestrator/designReviewSnapshot.js.map +1 -1
  68. package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
  69. package/dist/audit/orchestrator/executorRunners.js +1 -22
  70. package/dist/audit/orchestrator/executorRunners.js.map +1 -1
  71. package/dist/audit/orchestrator/executors.d.ts.map +1 -1
  72. package/dist/audit/orchestrator/executors.js +0 -12
  73. package/dist/audit/orchestrator/executors.js.map +1 -1
  74. package/dist/audit/orchestrator/ingestionExecutors.d.ts.map +1 -1
  75. package/dist/audit/orchestrator/ingestionExecutors.js +38 -37
  76. package/dist/audit/orchestrator/ingestionExecutors.js.map +1 -1
  77. package/dist/audit/orchestrator/nextStep.d.ts +2 -28
  78. package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
  79. package/dist/audit/orchestrator/nextStep.js +4 -37
  80. package/dist/audit/orchestrator/nextStep.js.map +1 -1
  81. package/dist/audit/orchestrator/obligationDerive.d.ts +2 -3
  82. package/dist/audit/orchestrator/obligationDerive.d.ts.map +1 -1
  83. package/dist/audit/orchestrator/obligationDerive.js +2 -3
  84. package/dist/audit/orchestrator/obligationDerive.js.map +1 -1
  85. package/dist/audit/orchestrator/pendingTasks.d.ts +2 -0
  86. package/dist/audit/orchestrator/pendingTasks.d.ts.map +1 -1
  87. package/dist/audit/orchestrator/pendingTasks.js +5 -1
  88. package/dist/audit/orchestrator/pendingTasks.js.map +1 -1
  89. package/dist/audit/orchestrator/planningExecutors.d.ts.map +1 -1
  90. package/dist/audit/orchestrator/planningExecutors.js +9 -0
  91. package/dist/audit/orchestrator/planningExecutors.js.map +1 -1
  92. package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
  93. package/dist/audit/orchestrator/resultBaseline.d.ts +5 -5
  94. package/dist/audit/orchestrator/resultBaseline.d.ts.map +1 -1
  95. package/dist/audit/orchestrator/resultBaseline.js +24 -47
  96. package/dist/audit/orchestrator/resultBaseline.js.map +1 -1
  97. package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.d.ts.map +1 -1
  98. package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.js +2 -0
  99. package/dist/audit/orchestrator/selectiveDeepening/findingFollowup.js.map +1 -1
  100. package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
  101. package/dist/audit/orchestrator/staleness.js +14 -10
  102. package/dist/audit/orchestrator/staleness.js.map +1 -1
  103. package/dist/audit/orchestrator/state.js +1 -1
  104. package/dist/audit/orchestrator/state.js.map +1 -1
  105. package/dist/audit/orchestrator/synthesisExecutors.d.ts.map +1 -1
  106. package/dist/audit/orchestrator/synthesisExecutors.js +3 -0
  107. package/dist/audit/orchestrator/synthesisExecutors.js.map +1 -1
  108. package/dist/audit/types/auditState.d.ts +6 -6
  109. package/dist/audit/types/flowCoverage.d.ts +6 -6
  110. package/dist/audit/types.d.ts +24 -13
  111. package/dist/audit/types.d.ts.map +1 -1
  112. package/dist/audit/types.js +92 -11
  113. package/dist/audit/types.js.map +1 -1
  114. package/dist/remediate/contractPipeline/executionPlan.d.ts +1908 -0
  115. package/dist/remediate/contractPipeline/executionPlan.d.ts.map +1 -0
  116. package/dist/remediate/contractPipeline/executionPlan.js +467 -0
  117. package/dist/remediate/contractPipeline/executionPlan.js.map +1 -0
  118. package/dist/remediate/contractPipeline/runtimePlanAuthority.d.ts +12 -0
  119. package/dist/remediate/contractPipeline/runtimePlanAuthority.d.ts.map +1 -0
  120. package/dist/remediate/contractPipeline/runtimePlanAuthority.js +41 -0
  121. package/dist/remediate/contractPipeline/runtimePlanAuthority.js.map +1 -0
  122. package/dist/remediate/dedup/crossLensDedup.d.ts +3 -16
  123. package/dist/remediate/dedup/crossLensDedup.d.ts.map +1 -1
  124. package/dist/remediate/dedup/crossLensDedup.js +2 -32
  125. package/dist/remediate/dedup/crossLensDedup.js.map +1 -1
  126. package/dist/remediate/index.d.ts +2 -19
  127. package/dist/remediate/index.d.ts.map +1 -1
  128. package/dist/remediate/index.js +22 -138
  129. package/dist/remediate/index.js.map +1 -1
  130. package/dist/remediate/intake.d.ts +10 -10
  131. package/dist/remediate/intent/intentOrdering.d.ts +6 -8
  132. package/dist/remediate/intent/intentOrdering.d.ts.map +1 -1
  133. package/dist/remediate/intent/intentOrdering.js +24 -47
  134. package/dist/remediate/intent/intentOrdering.js.map +1 -1
  135. package/dist/remediate/phases/close.d.ts +25 -17
  136. package/dist/remediate/phases/close.d.ts.map +1 -1
  137. package/dist/remediate/phases/close.js +278 -218
  138. package/dist/remediate/phases/close.js.map +1 -1
  139. package/dist/remediate/phases/closeAcceptance.d.ts +42 -0
  140. package/dist/remediate/phases/closeAcceptance.d.ts.map +1 -0
  141. package/dist/remediate/phases/closeAcceptance.js +66 -0
  142. package/dist/remediate/phases/closeAcceptance.js.map +1 -0
  143. package/dist/remediate/phases/closeReviewProvenance.d.ts +1 -1
  144. package/dist/remediate/phases/closeReviewProvenance.d.ts.map +1 -1
  145. package/dist/remediate/phases/closeReviewProvenance.js +9 -8
  146. package/dist/remediate/phases/closeReviewProvenance.js.map +1 -1
  147. package/dist/remediate/phases/closeVerifyAnalyzerLeads.d.ts.map +1 -1
  148. package/dist/remediate/phases/closeVerifyAnalyzerLeads.js +11 -9
  149. package/dist/remediate/phases/closeVerifyAnalyzerLeads.js.map +1 -1
  150. package/dist/remediate/phases/closeVerifyHeadEvidence.d.ts +21 -86
  151. package/dist/remediate/phases/closeVerifyHeadEvidence.d.ts.map +1 -1
  152. package/dist/remediate/phases/closeVerifyHeadEvidence.js +30 -19
  153. package/dist/remediate/phases/closeVerifyHeadEvidence.js.map +1 -1
  154. package/dist/remediate/phases/plan.d.ts +3 -60
  155. package/dist/remediate/phases/plan.d.ts.map +1 -1
  156. package/dist/remediate/phases/plan.js +3 -227
  157. package/dist/remediate/phases/plan.js.map +1 -1
  158. package/dist/remediate/phases/triage.d.ts.map +1 -1
  159. package/dist/remediate/phases/triage.js +19 -30
  160. package/dist/remediate/phases/triage.js.map +1 -1
  161. package/dist/remediate/riskSignal.d.ts +9 -43
  162. package/dist/remediate/riskSignal.d.ts.map +1 -1
  163. package/dist/remediate/riskSignal.js +7 -28
  164. package/dist/remediate/riskSignal.js.map +1 -1
  165. package/dist/remediate/state/disposition.d.ts +2 -1
  166. package/dist/remediate/state/disposition.d.ts.map +1 -1
  167. package/dist/remediate/state/disposition.js +37 -1
  168. package/dist/remediate/state/disposition.js.map +1 -1
  169. package/dist/remediate/state/runIdentity.d.ts +2 -13
  170. package/dist/remediate/state/runIdentity.d.ts.map +1 -1
  171. package/dist/remediate/state/runIdentity.js +3 -13
  172. package/dist/remediate/state/runIdentity.js.map +1 -1
  173. package/dist/remediate/state/store.d.ts +12 -36
  174. package/dist/remediate/state/store.d.ts.map +1 -1
  175. package/dist/remediate/state/store.js +58 -150
  176. package/dist/remediate/state/store.js.map +1 -1
  177. package/dist/remediate/state/types.d.ts +406 -504
  178. package/dist/remediate/state/types.d.ts.map +1 -1
  179. package/dist/remediate/state/types.js +24 -104
  180. package/dist/remediate/state/types.js.map +1 -1
  181. package/dist/remediate/steps/contractPipeline.d.ts +7 -661
  182. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  183. package/dist/remediate/steps/contractPipeline.js +264 -3851
  184. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  185. package/dist/remediate/steps/contractPipelinePrompts.d.ts +20 -142
  186. package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
  187. package/dist/remediate/steps/contractPipelinePrompts.js +48 -581
  188. package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
  189. package/dist/remediate/steps/dispatch/contractConformanceReview.d.ts +4 -1
  190. package/dist/remediate/steps/dispatch/contractConformanceReview.d.ts.map +1 -1
  191. package/dist/remediate/steps/dispatch/contractConformanceReview.js +6 -3
  192. package/dist/remediate/steps/dispatch/contractConformanceReview.js.map +1 -1
  193. package/dist/remediate/steps/dispatch/hostContracts.d.ts +1 -1
  194. package/dist/remediate/steps/dispatch/hostContracts.d.ts.map +1 -1
  195. package/dist/remediate/steps/dispatch/hostHandoff.d.ts +4 -21
  196. package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
  197. package/dist/remediate/steps/dispatch/hostHandoff.js +161 -383
  198. package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
  199. package/dist/remediate/steps/finalGate.d.ts +34 -0
  200. package/dist/remediate/steps/finalGate.d.ts.map +1 -1
  201. package/dist/remediate/steps/finalGate.js +44 -4
  202. package/dist/remediate/steps/finalGate.js.map +1 -1
  203. package/dist/remediate/steps/frictionCloseout.d.ts +1 -30
  204. package/dist/remediate/steps/frictionCloseout.d.ts.map +1 -1
  205. package/dist/remediate/steps/frictionCloseout.js +6 -99
  206. package/dist/remediate/steps/frictionCloseout.js.map +1 -1
  207. package/dist/remediate/steps/nextStep.d.ts +2 -15
  208. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  209. package/dist/remediate/steps/nextStep.js +254 -1042
  210. package/dist/remediate/steps/nextStep.js.map +1 -1
  211. package/dist/remediate/steps/prompts.js +16 -16
  212. package/dist/remediate/steps/prompts.js.map +1 -1
  213. package/dist/remediate/steps/stepUtils.d.ts +1 -1
  214. package/dist/remediate/steps/stepUtils.d.ts.map +1 -1
  215. package/dist/remediate/steps/types.d.ts +1 -1
  216. package/dist/remediate/steps/types.d.ts.map +1 -1
  217. package/dist/remediate/steps/types.js +1 -1
  218. package/dist/remediate/steps/types.js.map +1 -1
  219. package/dist/remediate/types/options.d.ts +9 -0
  220. package/dist/remediate/types/options.d.ts.map +1 -1
  221. package/dist/remediate/validation/artifacts.d.ts.map +1 -1
  222. package/dist/remediate/validation/artifacts.js +10 -56
  223. package/dist/remediate/validation/artifacts.js.map +1 -1
  224. package/dist/remediate/validation/remediationState.d.ts +2 -2
  225. package/dist/remediate/validation/remediationState.d.ts.map +1 -1
  226. package/dist/remediate/validation/remediationState.js +17 -77
  227. package/dist/remediate/validation/remediationState.js.map +1 -1
  228. package/dist/remediate/validation/verificationReport.d.ts +3 -0
  229. package/dist/remediate/validation/verificationReport.d.ts.map +1 -0
  230. package/dist/remediate/validation/verificationReport.js +28 -0
  231. package/dist/remediate/validation/verificationReport.js.map +1 -0
  232. package/dist/shared/analyzers/types.d.ts +10 -10
  233. package/dist/shared/engine/obligationEngine.d.ts +2 -2
  234. package/dist/shared/friction/triage.d.ts +7 -28
  235. package/dist/shared/friction/triage.d.ts.map +1 -1
  236. package/dist/shared/friction/triage.js +7 -28
  237. package/dist/shared/friction/triage.js.map +1 -1
  238. package/dist/shared/graph/orderedReachability.js +1 -1
  239. package/dist/shared/graph/orderedReachability.js.map +1 -1
  240. package/dist/shared/index.d.ts +5 -6
  241. package/dist/shared/index.d.ts.map +1 -1
  242. package/dist/shared/index.js +3 -4
  243. package/dist/shared/index.js.map +1 -1
  244. package/dist/shared/loopCorePaths.d.ts.map +1 -1
  245. package/dist/shared/loopCorePaths.js +37 -5
  246. package/dist/shared/loopCorePaths.js.map +1 -1
  247. package/dist/shared/prompts.d.ts +24 -10
  248. package/dist/shared/prompts.d.ts.map +1 -1
  249. package/dist/shared/prompts.js +27 -13
  250. package/dist/shared/prompts.js.map +1 -1
  251. package/dist/shared/reReview/projectionDiff.d.ts.map +1 -1
  252. package/dist/shared/reReview/projectionDiff.js +6 -14
  253. package/dist/shared/reReview/projectionDiff.js.map +1 -1
  254. package/dist/shared/types/executionPlan.d.ts +416 -0
  255. package/dist/shared/types/executionPlan.d.ts.map +1 -0
  256. package/dist/shared/types/executionPlan.js +132 -0
  257. package/dist/shared/types/executionPlan.js.map +1 -0
  258. package/dist/shared/types/remediationOutcome.d.ts +1378 -12
  259. package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
  260. package/dist/shared/types/remediationOutcome.js +29 -1
  261. package/dist/shared/types/remediationOutcome.js.map +1 -1
  262. package/dist/shared/types/{contractPipeline/verification.d.ts → verificationReport.d.ts} +9 -37
  263. package/dist/shared/types/verificationReport.d.ts.map +1 -0
  264. package/dist/shared/types/verificationReport.js +4 -0
  265. package/dist/shared/types/verificationReport.js.map +1 -0
  266. package/dist/shared/validation/findingGrounding.d.ts +3 -5
  267. package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
  268. package/dist/shared/validation/findingGrounding.js +4 -7
  269. package/dist/shared/validation/findingGrounding.js.map +1 -1
  270. package/package.json +2 -1
  271. package/scripts/shared/primitives.mjs +20 -0
  272. package/skills/audit-code/SKILL.md +5 -12
  273. package/skills/audit-code/audit-code.prompt.md +5 -8
  274. package/skills/audit-code/opencode-command-template.txt +2 -2
  275. package/skills/remediate-code/SKILL.md +5 -7
  276. package/skills/remediate-code/remediate-code.prompt.md +5 -5
  277. package/dispatch/lens-definitions.json +0 -46
  278. package/dist/remediate/contractPipeline/artifactNames.d.ts +0 -8
  279. package/dist/remediate/contractPipeline/artifactNames.d.ts.map +0 -1
  280. package/dist/remediate/contractPipeline/artifactNames.js +0 -28
  281. package/dist/remediate/contractPipeline/artifactNames.js.map +0 -1
  282. package/dist/remediate/contractPipeline/artifactStore.d.ts +0 -219
  283. package/dist/remediate/contractPipeline/artifactStore.d.ts.map +0 -1
  284. package/dist/remediate/contractPipeline/artifactStore.js +0 -436
  285. package/dist/remediate/contractPipeline/artifactStore.js.map +0 -1
  286. package/dist/remediate/contractPipeline/changeClassification.d.ts +0 -130
  287. package/dist/remediate/contractPipeline/changeClassification.d.ts.map +0 -1
  288. package/dist/remediate/contractPipeline/changeClassification.js +0 -446
  289. package/dist/remediate/contractPipeline/changeClassification.js.map +0 -1
  290. package/dist/remediate/contractPipeline/contractReviewBinding.d.ts +0 -28
  291. package/dist/remediate/contractPipeline/contractReviewBinding.d.ts.map +0 -1
  292. package/dist/remediate/contractPipeline/contractReviewBinding.js +0 -75
  293. package/dist/remediate/contractPipeline/contractReviewBinding.js.map +0 -1
  294. package/dist/remediate/contractPipeline/counterexampleFingerprint.d.ts +0 -27
  295. package/dist/remediate/contractPipeline/counterexampleFingerprint.d.ts.map +0 -1
  296. package/dist/remediate/contractPipeline/counterexampleFingerprint.js +0 -37
  297. package/dist/remediate/contractPipeline/counterexampleFingerprint.js.map +0 -1
  298. package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts +0 -131
  299. package/dist/remediate/contractPipeline/cyclicSeamResolution.d.ts.map +0 -1
  300. package/dist/remediate/contractPipeline/cyclicSeamResolution.js +0 -257
  301. package/dist/remediate/contractPipeline/cyclicSeamResolution.js.map +0 -1
  302. package/dist/remediate/contractPipeline/derive.d.ts +0 -173
  303. package/dist/remediate/contractPipeline/derive.d.ts.map +0 -1
  304. package/dist/remediate/contractPipeline/derive.js +0 -477
  305. package/dist/remediate/contractPipeline/derive.js.map +0 -1
  306. package/dist/remediate/contractPipeline/finalizedContractFields.d.ts +0 -50
  307. package/dist/remediate/contractPipeline/finalizedContractFields.d.ts.map +0 -1
  308. package/dist/remediate/contractPipeline/finalizedContractFields.js +0 -77
  309. package/dist/remediate/contractPipeline/finalizedContractFields.js.map +0 -1
  310. package/dist/remediate/contractPipeline/idRegistry.d.ts +0 -144
  311. package/dist/remediate/contractPipeline/idRegistry.d.ts.map +0 -1
  312. package/dist/remediate/contractPipeline/idRegistry.js +0 -214
  313. package/dist/remediate/contractPipeline/idRegistry.js.map +0 -1
  314. package/dist/remediate/contractPipeline/obligationKinds.d.ts +0 -27
  315. package/dist/remediate/contractPipeline/obligationKinds.d.ts.map +0 -1
  316. package/dist/remediate/contractPipeline/obligationKinds.js +0 -18
  317. package/dist/remediate/contractPipeline/obligationKinds.js.map +0 -1
  318. package/dist/remediate/contractPipeline/phaseCut.d.ts +0 -125
  319. package/dist/remediate/contractPipeline/phaseCut.d.ts.map +0 -1
  320. package/dist/remediate/contractPipeline/phaseCut.js +0 -339
  321. package/dist/remediate/contractPipeline/phaseCut.js.map +0 -1
  322. package/dist/remediate/contractPipeline/phaseCutArtifact.d.ts +0 -31
  323. package/dist/remediate/contractPipeline/phaseCutArtifact.d.ts.map +0 -1
  324. package/dist/remediate/contractPipeline/phaseCutArtifact.js +0 -48
  325. package/dist/remediate/contractPipeline/phaseCutArtifact.js.map +0 -1
  326. package/dist/remediate/contractPipeline/repairState.d.ts +0 -110
  327. package/dist/remediate/contractPipeline/repairState.d.ts.map +0 -1
  328. package/dist/remediate/contractPipeline/repairState.js +0 -185
  329. package/dist/remediate/contractPipeline/repairState.js.map +0 -1
  330. package/dist/remediate/contractPipeline/reviewSnapshot.d.ts +0 -79
  331. package/dist/remediate/contractPipeline/reviewSnapshot.d.ts.map +0 -1
  332. package/dist/remediate/contractPipeline/reviewSnapshot.js +0 -140
  333. package/dist/remediate/contractPipeline/reviewSnapshot.js.map +0 -1
  334. package/dist/remediate/contractPipeline/semanticProjection.d.ts +0 -64
  335. package/dist/remediate/contractPipeline/semanticProjection.d.ts.map +0 -1
  336. package/dist/remediate/contractPipeline/semanticProjection.js +0 -136
  337. package/dist/remediate/contractPipeline/semanticProjection.js.map +0 -1
  338. package/dist/remediate/contractPipeline/sketchSource.d.ts +0 -194
  339. package/dist/remediate/contractPipeline/sketchSource.d.ts.map +0 -1
  340. package/dist/remediate/contractPipeline/sketchSource.js +0 -262
  341. package/dist/remediate/contractPipeline/sketchSource.js.map +0 -1
  342. package/dist/remediate/contractPipeline/testPlanCarry.d.ts +0 -17
  343. package/dist/remediate/contractPipeline/testPlanCarry.d.ts.map +0 -1
  344. package/dist/remediate/contractPipeline/testPlanCarry.js +0 -72
  345. package/dist/remediate/contractPipeline/testPlanCarry.js.map +0 -1
  346. package/dist/remediate/steps/dispatch/marshal.d.ts +0 -7
  347. package/dist/remediate/steps/dispatch/marshal.d.ts.map +0 -1
  348. package/dist/remediate/steps/dispatch/marshal.js +0 -11
  349. package/dist/remediate/steps/dispatch/marshal.js.map +0 -1
  350. package/dist/remediate/validation/contractPipeline.d.ts +0 -35
  351. package/dist/remediate/validation/contractPipeline.d.ts.map +0 -1
  352. package/dist/remediate/validation/contractPipeline.js +0 -613
  353. package/dist/remediate/validation/contractPipeline.js.map +0 -1
  354. package/dist/remediate/validation/contractPipelineGates.d.ts +0 -272
  355. package/dist/remediate/validation/contractPipelineGates.d.ts.map +0 -1
  356. package/dist/remediate/validation/contractPipelineGates.js +0 -1397
  357. package/dist/remediate/validation/contractPipelineGates.js.map +0 -1
  358. package/dist/shared/types/contractPipeline/design.d.ts +0 -79
  359. package/dist/shared/types/contractPipeline/design.d.ts.map +0 -1
  360. package/dist/shared/types/contractPipeline/design.js +0 -16
  361. package/dist/shared/types/contractPipeline/design.js.map +0 -1
  362. package/dist/shared/types/contractPipeline/goal.d.ts +0 -41
  363. package/dist/shared/types/contractPipeline/goal.d.ts.map +0 -1
  364. package/dist/shared/types/contractPipeline/goal.js +0 -10
  365. package/dist/shared/types/contractPipeline/goal.js.map +0 -1
  366. package/dist/shared/types/contractPipeline/implementation.d.ts +0 -118
  367. package/dist/shared/types/contractPipeline/implementation.d.ts.map +0 -1
  368. package/dist/shared/types/contractPipeline/implementation.js +0 -13
  369. package/dist/shared/types/contractPipeline/implementation.js.map +0 -1
  370. package/dist/shared/types/contractPipeline/obligations.d.ts +0 -283
  371. package/dist/shared/types/contractPipeline/obligations.d.ts.map +0 -1
  372. package/dist/shared/types/contractPipeline/obligations.js +0 -84
  373. package/dist/shared/types/contractPipeline/obligations.js.map +0 -1
  374. package/dist/shared/types/contractPipeline/verification.d.ts.map +0 -1
  375. package/dist/shared/types/contractPipeline/verification.js +0 -10
  376. package/dist/shared/types/contractPipeline/verification.js.map +0 -1
  377. package/dist/shared/types/contractPipeline.d.ts +0 -48
  378. package/dist/shared/types/contractPipeline.d.ts.map +0 -1
  379. package/dist/shared/types/contractPipeline.js +0 -32
  380. package/dist/shared/types/contractPipeline.js.map +0 -1
  381. package/dist/shared/types/obligationLedger.d.ts +0 -39
  382. package/dist/shared/types/obligationLedger.d.ts.map +0 -1
  383. package/dist/shared/types/obligationLedger.js +0 -49
  384. package/dist/shared/types/obligationLedger.js.map +0 -1
@@ -1,125 +0,0 @@
1
- /**
2
- * Deterministic phase-cut derivation (remediator auto-phasing, T3).
3
- *
4
- * When `/remediate-code` is pointed at an arbitrary N-goal input (e.g. the whole
5
- * backlog), the independent conceptual-design critique used to reject the run as
6
- * "over-scoped" and the HOST had to manually re-scope to a phase at intake. That
7
- * is the tool's job, not the host's: given the module-dependency DAG (the
8
- * producer/consumer `artifact:<name>` token edges declared in the contracts'
9
- * inputs/outputs), the tool derives a foundations→consumers
10
- * phase cut MECHANICALLY — ordered tiers where every module sits one tier below
11
- * the modules that depend on it. The critique is then handed the derived cut, so
12
- * it assesses design quality WITHIN a mechanically dependency-ordered phasing
13
- * rather than rejecting breadth (over-scoping is already handled by construction).
14
- *
15
- * Pure + deterministic (no I/O, no Date/Math.random, stable ordering): the same
16
- * modules always yield the same cut. Cycle-safe — a dependency cycle cannot be
17
- * topologically tiered, so its members are placed together at the tier just past
18
- * their highest acyclic dependency (named-sorted, fail toward a LATER tier so a
19
- * cyclic module never front-runs a real foundation it transitively needs).
20
- */
21
- import { moduleSlugForObligationId } from "./idRegistry.js";
22
- /** One module + the names of the other modules it depends on (its foundations). */
23
- export interface PhaseCutModule {
24
- name: string;
25
- /** Names of modules this module needs in place first (directional: this → dep). */
26
- depends_on: string[];
27
- }
28
- /** One derived phase: an ordered tier of modules that may be authored together. */
29
- export interface PhaseCutPhase {
30
- /** 0-based tier ordinal; 0 = foundations. */
31
- ordinal: number;
32
- /** Stable human label for the tier. */
33
- name: string;
34
- /** Module names in this tier, sorted for determinism. */
35
- modules: string[];
36
- }
37
- /** The derived phase cut: ordered tiers covering every module exactly once. */
38
- export interface PhaseCut {
39
- phases: PhaseCutPhase[];
40
- /** True when a dependency cycle was detected (its members were tiered together). */
41
- has_cycle: boolean;
42
- /** Module name → 0-based phase ordinal (foundations = 0). The downstream key. */
43
- module_phase: Record<string, number>;
44
- }
45
- /**
46
- * Derive the ordered phase cut from a module-dependency DAG. Each module's tier is
47
- * the length of its longest dependency chain (foundations = 0). Edges to unknown
48
- * module names are ignored (a `needs` on a module not in scope is not a phase
49
- * constraint here). Returns one phase per occupied tier, covering every module.
50
- */
51
- export declare function derivePhaseCut(modules: PhaseCutModule[]): PhaseCut;
52
- /**
53
- * The id fragment obligation ids encode — re-exported from the id registry,
54
- * which owns both this and the mint that produces `OBL-<slug>-…`, so encoder and
55
- * decoder cannot drift. Kept exported here because this module is where the
56
- * node→phase decoders live and import it from.
57
- */
58
- export { moduleSlug } from "./idRegistry.js";
59
- /**
60
- * Resolve the phase ordinal for an implementation-DAG node from the obligation
61
- * ids it discharges. Every derived obligation id is `OBL-<moduleSlug>-<suffix>`,
62
- * so the owning module (hence phase) is recoverable by the EXACT join in
63
- * `idRegistry.moduleSlugForObligationId` — no lossy slug reversal, and no
64
- * longest-prefix guess (that rule resolved `OBL-auth-service-…` to `auth`
65
- * whenever `auth-service` was not in the slug set, silently handing the node
66
- * another module's phase and file scope). A node spanning modules in several
67
- * phases takes the MAX ordinal (fail-toward-later: it cannot land before the
68
- * latest module it touches is reachable). A node whose obligations match no
69
- * in-scope module slug — a counterexample-only node, or an obligation from a
70
- * module dropped from the cut — defaults to the LAST phase (integration), never
71
- * front-running a foundation.
72
- *
73
- * `slugToOrdinal` is the module-phase map re-keyed by `moduleSlug(name)`.
74
- */
75
- export declare function phaseOrdinalForObligations(obligationIds: readonly string[], slugToOrdinal: Map<string, number>, lastOrdinal: number): number;
76
- export { moduleSlugForObligationId };
77
- /** One producer→consumer pairing and the artifact token that links it. */
78
- interface ArtifactTokenEdge {
79
- /** The depending module — it consumes the artifact. */
80
- consumer: string;
81
- /** The module it depends on — it produces the artifact. */
82
- producer: string;
83
- /** The normalized artifact name from the `artifact:<name>` token. */
84
- artifact: string;
85
- }
86
- /**
87
- * Build {@link PhaseCutModule}s from finalized module contracts. A module's
88
- * `depends_on` derives from producer/consumer artifact-token matching over
89
- * `inputs`/`outputs` ALONE. Drafted `neighbor_needs` never enter this graph
90
- * (open-bugs.md:106): they are symmetric coordination prose whose directions
91
- * per-module drafting agents routinely invert, and unioning them in let prose
92
- * override every declared token edge — finalization drops the field instead.
93
- * A module that consumes from another is one tier ABOVE it. Tolerant of
94
- * malformed payloads: anything unparseable contributes no module/edge.
95
- */
96
- export declare function phaseCutModulesFromContracts(contractsPayload: unknown): PhaseCutModule[];
97
- /** One declared-graph cycle: its member modules and the token edges among them. */
98
- export interface ContractTokenCycle {
99
- /** Cycle members, in stable input order. */
100
- members: string[];
101
- /** The consumer→producer token edges between cycle members. */
102
- edges: ArtifactTokenEdge[];
103
- }
104
- /**
105
- * Detect cycles in the DECLARED module-dependency graph — the producer/consumer
106
- * `artifact:` token edges of a module-contracts payload (drafted or finalized;
107
- * finalization copies `inputs`/`outputs` verbatim, so the two graphs are equal).
108
- * A cycle here is a VALIDATION error at the contract boundary (open-bugs.md:106):
109
- * the phase cut must never be derived over a cyclic declared graph, because the
110
- * fail-toward-later tiering silently drops a back-edge and places token
111
- * consumers ahead of their producers. Members and their linking edges are
112
- * reported so the repair prompt can name exactly which tokens form each cycle.
113
- */
114
- export declare function detectContractTokenCycles(contractsPayload: unknown): ContractTokenCycle[];
115
- /**
116
- * Add Path-A seam-preparation edges to the contract-derived module DAG. The
117
- * decomposition gate has already guaranteed one preparer per required seam;
118
- * this projection makes every implementation module for either participating
119
- * work block depend on that preparer, yielding a seam-first phase followed by
120
- * parallel refactor modules.
121
- */
122
- export declare function applyWorkBlockSeamDependencies(modules: PhaseCutModule[], moduleDecompositionPayload: unknown, pathASeedPayload: unknown): PhaseCutModule[];
123
- /** Render the derived phase cut as a markdown section for the critique prompt. */
124
- export declare function renderPhaseCutSection(cut: PhaseCut): string;
125
- //# sourceMappingURL=phaseCut.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phaseCut.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCut.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAI5D,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,mFAAmF;AACnF,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,+EAA+E;AAC/E,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,oFAAoF;IACpF,SAAS,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AASD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,QAAQ,CAiElE;AAED;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,WAAW,EAAE,MAAM,GAClB,MAAM,CAWR;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC;AA+BrC,0EAA0E;AAC1E,UAAU,iBAAiB;IACzB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAiDD;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,OAAO,GAAG,cAAc,EAAE,CAYxF;AAED,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,gBAAgB,EAAE,OAAO,GAAG,kBAAkB,EAAE,CAYzF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,cAAc,EAAE,EACzB,0BAA0B,EAAE,OAAO,EACnC,gBAAgB,EAAE,OAAO,GACxB,cAAc,EAAE,CAiElB;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAmB3D"}
@@ -1,339 +0,0 @@
1
- /**
2
- * Deterministic phase-cut derivation (remediator auto-phasing, T3).
3
- *
4
- * When `/remediate-code` is pointed at an arbitrary N-goal input (e.g. the whole
5
- * backlog), the independent conceptual-design critique used to reject the run as
6
- * "over-scoped" and the HOST had to manually re-scope to a phase at intake. That
7
- * is the tool's job, not the host's: given the module-dependency DAG (the
8
- * producer/consumer `artifact:<name>` token edges declared in the contracts'
9
- * inputs/outputs), the tool derives a foundations→consumers
10
- * phase cut MECHANICALLY — ordered tiers where every module sits one tier below
11
- * the modules that depend on it. The critique is then handed the derived cut, so
12
- * it assesses design quality WITHIN a mechanically dependency-ordered phasing
13
- * rather than rejecting breadth (over-scoping is already handled by construction).
14
- *
15
- * Pure + deterministic (no I/O, no Date/Math.random, stable ordering): the same
16
- * modules always yield the same cut. Cycle-safe — a dependency cycle cannot be
17
- * topologically tiered, so its members are placed together at the tier just past
18
- * their highest acyclic dependency (named-sorted, fail toward a LATER tier so a
19
- * cyclic module never front-runs a real foundation it transitively needs).
20
- */
21
- import { moduleSlugForObligationId } from "./idRegistry.js";
22
- import { compareCodeUnits } from "../../shared/compareCodeUnits.js";
23
- import { findCyclicComponents } from "../../shared/graph/directedCycles.js";
24
- /** Stable label for a tier ordinal. */
25
- function phaseName(ordinal, lastOrdinal) {
26
- if (ordinal === 0)
27
- return "foundations";
28
- if (ordinal === lastOrdinal)
29
- return "integration";
30
- return `consumers-${ordinal}`;
31
- }
32
- /**
33
- * Derive the ordered phase cut from a module-dependency DAG. Each module's tier is
34
- * the length of its longest dependency chain (foundations = 0). Edges to unknown
35
- * module names are ignored (a `needs` on a module not in scope is not a phase
36
- * constraint here). Returns one phase per occupied tier, covering every module.
37
- */
38
- export function derivePhaseCut(modules) {
39
- const names = modules.map((m) => m.name);
40
- const known = new Set(names);
41
- // Normalize edges: keep only deps that name a real in-scope module, drop self-edges.
42
- const deps = new Map();
43
- for (const m of modules) {
44
- deps.set(m.name, [...new Set(m.depends_on)].filter((d) => d !== m.name && known.has(d)));
45
- }
46
- // Longest-dependency-chain tier via memoized DFS with cycle detection. A node on
47
- // an active path (cycle) resolves to the max tier of its already-settled deps + 1
48
- // (fail toward a later tier), and the cycle flag is raised.
49
- const tier = new Map();
50
- const visiting = new Set();
51
- let hasCycle = false;
52
- const computeTier = (name) => {
53
- const cached = tier.get(name);
54
- if (cached !== undefined)
55
- return cached;
56
- if (visiting.has(name)) {
57
- // Back-edge: a cycle. Don't recurse through it; treat as no added depth here.
58
- hasCycle = true;
59
- return 0;
60
- }
61
- visiting.add(name);
62
- let maxDep = -1;
63
- // Sort deps for deterministic traversal (tier values are order-independent, but
64
- // keep traversal stable for predictability under future changes).
65
- for (const d of [...(deps.get(name) ?? [])].sort()) {
66
- maxDep = Math.max(maxDep, computeTier(d));
67
- }
68
- visiting.delete(name);
69
- const t = maxDep + 1;
70
- tier.set(name, t);
71
- return t;
72
- };
73
- for (const name of [...names].sort())
74
- computeTier(name);
75
- const lastOrdinal = Math.max(0, ...[...tier.values()]);
76
- const byTier = new Map();
77
- for (const [name, t] of tier) {
78
- const bucket = byTier.get(t) ?? [];
79
- bucket.push(name);
80
- byTier.set(t, bucket);
81
- }
82
- const phases = [];
83
- for (let ordinal = 0; ordinal <= lastOrdinal; ordinal++) {
84
- const members = byTier.get(ordinal);
85
- if (!members || members.length === 0)
86
- continue;
87
- phases.push({
88
- ordinal,
89
- name: phaseName(ordinal, lastOrdinal),
90
- modules: [...members].sort(),
91
- });
92
- }
93
- const module_phase = {};
94
- for (const [name, t] of tier)
95
- module_phase[name] = t;
96
- return { phases, has_cycle: hasCycle, module_phase };
97
- }
98
- /**
99
- * The id fragment obligation ids encode — re-exported from the id registry,
100
- * which owns both this and the mint that produces `OBL-<slug>-…`, so encoder and
101
- * decoder cannot drift. Kept exported here because this module is where the
102
- * node→phase decoders live and import it from.
103
- */
104
- export { moduleSlug } from "./idRegistry.js";
105
- /**
106
- * Resolve the phase ordinal for an implementation-DAG node from the obligation
107
- * ids it discharges. Every derived obligation id is `OBL-<moduleSlug>-<suffix>`,
108
- * so the owning module (hence phase) is recoverable by the EXACT join in
109
- * `idRegistry.moduleSlugForObligationId` — no lossy slug reversal, and no
110
- * longest-prefix guess (that rule resolved `OBL-auth-service-…` to `auth`
111
- * whenever `auth-service` was not in the slug set, silently handing the node
112
- * another module's phase and file scope). A node spanning modules in several
113
- * phases takes the MAX ordinal (fail-toward-later: it cannot land before the
114
- * latest module it touches is reachable). A node whose obligations match no
115
- * in-scope module slug — a counterexample-only node, or an obligation from a
116
- * module dropped from the cut — defaults to the LAST phase (integration), never
117
- * front-running a foundation.
118
- *
119
- * `slugToOrdinal` is the module-phase map re-keyed by `moduleSlug(name)`.
120
- */
121
- export function phaseOrdinalForObligations(obligationIds, slugToOrdinal, lastOrdinal) {
122
- const knownSlugs = new Set(slugToOrdinal.keys());
123
- let max = -1;
124
- let matchedAny = false;
125
- for (const id of obligationIds) {
126
- const slug = moduleSlugForObligationId(id, knownSlugs);
127
- if (slug === null)
128
- continue;
129
- max = Math.max(max, slugToOrdinal.get(slug) ?? 0);
130
- matchedAny = true;
131
- }
132
- return matchedAny ? max : lastOrdinal;
133
- }
134
- export { moduleSlugForObligationId };
135
- /**
136
- * A structured artifact reference embedded anywhere inside a module's free-prose
137
- * `inputs`/`outputs` string: the token `artifact:<name>`, where `<name>` is a
138
- * stable identifier (letters, digits, `_`, `-`, `.`, `/`). The rest of the string
139
- * stays human prose. A module PRODUCES every artifact token in its `outputs` and
140
- * CONSUMES every token in its `inputs`; the tool matches producer→consumer to
141
- * derive data-flow ordering, so the ordering is tool-enforced from the finalized
142
- * contracts rather than relying on the host to hand-add `depends_on` edges.
143
- * Matching is case-insensitive so `artifact:Roster` (produced) and `artifact:roster`
144
- * (consumed) still pair.
145
- */
146
- const ARTIFACT_TOKEN_PATTERN = /\bartifact:([A-Za-z0-9_./-]+)/gi;
147
- /** The normalized artifact names referenced by a module's inputs/outputs list. */
148
- function extractArtifactNames(entries) {
149
- const names = new Set();
150
- if (!Array.isArray(entries))
151
- return names;
152
- for (const entry of entries) {
153
- if (typeof entry !== "string")
154
- continue;
155
- for (const match of entry.matchAll(ARTIFACT_TOKEN_PATTERN)) {
156
- // Trim trailing separator/punctuation the greedy class may have swallowed
157
- // (e.g. a token ending a sentence: "artifact:roster.").
158
- const name = match[1].replace(/[._/-]+$/, "").toLowerCase();
159
- if (name.length > 0)
160
- names.add(name);
161
- }
162
- }
163
- return names;
164
- }
165
- /**
166
- * Derive the DECLARED module-dependency graph from producer/consumer artifact
167
- * tokens in the contracts' `inputs`/`outputs`. For each module M and each
168
- * artifact M consumes (an `artifact:<name>` token in M's `inputs`), M depends
169
- * on every OTHER module that produces that artifact (the token in its
170
- * `outputs`). Returns both the dependency map (module name → set of module
171
- * names that must run first) and the per-edge artifact attribution, so a cycle
172
- * can be reported with the exact tokens that form it. Tolerant of malformed
173
- * payloads: anything unparseable contributes no edge.
174
- */
175
- function deriveModuleArtifactGraph(contractsPayload) {
176
- const root = contractsPayload;
177
- const list = Array.isArray(root?.module_contracts) ? root.module_contracts : [];
178
- const producers = new Map(); // artifact name → producing modules
179
- const consumes = new Map(); // module name → consumed artifact names
180
- const moduleNames = [];
181
- for (const mod of list) {
182
- if (typeof mod !== "object" || mod === null)
183
- continue;
184
- const m = mod;
185
- if (typeof m.name !== "string" || m.name.length === 0)
186
- continue;
187
- moduleNames.push(m.name);
188
- for (const artifact of extractArtifactNames(m.outputs)) {
189
- const set = producers.get(artifact) ?? new Set();
190
- set.add(m.name);
191
- producers.set(artifact, set);
192
- }
193
- consumes.set(m.name, extractArtifactNames(m.inputs));
194
- }
195
- const deps = new Map();
196
- const edges = [];
197
- for (const name of moduleNames) {
198
- const set = new Set();
199
- for (const artifact of consumes.get(name) ?? []) {
200
- for (const producer of producers.get(artifact) ?? []) {
201
- if (producer === name)
202
- continue;
203
- set.add(producer);
204
- edges.push({ consumer: name, producer, artifact });
205
- }
206
- }
207
- deps.set(name, set);
208
- }
209
- return { deps, edges };
210
- }
211
- /**
212
- * Build {@link PhaseCutModule}s from finalized module contracts. A module's
213
- * `depends_on` derives from producer/consumer artifact-token matching over
214
- * `inputs`/`outputs` ALONE. Drafted `neighbor_needs` never enter this graph
215
- * (open-bugs.md:106): they are symmetric coordination prose whose directions
216
- * per-module drafting agents routinely invert, and unioning them in let prose
217
- * override every declared token edge — finalization drops the field instead.
218
- * A module that consumes from another is one tier ABOVE it. Tolerant of
219
- * malformed payloads: anything unparseable contributes no module/edge.
220
- */
221
- export function phaseCutModulesFromContracts(contractsPayload) {
222
- const root = contractsPayload;
223
- const list = Array.isArray(root?.module_contracts) ? root.module_contracts : [];
224
- const { deps } = deriveModuleArtifactGraph(contractsPayload);
225
- const out = [];
226
- for (const mod of list) {
227
- if (typeof mod !== "object" || mod === null)
228
- continue;
229
- const m = mod;
230
- if (typeof m.name !== "string" || m.name.length === 0)
231
- continue;
232
- out.push({ name: m.name, depends_on: [...(deps.get(m.name) ?? [])] });
233
- }
234
- return out;
235
- }
236
- /**
237
- * Detect cycles in the DECLARED module-dependency graph — the producer/consumer
238
- * `artifact:` token edges of a module-contracts payload (drafted or finalized;
239
- * finalization copies `inputs`/`outputs` verbatim, so the two graphs are equal).
240
- * A cycle here is a VALIDATION error at the contract boundary (open-bugs.md:106):
241
- * the phase cut must never be derived over a cyclic declared graph, because the
242
- * fail-toward-later tiering silently drops a back-edge and places token
243
- * consumers ahead of their producers. Members and their linking edges are
244
- * reported so the repair prompt can name exactly which tokens form each cycle.
245
- */
246
- export function detectContractTokenCycles(contractsPayload) {
247
- const { deps, edges } = deriveModuleArtifactGraph(contractsPayload);
248
- const components = findCyclicComponents([...deps.entries()].map(([id, dependsOn]) => ({ id, depends_on: [...dependsOn] })));
249
- return components.map((members) => {
250
- const memberSet = new Set(members);
251
- return {
252
- members,
253
- edges: edges.filter((e) => memberSet.has(e.consumer) && memberSet.has(e.producer)),
254
- };
255
- });
256
- }
257
- /**
258
- * Add Path-A seam-preparation edges to the contract-derived module DAG. The
259
- * decomposition gate has already guaranteed one preparer per required seam;
260
- * this projection makes every implementation module for either participating
261
- * work block depend on that preparer, yielding a seam-first phase followed by
262
- * parallel refactor modules.
263
- */
264
- export function applyWorkBlockSeamDependencies(modules, moduleDecompositionPayload, pathASeedPayload) {
265
- const decomposition = moduleDecompositionPayload;
266
- const decomposed = Array.isArray(decomposition?.modules) ? decomposition.modules : [];
267
- const seed = pathASeedPayload;
268
- const seams = Array.isArray(seed?.work_block_seams) ? seed.work_block_seams : [];
269
- if (decomposed.length === 0 || seams.length === 0)
270
- return modules;
271
- const sourceBlocksByModule = new Map();
272
- const preparerBySeam = new Map();
273
- for (const value of decomposed) {
274
- if (typeof value !== "object" || value === null)
275
- continue;
276
- const mod = value;
277
- if (typeof mod.name !== "string")
278
- continue;
279
- sourceBlocksByModule.set(mod.name, new Set(Array.isArray(mod.source_work_block_ids)
280
- ? mod.source_work_block_ids.filter((id) => typeof id === "string")
281
- : []));
282
- for (const seamId of Array.isArray(mod.prepares_seam_ids)
283
- ? mod.prepares_seam_ids
284
- : []) {
285
- if (typeof seamId === "string" && !preparerBySeam.has(seamId)) {
286
- preparerBySeam.set(seamId, mod.name);
287
- }
288
- }
289
- }
290
- const extraDeps = new Map();
291
- for (const value of seams) {
292
- if (typeof value !== "object" || value === null)
293
- continue;
294
- const seam = value;
295
- if (seam.requires_preparation !== true || typeof seam.id !== "string")
296
- continue;
297
- const preparer = preparerBySeam.get(seam.id);
298
- if (!preparer)
299
- continue;
300
- const blockIds = new Set(Array.isArray(seam.block_ids)
301
- ? seam.block_ids.filter((id) => typeof id === "string")
302
- : []);
303
- for (const [moduleName, sourceBlocks] of sourceBlocksByModule) {
304
- if (moduleName === preparer)
305
- continue;
306
- if (![...sourceBlocks].some((id) => blockIds.has(id)))
307
- continue;
308
- const deps = extraDeps.get(moduleName) ?? new Set();
309
- deps.add(preparer);
310
- extraDeps.set(moduleName, deps);
311
- }
312
- }
313
- return modules.map((module) => ({
314
- ...module,
315
- depends_on: [
316
- ...new Set([...module.depends_on, ...(extraDeps.get(module.name) ?? [])]),
317
- ].sort((a, b) => compareCodeUnits(a, b)),
318
- }));
319
- }
320
- /** Render the derived phase cut as a markdown section for the critique prompt. */
321
- export function renderPhaseCutSection(cut) {
322
- const lines = cut.phases.map((p) => `- **Phase ${p.ordinal} — ${p.name}** (${p.modules.length} module(s)): ${p.modules.join(", ")}`);
323
- return `## Mechanically-Derived Phase Cut
324
-
325
- This change is **not** executed as one monolithic landing. The tool derived the
326
- following ordered, dependency-gated phase cut from the module-dependency DAG —
327
- each phase's modules depend only on earlier phases, and the scheduler enforces the
328
- ordering with mechanical dependencies (a later-phase module cannot dispatch until
329
- its foundations are verified-complete, with a whole-repo green gate between phases):
330
-
331
- ${lines.join("\n")}
332
-
333
- Assess the **design quality** within this phasing. Do NOT reject the work as
334
- "over-scoped" or "too large for one change" — breadth is already handled by
335
- construction: the phases land incrementally, green at every commit. Flag a real
336
- design problem (a wrong boundary, a missing invariant, an unsound seam), not the
337
- number of modules.${cut.has_cycle ? "\n\n> NOTE: a dependency cycle was detected among the modules; its members were tiered together. A genuine circular dependency between modules is a design smell worth your scrutiny." : ""}`;
338
- }
339
- //# sourceMappingURL=phaseCut.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phaseCut.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCut.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * Phase-cut sidecar artifact (remediator auto-phasing, T3).
3
- *
4
- * The foundations→consumers phase cut derived by {@link derivePhaseCut} is a
5
- * DERIVED, deterministic artifact (a pure function of the finalized module
6
- * contracts' module-dependency DAG — producer/consumer `artifact:<name>` tokens
7
- * in `inputs`/`outputs` alone). It is persisted as a
8
- * first-class sidecar —
9
- * `intake/contract/phase_cut.json` — so the cut the conceptual critique sees and
10
- * the cut the implementation-DAG promotion enforces are ONE source, inspectable
11
- * on disk, not two inline recomputations that could drift.
12
- *
13
- * It is deliberately NOT a member of `CP_ARTIFACT_NAMES`: that enum drives the
14
- * LLM-phase staleness DAG and the phase-progression completeness checks, where an
15
- * "absent" entry perturbs sequencing. The cut is re-derivable on demand from
16
- * `finalized_module_contracts`, so it carries no staleness envelope — it is simply
17
- * (re)written whenever its single upstream is available, and read by consumers.
18
- */
19
- import { type PhaseCut } from "./phaseCut.js";
20
- export declare const PHASE_CUT_FILE = "phase_cut.json";
21
- export declare function phaseCutFilePath(artifactsDir: string): string;
22
- /** Read the persisted cut, or null if it has not been written yet. */
23
- export declare function readPhaseCutArtifact(artifactsDir: string): Promise<PhaseCut | null>;
24
- /**
25
- * Derive the cut from the on-disk `finalized_module_contracts` and (re)write the
26
- * sidecar. Idempotent: a finalized-contracts payload that yields the same DAG
27
- * yields byte-identical JSON. Returns the derived cut, or null when there are no
28
- * in-scope modules to phase (no finalized contracts on disk yet).
29
- */
30
- export declare function ensurePhaseCutArtifact(artifactsDir: string): Promise<PhaseCut | null>;
31
- //# sourceMappingURL=phaseCutArtifact.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phaseCutArtifact.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCutArtifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED,sEAAsE;AACtE,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAE1B;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAiB1B"}
@@ -1,48 +0,0 @@
1
- /**
2
- * Phase-cut sidecar artifact (remediator auto-phasing, T3).
3
- *
4
- * The foundations→consumers phase cut derived by {@link derivePhaseCut} is a
5
- * DERIVED, deterministic artifact (a pure function of the finalized module
6
- * contracts' module-dependency DAG — producer/consumer `artifact:<name>` tokens
7
- * in `inputs`/`outputs` alone). It is persisted as a
8
- * first-class sidecar —
9
- * `intake/contract/phase_cut.json` — so the cut the conceptual critique sees and
10
- * the cut the implementation-DAG promotion enforces are ONE source, inspectable
11
- * on disk, not two inline recomputations that could drift.
12
- *
13
- * It is deliberately NOT a member of `CP_ARTIFACT_NAMES`: that enum drives the
14
- * LLM-phase staleness DAG and the phase-progression completeness checks, where an
15
- * "absent" entry perturbs sequencing. The cut is re-derivable on demand from
16
- * `finalized_module_contracts`, so it carries no staleness envelope — it is simply
17
- * (re)written whenever its single upstream is available, and read by consumers.
18
- */
19
- import { join } from "node:path";
20
- import { readOptionalJsonFile, writeJsonFile } from "audit-tools/shared";
21
- import { contractPipelineDir, pathASeedFilePath, readContractArtifact, envelopePayload, } from "./artifactStore.js";
22
- import { derivePhaseCut, applyWorkBlockSeamDependencies, phaseCutModulesFromContracts, } from "./phaseCut.js";
23
- export const PHASE_CUT_FILE = "phase_cut.json";
24
- export function phaseCutFilePath(artifactsDir) {
25
- return join(contractPipelineDir(artifactsDir), PHASE_CUT_FILE);
26
- }
27
- /** Read the persisted cut, or null if it has not been written yet. */
28
- export async function readPhaseCutArtifact(artifactsDir) {
29
- return (await readOptionalJsonFile(phaseCutFilePath(artifactsDir))) ?? null;
30
- }
31
- /**
32
- * Derive the cut from the on-disk `finalized_module_contracts` and (re)write the
33
- * sidecar. Idempotent: a finalized-contracts payload that yields the same DAG
34
- * yields byte-identical JSON. Returns the derived cut, or null when there are no
35
- * in-scope modules to phase (no finalized contracts on disk yet).
36
- */
37
- export async function ensurePhaseCutArtifact(artifactsDir) {
38
- const finalized = envelopePayload(await readContractArtifact(artifactsDir, "finalized_module_contracts"));
39
- const decomposition = envelopePayload(await readContractArtifact(artifactsDir, "module_decomposition"));
40
- const pathASeed = await readOptionalJsonFile(pathASeedFilePath(artifactsDir));
41
- const modules = applyWorkBlockSeamDependencies(phaseCutModulesFromContracts(finalized), decomposition, pathASeed);
42
- if (modules.length === 0)
43
- return null;
44
- const cut = derivePhaseCut(modules);
45
- await writeJsonFile(phaseCutFilePath(artifactsDir), cut);
46
- return cut;
47
- }
48
- //# sourceMappingURL=phaseCutArtifact.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"phaseCutArtifact.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/phaseCutArtifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,cAAc,EACd,8BAA8B,EAC9B,4BAA4B,GAE7B,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AAE/C,MAAM,UAAU,gBAAgB,CAAC,YAAoB;IACnD,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,CAAC;AACjE,CAAC;AAED,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB;IAEpB,OAAO,CAAC,MAAM,oBAAoB,CAAW,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,YAAoB;IAEpB,MAAM,SAAS,GAAG,eAAe,CAC/B,MAAM,oBAAoB,CAAC,YAAY,EAAE,4BAA4B,CAAC,CACvE,CAAC;IACF,MAAM,aAAa,GAAG,eAAe,CACnC,MAAM,oBAAoB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CACjE,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAU,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,8BAA8B,CAC5C,4BAA4B,CAAC,SAAS,CAAC,EACvC,aAAa,EACb,SAAS,CACV,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,OAAO,GAAG,CAAC;AACb,CAAC"}