sdd-agent-platform 0.4.1 → 0.4.2

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 (722) hide show
  1. package/README.md +30 -28
  2. package/node_modules/@sdd-agent-platform/core/dist/ai-tools.js +67 -69
  3. package/node_modules/@sdd-agent-platform/core/dist/ai-tools.js.map +1 -1
  4. package/node_modules/@sdd-agent-platform/core/dist/artifacts/ingestion.js +64 -9
  5. package/node_modules/@sdd-agent-platform/core/dist/artifacts/ingestion.js.map +1 -1
  6. package/node_modules/@sdd-agent-platform/core/dist/artifacts/sdd-evidence.js +0 -1
  7. package/node_modules/@sdd-agent-platform/core/dist/artifacts/sdd-evidence.js.map +1 -1
  8. package/node_modules/@sdd-agent-platform/core/dist/artifacts/sdd-result.js +26 -17
  9. package/node_modules/@sdd-agent-platform/core/dist/artifacts/sdd-result.js.map +1 -1
  10. package/node_modules/@sdd-agent-platform/core/dist/config/init-project.d.ts +3 -0
  11. package/node_modules/@sdd-agent-platform/core/dist/config/init-project.js +12 -9
  12. package/node_modules/@sdd-agent-platform/core/dist/config/init-project.js.map +1 -1
  13. package/node_modules/@sdd-agent-platform/core/dist/config/project-config.d.ts +3 -1
  14. package/node_modules/@sdd-agent-platform/core/dist/config/project-config.js +7 -3
  15. package/node_modules/@sdd-agent-platform/core/dist/config/project-config.js.map +1 -1
  16. package/node_modules/@sdd-agent-platform/core/dist/config/starter-documents.d.ts +4 -4
  17. package/node_modules/@sdd-agent-platform/core/dist/config/starter-documents.js +12 -25
  18. package/node_modules/@sdd-agent-platform/core/dist/config/starter-documents.js.map +1 -1
  19. package/node_modules/@sdd-agent-platform/core/dist/context/build-package.d.ts +1 -1
  20. package/node_modules/@sdd-agent-platform/core/dist/context/build-package.js +1 -7
  21. package/node_modules/@sdd-agent-platform/core/dist/context/build-package.js.map +1 -1
  22. package/node_modules/@sdd-agent-platform/core/dist/context/evidence-summary.js +26 -8
  23. package/node_modules/@sdd-agent-platform/core/dist/context/evidence-summary.js.map +1 -1
  24. package/node_modules/@sdd-agent-platform/core/dist/context/log-worker.js +2 -2
  25. package/node_modules/@sdd-agent-platform/core/dist/context/log-worker.js.map +1 -1
  26. package/node_modules/@sdd-agent-platform/core/dist/context-offload/contracts.d.ts +1 -1
  27. package/node_modules/@sdd-agent-platform/core/dist/contracts.d.ts +2 -1
  28. package/node_modules/@sdd-agent-platform/core/dist/contracts.js +1 -0
  29. package/node_modules/@sdd-agent-platform/core/dist/contracts.js.map +1 -1
  30. package/node_modules/@sdd-agent-platform/core/dist/delegation/model.d.ts +3 -0
  31. package/node_modules/@sdd-agent-platform/core/dist/delegation/validation.d.ts +3 -0
  32. package/node_modules/@sdd-agent-platform/core/dist/delegation/validation.js +7 -4
  33. package/node_modules/@sdd-agent-platform/core/dist/delegation/validation.js.map +1 -1
  34. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/document-chain.js +1 -1
  35. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/document-chain.js.map +1 -1
  36. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/project.js +8 -8
  37. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/project.js.map +1 -1
  38. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/registries.js +0 -1
  39. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/registries.js.map +1 -1
  40. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/run-evidence.js +4 -4
  41. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/run-evidence.js.map +1 -1
  42. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/run-trust.js +0 -24
  43. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/run-trust.js.map +1 -1
  44. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/runtime-contracts.js +1 -1
  45. package/node_modules/@sdd-agent-platform/core/dist/doctor/checks/runtime-contracts.js.map +1 -1
  46. package/node_modules/@sdd-agent-platform/core/dist/doctor/doctor.js +178 -58
  47. package/node_modules/@sdd-agent-platform/core/dist/doctor/doctor.js.map +1 -1
  48. package/node_modules/@sdd-agent-platform/core/dist/evidence/lookup.js +14 -7
  49. package/node_modules/@sdd-agent-platform/core/dist/evidence/lookup.js.map +1 -1
  50. package/node_modules/@sdd-agent-platform/core/dist/evidence-runtime/contracts.d.ts +0 -1
  51. package/node_modules/@sdd-agent-platform/core/dist/execution/background-executor.js +4 -4
  52. package/node_modules/@sdd-agent-platform/core/dist/execution/background-executor.js.map +1 -1
  53. package/node_modules/@sdd-agent-platform/core/dist/execution/foreground-subagents.js +3 -3
  54. package/node_modules/@sdd-agent-platform/core/dist/execution/foreground-subagents.js.map +1 -1
  55. package/node_modules/@sdd-agent-platform/core/dist/execution/host-invocation.js +5 -4
  56. package/node_modules/@sdd-agent-platform/core/dist/execution/host-invocation.js.map +1 -1
  57. package/node_modules/@sdd-agent-platform/core/dist/execution/resident-worker.js +3 -2
  58. package/node_modules/@sdd-agent-platform/core/dist/execution/resident-worker.js.map +1 -1
  59. package/node_modules/@sdd-agent-platform/core/dist/execution/stage-team-runtime.js +2 -2
  60. package/node_modules/@sdd-agent-platform/core/dist/execution/stage-team-runtime.js.map +1 -1
  61. package/node_modules/@sdd-agent-platform/core/dist/governance/policy.d.ts +1 -1
  62. package/node_modules/@sdd-agent-platform/core/dist/governance/policy.js +1 -1
  63. package/node_modules/@sdd-agent-platform/core/dist/governance/policy.js.map +1 -1
  64. package/node_modules/@sdd-agent-platform/core/dist/instructions.d.ts +1 -1
  65. package/node_modules/@sdd-agent-platform/core/dist/instructions.js +54 -61
  66. package/node_modules/@sdd-agent-platform/core/dist/instructions.js.map +1 -1
  67. package/node_modules/@sdd-agent-platform/core/dist/lifecycle/decision-gate.js +1 -1
  68. package/node_modules/@sdd-agent-platform/core/dist/lifecycle/decision-gate.js.map +1 -1
  69. package/node_modules/@sdd-agent-platform/core/dist/lifecycle/ship.d.ts +1 -0
  70. package/node_modules/@sdd-agent-platform/core/dist/lifecycle/ship.js +24 -8
  71. package/node_modules/@sdd-agent-platform/core/dist/lifecycle/ship.js.map +1 -1
  72. package/node_modules/@sdd-agent-platform/core/dist/orchestration/contracts.d.ts +1 -1
  73. package/node_modules/@sdd-agent-platform/core/dist/orchestration/runtime.d.ts +12 -2
  74. package/node_modules/@sdd-agent-platform/core/dist/orchestration/runtime.js +62 -21
  75. package/node_modules/@sdd-agent-platform/core/dist/orchestration/runtime.js.map +1 -1
  76. package/node_modules/@sdd-agent-platform/core/dist/registries/agent-capability-catalog.d.ts +5 -2
  77. package/node_modules/@sdd-agent-platform/core/dist/registries/agent-capability-catalog.js +69 -27
  78. package/node_modules/@sdd-agent-platform/core/dist/registries/agent-capability-catalog.js.map +1 -1
  79. package/node_modules/@sdd-agent-platform/core/dist/registries/agent-registry.js +15 -15
  80. package/node_modules/@sdd-agent-platform/core/dist/registries/agent-registry.js.map +1 -1
  81. package/node_modules/@sdd-agent-platform/core/dist/registries/agent-runtime-static.js +1 -1
  82. package/node_modules/@sdd-agent-platform/core/dist/registries/agent-runtime-static.js.map +1 -1
  83. package/node_modules/@sdd-agent-platform/core/dist/registries/capability-sources.js +1 -1
  84. package/node_modules/@sdd-agent-platform/core/dist/registries/command-team-runtime.d.ts +1 -1
  85. package/node_modules/@sdd-agent-platform/core/dist/registries/command-team-runtime.js +9 -9
  86. package/node_modules/@sdd-agent-platform/core/dist/registries/command-team-runtime.js.map +1 -1
  87. package/node_modules/@sdd-agent-platform/core/dist/registries/eval-learning-context.js +4 -4
  88. package/node_modules/@sdd-agent-platform/core/dist/registries/eval-learning-context.js.map +1 -1
  89. package/node_modules/@sdd-agent-platform/core/dist/registries/query-status.js +2 -2
  90. package/node_modules/@sdd-agent-platform/core/dist/registries/query-status.js.map +1 -1
  91. package/node_modules/@sdd-agent-platform/core/dist/registries/tool-capabilities.js +3 -3
  92. package/node_modules/@sdd-agent-platform/core/dist/registries/tool-capabilities.js.map +1 -1
  93. package/node_modules/@sdd-agent-platform/core/dist/registries/tool-plugins.js +2 -2
  94. package/node_modules/@sdd-agent-platform/core/dist/registries/tool-plugins.js.map +1 -1
  95. package/node_modules/@sdd-agent-platform/core/dist/registries/worker-adapters.js +11 -11
  96. package/node_modules/@sdd-agent-platform/core/dist/registries/worker-adapters.js.map +1 -1
  97. package/node_modules/@sdd-agent-platform/core/dist/registries/workflow-gates.js +12 -12
  98. package/node_modules/@sdd-agent-platform/core/dist/registries/workflow-gates.js.map +1 -1
  99. package/node_modules/@sdd-agent-platform/core/dist/risk/contracts.d.ts +2 -2
  100. package/node_modules/@sdd-agent-platform/core/dist/risk/kernel.js +4 -4
  101. package/node_modules/@sdd-agent-platform/core/dist/risk/kernel.js.map +1 -1
  102. package/node_modules/@sdd-agent-platform/core/dist/risk/legacy-adapters.js +4 -7
  103. package/node_modules/@sdd-agent-platform/core/dist/risk/legacy-adapters.js.map +1 -1
  104. package/node_modules/@sdd-agent-platform/core/dist/risk/workflow-gates.d.ts +2 -2
  105. package/node_modules/@sdd-agent-platform/core/dist/risk/workflow-gates.js +19 -17
  106. package/node_modules/@sdd-agent-platform/core/dist/risk/workflow-gates.js.map +1 -1
  107. package/node_modules/@sdd-agent-platform/core/dist/router/agent-runtime-config.js +1 -1
  108. package/node_modules/@sdd-agent-platform/core/dist/router/agent-runtime-config.js.map +1 -1
  109. package/node_modules/@sdd-agent-platform/core/dist/router/agent-runtime.d.ts +2 -0
  110. package/node_modules/@sdd-agent-platform/core/dist/router/route-projection.js +1 -1
  111. package/node_modules/@sdd-agent-platform/core/dist/router/route-projection.js.map +1 -1
  112. package/node_modules/@sdd-agent-platform/core/dist/router/routing.js +45 -15
  113. package/node_modules/@sdd-agent-platform/core/dist/router/routing.js.map +1 -1
  114. package/node_modules/@sdd-agent-platform/core/dist/router/runtime-import.d.ts +28 -0
  115. package/node_modules/@sdd-agent-platform/core/dist/router/runtime-import.js +373 -0
  116. package/node_modules/@sdd-agent-platform/core/dist/router/runtime-import.js.map +1 -0
  117. package/node_modules/@sdd-agent-platform/core/dist/router/runtime-validation.js +2 -2
  118. package/node_modules/@sdd-agent-platform/core/dist/router/runtime-validation.js.map +1 -1
  119. package/node_modules/@sdd-agent-platform/core/dist/router/stage-route-binding.d.ts +37 -0
  120. package/node_modules/@sdd-agent-platform/core/dist/router/stage-route-binding.js +235 -0
  121. package/node_modules/@sdd-agent-platform/core/dist/router/stage-route-binding.js.map +1 -0
  122. package/node_modules/@sdd-agent-platform/core/dist/router.d.ts +2 -0
  123. package/node_modules/@sdd-agent-platform/core/dist/router.js +2 -0
  124. package/node_modules/@sdd-agent-platform/core/dist/router.js.map +1 -1
  125. package/node_modules/@sdd-agent-platform/core/dist/run-state/artifacts.d.ts +16 -0
  126. package/node_modules/@sdd-agent-platform/core/dist/run-state/artifacts.js +126 -9
  127. package/node_modules/@sdd-agent-platform/core/dist/run-state/artifacts.js.map +1 -1
  128. package/node_modules/@sdd-agent-platform/core/dist/run-state/inspect-run.d.ts +0 -2
  129. package/node_modules/@sdd-agent-platform/core/dist/run-state/inspect-run.js +7 -5
  130. package/node_modules/@sdd-agent-platform/core/dist/run-state/inspect-run.js.map +1 -1
  131. package/node_modules/@sdd-agent-platform/core/dist/run-state/model.d.ts +28 -8
  132. package/node_modules/@sdd-agent-platform/core/dist/run-state/run-index.d.ts +0 -2
  133. package/node_modules/@sdd-agent-platform/core/dist/run-state/run-index.js +1 -3
  134. package/node_modules/@sdd-agent-platform/core/dist/run-state/run-index.js.map +1 -1
  135. package/node_modules/@sdd-agent-platform/core/dist/run-state/run-state.js +37 -27
  136. package/node_modules/@sdd-agent-platform/core/dist/run-state/run-state.js.map +1 -1
  137. package/node_modules/@sdd-agent-platform/core/dist/run-state/task-evidence.d.ts +5 -2
  138. package/node_modules/@sdd-agent-platform/core/dist/run-state/task-evidence.js +53 -14
  139. package/node_modules/@sdd-agent-platform/core/dist/run-state/task-evidence.js.map +1 -1
  140. package/node_modules/@sdd-agent-platform/core/dist/run-state/timing.d.ts +8 -0
  141. package/node_modules/@sdd-agent-platform/core/dist/run-state/timing.js +131 -0
  142. package/node_modules/@sdd-agent-platform/core/dist/run-state/timing.js.map +1 -0
  143. package/node_modules/@sdd-agent-platform/core/dist/run-state.d.ts +1 -0
  144. package/node_modules/@sdd-agent-platform/core/dist/run-state.js +1 -0
  145. package/node_modules/@sdd-agent-platform/core/dist/run-state.js.map +1 -1
  146. package/node_modules/@sdd-agent-platform/core/dist/runtime-analysis/build.js +0 -3
  147. package/node_modules/@sdd-agent-platform/core/dist/runtime-analysis/build.js.map +1 -1
  148. package/node_modules/@sdd-agent-platform/core/dist/runtime-analysis/findings.js +5 -44
  149. package/node_modules/@sdd-agent-platform/core/dist/runtime-analysis/findings.js.map +1 -1
  150. package/node_modules/@sdd-agent-platform/core/dist/runtime-analysis/model.d.ts +1 -17
  151. package/node_modules/@sdd-agent-platform/core/dist/runtime-paths.d.ts +10 -0
  152. package/node_modules/@sdd-agent-platform/core/dist/runtime-paths.js +65 -0
  153. package/node_modules/@sdd-agent-platform/core/dist/runtime-paths.js.map +1 -1
  154. package/node_modules/@sdd-agent-platform/core/dist/runtime-projection-p0.d.ts +64 -0
  155. package/node_modules/@sdd-agent-platform/core/dist/runtime-projection-p0.js +200 -0
  156. package/node_modules/@sdd-agent-platform/core/dist/runtime-projection-p0.js.map +1 -0
  157. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/document-hashes.d.ts +2 -0
  158. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/document-hashes.js +97 -10
  159. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/document-hashes.js.map +1 -1
  160. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/run-binding.d.ts +1 -1
  161. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/run-binding.js +8 -6
  162. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/run-binding.js.map +1 -1
  163. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/task-parser.d.ts +1 -0
  164. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/task-parser.js +55 -34
  165. package/node_modules/@sdd-agent-platform/core/dist/sdd-docs/task-parser.js.map +1 -1
  166. package/node_modules/@sdd-agent-platform/core/dist/stage-artifacts.d.ts +55 -0
  167. package/node_modules/@sdd-agent-platform/core/dist/stage-artifacts.js +322 -0
  168. package/node_modules/@sdd-agent-platform/core/dist/stage-artifacts.js.map +1 -0
  169. package/node_modules/@sdd-agent-platform/core/dist/stage-collaboration-contracts.d.ts +55 -0
  170. package/node_modules/@sdd-agent-platform/core/dist/stage-collaboration-contracts.js +241 -0
  171. package/node_modules/@sdd-agent-platform/core/dist/stage-collaboration-contracts.js.map +1 -0
  172. package/node_modules/@sdd-agent-platform/core/dist/stage-collaboration.d.ts +888 -0
  173. package/node_modules/@sdd-agent-platform/core/dist/stage-collaboration.js +3870 -0
  174. package/node_modules/@sdd-agent-platform/core/dist/stage-collaboration.js.map +1 -0
  175. package/node_modules/@sdd-agent-platform/core/dist/stage-runtime/runtime.js +8 -1
  176. package/node_modules/@sdd-agent-platform/core/dist/stage-runtime/runtime.js.map +1 -1
  177. package/node_modules/@sdd-agent-platform/core/dist/status/project-status.d.ts +44 -1
  178. package/node_modules/@sdd-agent-platform/core/dist/status/project-status.js +170 -23
  179. package/node_modules/@sdd-agent-platform/core/dist/status/project-status.js.map +1 -1
  180. package/node_modules/@sdd-agent-platform/core/dist/storage/runtime-store.d.ts +170 -18
  181. package/node_modules/@sdd-agent-platform/core/dist/storage/runtime-store.js +544 -32
  182. package/node_modules/@sdd-agent-platform/core/dist/storage/runtime-store.js.map +1 -1
  183. package/node_modules/@sdd-agent-platform/core/dist/subagents/contracts.d.ts +1 -1
  184. package/node_modules/@sdd-agent-platform/core/dist/subagents/runtime.js +7 -7
  185. package/node_modules/@sdd-agent-platform/core/dist/subagents/runtime.js.map +1 -1
  186. package/node_modules/@sdd-agent-platform/core/dist/test-support/fixtures.js +1 -1
  187. package/node_modules/@sdd-agent-platform/core/dist/test-support/run-state.d.ts +1 -1
  188. package/node_modules/@sdd-agent-platform/core/dist/test-support/run-state.js +8 -23
  189. package/node_modules/@sdd-agent-platform/core/dist/test-support/run-state.js.map +1 -1
  190. package/node_modules/@sdd-agent-platform/core/dist/truth-reconciliation.d.ts +44 -0
  191. package/node_modules/@sdd-agent-platform/core/dist/truth-reconciliation.js +138 -0
  192. package/node_modules/@sdd-agent-platform/core/dist/truth-reconciliation.js.map +1 -0
  193. package/node_modules/@sdd-agent-platform/core/dist/tsconfig.tsbuildinfo +1 -1
  194. package/node_modules/@sdd-agent-platform/core/dist/verification/goal-verify.d.ts +0 -1
  195. package/node_modules/@sdd-agent-platform/core/dist/verification/goal-verify.js +28 -53
  196. package/node_modules/@sdd-agent-platform/core/dist/verification/goal-verify.js.map +1 -1
  197. package/node_modules/@sdd-agent-platform/core/dist/verification/rendering.d.ts +0 -2
  198. package/node_modules/@sdd-agent-platform/core/dist/verification/rendering.js +10 -50
  199. package/node_modules/@sdd-agent-platform/core/dist/verification/rendering.js.map +1 -1
  200. package/node_modules/@sdd-agent-platform/core/dist/verification/single-task-loop.d.ts +0 -1
  201. package/node_modules/@sdd-agent-platform/core/dist/verification/single-task-loop.js +159 -150
  202. package/node_modules/@sdd-agent-platform/core/dist/verification/single-task-loop.js.map +1 -1
  203. package/node_modules/@sdd-agent-platform/core/dist/verification/test-runtime.d.ts +12 -2
  204. package/node_modules/@sdd-agent-platform/core/dist/verification/test-runtime.js +238 -103
  205. package/node_modules/@sdd-agent-platform/core/dist/verification/test-runtime.js.map +1 -1
  206. package/node_modules/@sdd-agent-platform/core/dist/verification/validation-cache.d.ts +26 -0
  207. package/node_modules/@sdd-agent-platform/core/dist/verification/validation-cache.js +73 -0
  208. package/node_modules/@sdd-agent-platform/core/dist/verification/validation-cache.js.map +1 -0
  209. package/node_modules/@sdd-agent-platform/core/dist/verification/validation-wave.d.ts +18 -0
  210. package/node_modules/@sdd-agent-platform/core/dist/verification/validation-wave.js +27 -5
  211. package/node_modules/@sdd-agent-platform/core/dist/verification/validation-wave.js.map +1 -1
  212. package/node_modules/@sdd-agent-platform/core/dist/verification/verify-contract.d.ts +1 -1
  213. package/node_modules/@sdd-agent-platform/core/dist/verification/verify-contract.js +9 -32
  214. package/node_modules/@sdd-agent-platform/core/dist/verification/verify-contract.js.map +1 -1
  215. package/node_modules/@sdd-agent-platform/core/dist/work-units/contracts.d.ts +1 -1
  216. package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/evidence-packet.js +228 -15
  217. package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/evidence-packet.js.map +1 -1
  218. package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/hard-checks.js +49 -15
  219. package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/hard-checks.js.map +1 -1
  220. package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/policy.js +42 -6
  221. package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/policy.js.map +1 -1
  222. package/node_modules/@sdd-agent-platform/core/dist/workflow-gate/types.d.ts +4 -5
  223. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/affected-file-conflicts.d.ts +0 -1
  224. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/affected-file-conflicts.js +1 -2
  225. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/affected-file-conflicts.js.map +1 -1
  226. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/dependencies.js +1 -1
  227. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/latest-eligible-run.d.ts +0 -1
  228. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/latest-eligible-run.js +72 -6
  229. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/latest-eligible-run.js.map +1 -1
  230. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/migration-recovery.d.ts +40 -0
  231. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/migration-recovery.js +110 -0
  232. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/migration-recovery.js.map +1 -0
  233. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/repair-contract.d.ts +12 -0
  234. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/repair-contract.js +63 -0
  235. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/repair-contract.js.map +1 -0
  236. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve-task-run.d.ts +21 -0
  237. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve-task-run.js +95 -0
  238. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve-task-run.js.map +1 -0
  239. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve.d.ts +55 -5
  240. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve.js +538 -34
  241. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/resolve.js.map +1 -1
  242. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/runtime-projections.d.ts +228 -0
  243. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/runtime-projections.js +452 -0
  244. package/node_modules/@sdd-agent-platform/core/dist/workflow-state/runtime-projections.js.map +1 -0
  245. package/node_modules/@sdd-agent-platform/core/package.json +3 -3
  246. package/node_modules/@sdd-agent-platform/core/src/ai-tools.test.ts +49 -1
  247. package/node_modules/@sdd-agent-platform/core/src/ai-tools.ts +67 -69
  248. package/node_modules/@sdd-agent-platform/core/src/artifacts/ingestion.test.ts +38 -0
  249. package/node_modules/@sdd-agent-platform/core/src/artifacts/ingestion.ts +65 -9
  250. package/node_modules/@sdd-agent-platform/core/src/artifacts/sdd-evidence.ts +0 -1
  251. package/node_modules/@sdd-agent-platform/core/src/artifacts/sdd-result.test.ts +2 -2
  252. package/node_modules/@sdd-agent-platform/core/src/artifacts/sdd-result.ts +26 -17
  253. package/node_modules/@sdd-agent-platform/core/src/config/init-project.test.ts +43 -31
  254. package/node_modules/@sdd-agent-platform/core/src/config/init-project.ts +14 -11
  255. package/node_modules/@sdd-agent-platform/core/src/config/project-config.ts +10 -4
  256. package/node_modules/@sdd-agent-platform/core/src/config/starter-documents.ts +12 -25
  257. package/node_modules/@sdd-agent-platform/core/src/context/build-package.ts +2 -8
  258. package/node_modules/@sdd-agent-platform/core/src/context/context-build.test.ts +3 -2
  259. package/node_modules/@sdd-agent-platform/core/src/context/evidence-summary.ts +27 -8
  260. package/node_modules/@sdd-agent-platform/core/src/context/log-worker.ts +2 -2
  261. package/node_modules/@sdd-agent-platform/core/src/context-offload/contracts.ts +1 -1
  262. package/node_modules/@sdd-agent-platform/core/src/contracts.ts +2 -1
  263. package/node_modules/@sdd-agent-platform/core/src/delegation/model.ts +3 -0
  264. package/node_modules/@sdd-agent-platform/core/src/delegation/validation.ts +8 -5
  265. package/node_modules/@sdd-agent-platform/core/src/doctor/checks/document-chain.ts +1 -1
  266. package/node_modules/@sdd-agent-platform/core/src/doctor/checks/project.ts +8 -8
  267. package/node_modules/@sdd-agent-platform/core/src/doctor/checks/registries.ts +0 -1
  268. package/node_modules/@sdd-agent-platform/core/src/doctor/checks/run-evidence.ts +4 -4
  269. package/node_modules/@sdd-agent-platform/core/src/doctor/checks/run-trust.ts +0 -21
  270. package/node_modules/@sdd-agent-platform/core/src/doctor/checks/runtime-contracts.ts +1 -1
  271. package/node_modules/@sdd-agent-platform/core/src/doctor/doctor.test.ts +143 -45
  272. package/node_modules/@sdd-agent-platform/core/src/doctor/doctor.ts +193 -58
  273. package/node_modules/@sdd-agent-platform/core/src/evidence/lookup.ts +15 -7
  274. package/node_modules/@sdd-agent-platform/core/src/evidence-runtime/contracts.ts +0 -1
  275. package/node_modules/@sdd-agent-platform/core/src/execution/background-executor.test.ts +50 -2
  276. package/node_modules/@sdd-agent-platform/core/src/execution/background-executor.ts +4 -4
  277. package/node_modules/@sdd-agent-platform/core/src/execution/foreground-subagents.test.ts +11 -2
  278. package/node_modules/@sdd-agent-platform/core/src/execution/foreground-subagents.ts +3 -3
  279. package/node_modules/@sdd-agent-platform/core/src/execution/host-invocation.ts +5 -4
  280. package/node_modules/@sdd-agent-platform/core/src/execution/resident-worker.test.ts +12 -1
  281. package/node_modules/@sdd-agent-platform/core/src/execution/resident-worker.ts +3 -2
  282. package/node_modules/@sdd-agent-platform/core/src/execution/stage-team-runtime.test.ts +1 -1
  283. package/node_modules/@sdd-agent-platform/core/src/execution/stage-team-runtime.ts +2 -2
  284. package/node_modules/@sdd-agent-platform/core/src/execution/wave-executor.test.ts +10 -0
  285. package/node_modules/@sdd-agent-platform/core/src/governance/policy.test.ts +8 -0
  286. package/node_modules/@sdd-agent-platform/core/src/governance/policy.ts +2 -2
  287. package/node_modules/@sdd-agent-platform/core/src/instructions.test.ts +33 -18
  288. package/node_modules/@sdd-agent-platform/core/src/instructions.ts +55 -62
  289. package/node_modules/@sdd-agent-platform/core/src/lifecycle/decision-gate.test.ts +1 -1
  290. package/node_modules/@sdd-agent-platform/core/src/lifecycle/decision-gate.ts +1 -1
  291. package/node_modules/@sdd-agent-platform/core/src/lifecycle/ship.test.ts +47 -0
  292. package/node_modules/@sdd-agent-platform/core/src/lifecycle/ship.ts +25 -8
  293. package/node_modules/@sdd-agent-platform/core/src/orchestration/contracts.ts +1 -1
  294. package/node_modules/@sdd-agent-platform/core/src/orchestration/runtime.ts +74 -22
  295. package/node_modules/@sdd-agent-platform/core/src/phase8-contracts.test.ts +2 -3
  296. package/node_modules/@sdd-agent-platform/core/src/phase8-risk-kernel.test.ts +3 -3
  297. package/node_modules/@sdd-agent-platform/core/src/registries/agent-capability-catalog.ts +82 -35
  298. package/node_modules/@sdd-agent-platform/core/src/registries/agent-registry.ts +15 -15
  299. package/node_modules/@sdd-agent-platform/core/src/registries/agent-runtime-static.ts +1 -1
  300. package/node_modules/@sdd-agent-platform/core/src/registries/capability-sources.ts +1 -1
  301. package/node_modules/@sdd-agent-platform/core/src/registries/command-team-runtime.ts +10 -10
  302. package/node_modules/@sdd-agent-platform/core/src/registries/eval-learning-context.ts +4 -4
  303. package/node_modules/@sdd-agent-platform/core/src/registries/query-status.ts +2 -2
  304. package/node_modules/@sdd-agent-platform/core/src/registries/registries.test.ts +18 -2
  305. package/node_modules/@sdd-agent-platform/core/src/registries/tool-capabilities.ts +3 -3
  306. package/node_modules/@sdd-agent-platform/core/src/registries/tool-plugins.ts +2 -2
  307. package/node_modules/@sdd-agent-platform/core/src/registries/worker-adapters.ts +11 -11
  308. package/node_modules/@sdd-agent-platform/core/src/registries/workflow-gates.ts +12 -12
  309. package/node_modules/@sdd-agent-platform/core/src/risk/contracts.ts +2 -2
  310. package/node_modules/@sdd-agent-platform/core/src/risk/kernel.ts +4 -4
  311. package/node_modules/@sdd-agent-platform/core/src/risk/legacy-adapters.ts +4 -7
  312. package/node_modules/@sdd-agent-platform/core/src/risk/workflow-gates.ts +20 -18
  313. package/node_modules/@sdd-agent-platform/core/src/router/agent-runtime-config.ts +1 -1
  314. package/node_modules/@sdd-agent-platform/core/src/router/agent-runtime.ts +2 -0
  315. package/node_modules/@sdd-agent-platform/core/src/router/route-projection.ts +1 -1
  316. package/node_modules/@sdd-agent-platform/core/src/router/route-sdd-task.test.ts +241 -4
  317. package/node_modules/@sdd-agent-platform/core/src/router/routing.ts +47 -15
  318. package/node_modules/@sdd-agent-platform/core/src/router/runtime-import.ts +453 -0
  319. package/node_modules/@sdd-agent-platform/core/src/router/runtime-validation.ts +2 -2
  320. package/node_modules/@sdd-agent-platform/core/src/router/stage-route-binding.ts +279 -0
  321. package/node_modules/@sdd-agent-platform/core/src/router.ts +2 -0
  322. package/node_modules/@sdd-agent-platform/core/src/run-state/artifacts.ts +132 -10
  323. package/node_modules/@sdd-agent-platform/core/src/run-state/inspect-run.ts +7 -7
  324. package/node_modules/@sdd-agent-platform/core/src/run-state/model.ts +31 -8
  325. package/node_modules/@sdd-agent-platform/core/src/run-state/run-index.ts +1 -5
  326. package/node_modules/@sdd-agent-platform/core/src/run-state/run-state.test.ts +50 -2
  327. package/node_modules/@sdd-agent-platform/core/src/run-state/run-state.ts +39 -29
  328. package/node_modules/@sdd-agent-platform/core/src/run-state/task-evidence.ts +62 -16
  329. package/node_modules/@sdd-agent-platform/core/src/run-state/timing.ts +146 -0
  330. package/node_modules/@sdd-agent-platform/core/src/run-state.ts +1 -0
  331. package/node_modules/@sdd-agent-platform/core/src/runtime-analysis/build.ts +0 -3
  332. package/node_modules/@sdd-agent-platform/core/src/runtime-analysis/findings.ts +6 -46
  333. package/node_modules/@sdd-agent-platform/core/src/runtime-analysis/model.ts +1 -13
  334. package/node_modules/@sdd-agent-platform/core/src/runtime-analysis.test.ts +0 -2
  335. package/node_modules/@sdd-agent-platform/core/src/runtime-paths.ts +77 -0
  336. package/node_modules/@sdd-agent-platform/core/src/runtime-projection-p0.test.ts +96 -0
  337. package/node_modules/@sdd-agent-platform/core/src/runtime-projection-p0.ts +292 -0
  338. package/node_modules/@sdd-agent-platform/core/src/sdd-docs/document-hashes.ts +109 -10
  339. package/node_modules/@sdd-agent-platform/core/src/sdd-docs/run-binding.ts +8 -6
  340. package/node_modules/@sdd-agent-platform/core/src/sdd-docs/task-parser.test.ts +123 -1
  341. package/node_modules/@sdd-agent-platform/core/src/sdd-docs/task-parser.ts +58 -43
  342. package/node_modules/@sdd-agent-platform/core/src/stage-artifacts.ts +450 -0
  343. package/node_modules/@sdd-agent-platform/core/src/stage-collaboration-contracts.ts +322 -0
  344. package/node_modules/@sdd-agent-platform/core/src/stage-collaboration.test.ts +2903 -0
  345. package/node_modules/@sdd-agent-platform/core/src/stage-collaboration.ts +5831 -0
  346. package/node_modules/@sdd-agent-platform/core/src/stage-runtime/runtime.test.ts +1 -1
  347. package/node_modules/@sdd-agent-platform/core/src/stage-runtime/runtime.ts +9 -1
  348. package/node_modules/@sdd-agent-platform/core/src/status/project-status.test.ts +239 -16
  349. package/node_modules/@sdd-agent-platform/core/src/status/project-status.ts +249 -23
  350. package/node_modules/@sdd-agent-platform/core/src/storage/runtime-store.test.ts +196 -4
  351. package/node_modules/@sdd-agent-platform/core/src/storage/runtime-store.ts +860 -54
  352. package/node_modules/@sdd-agent-platform/core/src/subagents/contracts.ts +1 -1
  353. package/node_modules/@sdd-agent-platform/core/src/subagents/runtime.test.ts +3 -3
  354. package/node_modules/@sdd-agent-platform/core/src/subagents/runtime.ts +7 -7
  355. package/node_modules/@sdd-agent-platform/core/src/test-support/fixtures.ts +1 -1
  356. package/node_modules/@sdd-agent-platform/core/src/test-support/run-state.ts +9 -23
  357. package/node_modules/@sdd-agent-platform/core/src/truth-reconciliation.test.ts +72 -0
  358. package/node_modules/@sdd-agent-platform/core/src/truth-reconciliation.ts +177 -0
  359. package/node_modules/@sdd-agent-platform/core/src/verification/goal-verify.test.ts +13 -87
  360. package/node_modules/@sdd-agent-platform/core/src/verification/goal-verify.ts +27 -56
  361. package/node_modules/@sdd-agent-platform/core/src/verification/rendering.ts +10 -54
  362. package/node_modules/@sdd-agent-platform/core/src/verification/review-gate.test.ts +8 -1
  363. package/node_modules/@sdd-agent-platform/core/src/verification/single-task-loop.test.ts +93 -79
  364. package/node_modules/@sdd-agent-platform/core/src/verification/single-task-loop.ts +166 -154
  365. package/node_modules/@sdd-agent-platform/core/src/verification/test-runtime.test.ts +100 -47
  366. package/node_modules/@sdd-agent-platform/core/src/verification/test-runtime.ts +265 -107
  367. package/node_modules/@sdd-agent-platform/core/src/verification/validation-cache.ts +106 -0
  368. package/node_modules/@sdd-agent-platform/core/src/verification/validation-wave.test.ts +47 -5
  369. package/node_modules/@sdd-agent-platform/core/src/verification/validation-wave.ts +48 -5
  370. package/node_modules/@sdd-agent-platform/core/src/verification/verify-contract.test.ts +15 -31
  371. package/node_modules/@sdd-agent-platform/core/src/verification/verify-contract.ts +9 -33
  372. package/node_modules/@sdd-agent-platform/core/src/work-units/contracts.ts +1 -1
  373. package/node_modules/@sdd-agent-platform/core/src/workflow-gate/evidence-packet.ts +246 -17
  374. package/node_modules/@sdd-agent-platform/core/src/workflow-gate/hard-checks.test.ts +339 -3
  375. package/node_modules/@sdd-agent-platform/core/src/workflow-gate/hard-checks.ts +53 -14
  376. package/node_modules/@sdd-agent-platform/core/src/workflow-gate/policy.test.ts +45 -8
  377. package/node_modules/@sdd-agent-platform/core/src/workflow-gate/policy.ts +45 -6
  378. package/node_modules/@sdd-agent-platform/core/src/workflow-gate/types.ts +6 -5
  379. package/node_modules/@sdd-agent-platform/core/src/workflow-state/affected-file-conflicts.ts +1 -3
  380. package/node_modules/@sdd-agent-platform/core/src/workflow-state/dependencies.ts +1 -1
  381. package/node_modules/@sdd-agent-platform/core/src/workflow-state/latest-eligible-run.ts +75 -7
  382. package/node_modules/@sdd-agent-platform/core/src/workflow-state/migration-recovery.ts +158 -0
  383. package/node_modules/@sdd-agent-platform/core/src/workflow-state/repair-contract.ts +77 -0
  384. package/node_modules/@sdd-agent-platform/core/src/workflow-state/resolve-task-run.ts +114 -0
  385. package/node_modules/@sdd-agent-platform/core/src/workflow-state/resolve.test.ts +518 -25
  386. package/node_modules/@sdd-agent-platform/core/src/workflow-state/resolve.ts +670 -41
  387. package/node_modules/@sdd-agent-platform/core/src/workflow-state/runtime-projections.ts +712 -0
  388. package/package.json +1 -1
  389. package/packages/cli/dist/args.js +2 -2
  390. package/packages/cli/dist/args.js.map +1 -1
  391. package/packages/cli/dist/commands/ai-tools.js +13 -2
  392. package/packages/cli/dist/commands/ai-tools.js.map +1 -1
  393. package/packages/cli/dist/commands/context.js +1 -1
  394. package/packages/cli/dist/commands/context.js.map +1 -1
  395. package/packages/cli/dist/commands/execution.js +49 -1
  396. package/packages/cli/dist/commands/execution.js.map +1 -1
  397. package/packages/cli/dist/commands/governance.js +1 -1
  398. package/packages/cli/dist/commands/governance.js.map +1 -1
  399. package/packages/cli/dist/commands/init.js +6 -1
  400. package/packages/cli/dist/commands/init.js.map +1 -1
  401. package/packages/cli/dist/commands/lifecycle.js +15 -2
  402. package/packages/cli/dist/commands/lifecycle.js.map +1 -1
  403. package/packages/cli/dist/commands/registry/runtime.js +48 -2
  404. package/packages/cli/dist/commands/registry/runtime.js.map +1 -1
  405. package/packages/cli/dist/commands/run.js +52 -2
  406. package/packages/cli/dist/commands/run.js.map +1 -1
  407. package/packages/cli/dist/commands/stage-close.d.ts +6 -0
  408. package/packages/cli/dist/commands/stage-close.js +295 -0
  409. package/packages/cli/dist/commands/stage-close.js.map +1 -0
  410. package/packages/cli/dist/commands/status.js +68 -2
  411. package/packages/cli/dist/commands/status.js.map +1 -1
  412. package/packages/cli/dist/commands/test.js +180 -2
  413. package/packages/cli/dist/commands/test.js.map +1 -1
  414. package/packages/cli/dist/commands/verifies.js +7 -5
  415. package/packages/cli/dist/commands/verifies.js.map +1 -1
  416. package/packages/cli/dist/commands/verify.js +222 -26
  417. package/packages/cli/dist/commands/verify.js.map +1 -1
  418. package/packages/cli/dist/dispatch.js +4 -9
  419. package/packages/cli/dist/dispatch.js.map +1 -1
  420. package/packages/cli/dist/help.js +27 -26
  421. package/packages/cli/dist/help.js.map +1 -1
  422. package/packages/cli/dist/renderers/doctor.js +1 -1
  423. package/packages/cli/dist/renderers/doctor.js.map +1 -1
  424. package/packages/cli/dist/renderers/execution.js +1 -1
  425. package/packages/cli/dist/renderers/execution.js.map +1 -1
  426. package/packages/cli/dist/renderers/json.d.ts +1 -0
  427. package/packages/cli/dist/renderers/json.js +3 -0
  428. package/packages/cli/dist/renderers/json.js.map +1 -1
  429. package/packages/cli/dist/renderers/registry-runtime.d.ts +2 -1
  430. package/packages/cli/dist/renderers/registry-runtime.js +20 -0
  431. package/packages/cli/dist/renderers/registry-runtime.js.map +1 -1
  432. package/packages/cli/dist/renderers/router.js +1 -1
  433. package/packages/cli/dist/renderers/router.js.map +1 -1
  434. package/packages/cli/dist/renderers/workflow.d.ts +0 -4
  435. package/packages/cli/dist/renderers/workflow.js +30 -89
  436. package/packages/cli/dist/renderers/workflow.js.map +1 -1
  437. package/packages/cli/dist/skill-import-args.d.ts +10 -0
  438. package/packages/cli/dist/skill-import-args.js +47 -0
  439. package/packages/cli/dist/skill-import-args.js.map +1 -0
  440. package/packages/cli/dist/tsconfig.tsbuildinfo +1 -1
  441. package/packages/cli/package.json +2 -2
  442. package/packages/core/dist/ai-tools.js +67 -69
  443. package/packages/core/dist/ai-tools.js.map +1 -1
  444. package/packages/core/dist/artifacts/ingestion.js +64 -9
  445. package/packages/core/dist/artifacts/ingestion.js.map +1 -1
  446. package/packages/core/dist/artifacts/sdd-evidence.js +0 -1
  447. package/packages/core/dist/artifacts/sdd-evidence.js.map +1 -1
  448. package/packages/core/dist/artifacts/sdd-result.js +26 -17
  449. package/packages/core/dist/artifacts/sdd-result.js.map +1 -1
  450. package/packages/core/dist/config/init-project.d.ts +3 -0
  451. package/packages/core/dist/config/init-project.js +12 -9
  452. package/packages/core/dist/config/init-project.js.map +1 -1
  453. package/packages/core/dist/config/project-config.d.ts +3 -1
  454. package/packages/core/dist/config/project-config.js +7 -3
  455. package/packages/core/dist/config/project-config.js.map +1 -1
  456. package/packages/core/dist/config/starter-documents.d.ts +4 -4
  457. package/packages/core/dist/config/starter-documents.js +12 -25
  458. package/packages/core/dist/config/starter-documents.js.map +1 -1
  459. package/packages/core/dist/context/build-package.d.ts +1 -1
  460. package/packages/core/dist/context/build-package.js +1 -7
  461. package/packages/core/dist/context/build-package.js.map +1 -1
  462. package/packages/core/dist/context/evidence-summary.js +26 -8
  463. package/packages/core/dist/context/evidence-summary.js.map +1 -1
  464. package/packages/core/dist/context/log-worker.js +2 -2
  465. package/packages/core/dist/context/log-worker.js.map +1 -1
  466. package/packages/core/dist/context-offload/contracts.d.ts +1 -1
  467. package/packages/core/dist/contracts.d.ts +2 -1
  468. package/packages/core/dist/contracts.js +1 -0
  469. package/packages/core/dist/contracts.js.map +1 -1
  470. package/packages/core/dist/delegation/model.d.ts +3 -0
  471. package/packages/core/dist/delegation/validation.d.ts +3 -0
  472. package/packages/core/dist/delegation/validation.js +7 -4
  473. package/packages/core/dist/delegation/validation.js.map +1 -1
  474. package/packages/core/dist/doctor/checks/document-chain.js +1 -1
  475. package/packages/core/dist/doctor/checks/document-chain.js.map +1 -1
  476. package/packages/core/dist/doctor/checks/project.js +8 -8
  477. package/packages/core/dist/doctor/checks/project.js.map +1 -1
  478. package/packages/core/dist/doctor/checks/registries.js +0 -1
  479. package/packages/core/dist/doctor/checks/registries.js.map +1 -1
  480. package/packages/core/dist/doctor/checks/run-evidence.js +4 -4
  481. package/packages/core/dist/doctor/checks/run-evidence.js.map +1 -1
  482. package/packages/core/dist/doctor/checks/run-trust.js +0 -24
  483. package/packages/core/dist/doctor/checks/run-trust.js.map +1 -1
  484. package/packages/core/dist/doctor/checks/runtime-contracts.js +1 -1
  485. package/packages/core/dist/doctor/checks/runtime-contracts.js.map +1 -1
  486. package/packages/core/dist/doctor/doctor.js +178 -58
  487. package/packages/core/dist/doctor/doctor.js.map +1 -1
  488. package/packages/core/dist/evidence/lookup.js +14 -7
  489. package/packages/core/dist/evidence/lookup.js.map +1 -1
  490. package/packages/core/dist/evidence-runtime/contracts.d.ts +0 -1
  491. package/packages/core/dist/execution/background-executor.js +4 -4
  492. package/packages/core/dist/execution/background-executor.js.map +1 -1
  493. package/packages/core/dist/execution/foreground-subagents.js +3 -3
  494. package/packages/core/dist/execution/foreground-subagents.js.map +1 -1
  495. package/packages/core/dist/execution/host-invocation.js +5 -4
  496. package/packages/core/dist/execution/host-invocation.js.map +1 -1
  497. package/packages/core/dist/execution/resident-worker.js +3 -2
  498. package/packages/core/dist/execution/resident-worker.js.map +1 -1
  499. package/packages/core/dist/execution/stage-team-runtime.js +2 -2
  500. package/packages/core/dist/execution/stage-team-runtime.js.map +1 -1
  501. package/packages/core/dist/governance/policy.d.ts +1 -1
  502. package/packages/core/dist/governance/policy.js +1 -1
  503. package/packages/core/dist/governance/policy.js.map +1 -1
  504. package/packages/core/dist/instructions.d.ts +1 -1
  505. package/packages/core/dist/instructions.js +54 -61
  506. package/packages/core/dist/instructions.js.map +1 -1
  507. package/packages/core/dist/lifecycle/decision-gate.js +1 -1
  508. package/packages/core/dist/lifecycle/decision-gate.js.map +1 -1
  509. package/packages/core/dist/lifecycle/ship.d.ts +1 -0
  510. package/packages/core/dist/lifecycle/ship.js +24 -8
  511. package/packages/core/dist/lifecycle/ship.js.map +1 -1
  512. package/packages/core/dist/orchestration/contracts.d.ts +1 -1
  513. package/packages/core/dist/orchestration/runtime.d.ts +12 -2
  514. package/packages/core/dist/orchestration/runtime.js +62 -21
  515. package/packages/core/dist/orchestration/runtime.js.map +1 -1
  516. package/packages/core/dist/registries/agent-capability-catalog.d.ts +5 -2
  517. package/packages/core/dist/registries/agent-capability-catalog.js +69 -27
  518. package/packages/core/dist/registries/agent-capability-catalog.js.map +1 -1
  519. package/packages/core/dist/registries/agent-registry.js +15 -15
  520. package/packages/core/dist/registries/agent-registry.js.map +1 -1
  521. package/packages/core/dist/registries/agent-runtime-static.js +1 -1
  522. package/packages/core/dist/registries/agent-runtime-static.js.map +1 -1
  523. package/packages/core/dist/registries/capability-sources.js +1 -1
  524. package/packages/core/dist/registries/command-team-runtime.d.ts +1 -1
  525. package/packages/core/dist/registries/command-team-runtime.js +9 -9
  526. package/packages/core/dist/registries/command-team-runtime.js.map +1 -1
  527. package/packages/core/dist/registries/eval-learning-context.js +4 -4
  528. package/packages/core/dist/registries/eval-learning-context.js.map +1 -1
  529. package/packages/core/dist/registries/query-status.js +2 -2
  530. package/packages/core/dist/registries/query-status.js.map +1 -1
  531. package/packages/core/dist/registries/tool-capabilities.js +3 -3
  532. package/packages/core/dist/registries/tool-capabilities.js.map +1 -1
  533. package/packages/core/dist/registries/tool-plugins.js +2 -2
  534. package/packages/core/dist/registries/tool-plugins.js.map +1 -1
  535. package/packages/core/dist/registries/worker-adapters.js +11 -11
  536. package/packages/core/dist/registries/worker-adapters.js.map +1 -1
  537. package/packages/core/dist/registries/workflow-gates.js +12 -12
  538. package/packages/core/dist/registries/workflow-gates.js.map +1 -1
  539. package/packages/core/dist/risk/contracts.d.ts +2 -2
  540. package/packages/core/dist/risk/kernel.js +4 -4
  541. package/packages/core/dist/risk/kernel.js.map +1 -1
  542. package/packages/core/dist/risk/legacy-adapters.js +4 -7
  543. package/packages/core/dist/risk/legacy-adapters.js.map +1 -1
  544. package/packages/core/dist/risk/workflow-gates.d.ts +2 -2
  545. package/packages/core/dist/risk/workflow-gates.js +19 -17
  546. package/packages/core/dist/risk/workflow-gates.js.map +1 -1
  547. package/packages/core/dist/router/agent-runtime-config.js +1 -1
  548. package/packages/core/dist/router/agent-runtime-config.js.map +1 -1
  549. package/packages/core/dist/router/agent-runtime.d.ts +2 -0
  550. package/packages/core/dist/router/route-projection.js +1 -1
  551. package/packages/core/dist/router/route-projection.js.map +1 -1
  552. package/packages/core/dist/router/routing.js +45 -15
  553. package/packages/core/dist/router/routing.js.map +1 -1
  554. package/packages/core/dist/router/runtime-import.d.ts +28 -0
  555. package/packages/core/dist/router/runtime-import.js +373 -0
  556. package/packages/core/dist/router/runtime-import.js.map +1 -0
  557. package/packages/core/dist/router/runtime-validation.js +2 -2
  558. package/packages/core/dist/router/runtime-validation.js.map +1 -1
  559. package/packages/core/dist/router/stage-route-binding.d.ts +37 -0
  560. package/packages/core/dist/router/stage-route-binding.js +235 -0
  561. package/packages/core/dist/router/stage-route-binding.js.map +1 -0
  562. package/packages/core/dist/router.d.ts +2 -0
  563. package/packages/core/dist/router.js +2 -0
  564. package/packages/core/dist/router.js.map +1 -1
  565. package/packages/core/dist/run-state/artifacts.d.ts +16 -0
  566. package/packages/core/dist/run-state/artifacts.js +126 -9
  567. package/packages/core/dist/run-state/artifacts.js.map +1 -1
  568. package/packages/core/dist/run-state/inspect-run.d.ts +0 -2
  569. package/packages/core/dist/run-state/inspect-run.js +7 -5
  570. package/packages/core/dist/run-state/inspect-run.js.map +1 -1
  571. package/packages/core/dist/run-state/model.d.ts +28 -8
  572. package/packages/core/dist/run-state/run-index.d.ts +0 -2
  573. package/packages/core/dist/run-state/run-index.js +1 -3
  574. package/packages/core/dist/run-state/run-index.js.map +1 -1
  575. package/packages/core/dist/run-state/run-state.js +37 -27
  576. package/packages/core/dist/run-state/run-state.js.map +1 -1
  577. package/packages/core/dist/run-state/task-evidence.d.ts +5 -2
  578. package/packages/core/dist/run-state/task-evidence.js +53 -14
  579. package/packages/core/dist/run-state/task-evidence.js.map +1 -1
  580. package/packages/core/dist/run-state/timing.d.ts +8 -0
  581. package/packages/core/dist/run-state/timing.js +131 -0
  582. package/packages/core/dist/run-state/timing.js.map +1 -0
  583. package/packages/core/dist/run-state.d.ts +1 -0
  584. package/packages/core/dist/run-state.js +1 -0
  585. package/packages/core/dist/run-state.js.map +1 -1
  586. package/packages/core/dist/runtime-analysis/build.js +0 -3
  587. package/packages/core/dist/runtime-analysis/build.js.map +1 -1
  588. package/packages/core/dist/runtime-analysis/findings.js +5 -44
  589. package/packages/core/dist/runtime-analysis/findings.js.map +1 -1
  590. package/packages/core/dist/runtime-analysis/model.d.ts +1 -17
  591. package/packages/core/dist/runtime-paths.d.ts +10 -0
  592. package/packages/core/dist/runtime-paths.js +65 -0
  593. package/packages/core/dist/runtime-paths.js.map +1 -1
  594. package/packages/core/dist/runtime-projection-p0.d.ts +64 -0
  595. package/packages/core/dist/runtime-projection-p0.js +200 -0
  596. package/packages/core/dist/runtime-projection-p0.js.map +1 -0
  597. package/packages/core/dist/sdd-docs/document-hashes.d.ts +2 -0
  598. package/packages/core/dist/sdd-docs/document-hashes.js +97 -10
  599. package/packages/core/dist/sdd-docs/document-hashes.js.map +1 -1
  600. package/packages/core/dist/sdd-docs/run-binding.d.ts +1 -1
  601. package/packages/core/dist/sdd-docs/run-binding.js +8 -6
  602. package/packages/core/dist/sdd-docs/run-binding.js.map +1 -1
  603. package/packages/core/dist/sdd-docs/task-parser.d.ts +1 -0
  604. package/packages/core/dist/sdd-docs/task-parser.js +55 -34
  605. package/packages/core/dist/sdd-docs/task-parser.js.map +1 -1
  606. package/packages/core/dist/stage-artifacts.d.ts +55 -0
  607. package/packages/core/dist/stage-artifacts.js +322 -0
  608. package/packages/core/dist/stage-artifacts.js.map +1 -0
  609. package/packages/core/dist/stage-collaboration-contracts.d.ts +55 -0
  610. package/packages/core/dist/stage-collaboration-contracts.js +241 -0
  611. package/packages/core/dist/stage-collaboration-contracts.js.map +1 -0
  612. package/packages/core/dist/stage-collaboration.d.ts +888 -0
  613. package/packages/core/dist/stage-collaboration.js +3870 -0
  614. package/packages/core/dist/stage-collaboration.js.map +1 -0
  615. package/packages/core/dist/stage-runtime/runtime.js +8 -1
  616. package/packages/core/dist/stage-runtime/runtime.js.map +1 -1
  617. package/packages/core/dist/status/project-status.d.ts +44 -1
  618. package/packages/core/dist/status/project-status.js +170 -23
  619. package/packages/core/dist/status/project-status.js.map +1 -1
  620. package/packages/core/dist/storage/runtime-store.d.ts +170 -18
  621. package/packages/core/dist/storage/runtime-store.js +544 -32
  622. package/packages/core/dist/storage/runtime-store.js.map +1 -1
  623. package/packages/core/dist/subagents/contracts.d.ts +1 -1
  624. package/packages/core/dist/subagents/runtime.js +7 -7
  625. package/packages/core/dist/subagents/runtime.js.map +1 -1
  626. package/packages/core/dist/test-support/fixtures.js +1 -1
  627. package/packages/core/dist/test-support/run-state.d.ts +1 -1
  628. package/packages/core/dist/test-support/run-state.js +8 -23
  629. package/packages/core/dist/test-support/run-state.js.map +1 -1
  630. package/packages/core/dist/truth-reconciliation.d.ts +44 -0
  631. package/packages/core/dist/truth-reconciliation.js +138 -0
  632. package/packages/core/dist/truth-reconciliation.js.map +1 -0
  633. package/packages/core/dist/tsconfig.tsbuildinfo +1 -1
  634. package/packages/core/dist/verification/goal-verify.d.ts +0 -1
  635. package/packages/core/dist/verification/goal-verify.js +28 -53
  636. package/packages/core/dist/verification/goal-verify.js.map +1 -1
  637. package/packages/core/dist/verification/rendering.d.ts +0 -2
  638. package/packages/core/dist/verification/rendering.js +10 -50
  639. package/packages/core/dist/verification/rendering.js.map +1 -1
  640. package/packages/core/dist/verification/single-task-loop.d.ts +0 -1
  641. package/packages/core/dist/verification/single-task-loop.js +159 -150
  642. package/packages/core/dist/verification/single-task-loop.js.map +1 -1
  643. package/packages/core/dist/verification/test-runtime.d.ts +12 -2
  644. package/packages/core/dist/verification/test-runtime.js +238 -103
  645. package/packages/core/dist/verification/test-runtime.js.map +1 -1
  646. package/packages/core/dist/verification/validation-cache.d.ts +26 -0
  647. package/packages/core/dist/verification/validation-cache.js +73 -0
  648. package/packages/core/dist/verification/validation-cache.js.map +1 -0
  649. package/packages/core/dist/verification/validation-wave.d.ts +18 -0
  650. package/packages/core/dist/verification/validation-wave.js +27 -5
  651. package/packages/core/dist/verification/validation-wave.js.map +1 -1
  652. package/packages/core/dist/verification/verify-contract.d.ts +1 -1
  653. package/packages/core/dist/verification/verify-contract.js +9 -32
  654. package/packages/core/dist/verification/verify-contract.js.map +1 -1
  655. package/packages/core/dist/work-units/contracts.d.ts +1 -1
  656. package/packages/core/dist/workflow-gate/evidence-packet.js +228 -15
  657. package/packages/core/dist/workflow-gate/evidence-packet.js.map +1 -1
  658. package/packages/core/dist/workflow-gate/hard-checks.js +49 -15
  659. package/packages/core/dist/workflow-gate/hard-checks.js.map +1 -1
  660. package/packages/core/dist/workflow-gate/policy.js +42 -6
  661. package/packages/core/dist/workflow-gate/policy.js.map +1 -1
  662. package/packages/core/dist/workflow-gate/types.d.ts +4 -5
  663. package/packages/core/dist/workflow-state/affected-file-conflicts.d.ts +0 -1
  664. package/packages/core/dist/workflow-state/affected-file-conflicts.js +1 -2
  665. package/packages/core/dist/workflow-state/affected-file-conflicts.js.map +1 -1
  666. package/packages/core/dist/workflow-state/dependencies.js +1 -1
  667. package/packages/core/dist/workflow-state/latest-eligible-run.d.ts +0 -1
  668. package/packages/core/dist/workflow-state/latest-eligible-run.js +72 -6
  669. package/packages/core/dist/workflow-state/latest-eligible-run.js.map +1 -1
  670. package/packages/core/dist/workflow-state/migration-recovery.d.ts +40 -0
  671. package/packages/core/dist/workflow-state/migration-recovery.js +110 -0
  672. package/packages/core/dist/workflow-state/migration-recovery.js.map +1 -0
  673. package/packages/core/dist/workflow-state/repair-contract.d.ts +12 -0
  674. package/packages/core/dist/workflow-state/repair-contract.js +63 -0
  675. package/packages/core/dist/workflow-state/repair-contract.js.map +1 -0
  676. package/packages/core/dist/workflow-state/resolve-task-run.d.ts +21 -0
  677. package/packages/core/dist/workflow-state/resolve-task-run.js +95 -0
  678. package/packages/core/dist/workflow-state/resolve-task-run.js.map +1 -0
  679. package/packages/core/dist/workflow-state/resolve.d.ts +55 -5
  680. package/packages/core/dist/workflow-state/resolve.js +538 -34
  681. package/packages/core/dist/workflow-state/resolve.js.map +1 -1
  682. package/packages/core/dist/workflow-state/runtime-projections.d.ts +228 -0
  683. package/packages/core/dist/workflow-state/runtime-projections.js +452 -0
  684. package/packages/core/dist/workflow-state/runtime-projections.js.map +1 -0
  685. package/packages/core/package.json +3 -3
  686. package/node_modules/@sdd-agent-platform/core/dist/doctor/render.d.ts +0 -2
  687. package/node_modules/@sdd-agent-platform/core/dist/doctor/render.js +0 -44
  688. package/node_modules/@sdd-agent-platform/core/dist/doctor/render.js.map +0 -1
  689. package/node_modules/@sdd-agent-platform/core/dist/sync-back/apply.d.ts +0 -17
  690. package/node_modules/@sdd-agent-platform/core/dist/sync-back/apply.js +0 -243
  691. package/node_modules/@sdd-agent-platform/core/dist/sync-back/apply.js.map +0 -1
  692. package/node_modules/@sdd-agent-platform/core/dist/sync-back/inspect.d.ts +0 -110
  693. package/node_modules/@sdd-agent-platform/core/dist/sync-back/inspect.js +0 -497
  694. package/node_modules/@sdd-agent-platform/core/dist/sync-back/inspect.js.map +0 -1
  695. package/node_modules/@sdd-agent-platform/core/dist/sync-back.d.ts +0 -2
  696. package/node_modules/@sdd-agent-platform/core/dist/sync-back.js +0 -3
  697. package/node_modules/@sdd-agent-platform/core/dist/sync-back.js.map +0 -1
  698. package/node_modules/@sdd-agent-platform/core/src/sync-back/apply.ts +0 -270
  699. package/node_modules/@sdd-agent-platform/core/src/sync-back/inspect.ts +0 -655
  700. package/node_modules/@sdd-agent-platform/core/src/sync-back/sync-back.test.ts +0 -569
  701. package/node_modules/@sdd-agent-platform/core/src/sync-back.ts +0 -2
  702. package/packages/cli/dist/commands/artifact.d.ts +0 -6
  703. package/packages/cli/dist/commands/artifact.js +0 -168
  704. package/packages/cli/dist/commands/artifact.js.map +0 -1
  705. package/packages/cli/dist/commands/sync-back.d.ts +0 -6
  706. package/packages/cli/dist/commands/sync-back.js +0 -82
  707. package/packages/cli/dist/commands/sync-back.js.map +0 -1
  708. package/packages/cli/dist/renderers/artifacts.d.ts +0 -5
  709. package/packages/cli/dist/renderers/artifacts.js +0 -43
  710. package/packages/cli/dist/renderers/artifacts.js.map +0 -1
  711. package/packages/core/dist/doctor/render.d.ts +0 -2
  712. package/packages/core/dist/doctor/render.js +0 -44
  713. package/packages/core/dist/doctor/render.js.map +0 -1
  714. package/packages/core/dist/sync-back/apply.d.ts +0 -17
  715. package/packages/core/dist/sync-back/apply.js +0 -243
  716. package/packages/core/dist/sync-back/apply.js.map +0 -1
  717. package/packages/core/dist/sync-back/inspect.d.ts +0 -110
  718. package/packages/core/dist/sync-back/inspect.js +0 -497
  719. package/packages/core/dist/sync-back/inspect.js.map +0 -1
  720. package/packages/core/dist/sync-back.d.ts +0 -2
  721. package/packages/core/dist/sync-back.js +0 -3
  722. package/packages/core/dist/sync-back.js.map +0 -1
@@ -0,0 +1,295 @@
1
+ import { evaluateLifecycleRiskDecisionForModel, inspectLifecycleRiskDecisionForModel, readLifecycleRiskDecisionProjection } from '@sdd-agent-platform/core/risk';
2
+ import { getSddInstructions, renderSddInstructions } from '@sdd-agent-platform/core/instructions';
3
+ import { parseSddBranch, resolveSddContext } from '@sdd-agent-platform/core/sdd-docs';
4
+ import { resolveWorkflowState } from '@sdd-agent-platform/core/workflow-state';
5
+ import { reconcileGoalVerifyCollaborationClosure, reconcilePlanCollaborationClosure, reconcileShipCollaborationClosure, reconcileSpecCollaborationClosure, reconcileTasksCollaborationClosure, reconcileTestCollaborationClosure, reconcileVerifiesCollaborationClosure } from '@sdd-agent-platform/core/stage-collaboration';
6
+ import { readBranchContext, readResolvedBranch } from '../args.js';
7
+ import { hasHelpFlag, readOption } from '../options.js';
8
+ import { jsonOutput, renderTextOrJson, wantsJson } from '../renderers/json.js';
9
+ const CLOSE_STAGES = ['spec', 'plan', 'tasks', 'verifies', 'test', 'goal-verify', 'ship'];
10
+ const ENTRY_STAGES = ['spec', 'plan'];
11
+ const LIFECYCLE_ENTRY_NEXT_ACTION = 'Run /sdd or /sdd:spec to create or refresh the lifecycle decision before using stage-local entries.';
12
+ export async function handleStageCloseCommand(projectRoot, command, subcommand, rest) {
13
+ if (isStageEntry(command) && (subcommand === undefined || subcommand.startsWith('--'))) {
14
+ const entryArgs = [subcommand, ...rest].filter((item) => Boolean(item));
15
+ if (hasHelpFlag(entryArgs)) {
16
+ return { exitCode: 0, output: stageEntryUsage(command) };
17
+ }
18
+ const context = await resolveSddContext(projectRoot, readBranchContext(entryArgs));
19
+ const payload = stageEntryPayload(command, context);
20
+ return {
21
+ exitCode: 0,
22
+ output: renderTextOrJson(entryArgs, payload, renderStageEntryInstructions)
23
+ };
24
+ }
25
+ if (!isCloseStage(command)) {
26
+ return null;
27
+ }
28
+ if (subcommand !== 'close') {
29
+ return null;
30
+ }
31
+ if (hasHelpFlag(rest)) {
32
+ return { exitCode: 0, output: stageCloseUsage(command) };
33
+ }
34
+ const branch = await readResolvedBranch(projectRoot, rest);
35
+ const targetResolution = closeTargetStage(command, rest);
36
+ if (!targetResolution.valid) {
37
+ const payload = stageCloseBlockedPayload(command, branch, [targetResolution.reason]);
38
+ return {
39
+ exitCode: 1,
40
+ output: wantsJson(rest) ? jsonOutput(payload, rest) : renderBlockedStageClosePayload(payload)
41
+ };
42
+ }
43
+ const stage = targetResolution.stage;
44
+ const decision = await lifecycleDecisionForClose(projectRoot, stage, branch);
45
+ if (!decision.decision) {
46
+ const payload = stageCloseBlockedPayload(stage, branch, decision.reasons);
47
+ return {
48
+ exitCode: 1,
49
+ output: wantsJson(rest) ? jsonOutput(payload, rest) : renderBlockedStageClosePayload(payload)
50
+ };
51
+ }
52
+ const runId = readOption(rest, '--run') ?? undefined;
53
+ const result = await reconcileStageClose(projectRoot, stage, decision.decision, runId);
54
+ const payload = stageClosePayload(stage, result);
55
+ return {
56
+ exitCode: payload.stageDecision.status === 'completed' ? 0 : 1,
57
+ output: wantsJson(rest) ? jsonOutput(payload, rest) : renderStageClosePayload(payload)
58
+ };
59
+ }
60
+ function isCloseStage(value) {
61
+ return CLOSE_STAGES.includes(value);
62
+ }
63
+ function isStageEntry(value) {
64
+ return ENTRY_STAGES.includes(value);
65
+ }
66
+ function stageEntryPayload(stage, context) {
67
+ return {
68
+ ...getSddInstructions(stage),
69
+ context: {
70
+ branch: context.branch,
71
+ partition: context.partition,
72
+ rawBranch: context.rawBranch,
73
+ branchSource: context.branchSource,
74
+ currentGitBranch: context.currentGitBranch,
75
+ workingTreeMatched: context.workingTreeMatched,
76
+ specDir: context.specDir
77
+ }
78
+ };
79
+ }
80
+ function renderStageEntryInstructions(payload) {
81
+ return [
82
+ renderSddInstructions(payload),
83
+ '',
84
+ 'Resolved partition:',
85
+ `- branch=${payload.context.branch}`,
86
+ `- raw_branch=${payload.context.rawBranch}`,
87
+ `- source=${payload.context.branchSource}`,
88
+ `- spec_dir=${payload.context.specDir}`,
89
+ `- current_git_branch=${payload.context.currentGitBranch ?? 'none'}`,
90
+ `- working_tree_matched=${payload.context.workingTreeMatched ?? 'unknown'}`
91
+ ].join('\n');
92
+ }
93
+ function stageEntryUsage(stage) {
94
+ return `Usage: sdd ${stage} [--branch <branch>] [--json|--compact-json]\n\nThis command prints the generated ${stage}-stage entry contract. Use sdd ${stage} close --branch <branch> after agent-authored Markdown evidence exists.`;
95
+ }
96
+ function closeTargetStage(command, rest) {
97
+ if (!rest.includes('--target')) {
98
+ return { valid: true, stage: command };
99
+ }
100
+ const target = readOption(rest, '--target');
101
+ if (!target || target.startsWith('--')) {
102
+ return { valid: false, reason: '--target requires an internal runtime stage.' };
103
+ }
104
+ if (target === command) {
105
+ return { valid: true, stage: command };
106
+ }
107
+ if (command === 'tasks' && target === 'verifies') {
108
+ return { valid: true, stage: 'verifies' };
109
+ }
110
+ if (command === 'test' && target === 'goal-verify') {
111
+ return { valid: true, stage: 'goal-verify' };
112
+ }
113
+ return { valid: false, reason: `Unsupported --target ${target} for sdd ${command} close.` };
114
+ }
115
+ async function reconcileStageClose(projectRoot, stage, decision, runId) {
116
+ const input = { decision, runId };
117
+ if (stage === 'spec')
118
+ return reconcileSpecCollaborationClosure(projectRoot, input);
119
+ if (stage === 'plan')
120
+ return reconcilePlanCollaborationClosure(projectRoot, input);
121
+ if (stage === 'tasks')
122
+ return reconcileTasksCollaborationClosure(projectRoot, input);
123
+ if (stage === 'verifies')
124
+ return reconcileVerifiesCollaborationClosure(projectRoot, input);
125
+ if (stage === 'test')
126
+ return reconcileTestCollaborationClosure(projectRoot, input);
127
+ if (stage === 'goal-verify')
128
+ return reconcileGoalVerifyCollaborationClosure(projectRoot, input);
129
+ return reconcileShipCollaborationClosure(projectRoot, input);
130
+ }
131
+ async function lifecycleDecisionForClose(projectRoot, stage, branch) {
132
+ const model = await parseSddBranch(projectRoot, branch);
133
+ const evaluated = evaluateLifecycleRiskDecisionForModel(branch, model);
134
+ const reconciliationReasons = await truthReconciliationCloseReasons(projectRoot, stage, branch);
135
+ if (reconciliationReasons) {
136
+ return { decision: truthReconciliationLifecycleDecision(evaluated, stage, reconciliationReasons), reasons: [] };
137
+ }
138
+ if (stage === 'spec') {
139
+ return { decision: evaluated, reasons: [] };
140
+ }
141
+ const diagnostic = await inspectLifecycleRiskDecisionForModel(projectRoot, branch, model);
142
+ const existing = await readLifecycleRiskDecisionProjection(projectRoot, { branch });
143
+ if (existing && diagnostic.status === 'fresh') {
144
+ return { decision: existing.payload, reasons: diagnostic.reasons };
145
+ }
146
+ const headline = diagnostic.status === 'missing'
147
+ ? 'Stage-local close requires an active lifecycle decision created by /sdd or /sdd:spec.'
148
+ : diagnostic.status === 'stale'
149
+ ? 'Stage-local close requires a refreshed lifecycle decision because the active projection is stale.'
150
+ : diagnostic.status === 'blocked'
151
+ ? 'Stage-local close is blocked by the active lifecycle decision.'
152
+ : 'Stage-local close requires a refreshed lifecycle decision because the active projection is incompatible.';
153
+ return { decision: null, reasons: uniqueStrings([headline, ...diagnostic.reasons, LIFECYCLE_ENTRY_NEXT_ACTION]) };
154
+ }
155
+ async function truthReconciliationCloseReasons(projectRoot, stage, branch) {
156
+ const workflow = await resolveWorkflowState(projectRoot, { branch, branchSource: 'cli_option' });
157
+ const reconciliation = workflow.truthReconciliation;
158
+ if (!reconciliation || reconciliation.nextIntent.intent !== 'reconcile_truth' || reconciliation.nextIntent.targetRuntimeStage !== stage) {
159
+ return null;
160
+ }
161
+ return reconciliation.reasons;
162
+ }
163
+ function truthReconciliationLifecycleDecision(decision, stage, reasons) {
164
+ return {
165
+ ...decision,
166
+ profile: 'full',
167
+ requiredStages: allSddStages(),
168
+ skippedStages: [],
169
+ blockedStages: [],
170
+ humanCheckpointRequired: false,
171
+ approvalPolicy: 'review-required',
172
+ reasons: uniqueStrings([`Truth reconciliation routes to ${stage} close; stale truth must not block owner-stage reconciliation.`, ...reasons, ...decision.reasons])
173
+ };
174
+ }
175
+ function allSddStages() {
176
+ return ['spec', 'plan', 'tasks', 'verifies', 'do', 'test', 'goal-verify', 'ship'];
177
+ }
178
+ function stageClosePayload(stage, result) {
179
+ const adjudication = result.adjudication;
180
+ const stageDecision = adjudication.stageDecision ?? { status: 'rejected', health: adjudication.health };
181
+ const closureRefs = adjudication.closureRefs ?? {};
182
+ const acceptedRef = acceptedRefForStage(stage, result);
183
+ return {
184
+ contract: 'sdd-stage-close-cli-result-v1',
185
+ stage,
186
+ runId: result.runId,
187
+ branch: result.branch,
188
+ health: adjudication.health,
189
+ stageDecision: {
190
+ status: stageDecision.status,
191
+ health: stageDecision.health
192
+ },
193
+ acceptedRef,
194
+ acceptedHash: acceptedRef?.hash ?? null,
195
+ registeredArtifactRefs: result.registeredArtifacts.map((artifact) => artifact.ref),
196
+ registeredCollaborationContracts: result.registeredCollaborationContracts.map((contract) => ({
197
+ ref: contract.ref,
198
+ hash: contract.hash,
199
+ status: contract.status,
200
+ validationErrors: contract.validationErrors
201
+ })),
202
+ handoff: adjudication.handoffPacket ? {
203
+ fromStage: adjudication.handoffPacket.fromStage,
204
+ toStage: adjudication.handoffPacket.toStage,
205
+ status: adjudication.handoffPacket.status,
206
+ requiredInputRefs: adjudication.handoffPacket.requiredInputRefs ?? []
207
+ } : null,
208
+ closureRefs: {
209
+ artifactRefs: closureRefs.artifactRefs ?? [],
210
+ collaborationContractRef: closureRefs.collaborationContractRef ?? null,
211
+ lifecycleRiskProjectionRef: closureRefs.lifecycleRiskProjectionRef ?? null,
212
+ adjudicationProjectionRef: closureRefs.adjudicationProjectionRef ?? null,
213
+ stageRunProjectionRef: closureRefs.stageRunProjectionRef ?? null,
214
+ workflowHandoffProjectionRef: closureRefs.workflowHandoffProjectionRef ?? null,
215
+ reasons: closureRefs.reasons ?? []
216
+ }
217
+ };
218
+ }
219
+ function acceptedRefForStage(stage, result) {
220
+ if (stage === 'spec')
221
+ return 'acceptedSpecRef' in result ? result.acceptedSpecRef : null;
222
+ if (stage === 'plan')
223
+ return 'acceptedPlanRef' in result ? result.acceptedPlanRef : null;
224
+ if (stage === 'tasks')
225
+ return 'acceptedTasksRef' in result ? result.acceptedTasksRef : null;
226
+ if (stage === 'verifies')
227
+ return 'acceptedVerifyRef' in result ? result.acceptedVerifyRef : null;
228
+ if (stage === 'test')
229
+ return 'acceptedTestEvidenceRef' in result ? result.acceptedTestEvidenceRef : null;
230
+ if (stage === 'goal-verify')
231
+ return 'acceptedGoalVerificationRef' in result ? result.acceptedGoalVerificationRef : null;
232
+ return 'acceptedShipReadinessRef' in result ? result.acceptedShipReadinessRef : null;
233
+ }
234
+ function stageCloseBlockedPayload(stage, branch, reasons) {
235
+ return {
236
+ contract: 'sdd-stage-close-cli-result-v1',
237
+ stage,
238
+ runId: null,
239
+ branch,
240
+ health: 'blocked',
241
+ stageDecision: {
242
+ status: 'rejected',
243
+ health: 'blocked'
244
+ },
245
+ acceptedRef: null,
246
+ acceptedHash: null,
247
+ registeredArtifactRefs: [],
248
+ registeredCollaborationContracts: [],
249
+ handoff: null,
250
+ closureRefs: {
251
+ artifactRefs: [],
252
+ collaborationContractRef: null,
253
+ lifecycleRiskProjectionRef: null,
254
+ adjudicationProjectionRef: null,
255
+ stageRunProjectionRef: null,
256
+ workflowHandoffProjectionRef: null,
257
+ reasons
258
+ }
259
+ };
260
+ }
261
+ function renderStageClosePayload(payload) {
262
+ const lines = [
263
+ `SDD ${payload.stage} close`,
264
+ `health=${payload.health}`,
265
+ `stageDecision.status=${payload.stageDecision.status}`,
266
+ `acceptedRef=${payload.acceptedRef?.ref ?? 'none'}`,
267
+ `acceptedHash=${payload.acceptedHash ?? 'none'}`,
268
+ `registeredArtifactRefs=${payload.registeredArtifactRefs.length}`,
269
+ `registeredCollaborationContracts=${payload.registeredCollaborationContracts.length}`
270
+ ];
271
+ if (payload.handoff) {
272
+ lines.push(`handoff=${payload.handoff.fromStage}->${payload.handoff.toStage}:${payload.handoff.status}`);
273
+ }
274
+ if (payload.closureRefs.reasons.length > 0) {
275
+ lines.push('reasons:');
276
+ lines.push(...payload.closureRefs.reasons.map((reason) => `- ${reason}`));
277
+ }
278
+ return lines.join('\n');
279
+ }
280
+ function renderBlockedStageClosePayload(payload) {
281
+ return renderStageClosePayload(payload);
282
+ }
283
+ function uniqueStrings(values) {
284
+ return Array.from(new Set(values.filter((value) => value.length > 0)));
285
+ }
286
+ function stageCloseUsage(stage) {
287
+ if (stage === 'tasks') {
288
+ return 'Usage: sdd tasks close [--target verifies] [--branch <branch>] [--run <run_id>] [--json|--compact-json]';
289
+ }
290
+ if (stage === 'test') {
291
+ return 'Usage: sdd test close [--target goal-verify] [--branch <branch>] [--run <run_id>] [--json|--compact-json]';
292
+ }
293
+ return `Usage: sdd ${stage} close [--branch <branch>] [--run <run_id>] [--json|--compact-json]`;
294
+ }
295
+ //# sourceMappingURL=stage-close.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stage-close.js","sourceRoot":"","sources":["../../src/commands/stage-close.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qCAAqC,EAAE,oCAAoC,EAAE,mCAAmC,EAA8B,MAAM,+BAA+B,CAAC;AAC7L,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAA8B,MAAM,uCAAuC,CAAC;AAC9H,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAgC,MAAM,mCAAmC,CAAC;AACpH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EACL,uCAAuC,EACvC,iCAAiC,EACjC,iCAAiC,EACjC,iCAAiC,EACjC,kCAAkC,EAClC,iCAAiC,EACjC,qCAAqC,EACtC,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAkB/E,MAAM,YAAY,GAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AACxG,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAC/C,MAAM,2BAA2B,GAAG,qGAAqG,CAAC;AAE1I,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,WAAmB,EAAE,OAA2B,EAAE,UAA8B,EAAE,IAAc;IAC5I,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QACvF,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,4BAA4B,CAAC;SAC3E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;QACrF,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC;SAC9F,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7E,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1E,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,OAAO,CAAC;SAC9F,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS,CAAC;IACrD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvF,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAmB,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAoC,CAAC,CAAC;AACrE,CAAC;AAMD,SAAS,iBAAiB,CAAC,KAAkC,EAAE,OAAgC;IAC7F,OAAO;QACL,GAAG,kBAAkB,CAAC,KAAK,CAAC;QAC5B,OAAO,EAAE;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,OAA0B;IAC9D,OAAO;QACL,qBAAqB,CAAC,OAAO,CAAC;QAC9B,EAAE;QACF,qBAAqB;QACrB,YAAY,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;QACpC,gBAAgB,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;QAC3C,YAAY,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE;QAC1C,cAAc,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;QACvC,wBAAwB,OAAO,CAAC,OAAO,CAAC,gBAAgB,IAAI,MAAM,EAAE;QACpE,0BAA0B,OAAO,CAAC,OAAO,CAAC,kBAAkB,IAAI,SAAS,EAAE;KAC5E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAAkC;IACzD,OAAO,cAAc,KAAK,qFAAqF,KAAK,kCAAkC,KAAK,yEAAyE,CAAC;AACvO,CAAC;AAID,SAAS,gBAAgB,CAAC,OAAmB,EAAE,IAAc;IAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,8CAA8C,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,OAAO,KAAK,OAAO,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QACnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,MAAM,YAAY,OAAO,SAAS,EAAE,CAAC;AAC9F,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,KAAiB,EAAE,QAA+B,EAAE,KAAyB;IACnI,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,iCAAiC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACnF,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,iCAAiC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACnF,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,kCAAkC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrF,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,qCAAqC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC3F,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,iCAAiC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACnF,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,uCAAuC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAChG,OAAO,iCAAiC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,WAAmB,EAAE,KAAiB,EAAE,MAAc;IAC7F,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,qCAAqC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,qBAAqB,GAAG,MAAM,+BAA+B,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAChG,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,EAAE,QAAQ,EAAE,oCAAoC,CAAC,SAAS,EAAE,KAAK,EAAE,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClH,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,oCAAoC,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,MAAM,mCAAmC,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACpF,IAAI,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;IACrE,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,KAAK,SAAS;QAC9C,CAAC,CAAC,uFAAuF;QACzF,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO;YAC7B,CAAC,CAAC,mGAAmG;YACrG,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS;gBAC/B,CAAC,CAAC,gEAAgE;gBAClE,CAAC,CAAC,0GAA0G,CAAC;IACnH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,QAAQ,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,EAAE,CAAC;AACpH,CAAC;AAED,KAAK,UAAU,+BAA+B,CAAC,WAAmB,EAAE,KAAiB,EAAE,MAAc;IACnG,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;IACjG,MAAM,cAAc,GAAG,QAAQ,CAAC,mBAAmB,CAAC;IACpD,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,KAAK,iBAAiB,IAAI,cAAc,CAAC,UAAU,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;QACxI,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,cAAc,CAAC,OAAO,CAAC;AAChC,CAAC;AAED,SAAS,oCAAoC,CAAC,QAA+B,EAAE,KAAiB,EAAE,OAAiB;IACjH,OAAO;QACL,GAAG,QAAQ;QACX,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,YAAY,EAAE;QAC9B,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE,EAAE;QACjB,uBAAuB,EAAE,KAAK;QAC9B,cAAc,EAAE,iBAAiB;QACjC,OAAO,EAAE,aAAa,CAAC,CAAC,kCAAkC,KAAK,gEAAgE,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;KACnK,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;AACpF,CAAC;AAmBD,SAAS,iBAAiB,CAAC,KAAiB,EAAE,MAAwB;IACpE,MAAM,YAAY,GAAG,MAAM,CAAC,YAA0C,CAAC;IACvE,MAAM,aAAa,GAAG,YAAY,CAAC,aAAa,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,CAAC;IACxG,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC;IACnD,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO;QACL,QAAQ,EAAE,+BAA+B;QACzC,KAAK;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,aAAa,EAAE;YACb,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,MAAM,EAAE,aAAa,CAAC,MAAM;SAC7B;QACD,WAAW;QACX,YAAY,EAAE,WAAW,EAAE,IAAI,IAAI,IAAI;QACvC,sBAAsB,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;QAClF,gCAAgC,EAAE,MAAM,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC3F,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;SAC5C,CAAC,CAAC;QACH,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;YACpC,SAAS,EAAE,YAAY,CAAC,aAAa,CAAC,SAAS;YAC/C,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC,OAAO;YAC3C,MAAM,EAAE,YAAY,CAAC,aAAa,CAAC,MAAM;YACzC,iBAAiB,EAAE,YAAY,CAAC,aAAa,CAAC,iBAAiB,IAAI,EAAE;SACtE,CAAC,CAAC,CAAC,IAAI;QACR,WAAW,EAAE;YACX,YAAY,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE;YAC5C,wBAAwB,EAAE,WAAW,CAAC,wBAAwB,IAAI,IAAI;YACtE,0BAA0B,EAAE,WAAW,CAAC,0BAA0B,IAAI,IAAI;YAC1E,yBAAyB,EAAE,WAAW,CAAC,yBAAyB,IAAI,IAAI;YACxE,qBAAqB,EAAE,WAAW,CAAC,qBAAqB,IAAI,IAAI;YAChE,4BAA4B,EAAE,WAAW,CAAC,4BAA4B,IAAI,IAAI;YAC9E,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;SACnC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAiB,EAAE,MAAwB;IACtE,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,iBAAiB,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,kBAAkB,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5F,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,mBAAmB,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,yBAAyB,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC;IACzG,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,6BAA6B,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAI,CAAC;IACxH,OAAO,0BAA0B,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC;AACvF,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAiB,EAAE,MAAc,EAAE,OAAiB;IACpF,OAAO;QACL,QAAQ,EAAE,+BAA+B;QACzC,KAAK;QACL,KAAK,EAAE,IAAI;QACX,MAAM;QACN,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE;YACb,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,SAAS;SAClB;QACD,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,sBAAsB,EAAE,EAAE;QAC1B,gCAAgC,EAAE,EAAE;QACpC,OAAO,EAAE,IAAI;QACb,WAAW,EAAE;YACX,YAAY,EAAE,EAAE;YAChB,wBAAwB,EAAE,IAAI;YAC9B,0BAA0B,EAAE,IAAI;YAChC,yBAAyB,EAAE,IAAI;YAC/B,qBAAqB,EAAE,IAAI;YAC3B,4BAA4B,EAAE,IAAI;YAClC,OAAO;SACR;KACF,CAAC;AACJ,CAAC;AAID,SAAS,uBAAuB,CAAC,OAA6B;IAC5D,MAAM,KAAK,GAAG;QACZ,OAAO,OAAO,CAAC,KAAK,QAAQ;QAC5B,UAAU,OAAO,CAAC,MAAM,EAAE;QAC1B,wBAAwB,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE;QACtD,eAAe,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,MAAM,EAAE;QACnD,gBAAgB,OAAO,CAAC,YAAY,IAAI,MAAM,EAAE;QAChD,0BAA0B,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE;QACjE,oCAAoC,OAAO,CAAC,gCAAgC,CAAC,MAAM,EAAE;KACtF,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,8BAA8B,CAAC,OAAoD;IAC1F,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,aAAa,CAAC,MAAgB;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,eAAe,CAAC,KAAiB;IACxC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,yGAAyG,CAAC;IACnH,CAAC;IACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,2GAA2G,CAAC;IACrH,CAAC;IACD,OAAO,cAAc,KAAK,qEAAqE,CAAC;AAClG,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { getProjectStatus, getStatuslineProjection } from '@sdd-agent-platform/core/status';
2
2
  import { readBranchContext } from '../args.js';
3
- import { jsonOutput, wantsJson } from '../renderers/json.js';
3
+ import { isCompactJson, jsonOutput, wantsJson } from '../renderers/json.js';
4
4
  import { renderProjectStatus, renderStatuslineProjection } from '../renderers/workflow.js';
5
5
  export async function handleStatusCommand(projectRoot, command, subcommand, rest) {
6
6
  if (command !== 'status' && command !== 'statusline' && command !== 'progress') {
@@ -19,7 +19,73 @@ export async function handleStatusCommand(projectRoot, command, subcommand, rest
19
19
  const json = wantsJson(statusArgs);
20
20
  return {
21
21
  exitCode: 0,
22
- output: json ? jsonOutput(result, statusArgs) : renderProjectStatus(result)
22
+ output: json ? jsonOutput(isCompactJson(statusArgs) ? summarizeProjectStatus(result) : result, statusArgs) : renderProjectStatus(result)
23
+ };
24
+ }
25
+ function summarizeProjectStatus(status) {
26
+ return {
27
+ contract: 'sdd-project-status-summary-v1',
28
+ branch: status.branch,
29
+ workflowStatus: status.workflowStatus,
30
+ nextIntent: status.nextIntent,
31
+ recommendedNextCommand: status.recommendedNextCommand,
32
+ context: {
33
+ rawBranch: status.context.rawBranch,
34
+ partition: status.context.partition,
35
+ branchSource: status.context.branchSource,
36
+ specDir: status.context.specDir,
37
+ currentGitBranch: status.context.currentGitBranch,
38
+ workingTreeMatched: status.context.workingTreeMatched
39
+ },
40
+ documents: {
41
+ spec: status.documents.specExists,
42
+ plan: status.documents.planExists,
43
+ tasks: status.documents.tasksExists,
44
+ verify: status.documents.verifyExists,
45
+ planStale: status.documents.planStale,
46
+ tasksStale: status.documents.tasksStale,
47
+ verifyStale: status.documents.verifyStale
48
+ },
49
+ tasks: status.tasks,
50
+ taskRisk: status.taskRisk,
51
+ latestRun: status.latestRun,
52
+ latestRunEvidence: status.latestRunEvidence,
53
+ latestRunStaleReasons: status.latestRunStaleReasons,
54
+ counts: {
55
+ latestRunsByTask: status.latestRunsByTask.length,
56
+ latestEligibleRunsByTask: status.latestEligibleRunsByTask.length,
57
+ latestEligibleSelected: status.latestEligibleRunsByTask.filter((selection) => selection.selected).length,
58
+ latestEligibleRejected: status.latestEligibleRunsByTask.reduce((sum, selection) => sum + selection.rejected.length, 0),
59
+ affectedFileConflicts: status.affectedFileConflicts.length,
60
+ dependencyBlockers: status.dependencyBlockers.length,
61
+ gaps: status.gaps.length,
62
+ durableGaps: status.durableGaps.length
63
+ },
64
+ latestEligibleRunsByTask: status.latestEligibleRunsByTask.slice(0, 20).map((selection) => ({
65
+ taskId: selection.taskId,
66
+ selected: selection.selected ? {
67
+ runId: selection.selected.runId,
68
+ runStatus: selection.selected.runStatus,
69
+ compatibility: selection.selected.compatibility
70
+ } : null,
71
+ candidates: selection.candidates.length,
72
+ rejected: selection.rejected.length
73
+ })),
74
+ affectedFileConflicts: status.affectedFileConflicts.slice(0, 20),
75
+ dependencyBlockers: status.dependencyBlockers.slice(0, 20),
76
+ capabilityHealth: status.capabilityHealth,
77
+ workflowHandoff: status.workflowHandoff,
78
+ fullStageChain: status.fullStageChain,
79
+ runtimeProjectionP0: status.runtimeProjectionP0,
80
+ workflowGateHealth: {
81
+ decisions: status.workflowGateHealth.decisions,
82
+ blocked: status.workflowGateHealth.blocked,
83
+ warnings: status.workflowGateHealth.warnings,
84
+ humanRequired: status.workflowGateHealth.humanRequired,
85
+ statusesByKind: status.workflowGateHealth.statusesByKind,
86
+ evidenceSelection: status.workflowGateHealth.evidenceSelection
87
+ },
88
+ truthReconciliation: status.truthReconciliation
23
89
  };
24
90
  }
25
91
  //# sourceMappingURL=status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAQ3F,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAmB,EAAE,OAA2B,EAAE,UAA8B,EAAE,IAAc;IACxI,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAC9F,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,UAAU,CAAC;SAC3F,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC;KAC5E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
- import { renderSddTestResult, renderValidationWaveResult, runSddTest, runValidationWave } from '@sdd-agent-platform/core/verification';
3
+ import { listVerifyValidationUnits, renderSddTestResult, renderValidationWaveResult, runSddTest, runValidationWave } from '@sdd-agent-platform/core/verification';
4
4
  import { parseSddBranch } from '@sdd-agent-platform/core/sdd-docs';
5
5
  import { readBranchOption, readOptionalPositionalArgument, readResolvedBranch } from '../args.js';
6
6
  import { hasHelpFlag, hasPreflightFlag, readOption, readPositiveIntegerOption, readRepeatedOptions } from '../options.js';
@@ -22,6 +22,9 @@ export async function handleTestCommand(projectRoot, command, subcommand, rest)
22
22
  return handleTestBatchCommand(projectRoot, rest);
23
23
  }
24
24
  if (subcommand !== 'task') {
25
+ if (subcommand && !subcommand.startsWith('--')) {
26
+ return handleTestValidationUnitCommand(projectRoot, subcommand, rest);
27
+ }
25
28
  return {
26
29
  exitCode: 2,
27
30
  error: testUsage()
@@ -130,6 +133,178 @@ async function handleTestBatchCommand(projectRoot, rest) {
130
133
  output: wantsJson(rest) ? jsonOutput(result, rest) : renderValidationWaveResult(result)
131
134
  };
132
135
  }
136
+ async function handleTestValidationUnitCommand(projectRoot, validationInput, rest) {
137
+ const validationInputs = splitCommaSeparatedInputs(validationInput);
138
+ if (validationInputs.length === 0) {
139
+ return {
140
+ exitCode: 2,
141
+ error: testValidationUnitUsage()
142
+ };
143
+ }
144
+ if (validationInputs.length > 1) {
145
+ return handleTestValidationUnitBatchCommand(projectRoot, validationInputs, rest);
146
+ }
147
+ const binding = await resolveTestValidationUnitBinding(projectRoot, validationInputs[0], rest);
148
+ const preflight = testValidationUnitPreflight(binding);
149
+ if (hasPreflightFlag(rest) || binding.blockers.length > 0) {
150
+ return {
151
+ exitCode: preflight.status === 'PASS' ? 0 : 1,
152
+ output: wantsJson(rest) ? jsonOutput(preflight, rest) : renderTestValidationUnitPreflight(preflight)
153
+ };
154
+ }
155
+ const unit = binding.unit;
156
+ if (!unit) {
157
+ return {
158
+ exitCode: 1,
159
+ output: wantsJson(rest) ? jsonOutput(preflight, rest) : renderTestValidationUnitPreflight(preflight)
160
+ };
161
+ }
162
+ const result = await runValidationWave(projectRoot, {
163
+ branch: readBranchOption(rest),
164
+ batchId: unit.validationUnitId,
165
+ timeoutMs: readPositiveIntegerOption(rest, '--timeout-ms') ?? undefined,
166
+ approved: rest.includes('--approved')
167
+ });
168
+ return {
169
+ exitCode: result.status === 'PASS' ? 0 : 1,
170
+ output: wantsJson(rest) ? jsonOutput(result, rest) : renderValidationWaveResult(result)
171
+ };
172
+ }
173
+ async function handleTestValidationUnitBatchCommand(projectRoot, validationInputs, rest) {
174
+ const bindings = await Promise.all(validationInputs.map((validationInput) => resolveTestValidationUnitBinding(projectRoot, validationInput, rest)));
175
+ const blockers = bindings.flatMap((binding) => binding.blockers.map((blocker) => `${binding.requestedTarget}: ${blocker}`));
176
+ const preflight = testValidationUnitBatchPreflight(validationInputs, bindings, blockers);
177
+ if (hasPreflightFlag(rest) || blockers.length > 0) {
178
+ return {
179
+ exitCode: preflight.status === 'PASS' ? 0 : 1,
180
+ output: wantsJson(rest) ? jsonOutput(preflight, rest) : renderTestValidationUnitBatchPreflight(preflight)
181
+ };
182
+ }
183
+ const results = [];
184
+ for (const binding of bindings) {
185
+ results.push(await runValidationWave(projectRoot, {
186
+ branch: readBranchOption(rest),
187
+ batchId: binding.unit?.validationUnitId,
188
+ timeoutMs: readPositiveIntegerOption(rest, '--timeout-ms') ?? undefined,
189
+ approved: rest.includes('--approved')
190
+ }));
191
+ }
192
+ const payload = testValidationUnitBatchJsonPayload(validationInputs, bindings, results);
193
+ return {
194
+ exitCode: payload.status === 'PASS' ? 0 : 1,
195
+ output: wantsJson(rest) ? jsonOutput(payload, rest) : results.map(renderValidationWaveResult).join('\n\n---\n\n')
196
+ };
197
+ }
198
+ function testValidationUnitBatchPreflight(validationInputs, bindings, blockers) {
199
+ return {
200
+ contract: 'sdd-command-preflight-v1',
201
+ command: 'test validation-unit',
202
+ requestedTargets: validationInputs,
203
+ validationUnitIds: bindings.map((binding) => binding.validationUnitId),
204
+ bindings: bindings.flatMap((binding) => binding.source && binding.unit ? [{
205
+ requestedTarget: binding.requestedTarget,
206
+ validationUnitId: binding.validationUnitId,
207
+ source: binding.source,
208
+ taskIds: binding.unit.taskIds
209
+ }] : []),
210
+ sideEffects: 'none',
211
+ status: blockers.length > 0 ? 'BLOCKED' : 'PASS',
212
+ blockers
213
+ };
214
+ }
215
+ function testValidationUnitBatchJsonPayload(validationInputs, bindings, results) {
216
+ return {
217
+ contract: 'sdd-test-validation-unit-batch-cli-result-v1',
218
+ requestedTargets: validationInputs,
219
+ validationUnitIds: bindings.map((binding) => binding.validationUnitId),
220
+ status: results.every((result) => result.status === 'PASS') ? 'PASS' : 'FAIL',
221
+ results
222
+ };
223
+ }
224
+ function renderTestValidationUnitBatchPreflight(preflight) {
225
+ const bindings = preflight.bindings.length > 0 ? `\nbindings:\n${preflight.bindings.map((binding) => `- ${binding.source}:${binding.requestedTarget}->${binding.validationUnitId} tasks=${binding.taskIds.join(',')}`).join('\n')}` : '';
226
+ const blockers = preflight.blockers.length > 0 ? `\nblockers=${preflight.blockers.length}\n${preflight.blockers.map((blocker) => `- ${blocker}`).join('\n')}` : '';
227
+ return `SDD command preflight ${preflight.status}\ncommand=${preflight.command}\nvalidation_units=${preflight.validationUnitIds.join(',')}${bindings}\nside_effects=${preflight.sideEffects}${blockers}`;
228
+ }
229
+ async function resolveTestValidationUnitBinding(projectRoot, validationInput, args) {
230
+ const branch = await readResolvedBranch(projectRoot, args);
231
+ const model = await parseSddBranch(projectRoot, branch);
232
+ const verifyUnits = await listVerifyValidationUnits(projectRoot, { branch });
233
+ const verifyBlockers = verifyUnits.verifyContract.status === 'PASS' ? [] : [`verify.md contract is ${verifyUnits.verifyContract.status}; run /sdd:tasks before /sdd:test.`];
234
+ const taskById = new Map(model.tasks.map((task) => [task.id, task]));
235
+ const units = verifyUnits.units.map((unit) => ({
236
+ ...unit,
237
+ tasks: unit.taskIds.map((taskId) => taskById.get(taskId)).filter((task) => Boolean(task))
238
+ }));
239
+ const normalizedInput = normalizeBindingText(validationInput);
240
+ const byUnitId = units.filter((unit) => normalizeBindingText(unit.validationUnitId) === normalizedInput);
241
+ if (byUnitId.length === 1) {
242
+ return boundTestValidationUnit(validationInput, byUnitId[0], 'unit_id', verifyBlockers);
243
+ }
244
+ if (byUnitId.length > 1) {
245
+ return ambiguousTestValidationUnit(validationInput, byUnitId, verifyBlockers);
246
+ }
247
+ const byTaskId = units.filter((unit) => unit.taskIds.some((taskId) => normalizeBindingText(taskId) === normalizedInput));
248
+ if (byTaskId.length === 1) {
249
+ return boundTestValidationUnit(validationInput, byTaskId[0], 'task_id', verifyBlockers);
250
+ }
251
+ if (byTaskId.length > 1) {
252
+ return ambiguousTestValidationUnit(validationInput, byTaskId, verifyBlockers);
253
+ }
254
+ const byTaskTitle = units.filter((unit) => unit.tasks.some((task) => task.title && normalizeBindingText(task.title) === normalizedInput));
255
+ if (byTaskTitle.length === 1) {
256
+ return boundTestValidationUnit(validationInput, byTaskTitle[0], 'task_title', verifyBlockers);
257
+ }
258
+ if (byTaskTitle.length > 1) {
259
+ return ambiguousTestValidationUnit(validationInput, byTaskTitle, verifyBlockers);
260
+ }
261
+ const partialMatches = units.filter((unit) => validationUnitSearchText(unit).includes(normalizedInput));
262
+ if (partialMatches.length === 1) {
263
+ return boundTestValidationUnit(validationInput, partialMatches[0], 'partial', verifyBlockers);
264
+ }
265
+ if (partialMatches.length > 1) {
266
+ return ambiguousTestValidationUnit(validationInput, partialMatches, verifyBlockers);
267
+ }
268
+ return { requestedTarget: validationInput, validationUnitId: validationInput, unit: null, source: null, blockers: [...verifyBlockers, `Validation unit ${validationInput} was not found.`] };
269
+ }
270
+ function validationUnitSearchText(unit) {
271
+ return normalizeBindingText([unit.validationUnitId, ...unit.tasks.flatMap((task) => [task.id, task.title ?? ''])].join(' '));
272
+ }
273
+ function boundTestValidationUnit(requestedTarget, unit, source, blockers = []) {
274
+ return { requestedTarget, validationUnitId: unit.validationUnitId, unit, source, blockers };
275
+ }
276
+ function ambiguousTestValidationUnit(requestedTarget, units, blockers = []) {
277
+ return {
278
+ requestedTarget,
279
+ validationUnitId: requestedTarget,
280
+ unit: null,
281
+ source: null,
282
+ blockers: [...blockers, `Validation unit ${requestedTarget} is ambiguous: ${units.map((unit) => unit.validationUnitId).join(', ')}.`]
283
+ };
284
+ }
285
+ function testValidationUnitPreflight(binding) {
286
+ return {
287
+ contract: 'sdd-command-preflight-v1',
288
+ command: 'test validation-unit',
289
+ requestedTarget: binding.requestedTarget,
290
+ validationUnitId: binding.validationUnitId,
291
+ binding: binding.source && binding.unit ? { source: binding.source, taskIds: binding.unit.taskIds } : null,
292
+ sideEffects: 'none',
293
+ status: binding.blockers.length > 0 ? 'BLOCKED' : 'PASS',
294
+ blockers: binding.blockers
295
+ };
296
+ }
297
+ function splitCommaSeparatedInputs(value) {
298
+ return [...new Set(value.split(',').map((item) => item.trim()).filter((item) => item.length > 0))];
299
+ }
300
+ function renderTestValidationUnitPreflight(preflight) {
301
+ const binding = preflight.binding ? `\nbinding=${preflight.binding.source}:${preflight.requestedTarget}->${preflight.validationUnitId}\ntasks=${preflight.binding.taskIds.join(',')}` : '';
302
+ const blockers = preflight.blockers.length > 0 ? `\nblockers=${preflight.blockers.length}\n${preflight.blockers.map((blocker) => `- ${blocker}`).join('\n')}` : '';
303
+ return `SDD command preflight ${preflight.status}\ncommand=${preflight.command}\nvalidation_unit=${preflight.validationUnitId}${binding}\nside_effects=${preflight.sideEffects}${blockers}`;
304
+ }
305
+ function normalizeBindingText(value) {
306
+ return value.trim().replace(/\s+/g, ' ').toLowerCase();
307
+ }
133
308
  function hasSingleTaskOverride(cliArgs, passthroughArgv) {
134
309
  return Boolean(readOption(cliArgs, '--run')
135
310
  || readRepeatedOptions(cliArgs, '--command').length > 0
@@ -181,7 +356,10 @@ function parseCommandInputValue(value) {
181
356
  throw new Error('Command JSON object must include command or argv.');
182
357
  }
183
358
  function testUsage() {
184
- return `${testTaskUsage()}\n${testWaveUsage()}\n${testBatchUsage()}`;
359
+ return `${testValidationUnitUsage()}\n${testTaskUsage()}\n${testWaveUsage()}\n${testBatchUsage()}`;
360
+ }
361
+ function testValidationUnitUsage() {
362
+ return 'Usage: sdd test <validation_unit_id-or-validation_text>[,<validation_unit_id-or-validation_text>...] [--branch <branch>] [--approved] [--timeout-ms <ms>] [--preflight] [--json]';
185
363
  }
186
364
  function testTaskUsage() {
187
365
  return 'Usage: sdd test task <task_id> [--branch <branch>] [--run <run_id>] [--approved] [--command <command>] [--command-json <json>] [--command-file <path>] [--timeout-ms <ms>] [--preflight] [--json] [-- <executable> [...args]]';