@deksden-com/dd-flow-cli 0.9.0-beta.16 → 0.9.0-beta.161

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 (670) hide show
  1. package/CHANGELOG.md +965 -0
  2. package/README.md +139 -10
  3. package/dist/build-info.json +8 -8
  4. package/dist/cli/argument-values.js +38 -0
  5. package/dist/cli/command-inputs.js +417 -0
  6. package/dist/cli/command-metadata.js +303 -0
  7. package/dist/cli/command-option-descriptions.js +192 -0
  8. package/dist/cli/completion-cli.js +70 -0
  9. package/dist/cli/completion.js +57 -0
  10. package/dist/cli/delivery.js +108 -0
  11. package/dist/cli/diagnostic-invocation.js +62 -0
  12. package/dist/cli/diagnostic.js +131 -0
  13. package/dist/cli/error-output.js +62 -0
  14. package/dist/cli/executor-onboarding.js +76 -0
  15. package/dist/cli/flows.js +29 -0
  16. package/dist/cli/harnesses.js +84 -0
  17. package/dist/cli/help.js +521 -19
  18. package/dist/cli/hook-ingress.js +89 -0
  19. package/dist/cli/input-preparation.js +193 -0
  20. package/dist/cli/interactive-invocation.js +33 -0
  21. package/dist/cli/interactive.js +114 -0
  22. package/dist/cli/memory-fix-invocation.js +52 -0
  23. package/dist/cli/memory-fix.js +100 -0
  24. package/dist/cli/memory-flow-admission.js +54 -0
  25. package/dist/cli/memory-init-invocation.js +85 -0
  26. package/dist/cli/memory-init.js +250 -0
  27. package/dist/cli/memory-storage-admission.js +54 -0
  28. package/dist/cli/memory-storage-qualification.js +105 -0
  29. package/dist/cli/memory-storage-transition.js +123 -0
  30. package/dist/cli/memory-upgrade.js +189 -0
  31. package/dist/cli/models.js +39 -0
  32. package/dist/cli/native-hook-ingress.js +94 -0
  33. package/dist/cli/native-hook-preparation.js +82 -0
  34. package/dist/cli/operator-profiles.js +61 -0
  35. package/dist/cli/output-options.js +35 -0
  36. package/dist/cli/response-file.js +72 -0
  37. package/dist/cli/run-cli.js +2020 -555
  38. package/dist/cli/runtime-maintenance-diagnostics.js +46 -0
  39. package/dist/cli/runtime-maintenance-ingress.js +52 -0
  40. package/dist/cli/runtime-process.js +153 -0
  41. package/dist/cli/setup.js +150 -0
  42. package/dist/cli.js +103 -2
  43. package/dist/domain/delivery-flows.js +8 -0
  44. package/dist/domain/diagnostic-aspects.js +103 -0
  45. package/dist/domain/diagnostic-flows.js +8 -0
  46. package/dist/domain/distill-flow.js +20 -0
  47. package/dist/domain/interactive-flow.js +1 -0
  48. package/dist/domain/memory-fix-flow.js +2 -0
  49. package/dist/domain/review-fix-flow.js +2 -0
  50. package/dist/domain/source-snapshot-flows.js +4 -0
  51. package/dist/domain/stage-catalog.js +1 -1
  52. package/dist/domain/stage-handler-identities.js +28 -0
  53. package/dist/harness-runtime/DD-ZCODE.md +112 -0
  54. package/dist/harness-runtime/OPENCODE-LICENSE.txt +24 -0
  55. package/dist/harness-runtime/bin/dd-agy.mjs +71 -0
  56. package/dist/harness-runtime/bin/dd-codex.mjs +27 -0
  57. package/dist/harness-runtime/bin/dd-droid.mjs +34 -0
  58. package/dist/harness-runtime/bin/dd-grok.mjs +50 -0
  59. package/dist/harness-runtime/bin/dd-opencode.mjs +22 -0
  60. package/dist/harness-runtime/bin/dd-zcode.mjs +95 -0
  61. package/dist/harness-runtime/lib/adapter-timeouts.d.mts +5 -0
  62. package/dist/harness-runtime/lib/adapter-timeouts.mjs +34 -0
  63. package/dist/harness-runtime/lib/agy-error-boundary.mjs +87 -0
  64. package/dist/harness-runtime/lib/agy-hooks.d.mts +1 -0
  65. package/dist/harness-runtime/lib/agy-hooks.mjs +9 -0
  66. package/dist/harness-runtime/lib/agy-native-inspection.mjs +225 -0
  67. package/dist/harness-runtime/lib/agy-native-inventory.mjs +19 -0
  68. package/dist/harness-runtime/lib/agy-native_pb.js +117 -0
  69. package/dist/harness-runtime/lib/agy-terminal-envelope.mjs +74 -0
  70. package/dist/harness-runtime/lib/agy-transcript-stream.mjs +54 -0
  71. package/dist/harness-runtime/lib/daemon-observation.d.mts +3 -0
  72. package/dist/harness-runtime/lib/daemon-observation.mjs +171 -0
  73. package/dist/harness-runtime/lib/daemon-operations.d.mts +2 -0
  74. package/dist/harness-runtime/lib/daemon-operations.mjs +512 -0
  75. package/dist/harness-runtime/lib/dd-agy-daemon.d.mts +7 -0
  76. package/dist/harness-runtime/lib/dd-agy-daemon.mjs +1362 -0
  77. package/dist/harness-runtime/lib/dd-agy.mjs +105 -0
  78. package/dist/harness-runtime/lib/dd-codex-daemon.d.mts +1 -0
  79. package/dist/harness-runtime/lib/dd-codex-daemon.mjs +271 -0
  80. package/dist/harness-runtime/lib/dd-codex.d.mts +1 -0
  81. package/dist/harness-runtime/lib/dd-codex.mjs +986 -0
  82. package/dist/harness-runtime/lib/dd-droid-daemon.mjs +155 -0
  83. package/dist/harness-runtime/lib/dd-droid.mjs +739 -0
  84. package/dist/harness-runtime/lib/dd-grok-daemon.d.mts +1 -0
  85. package/dist/harness-runtime/lib/dd-grok-daemon.mjs +667 -0
  86. package/dist/harness-runtime/lib/dd-grok.mjs +182 -0
  87. package/dist/harness-runtime/lib/dd-opencode-daemon.mjs +772 -0
  88. package/dist/harness-runtime/lib/dd-opencode.mjs +411 -0
  89. package/dist/harness-runtime/lib/dd-zcode-daemon.d.mts +1 -0
  90. package/dist/harness-runtime/lib/dd-zcode-daemon.mjs +845 -0
  91. package/dist/harness-runtime/lib/dd-zcode.mjs +1239 -0
  92. package/dist/harness-runtime/lib/delegation-instructions.d.mts +16 -0
  93. package/dist/harness-runtime/lib/delegation-instructions.mjs +179 -0
  94. package/dist/harness-runtime/lib/delivery-command.mjs +84 -0
  95. package/dist/harness-runtime/lib/dispatch-fence.mjs +14 -0
  96. package/dist/harness-runtime/lib/driver-recovery.mjs +121 -0
  97. package/dist/harness-runtime/lib/droid-observation.mjs +70 -0
  98. package/dist/harness-runtime/lib/entity-references.d.mts +2 -0
  99. package/dist/harness-runtime/lib/entity-references.mjs +9 -0
  100. package/dist/harness-runtime/lib/lease-renewal.d.mts +8 -0
  101. package/dist/harness-runtime/lib/lease-renewal.mjs +37 -0
  102. package/dist/harness-runtime/lib/lifecycle-command.d.mts +20 -0
  103. package/dist/harness-runtime/lib/lifecycle-command.mjs +273 -0
  104. package/dist/harness-runtime/lib/lifecycle-contract.d.mts +11 -0
  105. package/dist/harness-runtime/lib/lifecycle-contract.mjs +20 -0
  106. package/dist/harness-runtime/lib/managed-daemon.d.mts +16 -0
  107. package/dist/harness-runtime/lib/managed-daemon.mjs +698 -0
  108. package/dist/harness-runtime/lib/managed-flow-env.mjs +15 -0
  109. package/dist/harness-runtime/lib/model-observations.mjs +113 -0
  110. package/dist/harness-runtime/lib/native-children.d.mts +34 -0
  111. package/dist/harness-runtime/lib/native-children.mjs +265 -0
  112. package/dist/harness-runtime/lib/native-hook-command.d.mts +8 -0
  113. package/dist/harness-runtime/lib/native-hook-command.mjs +306 -0
  114. package/dist/harness-runtime/lib/native-request-proof.d.mts +2 -0
  115. package/dist/harness-runtime/lib/native-request-proof.mjs +65 -0
  116. package/dist/harness-runtime/lib/native-streams.mjs +38 -0
  117. package/dist/harness-runtime/lib/observation-clock.d.mts +18 -0
  118. package/dist/harness-runtime/lib/observation-clock.mjs +95 -0
  119. package/dist/harness-runtime/lib/opencode-plugin.mjs +112 -0
  120. package/dist/harness-runtime/lib/operation-context.mjs +5 -0
  121. package/dist/harness-runtime/lib/operation-errors.d.mts +16 -0
  122. package/dist/harness-runtime/lib/operation-errors.mjs +140 -0
  123. package/dist/harness-runtime/lib/operation-progress.d.mts +7 -0
  124. package/dist/harness-runtime/lib/operation-progress.mjs +118 -0
  125. package/dist/harness-runtime/lib/process-json.d.mts +5 -0
  126. package/dist/harness-runtime/lib/process-json.mjs +200 -0
  127. package/dist/harness-runtime/lib/process-snapshot.mjs +10 -0
  128. package/dist/harness-runtime/lib/provider-overload-policy.d.mts +23 -0
  129. package/dist/harness-runtime/lib/provider-overload-policy.mjs +242 -0
  130. package/dist/harness-runtime/lib/runner-events.mjs +202 -0
  131. package/dist/harness-runtime/lib/runner-lock.mjs +42 -0
  132. package/dist/harness-runtime/lib/session-settlement.mjs +30 -0
  133. package/dist/harness-runtime/lib/setup-progress.d.mts +9 -0
  134. package/dist/harness-runtime/lib/setup-progress.mjs +53 -0
  135. package/dist/harness-runtime/lib/tool-observations.d.mts +21 -0
  136. package/dist/harness-runtime/lib/tool-observations.mjs +238 -0
  137. package/dist/harness-runtime/lib/zcode-native-hook-ownership.mjs +109 -0
  138. package/dist/harness-runtime/lib/zcode-usage.mjs +55 -0
  139. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-1y4a697q.js +81 -0
  140. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-2ny4vxct.js +92 -0
  141. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-6mptkzbc.js +0 -0
  142. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-7x67cf1q.js +52 -0
  143. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-9rqn6x4v.js +16 -0
  144. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-9vdz0zwn.js +1661 -0
  145. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-ecs5ftka.js +1466 -0
  146. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-frbwqjmf.js +145 -0
  147. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-gne7h7mq.js +50 -0
  148. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-gx9wnkzr.js +105 -0
  149. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-m2eywc8w.js +0 -0
  150. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-nwcpakzx.js +12 -0
  151. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-q4g3afnw.js +623 -0
  152. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-qav6mfdz.js +0 -0
  153. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-sxt88q69.js +12 -0
  154. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-t1xa31vm.js +39 -0
  155. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-ve4aws36.js +103 -0
  156. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-vmytr4q8.js +4 -0
  157. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-vt9jbch8.js +36 -0
  158. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-vyas3vgt.js +0 -0
  159. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-wjyeq25y.js +30 -0
  160. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-xgnj2w4v.js +20 -0
  161. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-y2etg5bs.js +9 -0
  162. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-ydhz1zrh.js +238 -0
  163. package/dist/harness-runtime/vendor/opencode-client/chunks/service-probe-z6qdwcsf.js +62 -0
  164. package/dist/harness-runtime/vendor/opencode-client/contract.d.ts +1 -0
  165. package/dist/harness-runtime/vendor/opencode-client/contract.js +12 -0
  166. package/dist/harness-runtime/vendor/opencode-client/effect/api/api.d.ts +2806 -0
  167. package/dist/harness-runtime/vendor/opencode-client/effect/api/api.js +0 -0
  168. package/dist/harness-runtime/vendor/opencode-client/effect/api.d.ts +4 -0
  169. package/dist/harness-runtime/vendor/opencode-client/effect/api.js +0 -0
  170. package/dist/harness-runtime/vendor/opencode-client/effect/client.d.ts +2530 -0
  171. package/dist/harness-runtime/vendor/opencode-client/effect/client.js +15 -0
  172. package/dist/harness-runtime/vendor/opencode-client/effect/generated/client-error.d.ts +7 -0
  173. package/dist/harness-runtime/vendor/opencode-client/effect/generated/client-error.js +6 -0
  174. package/dist/harness-runtime/vendor/opencode-client/effect/generated/client.d.ts +2529 -0
  175. package/dist/harness-runtime/vendor/opencode-client/effect/generated/client.js +8 -0
  176. package/dist/harness-runtime/vendor/opencode-client/effect/generated/index.d.ts +2 -0
  177. package/dist/harness-runtime/vendor/opencode-client/effect/generated/index.js +12 -0
  178. package/dist/harness-runtime/vendor/opencode-client/effect/index.d.ts +35 -0
  179. package/dist/harness-runtime/vendor/opencode-client/effect/index.js +75 -0
  180. package/dist/harness-runtime/vendor/opencode-client/effect/rpc.d.ts +20 -0
  181. package/dist/harness-runtime/vendor/opencode-client/effect/rpc.js +11 -0
  182. package/dist/harness-runtime/vendor/opencode-client/effect/service.d.ts +90 -0
  183. package/dist/harness-runtime/vendor/opencode-client/effect/service.js +187 -0
  184. package/dist/harness-runtime/vendor/opencode-client/package.json +84 -0
  185. package/dist/harness-runtime/vendor/opencode-client/promise/api.d.ts +21 -0
  186. package/dist/harness-runtime/vendor/opencode-client/promise/api.js +0 -0
  187. package/dist/harness-runtime/vendor/opencode-client/promise/client.d.ts +252 -0
  188. package/dist/harness-runtime/vendor/opencode-client/promise/client.js +14 -0
  189. package/dist/harness-runtime/vendor/opencode-client/promise/generated/client-error.d.ts +8 -0
  190. package/dist/harness-runtime/vendor/opencode-client/promise/generated/client-error.js +6 -0
  191. package/dist/harness-runtime/vendor/opencode-client/promise/generated/client.d.ts +259 -0
  192. package/dist/harness-runtime/vendor/opencode-client/promise/generated/client.js +7 -0
  193. package/dist/harness-runtime/vendor/opencode-client/promise/generated/index.d.ts +3 -0
  194. package/dist/harness-runtime/vendor/opencode-client/promise/generated/index.js +79 -0
  195. package/dist/harness-runtime/vendor/opencode-client/promise/generated/types.d.ts +8932 -0
  196. package/dist/harness-runtime/vendor/opencode-client/promise/generated/types.js +70 -0
  197. package/dist/harness-runtime/vendor/opencode-client/promise/index.d.ts +6 -0
  198. package/dist/harness-runtime/vendor/opencode-client/promise/index.js +83 -0
  199. package/dist/harness-runtime/vendor/opencode-client/promise/rpc.d.ts +32 -0
  200. package/dist/harness-runtime/vendor/opencode-client/promise/rpc.js +7 -0
  201. package/dist/harness-runtime/vendor/opencode-client/promise/service.d.ts +24 -0
  202. package/dist/harness-runtime/vendor/opencode-client/promise/service.js +187 -0
  203. package/dist/harness-runtime/vendor/opencode-client/pty-handoff.d.ts +12 -0
  204. package/dist/harness-runtime/vendor/opencode-client/pty-handoff.js +14 -0
  205. package/dist/harness-runtime/vendor/opencode-client/rpc-runtime.d.ts +20 -0
  206. package/dist/harness-runtime/vendor/opencode-client/rpc-runtime.js +14 -0
  207. package/dist/harness-runtime/vendor/opencode-client/service-contender.d.ts +37 -0
  208. package/dist/harness-runtime/vendor/opencode-client/service-contender.js +10 -0
  209. package/dist/harness-runtime/vendor/opencode-client/service-probe.d.ts +70 -0
  210. package/dist/harness-runtime/vendor/opencode-client/service-probe.js +16 -0
  211. package/dist/harness-runtime/vendor/opencode-client/service-timing.d.ts +12 -0
  212. package/dist/harness-runtime/vendor/opencode-client/service-timing.js +10 -0
  213. package/dist/harness-runtime/vendor/opencode-client/service-version.d.ts +2 -0
  214. package/dist/harness-runtime/vendor/opencode-client/service-version.js +6 -0
  215. package/dist/harness-runtime/vendor/opencode-client/service.d.ts +52 -0
  216. package/dist/harness-runtime/vendor/opencode-client/service.js +1 -0
  217. package/dist/harness-runtime/vendor/opencode-client/shared-events.d.ts +11 -0
  218. package/dist/harness-runtime/vendor/opencode-client/shared-events.js +8 -0
  219. package/dist/harness-runtime/vendor/opencode-client/solid/connection.d.ts +37 -0
  220. package/dist/harness-runtime/vendor/opencode-client/solid/connection.js +10 -0
  221. package/dist/harness-runtime/vendor/opencode-client/solid/data.d.ts +211 -0
  222. package/dist/harness-runtime/vendor/opencode-client/solid/data.js +18 -0
  223. package/dist/harness-runtime/vendor/opencode-client/solid/index.d.ts +3 -0
  224. package/dist/harness-runtime/vendor/opencode-client/solid/index.js +32 -0
  225. package/dist/harness-runtime/vendor/opencode-client/solid/pty.d.ts +22 -0
  226. package/dist/harness-runtime/vendor/opencode-client/solid/pty.js +8 -0
  227. package/dist/harness-runtime/vendor/opencode-plugin.mjs +3 -0
  228. package/dist/protocol/local-files.js +18 -9
  229. package/dist/runtime/context.js +8 -4
  230. package/dist/schemas/agent-profile.schema.json +1 -1
  231. package/dist/schemas/code-review-decision.schema.json +9 -0
  232. package/dist/schemas/code-review-result.schema.json +1 -1
  233. package/dist/schemas/code-verification.schema.json +7 -5
  234. package/dist/schemas/code-work-batch.schema.json +2 -2
  235. package/dist/schemas/code-work-result.schema.json +2 -1
  236. package/dist/schemas/delivery-stage-result.schema.json +286 -0
  237. package/dist/schemas/diagnostic-stage-result.schema.json +354 -0
  238. package/dist/schemas/diagnostic-work-result.schema.json +296 -0
  239. package/dist/schemas/discovery-result.schema.json +184 -0
  240. package/dist/schemas/distill-stage-result.schema.json +667 -0
  241. package/dist/schemas/distill-work-result.schema.json +428 -0
  242. package/dist/schemas/execution-bundle.schema.json +215 -0
  243. package/dist/schemas/execution-settings.schema.json +162 -0
  244. package/dist/schemas/flow-descriptor.schema.json +54 -0
  245. package/dist/schemas/flow-run.schema.json +29 -0
  246. package/dist/schemas/harness-catalog.schema.json +80 -0
  247. package/dist/schemas/interactive-stage-result.schema.json +47 -0
  248. package/dist/schemas/interactive-work-result.schema.json +63 -0
  249. package/dist/schemas/mb-fix-stage-result.schema.json +93 -0
  250. package/dist/schemas/mb-init-compose-result.schema.json +457 -0
  251. package/dist/schemas/mb-init-discover-result.schema.json +500 -0
  252. package/dist/schemas/mb-init-finish-result.schema.json +422 -0
  253. package/dist/schemas/mb-init-preflight-result.schema.json +367 -0
  254. package/dist/schemas/mb-init-review-result.schema.json +396 -0
  255. package/dist/schemas/mb-init-verify-result.schema.json +391 -0
  256. package/dist/schemas/mb-upgrade-stage-result.schema.json +863 -0
  257. package/dist/schemas/memory-bootstrap-receipt-v2.schema.json +67 -0
  258. package/dist/schemas/memory-bootstrap-receipt.schema.json +354 -0
  259. package/dist/schemas/memory-composition-work-result.schema.json +38 -0
  260. package/dist/schemas/memory-repair-work-result.schema.json +56 -0
  261. package/dist/schemas/memory-review-correction-plan.schema.json +30 -0
  262. package/dist/schemas/memory-review-work-result.schema.json +43 -0
  263. package/dist/schemas/model-catalog.schema.json +153 -0
  264. package/dist/schemas/plan-review-decision.schema.json +12 -3
  265. package/dist/schemas/plan-review-result.schema.json +2 -2
  266. package/dist/schemas/profile-settings.schema.json +122 -0
  267. package/dist/schemas/project-flow-pack-manifest.schema.json +2 -2
  268. package/dist/schemas/release-impact.schema.json +3 -3
  269. package/dist/schemas/release-manifest.schema.json +291 -0
  270. package/dist/schemas/review-fix-stage-result.schema.json +210 -0
  271. package/dist/schemas/run-control-receipt.schema.json +119 -0
  272. package/dist/schemas/run-control-request.schema.json +36 -0
  273. package/dist/schemas/run-engine-binding.schema.json +1 -1
  274. package/dist/schemas/stage-start-response.schema.json +4 -0
  275. package/dist/schemas/vnext-protocol-plan.schema.json +3 -3
  276. package/dist/services/accepted-intent.js +139 -0
  277. package/dist/services/assigned-lifecycle.js +382 -0
  278. package/dist/services/branch-context.js +3 -3
  279. package/dist/services/canon.js +54 -15
  280. package/dist/services/check-environment.js +21 -0
  281. package/dist/services/check-runner-evidence.js +344 -0
  282. package/dist/services/check-runner-proof.js +373 -0
  283. package/dist/services/cleanup.js +133 -40
  284. package/dist/services/cli-operation-classifier.js +32 -64
  285. package/dist/services/cli-upgrade-allowlist.js +27 -0
  286. package/dist/services/code-checks.js +1426 -121
  287. package/dist/services/codex-capacity.js +367 -0
  288. package/dist/services/codex-hook-delivery.js +41 -0
  289. package/dist/services/command-context.js +80 -0
  290. package/dist/services/compatibility-preflight.js +16 -3
  291. package/dist/services/config.js +11 -8
  292. package/dist/services/continuation-outcome.js +25 -0
  293. package/dist/services/controller-child-capacity.js +71 -0
  294. package/dist/services/controller-child-observer.js +121 -0
  295. package/dist/services/controller-child-repair.js +117 -0
  296. package/dist/services/controller-execution.js +97 -0
  297. package/dist/services/controller-fanout.js +277 -0
  298. package/dist/services/controller-memory-task.js +45 -0
  299. package/dist/services/controller-memory-worker.js +51 -0
  300. package/dist/services/controller-result-authority.js +127 -0
  301. package/dist/services/controller-work-failure.js +198 -0
  302. package/dist/services/dashboard.js +145 -58
  303. package/dist/services/delivery-access.js +123 -0
  304. package/dist/services/delivery-approval.js +68 -0
  305. package/dist/services/delivery-artifact.js +86 -0
  306. package/dist/services/delivery-checks.js +178 -0
  307. package/dist/services/delivery-execution.js +181 -0
  308. package/dist/services/delivery-intents.js +212 -0
  309. package/dist/services/delivery-operation.js +81 -0
  310. package/dist/services/delivery-policy.js +91 -0
  311. package/dist/services/delivery-procedures.js +43 -0
  312. package/dist/services/delivery-request.js +99 -0
  313. package/dist/services/delivery-result.js +144 -0
  314. package/dist/services/delivery-stage-commands.js +26 -0
  315. package/dist/services/delivery-stage-entry.js +56 -0
  316. package/dist/services/delivery-stage-handlers.js +135 -0
  317. package/dist/services/delivery-stage-results.js +94 -0
  318. package/dist/services/descriptor-coordinator-session.js +37 -0
  319. package/dist/services/descriptor-root-work.js +53 -0
  320. package/dist/services/descriptor-run-settlement.js +107 -0
  321. package/dist/services/descriptor-run-start.js +495 -0
  322. package/dist/services/descriptor-stage-coordinator.js +318 -0
  323. package/dist/services/descriptor-stage-settlement.js +268 -0
  324. package/dist/services/descriptor-stage-start.js +175 -0
  325. package/dist/services/diagnostic-evidence.js +73 -0
  326. package/dist/services/diagnostic-repair-intake.js +123 -0
  327. package/dist/services/diagnostic-repair-source-intake.js +102 -0
  328. package/dist/services/diagnostic-report-publication.js +72 -0
  329. package/dist/services/diagnostic-report.js +97 -0
  330. package/dist/services/diagnostic-run-bundle.js +113 -0
  331. package/dist/services/diagnostic-snapshot.js +159 -0
  332. package/dist/services/diagnostic-stage-handlers.js +109 -0
  333. package/dist/services/diagnostic-stage-results.js +158 -0
  334. package/dist/services/diagnostic-start.js +134 -0
  335. package/dist/services/diagnostic-work-batch.js +34 -0
  336. package/dist/services/diagnostic-work-collection.js +97 -0
  337. package/dist/services/diagnostic-work-registration.js +101 -0
  338. package/dist/services/diagnostic-work-results.js +93 -0
  339. package/dist/services/discovery/agy-discovery.js +2 -0
  340. package/dist/services/discovery/codex-discovery.js +2 -0
  341. package/dist/services/discovery/droid-discovery.js +2 -0
  342. package/dist/services/discovery/grok-discovery.js +2 -0
  343. package/dist/services/discovery/opencode-discovery.js +2 -0
  344. package/dist/services/discovery/static.js +31 -0
  345. package/dist/services/discovery/zcode-discovery.js +2 -0
  346. package/dist/services/distill-document-publication.js +280 -0
  347. package/dist/services/distill-promotion.js +197 -0
  348. package/dist/services/distill-publication-custody.js +162 -0
  349. package/dist/services/distill-stage-handlers.js +249 -0
  350. package/dist/services/distill-stage-results.js +105 -0
  351. package/dist/services/distill-user-inputs.js +4 -0
  352. package/dist/services/distill-work-batch.js +42 -0
  353. package/dist/services/distill-work-collection.js +74 -0
  354. package/dist/services/distill-work-registration.js +93 -0
  355. package/dist/services/distill-work-results.js +98 -0
  356. package/dist/services/engines.js +354 -163
  357. package/dist/services/eval-snapshots.js +1326 -150
  358. package/dist/services/execution-bundles.js +275 -0
  359. package/dist/services/execution-policy.js +185 -0
  360. package/dist/services/executor-onboarding.js +56 -0
  361. package/dist/services/external-work-launch.js +316 -0
  362. package/dist/services/flow-catalog.js +54 -0
  363. package/dist/services/flow-descriptors.js +82 -0
  364. package/dist/services/frozen-engine.js +404 -0
  365. package/dist/services/generic-execution.js +165 -0
  366. package/dist/services/harness-adapter.js +342 -35
  367. package/dist/services/harness-config.js +2 -0
  368. package/dist/services/harness-discovery.js +29 -0
  369. package/dist/services/harness-doctor.js +75 -0
  370. package/dist/services/harness-probe-effects.js +51 -0
  371. package/dist/services/harness-version-probe.js +100 -0
  372. package/dist/services/hook-memory-routing.js +188 -0
  373. package/dist/services/hook-recovery-guard.js +14 -0
  374. package/dist/services/hook-session-observation.js +24 -0
  375. package/dist/services/hooks.js +813 -327
  376. package/dist/services/hybrid-contracts.js +479 -0
  377. package/dist/services/hybrid-digest.js +14 -0
  378. package/dist/services/ids.js +29 -1
  379. package/dist/services/installation-lock.js +95 -0
  380. package/dist/services/installed-flow-source.js +261 -0
  381. package/dist/services/interactive-attached-session.js +215 -0
  382. package/dist/services/interactive-baseline-custody.js +54 -0
  383. package/dist/services/interactive-before-versions.js +148 -0
  384. package/dist/services/interactive-bundle-data.js +85 -0
  385. package/dist/services/interactive-checks.js +179 -0
  386. package/dist/services/interactive-execution.js +33 -0
  387. package/dist/services/interactive-finish-integration.js +236 -0
  388. package/dist/services/interactive-git-baseline.js +230 -0
  389. package/dist/services/interactive-git-dispatch.js +278 -0
  390. package/dist/services/interactive-input-delivery.js +82 -0
  391. package/dist/services/interactive-mutation-scope.js +231 -0
  392. package/dist/services/interactive-request.js +287 -0
  393. package/dist/services/interactive-run-bundle.js +109 -0
  394. package/dist/services/interactive-stage-entry.js +41 -0
  395. package/dist/services/interactive-stage-handlers.js +289 -0
  396. package/dist/services/interactive-stage-observation.js +136 -0
  397. package/dist/services/interactive-stage-results.js +111 -0
  398. package/dist/services/interactive-user-inputs.js +142 -0
  399. package/dist/services/interactive-work-batch.js +43 -0
  400. package/dist/services/interactive-work-collection.js +119 -0
  401. package/dist/services/interactive-work-completion.js +180 -0
  402. package/dist/services/interactive-work-context.js +249 -0
  403. package/dist/services/interactive-work-history.js +112 -0
  404. package/dist/services/interactive-work-registration.js +124 -0
  405. package/dist/services/interactive-work-results.js +115 -0
  406. package/dist/services/interactive-work-start.js +155 -0
  407. package/dist/services/lanes.js +78 -65
  408. package/dist/services/lifecycle-command.js +1 -288
  409. package/dist/services/lifecycle-contract.js +1 -0
  410. package/dist/services/lifecycle-invocations.js +2549 -0
  411. package/dist/services/managed-daemon-binding.js +129 -0
  412. package/dist/services/managed-lease-monitor.js +133 -0
  413. package/dist/services/managed-processes.js +449 -69
  414. package/dist/services/memory-accepted-composition.js +78 -0
  415. package/dist/services/memory-baseline-preservation.js +65 -0
  416. package/dist/services/memory-completed-correction-wave.js +328 -0
  417. package/dist/services/memory-compose-handler.js +380 -0
  418. package/dist/services/memory-composition-acceptance.js +375 -0
  419. package/dist/services/memory-composition-graph.js +165 -0
  420. package/dist/services/memory-composition-registration.js +161 -0
  421. package/dist/services/memory-composition-work-custody.js +156 -0
  422. package/dist/services/memory-composition-work-results.js +108 -0
  423. package/dist/services/memory-corrected-review-acceptance.js +129 -0
  424. package/dist/services/memory-corrected-review-batch.js +37 -0
  425. package/dist/services/memory-corrected-review-findings.js +108 -0
  426. package/dist/services/memory-corrected-review-inputs.js +215 -0
  427. package/dist/services/memory-corrected-review-projection.js +78 -0
  428. package/dist/services/memory-corrected-review-receipt.js +178 -0
  429. package/dist/services/memory-corrected-review-registration.js +192 -0
  430. package/dist/services/memory-correction-check-receipt.js +235 -0
  431. package/dist/services/memory-correction-input-owner.js +6 -0
  432. package/dist/services/memory-custody-snapshot.js +36 -0
  433. package/dist/services/memory-discover-handler.js +104 -0
  434. package/dist/services/memory-finish-evidence.js +457 -0
  435. package/dist/services/memory-finish-handler.js +229 -0
  436. package/dist/services/memory-finish-integration.js +491 -0
  437. package/dist/services/memory-finish-readiness.js +169 -0
  438. package/dist/services/memory-fix-finish-integration.js +129 -0
  439. package/dist/services/memory-fix-git-dispatch.js +139 -0
  440. package/dist/services/memory-fix-intake-custody.js +11 -0
  441. package/dist/services/memory-fix-intake-settlement.js +127 -0
  442. package/dist/services/memory-fix-publication.js +196 -0
  443. package/dist/services/memory-fix-repair-admission.js +116 -0
  444. package/dist/services/memory-fix-request.js +141 -0
  445. package/dist/services/memory-fix-run-bundle.js +83 -0
  446. package/dist/services/memory-fix-scope.js +78 -0
  447. package/dist/services/memory-fix-sources.js +85 -0
  448. package/dist/services/memory-fix-stage-entry.js +24 -0
  449. package/dist/services/memory-fix-stage-handlers.js +282 -0
  450. package/dist/services/memory-fix-stage-results.js +106 -0
  451. package/dist/services/memory-fix-workspace.js +127 -0
  452. package/dist/services/memory-flow-user-inputs.js +88 -0
  453. package/dist/services/memory-git-integration.js +220 -0
  454. package/dist/services/memory-historical-corrected-review.js +212 -0
  455. package/dist/services/memory-historical-original-review.js +143 -0
  456. package/dist/services/memory-historical-repair-registration.js +105 -0
  457. package/dist/services/memory-historical-second-review.js +147 -0
  458. package/dist/services/memory-init-bootstrap-readiness.js +210 -0
  459. package/dist/services/memory-init-contexts.js +181 -0
  460. package/dist/services/memory-init-controller-start.js +119 -0
  461. package/dist/services/memory-init-engine-release.js +223 -0
  462. package/dist/services/memory-init-git-policy.js +165 -0
  463. package/dist/services/memory-init-lint-capability.js +203 -0
  464. package/dist/services/memory-init-native-capacity.js +309 -0
  465. package/dist/services/memory-init-preflight.js +334 -0
  466. package/dist/services/memory-init-project-bootstrap.js +599 -0
  467. package/dist/services/memory-init-request-candidate.js +213 -0
  468. package/dist/services/memory-init-request-input.js +82 -0
  469. package/dist/services/memory-init-resource-storage.js +125 -0
  470. package/dist/services/memory-init-run-allocation.js +81 -0
  471. package/dist/services/memory-init-run-bundle.js +135 -0
  472. package/dist/services/memory-init-start.js +181 -0
  473. package/dist/services/memory-init-startup-custody.js +80 -0
  474. package/dist/services/memory-init-startup-input.js +240 -0
  475. package/dist/services/memory-init-storage.js +91 -0
  476. package/dist/services/memory-init-stores.js +359 -0
  477. package/dist/services/memory-init-worktrunk-capability.js +174 -0
  478. package/dist/services/memory-layer-publication.js +611 -0
  479. package/dist/services/memory-layer.js +225 -0
  480. package/dist/services/memory-lint-config.js +194 -0
  481. package/dist/services/memory-native-review-copy.js +127 -0
  482. package/dist/services/memory-normal-flow-entry.js +87 -0
  483. package/dist/services/memory-ordinary-defaults.js +129 -0
  484. package/dist/services/memory-preflight-bootstrap-custody.js +115 -0
  485. package/dist/services/memory-preflight-handler.js +274 -0
  486. package/dist/services/memory-repair-current-view.js +299 -0
  487. package/dist/services/memory-repair-document-delta.js +489 -0
  488. package/dist/services/memory-repair-history.js +496 -0
  489. package/dist/services/memory-repair-physical-binding.js +194 -0
  490. package/dist/services/memory-repair-publication-files.js +152 -0
  491. package/dist/services/memory-repair-publication-intent.js +27 -0
  492. package/dist/services/memory-repair-publication-plan.js +162 -0
  493. package/dist/services/memory-repair-publication-source.js +225 -0
  494. package/dist/services/memory-repair-publication.js +795 -0
  495. package/dist/services/memory-repair-registration.js +240 -0
  496. package/dist/services/memory-repair-work-baseline.js +415 -0
  497. package/dist/services/memory-repair-work-completion.js +117 -0
  498. package/dist/services/memory-repair-work-custody.js +73 -0
  499. package/dist/services/memory-repair-work-results.js +108 -0
  500. package/dist/services/memory-repair-workspace.js +261 -0
  501. package/dist/services/memory-repair-writer-copy.js +736 -0
  502. package/dist/services/memory-result-binding.js +239 -0
  503. package/dist/services/memory-retained-review-authority.js +138 -0
  504. package/dist/services/memory-retained-review-results.js +70 -0
  505. package/dist/services/memory-retained-second-baseline.js +102 -0
  506. package/dist/services/memory-retained-second-repairs.js +162 -0
  507. package/dist/services/memory-review-acceptance.js +214 -0
  508. package/dist/services/memory-review-correction-plan.js +206 -0
  509. package/dist/services/memory-review-handler.js +585 -0
  510. package/dist/services/memory-review-inputs.js +246 -0
  511. package/dist/services/memory-review-limits.js +10 -0
  512. package/dist/services/memory-review-receipt.js +180 -0
  513. package/dist/services/memory-review-registration.js +117 -0
  514. package/dist/services/memory-review-work-custody.js +126 -0
  515. package/dist/services/memory-review-work-input.js +91 -0
  516. package/dist/services/memory-review-work-results.js +95 -0
  517. package/dist/services/memory-second-corrected-review-inputs.js +167 -0
  518. package/dist/services/memory-second-correction-plan.js +77 -0
  519. package/dist/services/memory-second-repair-baseline.js +91 -0
  520. package/dist/services/memory-second-repair-launch.js +614 -0
  521. package/dist/services/memory-second-repair-registration.js +88 -0
  522. package/dist/services/memory-second-repair-source.js +187 -0
  523. package/dist/services/memory-second-review-acceptance.js +115 -0
  524. package/dist/services/memory-source-observations.js +117 -0
  525. package/dist/services/memory-stage-dispatch.js +65 -0
  526. package/dist/services/memory-stage-results.js +290 -0
  527. package/dist/services/memory-tool-probe.js +25 -0
  528. package/dist/services/memory-upgrade-analysis-handler.js +243 -0
  529. package/dist/services/memory-upgrade-bootstrap-readiness.js +251 -0
  530. package/dist/services/memory-upgrade-evidence.js +100 -0
  531. package/dist/services/memory-upgrade-inventory.js +442 -0
  532. package/dist/services/memory-upgrade-publication-custody.js +73 -0
  533. package/dist/services/memory-upgrade-publication.js +413 -0
  534. package/dist/services/memory-upgrade-selection.js +430 -0
  535. package/dist/services/memory-upgrade-start.js +60 -0
  536. package/dist/services/memory-upgrade-storage-readiness.js +340 -0
  537. package/dist/services/memory-verification-acceptance.js +156 -0
  538. package/dist/services/memory-verification-checks.js +317 -0
  539. package/dist/services/memory-verification-receipt.js +160 -0
  540. package/dist/services/memory-verify-handler.js +137 -0
  541. package/dist/services/memory-work-result-json.js +12 -0
  542. package/dist/services/memory-work-result-preparation.js +64 -0
  543. package/dist/services/merge-queue.js +228 -149
  544. package/dist/services/merge-server.js +163 -35
  545. package/dist/services/migrations.js +164 -114
  546. package/dist/services/model-catalog.js +109 -0
  547. package/dist/services/model-discovery.js +46 -0
  548. package/dist/services/native-daemon-history.js +50 -0
  549. package/dist/services/native-session-control.js +39 -0
  550. package/dist/services/operator-profiles.js +236 -0
  551. package/dist/services/physical-startup.js +45 -0
  552. package/dist/services/plan-runtime.js +26 -11
  553. package/dist/services/plans.js +28 -25
  554. package/dist/services/project-flow-source.js +195 -0
  555. package/dist/services/project-git-integration.js +92 -0
  556. package/dist/services/project-registry.js +97 -0
  557. package/dist/services/project-summary.js +1 -1
  558. package/dist/services/projects.js +17 -87
  559. package/dist/services/prompt-delivery.js +71 -0
  560. package/dist/services/prompts.js +28 -17
  561. package/dist/services/protocols.js +163 -87
  562. package/dist/services/provider-capacity.js +463 -0
  563. package/dist/services/recovery-observation-budget.js +121 -0
  564. package/dist/services/recovery-snapshot-database.js +588 -0
  565. package/dist/services/release-archive-producer.js +52 -0
  566. package/dist/services/release-archive.js +143 -0
  567. package/dist/services/release-cache.js +150 -0
  568. package/dist/services/release-compatibility.js +18 -0
  569. package/dist/services/release-download.js +67 -0
  570. package/dist/services/release-envelope.js +104 -0
  571. package/dist/services/release-manifest.js +45 -0
  572. package/dist/services/release-payload.js +114 -0
  573. package/dist/services/release-producer.js +63 -0
  574. package/dist/services/release-provenance.js +160 -0
  575. package/dist/services/release-registry.js +66 -0
  576. package/dist/services/release-source.js +194 -0
  577. package/dist/services/repair-intents.js +29 -0
  578. package/dist/services/repair-receipt.js +13 -0
  579. package/dist/services/retained-native-hook.js +274 -0
  580. package/dist/services/review-copy.js +165 -0
  581. package/dist/services/review-deferral.js +23 -0
  582. package/dist/services/review-fix-handoff.js +82 -0
  583. package/dist/services/review-fix-intake-custody.js +17 -0
  584. package/dist/services/review-fix-stage-entry.js +43 -0
  585. package/dist/services/review-fix-stage-handlers.js +176 -0
  586. package/dist/services/review-fix-stage-results.js +86 -0
  587. package/dist/services/run-control-receipt.js +56 -0
  588. package/dist/services/run-control-worker.js +469 -0
  589. package/dist/services/run-control.js +1109 -0
  590. package/dist/services/run-controller-adapter.js +434 -0
  591. package/dist/services/run-controller-capture.js +186 -0
  592. package/dist/services/run-controller-process.js +226 -0
  593. package/dist/services/run-controller-recovery.js +335 -0
  594. package/dist/services/run-controller-state.js +106 -0
  595. package/dist/services/run-controller.js +1717 -0
  596. package/dist/services/run-engine-bindings.js +1 -1
  597. package/dist/services/run-fork.js +147 -0
  598. package/dist/services/run-health.js +149 -0
  599. package/dist/services/run-observations.js +152 -0
  600. package/dist/services/run-projection.js +22 -64
  601. package/dist/services/run-recovery-guard.js +107 -0
  602. package/dist/services/run-recovery-runtime.js +112 -0
  603. package/dist/services/run-recovery.js +485 -0
  604. package/dist/services/run-start-custody.js +189 -0
  605. package/dist/services/run-timeline.js +59 -0
  606. package/dist/services/runs.js +996 -271
  607. package/dist/services/runtime-budget.js +446 -0
  608. package/dist/services/runtime-command.js +43 -0
  609. package/dist/services/runtime-scope-capture.js +52 -0
  610. package/dist/services/runtime-scope-control.js +468 -0
  611. package/dist/services/runtime-scope-resume.js +605 -0
  612. package/dist/services/runtime-scope-stop.js +211 -0
  613. package/dist/services/runtime-scope-worker.js +314 -0
  614. package/dist/services/runtime-service.js +19 -14
  615. package/dist/services/schema-validation.js +10 -8
  616. package/dist/services/scope-writer-cleanup.js +27 -0
  617. package/dist/services/sessions.js +37 -91
  618. package/dist/services/setup.js +427 -0
  619. package/dist/services/stage-blocker.js +17 -7
  620. package/dist/services/stage-context.js +240 -18
  621. package/dist/services/stage-handlers.js +141 -0
  622. package/dist/services/stage-lifecycle.js +156 -119
  623. package/dist/services/stage-pause.js +222 -94
  624. package/dist/services/stage-report-renderer.js +230 -6
  625. package/dist/services/stage-work-graph.js +52 -0
  626. package/dist/services/technical-notes.js +31 -0
  627. package/dist/services/tooling.js +111 -44
  628. package/dist/services/usage.js +49 -101
  629. package/dist/services/verification-matrix.js +393 -0
  630. package/dist/services/version-status.js +1 -1
  631. package/dist/services/vnext-code-review.js +302 -91
  632. package/dist/services/vnext-code.js +325 -251
  633. package/dist/services/vnext-contracts.js +10 -1
  634. package/dist/services/vnext-execution-profile.js +80 -5
  635. package/dist/services/vnext-fanout.js +399 -20
  636. package/dist/services/vnext-merge.js +336 -114
  637. package/dist/services/vnext-plan-review.js +288 -133
  638. package/dist/services/vnext-plan.js +257 -110
  639. package/dist/services/vnext-protocolize.js +534 -96
  640. package/dist/services/vnext-specify.js +131 -84
  641. package/dist/services/vnext-workspace-policy.js +7 -2
  642. package/dist/services/work-registry.js +1950 -215
  643. package/dist/services/work-retry-context.js +55 -0
  644. package/dist/services/workspace-bootstrap.js +53 -15
  645. package/dist/services/workspace-files.js +85 -0
  646. package/dist/services/worktrees.js +108 -48
  647. package/dist/shared/entity-references.js +1 -0
  648. package/dist/shared/errors.js +27 -0
  649. package/dist/storage/agent-output.js +26 -0
  650. package/dist/storage/data-preservation.js +65 -0
  651. package/dist/storage/database.js +931 -40
  652. package/dist/storage/foreign-key-transaction.js +39 -0
  653. package/dist/storage/immutable-input.js +45 -0
  654. package/dist/storage/import-guard.js +159 -0
  655. package/dist/storage/memory-upgrade-schema-bootstrap.js +38 -0
  656. package/dist/storage/native-cleanup.js +52 -0
  657. package/dist/storage/paired-writer-migration.js +424 -0
  658. package/dist/storage/paths.js +17 -4
  659. package/dist/storage/projection-lock.js +73 -0
  660. package/dist/storage/work-references.js +23 -0
  661. package/dist/storage/writer-contract.js +96 -0
  662. package/dist/storage/writer-migration.js +346 -0
  663. package/dist/storage/writer-restore.js +217 -0
  664. package/dist/verification-components.json +384 -0
  665. package/package.json +52 -13
  666. package/tools/create-canon-release.mjs +33 -0
  667. package/tools/probe-codex-history.mjs +37 -0
  668. package/tools/produce-hybrid-release.mjs +41 -0
  669. package/tools/repair-paused-run-status.mjs +84 -0
  670. package/tools/verification-jobs.mjs +342 -0
package/dist/cli/help.js CHANGED
@@ -1,4 +1,393 @@
1
+ import { AppError } from "../shared/errors.js";
2
+ import { commandInputs, commandAliases } from "./command-inputs.js";
3
+ import { commandKeyForPositions, globalOptionDocumentation, optionsForCommandTree, routerNativeRoute } from "./command-metadata.js";
1
4
  const helpPages = new Map([
5
+ ["tool", `dd-flow tool ensure wt - prepare the pinned Worktrunk capability
6
+
7
+ Usage:
8
+ dd-flow tool ensure wt --json
9
+
10
+ Verifies or installs the pinned tool in explicit DD_FLOW_RESOURCE_HOME (legacy
11
+ fallback: DD_FLOW_HOME). Uses no RUN database and starts no provider Session.
12
+ Returns version, platform, binary/archive checksums and cache_root. Availability
13
+ does not approve any worktree or productive action.`],
14
+ ...["release", "deploy", "publish"].map((flow) => [`flow ${flow}`, `dd-flow flow ${flow} - start or replay one request-bound delivery RUN
15
+
16
+ Usage:
17
+ dd-flow flow ${flow} --project-root /absolute/project --request-id ID --intake-file /absolute/request.txt --profile ID --json
18
+ dd-flow flow ${flow} --project-root /absolute/project --request-id ID --detach --json
19
+
20
+ Fresh execution uses the installed canon and selected frozen engine, preserves
21
+ the original request and operates in the assigned checkout. Managed Stage
22
+ Sessions use the ordinary controller; independent verification requires a
23
+ different physical Session, not merely another profile name. Starting the RUN
24
+ does not approve a version, target, publication or deployment. Each productive
25
+ operation needs its exact retained user approval and fresh access readback.
26
+
27
+ Replay the same request ID to restore the original RUN, bundle, workspace and
28
+ profiles. Omit current selectors and intake on replay; supplied values must match.
29
+ --prepare-only creates runtime state but launches no provider Session; --detach
30
+ returns the controller receipt without cancelling it. Unknown productive effects
31
+ require original-intent reconciliation, never a new request or automatic retry.
32
+ Use --option NAME --help for each option's exact contract.`]),
33
+ ["delivery", `dd-flow delivery - operations inside an existing delivery RUN
34
+
35
+ Usage:
36
+ dd-flow delivery inputs RUN --project-root /absolute/project --stage STAGE --json
37
+ dd-flow delivery checks RUN --project-root /absolute/project --stage prepare --result-file /absolute/artifact.json --json
38
+ dd-flow delivery execute RUN --project-root /absolute/project --stage publish --result-file /absolute/approval.json --json
39
+ dd-flow delivery reconcile RUN --project-root /absolute/project --stage publish --json
40
+
41
+ inputs is read-only and grants no authority. checks, execute and reconcile must
42
+ use the exact command issued to the current physical Stage coordinator; an
43
+ ambient scope variable or a Work Session cannot authorize them. They never
44
+ allocate a new RUN. Use each command's --help or --option NAME --help for inputs.
45
+ Checks use existing project policy and runner. Execution requires separate exact
46
+ user approval, fresh access and original intent. Reconcile reads the original
47
+ result without new publication or implicit retry; Stage/RUN finish is separate.`],
48
+ ["flow interactive", `dd-flow flow interactive - start or replay one request-bound interactive RUN
49
+
50
+ Usage:
51
+ dd-flow flow interactive --project-root /absolute/project --request-id ID --intake-file /absolute/request.txt [--profile ID] --json
52
+ dd-flow flow interactive --project-root /absolute/project --request-id ID --execution managed --intake-file /absolute/request.txt --detach --json
53
+
54
+ The default attached route requires a unique current trusted observation of this
55
+ exact launch argv, workspace and profile. No automatic managed fallback. Managed
56
+ execution must be selected explicitly and uses the existing RUN-bound controller.
57
+
58
+ The project-local curated pack, engine, profiles, original request and Git baseline
59
+ are frozen before execution. Use an existing registered project/prepared Home and
60
+ assigned checkout; this command does not create a worktree or migrate storage.
61
+ --prepare-only retains runtime state without productive dispatch: not a dry run.
62
+ Replay may omit selectors; supplied values must match original retained intent.
63
+
64
+ Stages: preflight → interactive → consolidation → hardening → review → integration.
65
+ Use interactive inputs/turn/finish/scope within this same RUN. Explicit finish
66
+ closes free-turn intake, not review, Git approval or RUN completion. Hardening and
67
+ independent critics use registered Work and actual checks. Scoped Git integration
68
+ preserves unrelated work and never pushes. Historical RUNs keep their own engine.`],
69
+ ["interactive", `dd-flow interactive - operate on an existing interactive RUN
70
+
71
+ Commands:
72
+ inputs Read original request, turns, HITL answers and current digest.
73
+ turn Retain verbatim user input with stable identity and expected digest.
74
+ finish Explicitly close free-turn intake; no new RUN or automatic approval.
75
+ scope Retain selected mutation scope backed by genuine delivered input.
76
+ git-inputs Inspect original selected workspace/index/HEAD versions read-only.
77
+ register Register the initial hardening/review Work graph, not a provider.
78
+ checks Select and execute current obligations through the common runner.
79
+ correction Register a separate author from the exact negative reviewer Work.
80
+ re-review Register a fresh independent critic after correction and checks.
81
+ integrate Perform/reconcile only the accepted scoped local Git operation.
82
+
83
+ All commands require --project-root and --run. Use a command's --help or
84
+ --option NAME --help for its exact required inputs. They do not allocate a new RUN.
85
+ The top-level finish alias accepts exactly the same inputs as interactive finish.
86
+ Read-only inputs/git-inputs never initialize stores. Write operations require the
87
+ existing prepared store; they do not migrate it. Exact retries preserve original
88
+ custody. Unknown Git effects require reconciliation, not another commit or push.
89
+ Use ordinary run control for cancellation; observer disconnect is not stop.`],
90
+ ["flow review-fix", `dd-flow flow review-fix - agree diagnostic scope and retain a raw handoff
91
+
92
+ Usage:
93
+ dd-flow flow review-fix --project-root /absolute/project --request-id ID --source-run RUN-001-audit --finding FIND-001 --intake-file /absolute/request.txt [--profile ID] --json
94
+
95
+ Stages: intake → scope-review → handoff. Select exact accepted diagnostic findings;
96
+ selection is not approval to implement. The private snapshot is read-only.
97
+ Scope-review uses a physically independent Session and considers the original
98
+ request plus every actual delivered answer. Deferred, declined and needs_scope
99
+ remain distinct from a ready handoff. No code, project documents or Git are changed.
100
+
101
+ CLI retains original finding evidence and raw user inputs, not an agent-authored
102
+ replacement specification. Even ready scope grants no formalization authority:
103
+ only a separate explicit user request may start an ordinary SPECIFY-first SDLC RUN.
104
+
105
+ Profiles, engine, canon, findings and original request are frozen before dispatch.
106
+ Replay may omit selectors; supplied values must match the retained request.
107
+ --prepare-only creates the source snapshot and RUN without controller/provider
108
+ Sessions; it is not a dry run. --detach returns the controller receipt.
109
+ Default execution is managed new_session with external concurrency 1; same_session
110
+ cannot provide independent scope-review and refuses before request allocation.`],
111
+ ["flow mb-distill", `dd-flow flow mb-distill - extract and promote reusable practices
112
+
113
+ Usage:
114
+ dd-flow flow mb-distill --project-root /absolute/project --request-id ID --intake-file /absolute/request.txt [--profile ID] --json
115
+
116
+ Stages: preflight → extract → review → promote → verify → finish.
117
+ Extraction uses a read-only source snapshot, domain/process applicability and
118
+ independent novelty/portability critics. Promotion requires a separately accepted destination
119
+ and exact candidate/document write scope. Source selection never grants shared
120
+ canon write authority. Verification reads original selected documents and actual
121
+ published outputs in an independent physical Session; missing evidence refuses.
122
+
123
+ Profiles, engine, canon and original request are frozen before dispatch. Exact
124
+ replay may omit selectors; supplied selectors must match the retained request.
125
+ --prepare-only retains the snapshot and RUN without launching provider Sessions;
126
+ it is not a dry run. --detach returns the controller receipt. Default execution
127
+ uses fresh stage Sessions and external Work with concurrency 1. Use existing
128
+ run drive status and run control commands to observe or reconcile this RUN.`],
129
+ ["flow mb-audit", `dd-flow flow mb-audit - read-only Memory Bank audit
130
+
131
+ Usage:
132
+ dd-flow flow mb-audit --project-root /absolute/project --request-id ID --intake-file /absolute/request.txt [--profile ID] --json
133
+
134
+ Describe quick/full or focused audit scope in the original intake. Stages are
135
+ preflight → audit → review → report. Applicable aspects use assigned read-only
136
+ Work and independent critics. Missing evidence and active DEFs remain visible.
137
+ Reports and runtime state live in DD_FLOW_HOME; project files are not repaired.
138
+ The snapshot includes selected dirty/untracked source, excluding private inputs.
139
+
140
+ Profiles, engine, canon and objective are frozen before dispatch. Exact replay
141
+ may omit intake/profile selectors; supplied selectors must match the original.
142
+ --prepare-only creates the snapshot and RUN without Sessions; --detach returns
143
+ the controller receipt. Neither is a dry run. Default execution is managed,
144
+ with fresh stage Sessions and external Work (concurrency 1).
145
+ Use existing run drive status and run control commands for observation/recovery.`],
146
+ ["flow project-review", `dd-flow review / flow project-review - read-only project-conformance review
147
+
148
+ Usage:
149
+ dd-flow review --project-root /absolute/project --request-id ID --intake-file /absolute/request.txt [--profile ID] --json
150
+
151
+ Both spellings share validation and effects. Describe the review focus and
152
+ constraints in the original intake. Stages are preflight → analyze → review →
153
+ report. Compare specs, features, ADRs, scenarios and policy with actual code and
154
+ evidence. This is not SDLC CODE-REVIEW and never implicitly repairs the project.
155
+ All baseline aspects retain applicability and coverage; independent criticism,
156
+ rejected findings and uncertainty remain in runtime evidence.
157
+
158
+ Execution uses an isolated read-only snapshot and frozen global canon. No local
159
+ Memory Bank installation is required. Profiles and the original request remain
160
+ pinned on replay. --prepare-only creates runtime state without Sessions;
161
+ --detach returns the accepted controller receipt. Default execution is managed,
162
+ with fresh stage Sessions and external Work. Use run drive status / run control
163
+ to observe, answer, stop or reconcile the exact retained RUN.`],
164
+ ["runtime storage qualify", `dd-flow runtime storage qualify - pre-probe selected-engine capability
165
+
166
+ --operation memory-upgrade checks existing storage with the executing engine.
167
+ Compatible stores use ordinary operation admission. Otherwise, drained source
168
+ stores are copied with committed WAL to a private temporary directory; actual
169
+ migration and target operation admission run only on those copies.
170
+
171
+ Requires explicit canonical DD_FLOW_HOME and DD_FLOW_RESOURCE_HOME. The result
172
+ is capability only: it does not authorize writes, create a RUN, publish migration
173
+ evidence for real stores or start a model. Original storage is never migrated.
174
+ Public upgrade still requires a separately retained plan and explicit apply.`],
175
+ ["runtime storage transition", `dd-flow runtime storage transition - selected-engine pre-context storage transport
176
+
177
+ Normal project entry remains dd-flow upgrade. This transport executes only in
178
+ the immutable entrypoint selected by the original retained upgrade request.
179
+ It requires explicit DD_FLOW_HOME and DD_FLOW_RESOURCE_HOME and never initializes
180
+ storage, chooses another engine, starts a model or allocates a RUN.
181
+
182
+ --action plan retains both store snapshots and returns exact apply/status commands.
183
+ apply requires the retained --expected-sha256 and --offline; both backups are
184
+ verified before the first schema change. Unknown effects require exact-request
185
+ status/reconciliation, not a new selector or replacement plan.
186
+
187
+ recovery-plan requires the migration SHA, --recovery-id and --offline. Selecting
188
+ recovery fences both stores and aborts the old apply; recover and recovery-status
189
+ use the returned recovery SHA. Restoration is never automatic.
190
+
191
+ The offline switch acknowledges external drain; logical and physical registered
192
+ owners are checked independently. No owner is terminated by this transport.`],
193
+ ["flow mb-init", `dd-flow init / flow mb-init - managed project Memory Bank initialization
194
+
195
+ Usage:
196
+ dd-flow init --project-root /absolute/project --workspace-root /absolute/workspace --request-id ID --intake-file /absolute/intake.txt --intake-sha256 SHA256 --git-route integration_branch_direct --integration-branch main [--profile ID-or-alias] [--detach] --json
197
+ dd-flow flow mb-init --project-root /absolute/project --workspace-root /absolute/workspace --request-id ID [--detach] --json
198
+
199
+ Both spellings share one command definition and dispatcher. Fresh execution
200
+ requires the original bounded UTF-8 intake bytes and explicit Git policy.
201
+ setup installs the computer-level canon; init initializes the specified project.
202
+ Missing executor defaults or prerequisites refuse before project publication.
203
+ Profiles, descriptor, engine and original request are frozen before dispatch.
204
+
205
+ Replay uses the exact retained request, not current defaults, aliases or canon.
206
+ Omitted selectors reuse original choices; supplied selectors must match them.
207
+ The original intake file need not survive replay: its supplied hash must match
208
+ the retained bytes. --stage-profile stage=profile and --work-profile profile
209
+ are repeatable approved overrides, frozen before launch.
210
+
211
+ --profile-file /absolute/profile.json is exclusive with --profile and supplies
212
+ one complete validated operation-only profile. It never saves a global profile
213
+ or changes defaults; a conflicting saved ID/alias refuses. Replay may omit this
214
+ file after removal; if supplied, its admitted profile must match the original.
215
+ When no default or explicit profile exists, an interactive terminal uses the
216
+ shared executor dialog. Creation is operation-only here; skip is not allowed.
217
+ --non-interactive, JSON and non-terminal input never ask and missing choices
218
+ refuse before project effects. Use profiles commands for explicit global saves.
219
+
220
+ The existing managed controller owns Sessions and execution. The default waits
221
+ for completion, recovery or a user/context boundary; --detach returns its
222
+ accepted receipt. Observer disconnection does not stop the controller.
223
+ --prepare-only publishes the normal project bootstrap and frozen RUN, but does
224
+ not launch a controller or provider Session. It is not a dry run and is exclusive
225
+ with --detach. A runner may then use run drive launch with its own context and
226
+ bounded stop/capture policy. Exact preparation replay never stops or replaces
227
+ an existing controller.
228
+ Use existing scoped run drive status / run control commands to observe,
229
+ answer, pause, stop or reconcile the retained RUN. Native/attached public
230
+ selection is not yet exposed; no failed route silently becomes native.`],
231
+ ["flow", `dd-flow flow - engine-owned workflow catalog
232
+
233
+ Usage:
234
+ dd-flow flow list --json
235
+ dd-flow flow show <id> --json
236
+
237
+ Inspection never opens a runtime database, initializes a home or runs agents.
238
+ The catalog reports handler registration separately from RUN readiness. A
239
+ pending handler set cannot execute; registered handlers still require selected
240
+ canon, frozen descriptor/schema admission, workspace and execution readiness.
241
+ These inspection commands do not start init or qualify an installed route.`],
242
+ ["models", `dd-flow models - reviewed seed and scoped offline observations
243
+
244
+ Usage:
245
+ dd-flow models list --json
246
+ dd-flow models show <model> --harness family --provider provider --json
247
+ dd-flow models list --harness family --provider provider --account-sha256 <digest> --observation-file /absolute/listing.json --json
248
+
249
+ No database, credentials, network, executable discovery or provider process is
250
+ opened. --seed-file selects reviewed seed-only catalog data; otherwise the
251
+ bundled adapter-derived seed is used. Families not yet curated are explicit.
252
+ Unknown seed settings are not profile defaults or model recommendations.
253
+
254
+ Observations require an exact harness/provider/account scope. A matching listed
255
+ model remains unknown for account access and flow qualification. Missing or
256
+ unavailable listing retains seed entries; a foreign scope is ignored. show
257
+ refuses an absent model rather than inventing availability. Exit 2 is invalid
258
+ input; exit 1 is missing/unreadable input or an absent selected model.`],
259
+ ["completion", `dd-flow completion - shell completion from the accepted command grammar
260
+
261
+ Usage:
262
+ dd-flow completion bash
263
+ dd-flow completion zsh
264
+ dd-flow completion fish
265
+
266
+ Prints a shell script to stdout; it does not modify shell configuration. Load
267
+ the script in your shell after reviewing it. Zsh requires compinit first.
268
+ Scripts query completion candidates with literal argv; they do not initialize
269
+ a home, open a database, inspect profiles or invoke harness processes.`],
270
+ ["harnesses", `dd-flow harnesses - static installation discovery
271
+
272
+ Usage:
273
+ dd-flow harnesses list --json
274
+ dd-flow harnesses show <family> --json
275
+ dd-flow harnesses discover [--harness family --executable /absolute/path] --json
276
+ dd-flow harnesses probe-version --harness family --allow-processes --allow-credentials --allow-writes [--executable /absolute/path --timeout-ms 3000] --json
277
+ dd-flow harnesses doctor --harness family --allow-processes --allow-credentials [--allow-services --allow-writes --executable /absolute/path] --json
278
+
279
+ Lists all six supported families, including missing installations. Multiple
280
+ installations require explicit selection. Presence does not establish version,
281
+ protocol, auth, model access or qualification. list/show/discover never launch a
282
+ process, inspect credentials, create a home or open a runtime database.
283
+ probe-version is an explicit diagnostic exception: it runs installed code only
284
+ after all three effect permissions are supplied. It bounds time/output and does
285
+ not establish protocol compatibility, account access or flow qualification.
286
+ doctor invokes the existing bundled adapter only after its classified effects
287
+ are admitted: Codex/OpenCode/Droid require services and writes; Agy requires
288
+ writes; ZCode/Grok require processes and credentials. ZCode also requires
289
+ --native-executable. OpenCode requires --state-dir for an existing daemon whose
290
+ executable binding matches; doctor never starts or stops that daemon.
291
+ For Droid, the OS ps utility must be available on PATH before doctor starts;
292
+ missing physical-settlement tooling refuses without launching a provider.
293
+ Reports are bounded/redacted observations, not native qualification or account access.
294
+ Use --timeout-ms 1..60000 to bound the diagnostic, not productive work.
295
+ Optional --provider and --account-sha256 must be supplied together. They bind
296
+ reported model names to an operator-declared, unverified scope, not an observed
297
+ credential identity. --model-observation-file explicitly publishes a standalone
298
+ snapshot usable by models list --observation-file. Listings are incomplete;
299
+ an absent adapter list is unavailable, never an empty verified inventory. No
300
+ account access or qualification is inferred; publication failure does not rerun
301
+ the admitted diagnostic. The destination must differ from --response-file.`],
302
+ ["setup", `dd-flow setup - global installation readiness
303
+
304
+ Usage:
305
+ dd-flow setup --canon-source /path/to/release-bundle --trust-file operator-trust.json --request-id ID --skip-agent-setup --non-interactive --json
306
+ dd-flow setup update --canon-source /path/to/release-bundle --trust-file operator-trust.json --request-id ID --skip-agent-setup --json
307
+ dd-flow setup status --json
308
+
309
+ The local bundle contains release-envelope.json, canon.tgz and engine.tgz.
310
+ Trust uses dd-flow/release-trust@1 and must be selected independently of the
311
+ envelope. Stable is the default channel; preview/development require --channel.
312
+ Without --skip-agent-setup, select --profile or an existing global default.
313
+ --profile-file supplies a complete validated profile for headless onboarding;
314
+ it is mutually exclusive with --profile and --skip-agent-setup. Profile files
315
+ never import credentials or silently change operator defaults.
316
+ No missing profile is replaced by an automatically selected model.
317
+ In an interactive terminal, a missing profile opens an explicit executor choice
318
+ only after the authenticated installation is committed:
319
+ profile ID/alias, file:/absolute/profile.json, create or skip. create asks for
320
+ every profile field and explicit confirmation, without probing providers.
321
+ Separate yes/no questions authorize saving and global default selection; no
322
+ settings are written by the dialog itself. JSON/JSONL output,
323
+ --non-interactive and non-terminal input never prompt. Cancellation leaves the
324
+ installation committed and onboarding pending; replay the same request to resume
325
+ or explicitly skip onboarding. The separate onboarding receipt freezes the
326
+ selected profile and save/default consent before profile effects. A completed
327
+ onboarding replay never restores later settings. Existing request-bound profile
328
+ choices keep their original identity and recovery semantics.
329
+ --save-profile-intent supplies explicit frozen profile creation/default consent
330
+ for persistence. The selected profile must match; skip conflicts. Setup retains
331
+ the complete intent in its request and uses a profiles_saved checkpoint. A
332
+ committed replay never restores settings changed after the original installation.
333
+ Without a new explicit executor choice, an exact request retry reuses its retained
334
+ executor and save/default consent rather than asking again or choosing a new default.
335
+ Status inspects the selected installation and retained cache without opening or
336
+ migrating SQLite, registering a project, discovering providers or running agents.
337
+ Installation readiness and runtime qualification are separate facts.
338
+ `],
339
+ ["profiles", `dd-flow profiles - home-only executor settings
340
+
341
+ Usage:
342
+ dd-flow profiles list --json
343
+ dd-flow profiles show <ID-or-alias> --json
344
+ dd-flow profiles create --file profile.json --expected-revision SHA256 [--set-default] --json
345
+ dd-flow profiles edit --file profile.json --expected-revision SHA256 --json
346
+ dd-flow profiles remove <ID> --expected-revision SHA256 --json
347
+ dd-flow profiles alias <alias> (--target ID | --remove) --expected-revision SHA256 --json
348
+ dd-flow profiles set-default [ID-or-alias | --clear] --expected-revision SHA256 --json
349
+
350
+ Read the current revision with profiles list before changing settings. Writes
351
+ are atomic and reject concurrent/stale changes. Aliases point directly to IDs,
352
+ not other aliases. Profile files use dd-flow/agent-profile@1 and reject secret
353
+ fields. Existing legacy IDs are imported on the first successful write without
354
+ editing their files. Thereafter profile-settings.json is the sole owner.
355
+ Existing RUNs use frozen snapshots, not mutable profile settings. This command
356
+ never registers a project, selects a model automatically or creates a runtime DB.`],
357
+ ["runtime scope", `Usage:
358
+ dd-flow runtime scope fence --scope-id EVAL_ID --request-id ID --json
359
+ dd-flow runtime scope status --scope-id EVAL_ID --json
360
+ dd-flow runtime scope status --scope-ids-json '["EVAL_ID","QUAL_ID"]' --json
361
+ dd-flow runtime scope stop --scope-id EVAL_ID --request-id ID --json
362
+ dd-flow runtime scope control --scope-id EVAL_ID --request-id ID --mode pause|stop [--manifest-json JSON] --json
363
+ dd-flow runtime scope resume --scope-id EVAL_ID --request-id ID --generation N --capture-key SHA256 --json
364
+ dd-flow runtime scope reconcile --scope-id EVAL_ID --generation N --request-id ID --json
365
+
366
+ Use the EVAL manifest's retained DD_FLOW_RESOURCE_HOME. Commands select exactly
367
+ one scope across its registered runtime homes; neighboring scopes are untouched.
368
+ fence durably blocks new provider turns and owned baseline checks. It does not
369
+ stop existing work. status reports retained ownership, not proof of settlement.
370
+ stop fences first and requests owned daemon-tree and baseline-process cleanup.
371
+ Inspect settled and each node's evidence: ok alone does not prove cleanup.
372
+ Unproven ownership or cleanup remains pending; repeat stop to observe settlement.
373
+ The fence/stop route is terminal cancellation and has no resume command.
374
+ control records recoverable scope intent and starts a detached drain owner.
375
+ The EVAL resolver supplies a runtime-scope-manifest@1 declaration with the source
376
+ manifest path, SHA-256 and execution IDs, including queued executions. Declaration
377
+ changes are rejected. resume accepts the exact captured generation and starts
378
+ detached recovery preparation. It does not yet release scope admission: inspect
379
+ dispatch_blocked and pending reasons; accepted preparation is not resumed work.
380
+ RUN pause/stop/resume uses dd-flow run control.`],
381
+ ["storage", `Usage:
382
+ dd-flow storage migrate-writer --database ABSOLUTE_DB --backup NEW_ABSOLUTE_FILE --offline --json
383
+
384
+ Drain all local and external runtime owners before using --offline. This command
385
+ migrates one existing database, not a whole runtime or retained provider Session.
386
+ It refuses unresolved ownership rows, preserves a verified WAL-safe backup, and
387
+ fences unaware old writers. It does not initialize the default DD_FLOW_HOME.
388
+ The backup path must be new; existing backups are never overwritten. An exact
389
+ retry of a committed migration returns its receipt after verifying the backup.
390
+ If no committed receipt exists, retain the failed backup and choose a new path.`],
2
391
  [
3
392
  "",
4
393
  `dd-flow - mechanical control layer for dd-flow workflows
@@ -33,11 +422,15 @@ Core commands:
33
422
  session register/status/stop Register flow sessions and stop workers.
34
423
  dashboard data/render/open/refresh Render, refresh, open, and inspect project/global dashboards.
35
424
  schema validate Validate canonical dd-flow JSON data contracts.
425
+ storage migrate-writer Explicitly back up and fence a drained SQLite store.
426
+ runtime scope fence/status/stop Fence, inspect, or cancel one retained EVAL scope.
36
427
  memory permissions preflight Check Memory Bank write/read permissions.
428
+ memory distill inputs/publish Read retained input or publish an accepted scope in an already bound distill RUN.
37
429
  integration cmux status Inspect optional cmux integration.
38
430
  codex home/hooks/hook Manage Codex homes, hooks, and hook events.
39
431
  zcode event/usage Ingest trusted zcode-acp lifecycle and usage evidence.
40
432
  grok event/usage Ingest trusted Grok Build lifecycle and usage evidence.
433
+ droid event/usage Ingest trusted Factory Droid lifecycle and physical usage evidence.
41
434
  opencode event/usage Ingest trusted OpenCode lifecycle and usage evidence.
42
435
  agy event/usage Ingest trusted Antigravity CLI lifecycle and usage evidence.
43
436
  worktree plan/create/status Record Worktrunk-backed feature worktrees.
@@ -128,7 +521,7 @@ Examples:
128
521
  ],
129
522
  [
130
523
  "canon",
131
- `dd-flow canon - register and resolve the canonical Memory Bank checkout
524
+ `dd-flow canon - register and resolve the canonical Memory Bank source
132
525
 
133
526
  Usage:
134
527
  dd-flow canon register --root <canonical-dd-memorybank-root> --json
@@ -137,6 +530,8 @@ Usage:
137
530
 
138
531
  Discovery order is explicit --root, then DD_MEMORYBANK, then the globally registered runtime value in DD_FLOW_HOME, then known nearby dd-memorybank checkouts from the current working directory. Explicit --root is the only source considered for that command. If multiple different valid canonical checkouts are found, resolve fails closed with blockers so the caller chooses intentionally.
139
532
 
533
+ Without an explicit, environment or registered source, the release installed by setup in DD_FLOW_HOME takes precedence over nearby checkouts. Its commit comes from the retained release manifest, not ancestor Git history. A degraded installation is reported; it never silently falls back to a nearby checkout.
534
+
140
535
  A valid canonical root contains dd-flow/README.md, mbb/index.md, protocol/index.md, and canonical-only entrypoints such as dd-flow/mb-init.md, dd-flow/mb-upgrade.md, and dd-flow/mb-distill.md. Current canon runs mb-upgrade review as the 05-review stage inside mb-upgrade, not as a top-level mb-upgrade-review.md entrypoint.
141
536
 
142
537
  Examples:
@@ -152,12 +547,18 @@ Usage:
152
547
  dd-flow run start --project-root <root> [--workspace-root <checkout>] --flow-kind <kind> --subject-type <type> --subject-id <id> --slug <slug> [--preset compact|normal|full] [--task-profile-file <file>] [--protocol-override-file <file>] [--flag key=value] [--next-action <text>] --json
153
548
  dd-flow id next --type protocol|run --project-root <root> --slug <slug> --json
154
549
  dd-flow run status <RUN-ID|RUN-short-id> --project-root <root> --json
550
+ dd-flow run control status --run <RUN-ID> --project-root <root> --json
551
+ dd-flow run control reconcile --run <RUN-ID> --project-root <root> --control-id <ID> --request-id <ID> --json
552
+ dd-flow run drive launch --run <RUN-ID> --project-root <root> --request-id <id> --context-file <file> --context-sha256 <sha256> [--stop-after <stage>] [--capture-root <directory>] --json
553
+ dd-flow run drive status --run <RUN-ID> --project-root <root> [--after <sequence>] --json
155
554
  dd-flow run list --project-root <root> --json
156
- dd-flow run prepare-vnext-specify --project-root <root> --slug <slug> --json
157
- dd-flow run snapshot create <RUN-ID|RUN-short-id> (--stage-entry <stage>|--candidate) --project-root <root> --output <directory> --json
158
- dd-flow run snapshot restore --snapshot <directory> --project-root <prepared-root> --json
159
- dd-flow run snapshot bootstrap create --project-root <root> --output <directory> --json
555
+ dd-flow run prepare-vnext-specify --project-root <root> --slug <slug> [--execution-routing-file <file>] --json
556
+ dd-flow run recovery inspect|begin|seal|capture|resume <RUN-ID|RUN-short-id> --project-root <root> --json
557
+ dd-flow run snapshot create <RUN-ID|RUN-short-id> (--stage-entry <stage>|--candidate|--incomplete|--recovery-id <RCV-ID>) --project-root <root> --output <directory> --json
558
+ dd-flow run snapshot restore --snapshot <directory> --project-root <prepared-root> [--recovery-id <RCV-ID>] --json
559
+ dd-flow run snapshot bootstrap create --project-root <root> --output <directory> [--flow <flow>] --json
160
560
  dd-flow run snapshot bootstrap restore --snapshot <directory> --project-root <prepared-root> --json
561
+ dd-flow run fork --from <sealed-stage-entry-snapshot> --output <empty-directory> --engine-version <exact-version> --request-id <id> [--integrity-checksum <sha256>] --json
161
562
  dd-flow run timeline <RUN-ID|RUN-short-id> --project-root <root> --json
162
563
  dd-flow stat usage --run <RUN-ID|RUN-short-id> --project-root <root> [--stage <stage[,stage...]>] [--session <session-id>] --json
163
564
  dd-flow stat run sessions ls --run <RUN-ID|RUN-short-id> --project-root <root> --json
@@ -169,7 +570,13 @@ Usage:
169
570
 
170
571
  RUN-* is the execution envelope for one concrete flow launch. Semantic truth remains in protocol, experiment, DEF, scenario, evidence, and Memory Bank documents. New run artifacts are stored under DD_FLOW_HOME/projects/<PRJ-ID-slug>/runs/<RUN-ID-slug>/ with one run.json projection and an append-only timeline.jsonl. Timeline is the compact full run report: summary is always present, while --hide may suppress bulky sections. Use \`dd-flow stat usage --run …\` to reread registered local Codex transcript counters and tool-call facts and refresh the current usage projection; unavailable data is explicit rather than zero.
171
572
 
172
- run prepare-vnext-specify allocates an otherwise unstarted vNext RUN for the canonical SPECIFY entry checkpoint. run snapshot is the eval-only checkpoint boundary: it snapshots one quiescent RUN, its dedicated DD_FLOW_HOME, and the exact project tree including its Git repository, then restores them into a fresh dedicated runtime. It is not a general runtime backup command and fails closed for a shared runtime.
573
+ run start and prepare-vnext-specify accept --execution-routing-file for vNext RUNs: dd-flow/execution-routing@1 with an execution object selects the complete routing policy from existing agent-profiles. RUN creation freezes the input and selected profiles without changing project settings.
574
+ run snapshot restore also accepts --execution-routing-file for a new stage-entry experiment. Its fresh DD_FLOW_HOME may contain only agent-profiles and the empty database; selected profiles are read before import, previous RUN policy is archived, and existing Work overrides must resolve against the selected frozen profiles. Recovery imports reject this option.
575
+ run snapshot restore and run fork accept --operational-decision-file for an explicitly accepted decision bound to the new stage-entry experiment. Store the input outside fork output; its bytes are bound to the idempotent request. A snapshot with a scoped decision cannot grant it to another execution implicitly. Recovery retains the original decision and rejects replacement.
576
+ run fork restores one sealed stage-entry snapshot to an isolated project and DD_FLOW_HOME, archives source authority, then binds an exact engine only in that copy. It is idempotent by request ID and output receipt; it never resumes a provider session or changes its source RUN.
577
+ run prepare-vnext-specify allocates an otherwise unstarted vNext RUN for the canonical SPECIFY entry checkpoint. run recovery makes an interrupted RUN read-only, requires an explicit settled-tree receipt, captures immutable recovery evidence, then explicitly returns delegated Work to the ready graph. run snapshot is the eval-only checkpoint boundary: it snapshots one quiescent RUN, its dedicated DD_FLOW_HOME, and the exact project tree including its Git repository, then restores them into a fresh dedicated runtime. It is not a general runtime backup command and fails closed for a shared runtime.
578
+
579
+ Managed drive is not yet native-provider qualified. With --capture-root, its detached controller fences RUN writers and captures each completed Stage before dispatching its successor. The capture root must be outside the runtime, project and workspace. Status events expose boundary_captured receipts; capturing means writers are still fenced, and capture_failed retains the fence for operator reconciliation. External snapshot creation is rejected while a managed controller owns a live RUN.
173
580
 
174
581
  Examples:
175
582
  dd-flow run start --project-root "$PWD" --flow-kind mb_sdlc --subject-type protocol --subject-id PRT-001-demo --slug demo --json
@@ -184,16 +591,22 @@ Examples:
184
591
  Usage:
185
592
  dd-flow stage start <RUN-ID|RUN-short-id> --project-root <root> --stage <name> [--dir <NN-stage-slug>] [--require-session-binding] --json
186
593
  dd-flow stage start --bootstrap --project-root <root> --stage specify --subject <safe-subject> (--intake-file <path>|--intake-stdin) [--require-session-binding] --json
187
- dd-flow stage pause <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --work <WORK-ID> --question-stdin --json
188
- dd-flow stage resume <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --work <WORK-ID> --answer-stdin --json
189
- dd-flow stage block <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --work <WORK-ID> --kind engine|harness|environment --code <code> --summary-stdin [--retryable] --json
594
+ dd-flow stage pause <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --work <WORK-ID> (--question-file <path>|--question-stdin) --json
595
+ dd-flow stage resume <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --work <WORK-ID> (--answer-file <path>|--answer-stdin) --json
596
+
597
+ Managed resume commands restore the accepted answer file from runtime state. Execute the returned command without adding an answer path or recreating the answer. The explicit answer flags above are for unmanaged calls.
598
+ Path aliases @project, @workspace and @run are supported only in declared CLI path parameters and require a uniquely bound context. File-writing tools use physical paths. Both --option value and --option=value are accepted; quoted or escaped aliases are normalized identically. Pre-RUN bootstrap paths and external schema directories require physical paths.
599
+ An aggregate CODE/CODE-REVIEW failure may return continuation.kind=repair_required: its repair Work is already registered. End the coordinator turn and let the controller dispatch the fresh child; do not recreate the repair. A recovery retry uses --retry-check <receipt> --reason-file <recovery.json>, containing only {"reason":"actual environment recovery evidence"}. Legacy --reason remains accepted, but cannot be combined with --reason-file. A needs_input continuation is not yet executable: write its requested file first, then use command_after_input.
600
+ dd-flow stage block <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --work <WORK-ID> --kind engine|harness|environment --code <code> (--summary-file <path>|--summary-stdin) [--retryable] --json
190
601
  dd-flow stage unblock <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --work <WORK-ID> --json
191
602
  dd-flow stage fanout status <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --json
192
603
  dd-flow stage fanout dispatch <RUN-ID|RUN-short-id> --project-root <root> --stage <name> --json
604
+ dd-flow stage fanout reconcile <RUN-ID> --project-root <root> --stage <name> --observations-file <native-observations.json> --json
605
+ dd-flow stage native observe <RUN-ID> --project-root <root> --stage <name> --observations-file <native-observations.json> --json
193
606
  dd-flow stage finish <RUN-ID|RUN-short-id> --project-root <root> --stage <name> [--semantic-file <RUN-local-json>] --json
194
607
  dd-flow stage finish <RUN-ID|RUN-short-id> --project-root <root> --stage specify (--result-file <RUN-local-specify.json>|--result-stdin) --outcome <specified|failed|cancelled> --json
195
608
 
196
- stage start is the worker's first practical flow command. It performs deterministic setup and returns a ready-to-use, stage-specific work packet with trusted runtime facts, compatibility and permission preflight, aliases, write boundary and exact lifecycle commands. A material user question uses stage pause, not stage finish: pause leaves the same stage, Work, Session and attempt open and returns the exact resume command. Engine, harness and environment failures use stage block and never create HITL. On the next Turn, pass a complete user answer to stage resume, or repair an external blocker and call its returned stage unblock command. stage fanout is read-only orchestration state plus the stage's deterministic Work materialization action for an external runner; it never makes product decisions. stage finish is reserved for actual stage completion and generates the final deterministic reports. Generated lifecycle commands include DD_FLOW_HOME when the RUN uses a non-default runtime.`
609
+ stage start is the worker's first practical flow command. It performs deterministic setup and returns a ready-to-use, stage-specific work packet with trusted runtime facts, compatibility and permission preflight, aliases, write boundary and exact lifecycle commands. Managed commands use scoped RUN/Work aliases and @project; their internal invocation UUID is bound by the native hook and is intentionally not model-facing. @ aliases apply only to declared dd-flow path arguments, not to shell tools. A material user question uses stage pause, not stage finish: pause leaves the same stage, Work, Session and attempt open and returns the exact resume command. Engine, harness and environment failures use stage block and never create HITL. On the next Turn, pass a complete user answer to stage resume, or repair an external blocker and call its returned stage unblock command. stage fanout is read-only orchestration state plus the stage's deterministic Work materialization action for an external runner; it never makes product decisions. stage finish is reserved for actual stage completion and generates the final deterministic reports. Unmanaged operator calls retain explicit project and runtime selection.`
197
610
  ],
198
611
  [
199
612
  "work",
@@ -203,8 +616,9 @@ Usage:
203
616
  dd-flow work ls (--run <RUN-ID>|--parent <WORK-ID>) [--ready] --json
204
617
  dd-flow work show <WORK-ID> --json
205
618
  dd-flow work start <WORK-ID> --project-root <root> --json
619
+ dd-flow work launch <WORK-ID> [--stage <name>] --json
206
620
  dd-flow work finish <WORK-ID> (--result-file <path>|--result-stdin) --project-root <root> --json
207
- dd-flow work repair add --run <RUN-ID> (--from-check <CHECK-ID>|--from-unresolved <gap> --verification-file <file>) --origin-work <WORK-ID>... --task-stdin --project-root <root> --json
621
+ dd-flow work repair add --run <RUN-ID> (--from-check <CHECK-ID>|--from-unresolved <gap> --verification-file <file>) --origin-work <WORK-ID>... (--task-file <path>|--task-stdin) --project-root <root> --json
208
622
 
209
623
  CODE workers receive their full accepted packet from work start. work finish validates the result and executes the packet's focused checks before completion. A failed aggregate CODE gate or unresolved semantic verification creates a repair Work from the selected completed origin context and retained evidence. Its planned write areas are coordination hints only; the repair may change any necessary project file inside its RUN workspace.`
210
624
  ],
@@ -504,8 +918,12 @@ Examples:
504
918
 
505
919
  Usage:
506
920
  dd-flow memory permissions preflight --root <project-root> --memory-bank <path> [--tasks <path>] --flow <flow> --mode <mode> --json
921
+ dd-flow memory finish integrate --run <run-id> --project-root <project-root> --json
922
+ dd-flow memory finish evidence --run <run-id> --project-root <project-root> --json
923
+
924
+ permissions preflight checks project, Memory Bank, and optional .tasks read/write permissions before memory flows mutate files. It never runs privileged repair commands. A completed assessment returns JSON on stdout with exit_code 0 when the flow can continue and exit_code 1 when permission blockers are found. Runtime/configuration mistakes exit 2 as structured errors.
507
925
 
508
- permissions preflight checks project, Memory Bank, and optional .tasks read/write permissions before memory flows mutate files. It never runs privileged repair commands. A completed assessment returns JSON on stdout with exit_code 0 when the flow can continue and exit_code 1 when permission blockers are found. Runtime/configuration mistakes exit 2 as structured errors.`
926
+ finish integrate commits only the accepted Memory Bank and owned lint configuration, then performs the retained local integration route. It preserves unrelated files and never pushes or changes Git identity/configuration. An uncertain original Git effect must be observed, not blindly repeated. finish evidence then publishes actual coverage, integration and ordinary-entry preparation references; neither command accepts the finish result or completes the RUN.`
509
927
  ],
510
928
  [
511
929
  "memory permissions",
@@ -537,17 +955,38 @@ handler resolves the registered project from cwd. The option is only a manual
537
955
  override.
538
956
 
539
957
  Managed homes isolate dd-flow hooks while sharing selected Codex state from the source home.`
958
+ ],
959
+ [
960
+ "zcode hook",
961
+ `dd-flow zcode hook - handle a synchronous native ZCode PreToolUse callback
962
+
963
+ Usage:
964
+ dd-flow zcode hook handle --project-root <root> --json
965
+
966
+ The managed ZCode native hook supplies the callback on stdin. It records the
967
+ receipt before returning a rewritten tool input with --hook-event-id.`
540
968
  ],
541
969
  [
542
970
  "zcode event",
543
- `dd-flow zcode event - ingest a zcode-acp session/update notification
971
+ `dd-flow zcode event - ingest a zcode-acp session/update notification as evidence
544
972
 
545
973
  Usage:
546
974
  dd-flow zcode event handle --project-root <root> --json
547
975
  dd-flow zcode usage ingest --project-root <root> --json
548
976
 
549
- Both payloads are read from stdin. The event adapter retains lifecycle identity;
550
- the usage adapter retains cumulative provider counters for RUN accounting.`
977
+ Both payloads are read from stdin. Native hooks own lifecycle admission; ACP
978
+ events and usage retain secondary evidence for RUN accounting.`
979
+ ],
980
+ [
981
+ "droid event",
982
+ `dd-flow droid event - ingest a controlled Factory Droid Execute hook
983
+
984
+ Usage:
985
+ dd-flow droid event handle --project-root <root> --json
986
+ dd-flow droid usage ingest --project-root <root> --json
987
+
988
+ Reads trusted adapter JSON from stdin. Usage requires physical_session scope and explicit completeness.
989
+ `
551
990
  ],
552
991
  [
553
992
  "opencode event",
@@ -587,10 +1026,73 @@ worktree plan suggests a project-scoped service checkout under DD_FLOW_HOME/proj
587
1026
  ]
588
1027
  ]);
589
1028
  export function helpForArgs(args) {
590
- const helpIndex = args.findIndex((arg) => arg === "--help" || arg === "-h");
591
- if (helpIndex === -1) {
1029
+ return resolveHelp(args)?.text;
1030
+ }
1031
+ export function hasHelpIntent(args) {
1032
+ const end = args.indexOf("--");
1033
+ return args.slice(0, end < 0 ? args.length : end).some(arg => arg === "--help" || arg === "-h");
1034
+ }
1035
+ /** Pure early resolver: no filesystem, runtime context, process dispatch or output-file access. */
1036
+ export function resolveHelp(args) {
1037
+ if (!hasHelpIntent(args))
592
1038
  return undefined;
1039
+ const end = args.indexOf("--"), tokens = args.slice(0, end < 0 ? args.length : end);
1040
+ const positions = [], selectors = [], supplied = [];
1041
+ let json = false;
1042
+ const switches = new Set([...globalOptionDocumentation.filter(o => o.kind === "switch").map(o => o.name),
1043
+ ...Object.values(commandInputs).flatMap(input => input.switches)]);
1044
+ for (let index = 0; index < tokens.length; index++) {
1045
+ const token = tokens[index];
1046
+ if (token === "--help" || token === "-h")
1047
+ continue;
1048
+ if (token === "--option" || token.startsWith("--option=")) {
1049
+ const value = token.startsWith("--option=") ? token.slice(9) : tokens[++index];
1050
+ if (!value || value === "--help" || value === "-h")
1051
+ throw helpUsage("--option requires one option selector");
1052
+ selectors.push(value.replace(/^--/, ""));
1053
+ continue;
1054
+ }
1055
+ if (token.startsWith("--")) {
1056
+ const name = token.slice(2).split("=", 1)[0];
1057
+ supplied.push(name);
1058
+ if (token === "--json")
1059
+ json = true;
1060
+ if (!token.includes("=") && !switches.has(name) && tokens[index + 1] && !tokens[index + 1].startsWith("-"))
1061
+ index++;
1062
+ }
1063
+ else if (token.startsWith("-"))
1064
+ throw helpUsage(`Unknown short option: ${token}`);
1065
+ else
1066
+ positions.push(token);
593
1067
  }
594
- const path = args.slice(0, helpIndex).filter((arg) => !arg.startsWith("--")).join(" ");
595
- return helpPages.get(path) ?? helpPages.get(path.split(" ").slice(0, 2).join(" ")) ?? helpPages.get("");
1068
+ if (selectors.length > 1)
1069
+ throw helpUsage("--option must occur once");
1070
+ const selected = commandKeyForPositions(positions);
1071
+ const command = selected ?? positions.join(" ");
1072
+ const commands = Object.keys(commandInputs).filter(key => !command || key === command || key.startsWith(`${command} `));
1073
+ if (command && commands.length === 0)
1074
+ throw helpUsage(`Unknown help command: ${command}`);
1075
+ const optionMap = new Map(optionsForCommandTree(command).map(option => [option.name, option]));
1076
+ // Invalid response transport is intentionally irrelevant to help, including missing/repeated values.
1077
+ for (const name of supplied)
1078
+ if (!optionMap.has(name))
1079
+ throw helpUsage(`Unknown option --${name} for ${command || "root"}`);
1080
+ const option = selectors.length ? optionMap.get(selectors[0]) : null;
1081
+ if (selectors.length && !option)
1082
+ throw helpUsage(`Unknown option selector: ${selectors[0]}`);
1083
+ const options = [...optionMap.values()].sort((a, b) => a.name.localeCompare(b.name, "en"));
1084
+ const input = selected ? commandInputs[selected] : undefined;
1085
+ const canonical = commandAliases[command] ?? command;
1086
+ const pageKey = [...helpPages.keys()].filter(key => key && (canonical === key || canonical.startsWith(`${key} `)))
1087
+ .sort((a, b) => b.length - a.length)[0] ?? "";
1088
+ const detail = (value) => `--${value.name}${value.kind === "value" ? " <value>" : ""}${value.required ? " (required)" : ""}${value.repeatable ? " (repeatable)" : ""}\n ${value.description}${value.choices.length ? `\n Allowed: ${value.choices.join(", ")}` : ""}`;
1089
+ const usage = input ? `\nExact command: dd-flow ${command}${input.positions[0] ? ` <argument>${input.positions[0] > 1 ? ` × ${input.positions[0]}` : ""}` : ""}\n` : "";
1090
+ return { json,
1091
+ text: option ? `dd-flow ${command} --option ${option.name} --help\n\n${detail(option)}`
1092
+ : `${helpPages.get(pageKey)}${usage}\n${input?.retired ? `Retired: ${input.retired}\n` : ""}\n${command ? "" : "Command paths:\n"}${input ? "" : commands.map(key => ` ${key}`).join("\n")}\n\nOptions:\n${options.map(detail).join("\n")}`,
1093
+ data: { schema_id: "dd-flow/cli-help@1", command, alias_of: commandAliases[command] ?? null, commands, options, option: option ?? null,
1094
+ router_native: selected ? routerNativeRoute(selected) : true, retired: input?.retired ?? null } };
1095
+ }
1096
+ function helpUsage(message) {
1097
+ return new AppError("usage", `${message}; use dd-flow --help`, 2, { phase: "help", effect: "no_effect", recoverable: true, help_topic: "dd-flow --help" });
596
1098
  }