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

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 +959 -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 +230 -106
  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
@@ -0,0 +1,585 @@
1
+ import { AppError } from "../shared/errors.js";
2
+ import { resolveProjectRoot } from "../storage/paths.js";
3
+ import { requireProjectByRoot } from "./projects.js";
4
+ import { readFlowRunExecutionBundle, assertPreparedRunBundleSqlAuthority } from "./runs.js";
5
+ import { PreparedMemoryBaselinePreservation } from "./memory-baseline-preservation.js";
6
+ import { PreparedAcceptedMemoryComposition } from "./memory-accepted-composition.js";
7
+ import { PreparedAcceptedMemoryVerification } from "./memory-verification-receipt.js";
8
+ import { readAcceptedStageData } from "./stage-report-renderer.js";
9
+ import { PreparedDescriptorStageStart } from "./descriptor-stage-start.js";
10
+ import { PreparedDescriptorStageCoordinator } from "./descriptor-stage-coordinator.js";
11
+ import { PreparedMemoryInitialReviewInputs, memoryReviewEvidenceTriples } from "./memory-review-inputs.js";
12
+ import { registerMemoryInitialReview } from "./memory-review-registration.js";
13
+ import { PreparedMemoryInitialReviewAcceptance, projectMemoryReviewResult } from "./memory-review-acceptance.js";
14
+ import { runtimeCommand } from "./runtime-command.js";
15
+ import { PreparedRetainedMemoryReviewAuthority } from "./memory-retained-review-authority.js";
16
+ import { PreparedRetainedMemoryReviewResults } from "./memory-retained-review-results.js";
17
+ import { PreparedMemoryInitialCorrectionPlan } from "./memory-review-correction-plan.js";
18
+ import { PreparedRegisteredMemoryCorrections, registerMemoryInitialCorrections } from "./memory-repair-registration.js";
19
+ import { PreparedMemoryRepairWorkBaseline } from "./memory-repair-work-baseline.js";
20
+ import { PreparedMemoryRepairCurrentView } from "./memory-repair-current-view.js";
21
+ import { PreparedMemoryRepairPublicationSource } from "./memory-repair-publication-source.js";
22
+ import { PreparedRetainedMemoryRepairPublication } from "./memory-repair-publication.js";
23
+ import { PreparedPublishedMemoryRepairWorkResult } from "./memory-repair-work-custody.js";
24
+ import { finishPublishedMemoryRepairWork } from "./work-registry.js";
25
+ import { PreparedBoundMemoryRepairCopy, PreparedMemoryRepairWriterCopy } from "./memory-repair-writer-copy.js";
26
+ import { PreparedDescriptorStageSettlement } from "./descriptor-stage-settlement.js";
27
+ import { PreparedMemoryResultBinding } from "./memory-result-binding.js";
28
+ import { PreparedMemoryStageResult } from "./memory-stage-results.js";
29
+ import { ObservedMemorySources } from "./memory-source-observations.js";
30
+ import { PreparedMemoryInitialReviewReceipt, PreparedAcceptedMemoryInitialReview } from "./memory-review-receipt.js";
31
+ import { PreparedCompletedMemoryCorrectionWave } from "./memory-completed-correction-wave.js";
32
+ import { PreparedCorrectedMemoryReviewInputs } from "./memory-corrected-review-inputs.js";
33
+ import { PreparedMemoryVerificationChecks } from "./memory-verification-checks.js";
34
+ import { PreparedMemoryCorrectionCheckReceipt } from "./memory-correction-check-receipt.js";
35
+ import { PreparedSecondMemoryReviewAcceptance } from "./memory-second-review-acceptance.js";
36
+ import { registerCorrectedMemoryReview, PreparedRegisteredCorrectedMemoryReview } from "./memory-corrected-review-registration.js";
37
+ import { PreparedCorrectedMemoryReviewAcceptance } from "./memory-corrected-review-acceptance.js";
38
+ import { PreparedMemoryCorrectedReviewReceipt, PreparedAcceptedMemoryCorrectedReview } from "./memory-corrected-review-receipt.js";
39
+ import { PreparedMemorySecondCorrectionPlan } from "./memory-second-correction-plan.js";
40
+ import { registerMemorySecondCorrections } from "./memory-second-repair-registration.js";
41
+ import { PreparedRetainedSecondMemoryRepairs } from "./memory-retained-second-repairs.js";
42
+ import { PreparedSecondMemoryRepairSource } from "./memory-second-repair-source.js";
43
+ import { PreparedSecondMemoryRepairBaseline } from "./memory-second-repair-baseline.js";
44
+ import { PreparedRetainedSecondMemoryBaseline } from "./memory-retained-second-baseline.js";
45
+ import { PreparedSecondMemoryRepairLaunch } from "./memory-second-repair-launch.js";
46
+ import { PreparedSettledMemoryRepair } from "./memory-repair-history.js";
47
+ import { PreparedSecondCorrectedMemoryReviewInputs } from "./memory-second-corrected-review-inputs.js";
48
+ function refuse(reason) {
49
+ throw new AppError("memory_review_handler_invalid", "Memory review lacks accepted verification and current document custody", 2, { reason, effect: "no_effect" });
50
+ }
51
+ /** Initial independent-review entry; does not register reviewers, copy a
52
+ * workspace or dispatch a provider. Those operations require the separately
53
+ * registered per-unit/wave input adapter, not just read_only=true. The full
54
+ * memory handler group remains unregistered until review/repair/finish is ready.
55
+ */
56
+ export function startMemoryReview(context, input) {
57
+ if (!(input.bytes instanceof Uint8Array) || input.bytes.length > 1024 * 1024)
58
+ refuse("invalid_input_bytes");
59
+ const bundle = readFlowRunExecutionBundle(context, input);
60
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id) || bundle.descriptor.successor("verify", "accepted") !== "review"
61
+ || bundle.descriptor.successor("review", "accepted") !== "finish")
62
+ refuse("registered_memory_bundle_required");
63
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot)), scope = { projectId: project.id, runId: input.runId };
64
+ const run = assertPreparedRunBundleSqlAuthority(context, scope, bundle), index = JSON.parse(run.index_json);
65
+ if (index.stage_runs.find((stage) => stage.stage === "review")?.status === "done")
66
+ refuse("use_accepted_finish_replay");
67
+ const composition = PreparedAcceptedMemoryComposition.prepare(context, { scope, bundle });
68
+ const preservation = bundle.descriptor.descriptor.id === "mb-upgrade" ? composition : PreparedMemoryBaselinePreservation.prepare(context, bundle.execution);
69
+ const data = readAcceptedStageData(context, { ...scope, stage: "verify" });
70
+ const verification = PreparedAcceptedMemoryVerification.prepare(context, { ...scope, bytes: data.bytes });
71
+ const fence = (writer) => { preservation.assertCustody(writer); composition.assertCustody(writer); verification.assertCustody(writer); };
72
+ const revalidate = () => { preservation.revalidate(context); composition.revalidate(context); verification.revalidate(context); };
73
+ const start = PreparedDescriptorStageStart.prepare(context, { ...input, stage: "review" });
74
+ revalidate();
75
+ const stage = start.apply(context, fence);
76
+ const coordinator = PreparedDescriptorStageCoordinator.prepare(context, { ...input, stage: "review" });
77
+ revalidate();
78
+ return { ...stage, ...coordinator.apply(context, fence) };
79
+ }
80
+ /** Independent initial wave allocation only; review remains unregistered in
81
+ * the productive handler group until repair and terminal settlement are ready.
82
+ */
83
+ export function registerMemoryReviewFromStage(context, input) {
84
+ const bundle = readFlowRunExecutionBundle(context, input);
85
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
86
+ refuse("registered_memory_bundle_required");
87
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
88
+ const inputs = PreparedMemoryInitialReviewInputs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
89
+ return registerMemoryInitialReview(context, inputs);
90
+ }
91
+ /** Collect registered initial-wave results without closing the Stage or
92
+ * granting correction authority. Repair/finish consume separately admitted
93
+ * views and cannot manufacture this proof from coordinator result JSON.
94
+ */
95
+ export function collectMemoryInitialReviewFromStage(context, input) {
96
+ const bundle = readFlowRunExecutionBundle(context, input);
97
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
98
+ refuse("registered_memory_bundle_required");
99
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
100
+ const inputs = PreparedMemoryInitialReviewInputs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
101
+ return PreparedMemoryInitialReviewAcceptance.prepare(context, inputs, bundle);
102
+ }
103
+ /** Close only independently accepted initial or selective review. Registered
104
+ * repairs select the corrected path; missing custody never falls back to the
105
+ * original document view. Accepted replay is historical, not re-admission. */
106
+ export function finishMemoryReview(context, input) {
107
+ if (!(input.bytes instanceof Uint8Array) || !input.bytes.length || input.bytes.length > 1024 * 1024)
108
+ refuse("invalid_result_bytes");
109
+ const bundle = readFlowRunExecutionBundle(context, input);
110
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id) || bundle.descriptor.successor("verify", "accepted") !== "review"
111
+ || bundle.descriptor.successor("review", "accepted") !== "finish")
112
+ refuse("registered_memory_bundle_required");
113
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot)), scope = { projectId: project.id, runId: input.runId };
114
+ const run = assertPreparedRunBundleSqlAuthority(context, scope, bundle), index = JSON.parse(run.index_json);
115
+ const stage = index.stage_runs.find((stage) => stage.stage === "review");
116
+ if (!stage || typeof stage.attempt !== "string")
117
+ refuse("review_identity_missing");
118
+ if (stage?.status === "done") {
119
+ const corrected = context.db.get("SELECT 1 FROM audit_events WHERE project_id=? AND event_type='memory.corrected_review_acceptance' AND json_extract(payload_json,'$.run_id')=? AND json_extract(payload_json,'$.attempt')=? LIMIT 1", [scope.projectId, scope.runId, stage.attempt]);
120
+ const accepted = corrected ? PreparedAcceptedMemoryCorrectedReview.prepare(context, { scope, bundle, bytes: input.bytes })
121
+ : PreparedAcceptedMemoryInitialReview.prepare(context, { scope, bundle, bytes: input.bytes });
122
+ const settlement = PreparedDescriptorStageSettlement.prepare(context, { ...input, stage: "review" });
123
+ accepted.revalidate(context);
124
+ return settlement.apply(context, writer => accepted.assertCustody(writer));
125
+ }
126
+ const corrected = context.db.get("SELECT 1 FROM audit_events WHERE project_id=? AND event_type='memory.repair_registration' AND json_extract(payload_json,'$.run_id')=? AND json_extract(payload_json,'$.scope.attempt')=? LIMIT 1", [scope.projectId, scope.runId, stage?.attempt]);
127
+ const second = context.db.get("SELECT 1 FROM audit_events WHERE project_id=? AND event_type='memory.second_repair_registration' AND json_extract(payload_json,'$.run_id')=? AND json_extract(payload_json,'$.scope.attempt')=? LIMIT 1", [scope.projectId, scope.runId, stage.attempt]);
128
+ const inputs = second ? PreparedSecondCorrectedMemoryReviewInputs.prepareFromBundle(context, { scope, bundle })
129
+ : corrected ? PreparedCorrectedMemoryReviewInputs.prepareFromBundle(context, { scope, bundle })
130
+ : PreparedMemoryInitialReviewInputs.prepare(context, { scope, bundle });
131
+ const wave = PreparedSecondCorrectedMemoryReviewInputs.isPrepared(inputs)
132
+ ? PreparedSecondMemoryReviewAcceptance.prepare(context, PreparedRegisteredCorrectedMemoryReview.restore(context, inputs, PreparedMemoryCorrectionCheckReceipt.restore(context, inputs)))
133
+ : PreparedCorrectedMemoryReviewInputs.isPrepared(inputs)
134
+ ? PreparedCorrectedMemoryReviewAcceptance.prepare(context, PreparedRegisteredCorrectedMemoryReview.restore(context, inputs, PreparedMemoryCorrectionCheckReceipt.restore(context, inputs)))
135
+ : PreparedMemoryInitialReviewAcceptance.prepare(context, inputs, bundle);
136
+ const view = inputs.value();
137
+ const roots = { run: run.run_root ?? run.run_dir, workspace: bundle.execution.snapshot().scope.workspace };
138
+ const sources = ObservedMemorySources.capture(roots, [...view.run_inputs.map(ref => ({ root: ref.root, path: ref.path })),
139
+ ...wave.references().map(ref => ({ root: "run", path: ref.result.path }))]);
140
+ const binding = PreparedMemoryResultBinding.prepare(context, { ...scope, stage: "review", flow: bundle.descriptor,
141
+ execution: bundle.execution, bundle, sources,
142
+ historicalEvidence: memoryReviewEvidenceTriples(view.unit_inventory) });
143
+ const proposal = PreparedMemoryStageResult.prepare(input.bytes, bundle.descriptor, binding.binding());
144
+ const projection = wave.resultProjection();
145
+ if (projection.outcome !== "accepted") {
146
+ const correctionWave = view.wave + 1;
147
+ const command = runtimeCommand(context, ["memory", "review", view.wave ? "selective-collect" : "collect",
148
+ "--run", input.runId, "--project-root", input.projectRoot, ...(view.wave ? ["--wave", String(view.wave)] : []), "--json"]);
149
+ throw new AppError("memory_review_corrections_required", "Independent review cannot close until its material findings are resolved", 2, { phase: "prepare", effect: "no_effect", recoverable: projection.outcome === "needs_repair" && correctionWave <= 2,
150
+ projection, result_sha256: proposal.sha256,
151
+ correction_instruction: projection.outcome === "needs_repair" && correctionWave <= 2
152
+ ? `Run ${command} to obtain the canonical findings and correction_plan_binding. Author substantive repair tasks and exact owned write_paths; register that plan with the issued memory corrections register command for wave ${correctionWave}, then end this Turn so the controller can dispatch it. Use retry_command only after its checks and independent selective review complete. Do not calculate finding hashes, merge findings, or retry Finish before corrections.`
153
+ : "The independent review is blocked or its two correction waves are exhausted. Use the issued pause command for the concrete unresolved blocker; do not mark it accepted." });
154
+ }
155
+ const result = PreparedMemoryStageResult.prepare(Buffer.from(JSON.stringify(projectMemoryReviewResult(proposal.value(), projection))), bundle.descriptor, binding.binding());
156
+ const receipt = PreparedCorrectedMemoryReviewAcceptance.isPrepared(wave) || PreparedSecondMemoryReviewAcceptance.isPrepared(wave)
157
+ ? PreparedMemoryCorrectedReviewReceipt.prepare(context, { scope, wave, result })
158
+ : PreparedMemoryInitialReviewReceipt.prepare(context, { scope, wave, result });
159
+ const settlement = PreparedDescriptorStageSettlement.prepare(context, { ...input, stage: "review", bytes: result.bytes() });
160
+ inputs.revalidate(context);
161
+ wave.revalidate(context);
162
+ binding.revalidate(context);
163
+ return settlement.apply(context, writer => { binding.assertCustody(writer); wave.assertCustody(writer); receipt.record(writer); });
164
+ }
165
+ /** Initial repair plan intake or exact retained-plan replay. A replay does not
166
+ * re-admit original document bytes after repairs; it only returns the existing
167
+ * allocated graph. Independent writer/delta admission still owns execution.
168
+ */
169
+ export function registerMemoryCorrectionsFromStage(context, input) {
170
+ if (!(input.bytes instanceof Uint8Array) || !input.bytes.length || input.bytes.length > 1024 * 1024)
171
+ refuse("invalid_input_bytes");
172
+ const bundle = readFlowRunExecutionBundle(context, input);
173
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
174
+ refuse("registered_memory_bundle_required");
175
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
176
+ const original = PreparedRetainedMemoryReviewAuthority.prepare(context, { projectId: project.id, runId: input.runId }, bundle);
177
+ const review = PreparedRetainedMemoryReviewResults.prepare(context, original);
178
+ try {
179
+ const retained = PreparedRegisteredMemoryCorrections.restore(context, review, input.bytes);
180
+ return retained.replay(context);
181
+ }
182
+ catch (error) {
183
+ if (!(error instanceof AppError) || error.code !== "memory_repair_registration_invalid" || error.details?.reason !== "repair_registration_missing")
184
+ throw error;
185
+ }
186
+ return registerMemoryInitialCorrections(context, PreparedMemoryInitialCorrectionPlan.prepare(context, review, input.bytes));
187
+ }
188
+ /** Pre-launch original-document receipt only. Launch/start/private copy and
189
+ * bounded publication remain separate owners; this does not unlock dispatch.
190
+ */
191
+ export function registerMemoryRepairBaselineFromStage(context, input) {
192
+ return prepareMemoryRepairBaselineFromStage(context, input).register(context);
193
+ }
194
+ function prepareMemoryRepairBaselineFromStage(context, input) {
195
+ const registration = prepareMemoryRepairRegistrationFromStage(context, input);
196
+ const owner = registration.receipt(), batch = registration.batch();
197
+ const assigned = batch.works.find(item => owner.work_ids[item.key] === input.workId);
198
+ if (!assigned)
199
+ refuse("foreign_repair_work");
200
+ const rows = context.db.all("SELECT json_extract(payload_json,'$.schema_id') AS schema_id FROM audit_events WHERE project_id=? AND event_type='memory.repair_work_baseline' AND json_extract(payload_json,'$.run_id')=? AND json_extract(payload_json,'$.work_id')=? LIMIT 2", [owner.scope.project_id, owner.run_id, input.workId]);
201
+ if (rows.length > 1)
202
+ refuse("ambiguous_repair_baseline");
203
+ // An existing baseline is immutable; never promote an admitted original
204
+ // baseline into a newer current view merely because a peer has finished.
205
+ if (rows[0]?.schema_id === "dd-flow/memory-repair-work-baseline@2")
206
+ return PreparedMemoryRepairWorkBaseline.prepare(context, registration, input.workId);
207
+ const needsCurrent = Boolean(rows.length || assigned.depends_on.length || batch.works.some(item => context.db.get("SELECT 1 FROM works WHERE project_id=? AND run_id=? AND work_id=? AND status='completed'", [owner.scope.project_id, owner.run_id, owner.work_ids[item.key]])));
208
+ if (!needsCurrent)
209
+ return PreparedMemoryRepairWorkBaseline.prepare(context, registration, input.workId);
210
+ let view;
211
+ try {
212
+ view = PreparedMemoryRepairCurrentView.restore(context, registration, input.workId);
213
+ }
214
+ catch (error) {
215
+ if (!(error instanceof AppError) || error.code !== "memory_repair_current_view_invalid" || error.details.reason !== "registered_view_required")
216
+ throw error;
217
+ // This helper also prepares copy operations. It must not commit a new
218
+ // view as a hidden side effect before the requested baseline/copy fails.
219
+ refuse(rows.length ? "registered_current_view_missing" : "current_view_registration_required");
220
+ }
221
+ return PreparedMemoryRepairWorkBaseline.prepareFromCurrentView(context, registration, input.workId, view);
222
+ }
223
+ function prepareMemoryRepairRegistrationFromStage(context, input) {
224
+ const bundle = readFlowRunExecutionBundle(context, input);
225
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
226
+ refuse("registered_memory_bundle_required");
227
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
228
+ const original = PreparedRetainedMemoryReviewAuthority.prepare(context, { projectId: project.id, runId: input.runId }, bundle);
229
+ const review = PreparedRetainedMemoryReviewResults.prepare(context, original);
230
+ return PreparedRegisteredMemoryCorrections.restore(context, review);
231
+ }
232
+ /** Admit the current post-correction view only after the complete registered
233
+ * graph has settled. This does not allocate reviewers or resolve findings. */
234
+ export function prepareCompletedMemoryCorrectionsFromStage(context, input) {
235
+ return PreparedCompletedMemoryCorrectionWave.prepare(context, prepareMemoryRepairRegistrationFromStage(context, input));
236
+ }
237
+ /** Prepare selective current inputs; independent fresh checks and reviewer
238
+ * registration must still precede any actual Work dispatch. */
239
+ export function prepareCorrectedMemoryReviewFromStage(context, input) {
240
+ return PreparedCorrectedMemoryReviewInputs.prepare(context, prepareCompletedMemoryCorrectionsFromStage(context, input));
241
+ }
242
+ /** Register only selective independent reviewers. No provider is launched;
243
+ * missing, changed or lost check/Work receipts refuse instead of reallocating. */
244
+ export function registerCorrectedMemoryReviewFromStage(context, input) {
245
+ const corrected = prepareCorrectedMemoryReviewFromStage(context, input);
246
+ const checks = PreparedMemoryCorrectionCheckReceipt.restore(context, corrected);
247
+ return registerCorrectedMemoryReview(context, corrected, checks);
248
+ }
249
+ /** Independent selective fan-in; this does not accept Stage completion,
250
+ * authorize wave two or mark old material findings resolved. */
251
+ export function collectCorrectedMemoryReviewFromStage(context, input) {
252
+ const corrected = prepareCorrectedMemoryReviewFromStage(context, input);
253
+ const checks = PreparedMemoryCorrectionCheckReceipt.restore(context, corrected);
254
+ return PreparedCorrectedMemoryReviewAcceptance.prepare(context, PreparedRegisteredCorrectedMemoryReview.restore(context, corrected, checks));
255
+ }
256
+ /** Wave-two intake uses the actual settled first selective review. It does
257
+ * not reuse initial review findings, allocate a graph or dispatch repairs. */
258
+ export function prepareMemorySecondCorrectionsFromStage(context, input) {
259
+ if (!(input.bytes instanceof Uint8Array) || !input.bytes.length || input.bytes.length > 1024 * 1024)
260
+ refuse("invalid_input_bytes");
261
+ return PreparedMemorySecondCorrectionPlan.prepare(context, collectCorrectedMemoryReviewFromStage(context, input), input.bytes);
262
+ }
263
+ export function registerMemorySecondCorrectionsFromStage(context, input) {
264
+ if (!(input.bytes instanceof Uint8Array) || !input.bytes.length || input.bytes.length > 1024 * 1024)
265
+ refuse("invalid_input_bytes");
266
+ const bundle = readFlowRunExecutionBundle(context, input);
267
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
268
+ refuse("registered_memory_bundle_required");
269
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
270
+ try {
271
+ const retained = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId },
272
+ bundle, expectedBytes: input.bytes });
273
+ const receipt = retained.receipt();
274
+ return { wave: 2, plan_sha256: receipt.plan_sha256, work_ids: { ...receipt.work_ids }, replayed: true };
275
+ }
276
+ catch (error) {
277
+ if (!(error instanceof AppError) || error.code !== "memory_retained_second_repairs_invalid" || error.details.reason !== "registration_missing")
278
+ throw error;
279
+ }
280
+ return registerMemorySecondCorrections(context, prepareMemorySecondCorrectionsFromStage(context, input));
281
+ }
282
+ export function prepareMemorySecondRepairSourceFromStage(context, input) {
283
+ const bundle = readFlowRunExecutionBundle(context, input);
284
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
285
+ refuse("registered_memory_bundle_required");
286
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
287
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
288
+ if (context.db.get("SELECT 1 FROM audit_events WHERE project_id=? AND event_type='memory.repair_current_view' AND json_extract(payload_json,'$.run_id')=? AND json_extract(payload_json,'$.work_id')=? LIMIT 1", [project.id, input.runId, input.workId])) {
289
+ const current = PreparedMemoryRepairCurrentView.restore(context, registration, input.workId);
290
+ return PreparedSecondMemoryRepairSource.prepareCurrent(context, { registration, bundle, workId: input.workId, current });
291
+ }
292
+ return PreparedSecondMemoryRepairSource.prepare(context, { registration, bundle, workId: input.workId });
293
+ }
294
+ /** Explained post-peer second input view. Registration preserves this view
295
+ * only; consuming it as a dependent baseline/start requires separate owners. */
296
+ export function prepareMemorySecondRepairCurrentViewFromStage(context, input) {
297
+ const bundle = readFlowRunExecutionBundle(context, input);
298
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
299
+ refuse("registered_memory_bundle_required");
300
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
301
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
302
+ return PreparedMemoryRepairCurrentView.prepare(context, registration, input.workId);
303
+ }
304
+ export function registerMemorySecondRepairCurrentViewFromStage(context, input) {
305
+ return prepareMemorySecondRepairCurrentViewFromStage(context, input).register(context);
306
+ }
307
+ export function restoreMemorySecondRepairCurrentViewFromStage(context, input) {
308
+ const bundle = readFlowRunExecutionBundle(context, input);
309
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
310
+ refuse("registered_memory_bundle_required");
311
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
312
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
313
+ return PreparedMemoryRepairCurrentView.restore(context, registration, input.workId);
314
+ }
315
+ export function prepareMemorySecondRepairCurrentSourceFromStage(context, input) {
316
+ const bundle = readFlowRunExecutionBundle(context, input);
317
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
318
+ refuse("registered_memory_bundle_required");
319
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
320
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
321
+ const current = PreparedMemoryRepairCurrentView.restore(context, registration, input.workId);
322
+ return PreparedSecondMemoryRepairSource.prepareCurrent(context, { registration, bundle, workId: input.workId, current });
323
+ }
324
+ export function registerMemorySecondRepairCurrentBaselineFromStage(context, input) {
325
+ return PreparedSecondMemoryRepairBaseline.prepare(context, prepareMemorySecondRepairCurrentSourceFromStage(context, input)).register(context);
326
+ }
327
+ export function registerMemorySecondRepairBaselineFromStage(context, input) {
328
+ return PreparedSecondMemoryRepairBaseline.prepare(context, prepareMemorySecondRepairSourceFromStage(context, input)).register(context);
329
+ }
330
+ function prepareMemorySecondRepairCopyFromStage(context, input) {
331
+ const baseline = PreparedSecondMemoryRepairBaseline.prepare(context, prepareMemorySecondRepairSourceFromStage(context, input));
332
+ return PreparedMemoryRepairWriterCopy.prepare(context, baseline);
333
+ }
334
+ export function reserveMemorySecondRepairCopyFromStage(context, input) {
335
+ return prepareMemorySecondRepairCopyFromStage(context, input).reserve(context);
336
+ }
337
+ export function materializeMemorySecondRepairCopyFromStage(context, input) {
338
+ return prepareMemorySecondRepairCopyFromStage(context, input).materialize(context);
339
+ }
340
+ export function prepareMemorySecondRepairDispatchFromStage(context, input) {
341
+ return prepareMemorySecondRepairCopyFromStage(context, input).secondWaveLaunchPacket(context);
342
+ }
343
+ export function restoreMemorySecondRepairBaselineFromStage(context, input) {
344
+ const bundle = readFlowRunExecutionBundle(context, input);
345
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
346
+ refuse("registered_memory_bundle_required");
347
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
348
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
349
+ return PreparedRetainedSecondMemoryBaseline.prepare(context, { registration, bundle, workId: input.workId });
350
+ }
351
+ export function prepareMemorySecondRepairLaunchFromStage(context, input) {
352
+ const bundle = readFlowRunExecutionBundle(context, input);
353
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
354
+ refuse("registered_memory_bundle_required");
355
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
356
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
357
+ const baseline = PreparedRetainedSecondMemoryBaseline.prepare(context, { registration, bundle, workId: input.workId });
358
+ return PreparedSecondMemoryRepairLaunch.prepare(context, { registration, baseline, bundle });
359
+ }
360
+ export function restoreStartedMemorySecondRepairLaunchFromStage(context, input) {
361
+ const bundle = readFlowRunExecutionBundle(context, input);
362
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
363
+ refuse("registered_memory_bundle_required");
364
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
365
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
366
+ const baseline = PreparedRetainedSecondMemoryBaseline.prepare(context, { registration, bundle, workId: input.workId });
367
+ return PreparedSecondMemoryRepairLaunch.restoreForStartedWork(context, { registration, baseline, bundle, workSessionId: input.workSessionId });
368
+ }
369
+ export function prepareMemorySecondRepairPublicationFromStage(context, input) {
370
+ const owner = restoreStartedMemorySecondRepairLaunchFromStage(context, input);
371
+ return PreparedRetainedMemoryRepairPublication.prepareSecond(context, owner);
372
+ }
373
+ export function reserveMemorySecondRepairPublicationFromStage(context, input) {
374
+ if (!(input.bytes instanceof Uint8Array) || !input.bytes.length || input.bytes.length > 1024 * 1024)
375
+ refuse("invalid_input_bytes");
376
+ return restoreStartedMemorySecondRepairLaunchFromStage(context, input).reservePublication(context, input.bytes);
377
+ }
378
+ export function applyMemorySecondRepairPublicationFromStage(context, input) {
379
+ return prepareMemorySecondRepairPublicationFromStage(context, input).applyNextAction(context);
380
+ }
381
+ export function finishMemorySecondRepairPublicationFromStage(context, input) {
382
+ const publication = prepareMemorySecondRepairPublicationFromStage(context, input);
383
+ return finishPublishedMemoryRepairWork(context, PreparedPublishedMemoryRepairWorkResult.prepare(context, publication));
384
+ }
385
+ /** Historical settlement proof, not a new writer baseline or provider start.
386
+ * The whole independent start/publication/SDK settlement chain is required. */
387
+ export function prepareSettledMemorySecondRepairFromStage(context, input) {
388
+ const bundle = readFlowRunExecutionBundle(context, input);
389
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
390
+ refuse("registered_memory_bundle_required");
391
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
392
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
393
+ return PreparedSettledMemoryRepair.prepare(context, registration, input.workId);
394
+ }
395
+ /** Complete second graph/current document proof. This is not independent
396
+ * semantic re-review acceptance and does not close the review Stage. */
397
+ export function prepareCompletedMemorySecondCorrectionsFromStage(context, input) {
398
+ const bundle = readFlowRunExecutionBundle(context, input);
399
+ if (!bundle || !["mb-init", "mb-upgrade"].includes(bundle.descriptor.descriptor.id))
400
+ refuse("registered_memory_bundle_required");
401
+ const project = requireProjectByRoot(context, resolveProjectRoot(input.projectRoot));
402
+ const registration = PreparedRetainedSecondMemoryRepairs.prepare(context, { scope: { projectId: project.id, runId: input.runId }, bundle });
403
+ return PreparedCompletedMemoryCorrectionWave.prepare(context, registration);
404
+ }
405
+ export function prepareSecondCorrectedMemoryReviewFromStage(context, input) {
406
+ return PreparedSecondCorrectedMemoryReviewInputs.prepare(context, prepareCompletedMemorySecondCorrectionsFromStage(context, input));
407
+ }
408
+ /** Allocate wave-two independent reviewers only after its own committed checks.
409
+ * This does not launch Sessions or authorize a third correction wave. */
410
+ export function registerSecondCorrectedMemoryReviewFromStage(context, input) {
411
+ const corrected = prepareSecondCorrectedMemoryReviewFromStage(context, input);
412
+ return registerCorrectedMemoryReview(context, corrected, PreparedMemoryCorrectionCheckReceipt.restore(context, corrected));
413
+ }
414
+ export function collectSecondCorrectedMemoryReviewFromStage(context, input) {
415
+ const corrected = prepareSecondCorrectedMemoryReviewFromStage(context, input);
416
+ return PreparedSecondMemoryReviewAcceptance.prepare(context, PreparedRegisteredCorrectedMemoryReview.restore(context, corrected, PreparedMemoryCorrectionCheckReceipt.restore(context, corrected)));
417
+ }
418
+ /** Finite owning-policy checks over the settled corrected view. Callers
419
+ * cannot choose commands, policy hashes or a substitute evidence context.
420
+ * This does not allocate reviewers or accept semantic correction quality. */
421
+ export function prepareMemoryCorrectionChecksFromStage(context, input) {
422
+ const corrected = prepareCorrectedMemoryReviewFromStage(context, input), bundle = corrected.bundle(), scope = corrected.value().scope;
423
+ return PreparedMemoryVerificationChecks.prepare(context, { projectId: scope.project_id, runId: scope.run_id,
424
+ execution: bundle.execution, flow: bundle.descriptor, corrected });
425
+ }
426
+ export function runMemoryCorrectionChecksFromStage(context, input) {
427
+ return runCorrectionChecks(context, prepareCorrectedMemoryReviewFromStage(context, input));
428
+ }
429
+ export function prepareMemorySecondCorrectionChecksFromStage(context, input) {
430
+ const corrected = prepareSecondCorrectedMemoryReviewFromStage(context, input), bundle = corrected.bundle(), scope = corrected.value().scope;
431
+ return PreparedMemoryVerificationChecks.prepare(context, { projectId: scope.project_id, runId: scope.run_id,
432
+ execution: bundle.execution, flow: bundle.descriptor, corrected });
433
+ }
434
+ export function runMemorySecondCorrectionChecksFromStage(context, input) {
435
+ return runCorrectionChecks(context, prepareSecondCorrectedMemoryReviewFromStage(context, input));
436
+ }
437
+ function runCorrectionChecks(context, corrected) {
438
+ try {
439
+ const accepted = PreparedMemoryCorrectionCheckReceipt.restore(context, corrected);
440
+ accepted.assertRegisteredCustody(context);
441
+ return Promise.resolve({ receipt: accepted.value(), receipt_sha256: accepted.sha256, replay: true });
442
+ }
443
+ catch (error) {
444
+ if (!(error instanceof AppError) || error.code !== "memory_correction_checks_invalid" || error.details.reason !== "registered_check_receipt_required")
445
+ throw error;
446
+ }
447
+ const bundle = corrected.bundle(), scope = corrected.value().scope;
448
+ const policy = PreparedMemoryVerificationChecks.prepare(context, { projectId: scope.project_id, runId: scope.run_id,
449
+ execution: bundle.execution, flow: bundle.descriptor, corrected });
450
+ // A disconnect after the last physical check but before the independent
451
+ // receipt must not replay the commands merely to reconstruct acceptance.
452
+ try {
453
+ const completed = PreparedMemoryCorrectionCheckReceipt.prepare(context, corrected, policy);
454
+ return Promise.resolve(completed.register(context));
455
+ }
456
+ catch (error) {
457
+ if (!(error instanceof AppError) || error.code !== "check_evidence_stale")
458
+ throw error;
459
+ }
460
+ return policy.execute(context).then(() => PreparedMemoryCorrectionCheckReceipt.prepare(context, corrected, policy).register(context));
461
+ }
462
+ /** Reserve only after the independently committed baseline exists. Neither
463
+ * this receipt nor its replay admits filesystem contents or provider launch.
464
+ */
465
+ export function reserveMemoryRepairWriterCopyFromStage(context, input) {
466
+ const baseline = prepareMemoryRepairBaselineFromStage(context, input);
467
+ return PreparedMemoryRepairWriterCopy.prepare(context, baseline).reserve(context);
468
+ }
469
+ export function materializeMemoryRepairWriterCopyFromStage(context, input) {
470
+ const baseline = prepareMemoryRepairBaselineFromStage(context, input);
471
+ return PreparedMemoryRepairWriterCopy.prepare(context, baseline).materialize(context);
472
+ }
473
+ export function prepareMemoryRepairDispatchFromStage(context, input) {
474
+ const baseline = prepareMemoryRepairBaselineFromStage(context, input);
475
+ return PreparedMemoryRepairWriterCopy.prepare(context, baseline).launchPacket(context);
476
+ }
477
+ /** Preparation only; actual Work start must separately prove the Hook
478
+ * identity, physical Session and this custody again in its claim writer.
479
+ */
480
+ export function prepareExternalMemoryRepairCopyFromStage(context, input) {
481
+ const registration = prepareMemoryRepairRegistrationFromStage(context, input);
482
+ const baseline = PreparedMemoryRepairWorkBaseline.restoreForLaunch(context, registration, input.workId);
483
+ return PreparedBoundMemoryRepairCopy.prepare(context, baseline, input.workspaceRoot);
484
+ }
485
+ /** Select settled dependency/current documents from this exact registered
486
+ * stage. Preparation alone neither registers a writer baseline nor launches
487
+ * a provider; those operations must consume this owner explicitly.
488
+ */
489
+ export function prepareMemoryRepairCurrentViewFromStage(context, input) {
490
+ const registration = prepareMemoryRepairRegistrationFromStage(context, input);
491
+ if (registration.review().original().bundle().execution.snapshot().scope.workspace !== input.workspaceRoot)
492
+ refuse("current_view_workspace_mismatch");
493
+ return PreparedMemoryRepairCurrentView.prepare(context, registration, input.workId);
494
+ }
495
+ export function restoreMemoryRepairCurrentViewFromStage(context, input) {
496
+ const registration = prepareMemoryRepairRegistrationFromStage(context, input);
497
+ if (registration.review().original().bundle().execution.snapshot().scope.workspace !== input.workspaceRoot)
498
+ refuse("current_view_workspace_mismatch");
499
+ return PreparedMemoryRepairCurrentView.restore(context, registration, input.workId);
500
+ }
501
+ export function registerMemoryRepairCurrentViewFromStage(context, input) {
502
+ const registration = prepareMemoryRepairRegistrationFromStage(context, input);
503
+ if (input.workspaceRoot !== undefined && registration.review().original().bundle().execution.snapshot().scope.workspace !== input.workspaceRoot)
504
+ refuse("current_view_workspace_mismatch");
505
+ let prepared;
506
+ try {
507
+ prepared = PreparedMemoryRepairCurrentView.restore(context, registration, input.workId);
508
+ }
509
+ catch (error) {
510
+ if (!(error instanceof AppError) || error.code !== "memory_repair_current_view_invalid" || error.details.reason !== "registered_view_required")
511
+ throw error;
512
+ prepared = PreparedMemoryRepairCurrentView.prepare(context, registration, input.workId);
513
+ }
514
+ return prepared.register(context);
515
+ }
516
+ /** Restore the same registered physical start; never launch or claim another
517
+ * Session and never replace retained input bytes with today's workspace.
518
+ */
519
+ export function restoreStartedMemoryRepairCopyFromStage(context, input) {
520
+ const registration = prepareMemoryRepairRegistrationFromStage(context, input);
521
+ const baseline = PreparedMemoryRepairWorkBaseline.restoreForStartedWork(context, registration, input.workId, input.workSessionId);
522
+ return PreparedBoundMemoryRepairCopy.restoreForStartedWork(context, baseline, input.workspaceRoot, input.workSessionId);
523
+ }
524
+ function restoreRepairOutputOwners(context, input) {
525
+ const registration = prepareMemoryRepairRegistrationFromStage(context, input);
526
+ const baseline = PreparedMemoryRepairWorkBaseline.restoreForOutput(context, registration, input.workId, input.workSessionId);
527
+ const copy = PreparedBoundMemoryRepairCopy.restoreForOutput(context, baseline, input.workspaceRoot, input.workSessionId);
528
+ return { registration, baseline, copy };
529
+ }
530
+ /** Running writer custody remains original; the shared source view is selected
531
+ * independently from settled peer histories. No publication intent is made. */
532
+ export function prepareMemoryRepairPublicationSourceFromStage(context, input) {
533
+ const owners = restoreRepairOutputOwners(context, input);
534
+ return PreparedMemoryRepairPublicationSource.prepare(context, owners.registration, owners.baseline, owners.copy, input.workSessionId);
535
+ }
536
+ export function restoreMemoryRepairPublicationSourceFromStage(context, input) {
537
+ const owners = restoreRepairOutputOwners(context, input);
538
+ return PreparedMemoryRepairPublicationSource.restore(context, owners.registration, owners.baseline, owners.copy, input.workSessionId);
539
+ }
540
+ export function registerMemoryRepairPublicationSourceFromStage(context, input) {
541
+ const owners = restoreRepairOutputOwners(context, input);
542
+ let source;
543
+ try {
544
+ source = PreparedMemoryRepairPublicationSource.restore(context, owners.registration, owners.baseline, owners.copy, input.workSessionId);
545
+ }
546
+ catch (error) {
547
+ if (!(error instanceof AppError) || error.code !== "memory_repair_publication_source_invalid" || error.details.reason !== "registered_source_required")
548
+ throw error;
549
+ source = PreparedMemoryRepairPublicationSource.prepare(context, owners.registration, owners.baseline, owners.copy, input.workSessionId);
550
+ }
551
+ return source.register(context);
552
+ }
553
+ export function prepareMemoryRepairPrivateOutputFromStage(context, input) {
554
+ const copy = restoreStartedMemoryRepairCopyFromStage(context, input);
555
+ return copy.prepareOutput(context, input.bytes, input.workSessionId);
556
+ }
557
+ /** Explicit source registration is a prior operation, never a hidden write
558
+ * during output preparation. Original private evidence remains frozen. */
559
+ export function prepareMemoryRepairPrivateOutputAgainstSourceFromStage(context, input) {
560
+ const owners = restoreRepairOutputOwners(context, input);
561
+ const source = PreparedMemoryRepairPublicationSource.restore(context, owners.registration, owners.baseline, owners.copy, input.workSessionId);
562
+ return owners.copy.prepareOutputAgainstSource(context, input.bytes, input.workSessionId, source);
563
+ }
564
+ export function reserveMemoryRepairPublicationAgainstSourceFromStage(context, input) {
565
+ return prepareMemoryRepairPrivateOutputAgainstSourceFromStage(context, input).reservePublication(context);
566
+ }
567
+ export function reserveMemoryRepairPublicationFromStage(context, input) {
568
+ return prepareMemoryRepairPrivateOutputFromStage(context, input).reservePublication(context);
569
+ }
570
+ export function restoreMemoryRepairPublicationFromStage(context, input) {
571
+ const registration = prepareMemoryRepairRegistrationFromStage(context, input);
572
+ const baseline = PreparedMemoryRepairWorkBaseline.restoreForPublication(context, registration, input.workId, input.workSessionId);
573
+ const copy = PreparedBoundMemoryRepairCopy.restoreForPublication(context, baseline, input.workspaceRoot, input.workSessionId);
574
+ const intent = baseline.registeredPublicationIntent(context, input.workSessionId);
575
+ const source = intent.schema_id === "dd-flow/memory-repair-publication-intent@2"
576
+ ? PreparedMemoryRepairPublicationSource.restore(context, registration, baseline, copy, input.workSessionId) : null;
577
+ return PreparedRetainedMemoryRepairPublication.prepare(context, baseline, copy, input.workSessionId, source);
578
+ }
579
+ export function applyMemoryRepairPublicationFromStage(context, input) {
580
+ return restoreMemoryRepairPublicationFromStage(context, input).applyNextAction(context);
581
+ }
582
+ export function finishMemoryRepairPublicationFromStage(context, input) {
583
+ const publication = restoreMemoryRepairPublicationFromStage(context, input);
584
+ return finishPublishedMemoryRepairWork(context, PreparedPublishedMemoryRepairWorkResult.prepare(context, publication));
585
+ }