@north-light/crouter 0.3.312 → 0.3.313

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 (495) hide show
  1. package/dist/api/client.d.ts +27 -30
  2. package/dist/api/client.js +80 -67
  3. package/dist/api/dto/broker-ops.d.ts +10 -20
  4. package/dist/api/dto/canvas.d.ts +1 -10
  5. package/dist/api/dto/health.d.ts +113 -0
  6. package/dist/api/dto/human-requests.d.ts +14 -3
  7. package/dist/api/dto/human.d.ts +2 -48
  8. package/dist/api/dto/human.js +3 -2
  9. package/dist/api/dto/inbox.d.ts +14 -0
  10. package/dist/api/dto/mail.d.ts +43 -0
  11. package/dist/api/dto/nodes.d.ts +11 -8
  12. package/dist/api/dto/recovery.d.ts +96 -0
  13. package/dist/api/dto/reviews.d.ts +2 -2
  14. package/dist/api/routes.d.ts +9 -6
  15. package/dist/api/routes.js +11 -11
  16. package/dist/build-root.d.ts +4 -0
  17. package/dist/build-root.js +11 -1
  18. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/__tests__/integration/provider-rotation.test.ts +35 -47
  19. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.d.ts +1 -1
  20. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.js +12 -5
  21. package/dist/builtin-pi-packages/pi-crtr-extensions/extensions/provider-rotation.ts +12 -5
  22. package/dist/cli.js +10 -1
  23. package/dist/clients/__tests__/helpers/human-daemon.d.ts +11 -0
  24. package/dist/clients/__tests__/helpers/human-daemon.js +60 -0
  25. package/dist/clients/attach/chrome/canvas-panels.js +1 -1
  26. package/dist/clients/attach/chrome/inbox-strip.d.ts +3 -3
  27. package/dist/clients/attach/chrome/inbox-strip.js +17 -9
  28. package/dist/clients/attach/chrome/ticket-panel.d.ts +2 -2
  29. package/dist/clients/attach/chrome/ticket-panel.js +77 -46
  30. package/dist/clients/attach/overlays/graph.js +6 -9
  31. package/dist/clients/attach/render/chat-view.d.ts +5 -4
  32. package/dist/clients/attach/render/chat-view.js +22 -13
  33. package/dist/clients/attach/render/page-block.d.ts +11 -7
  34. package/dist/clients/attach/render/page-block.js +64 -55
  35. package/dist/clients/attach/viewer.js +746 -735
  36. package/dist/clients/inbox/__tests__/integration/inbox-controller.test.js +56 -56
  37. package/dist/clients/inbox/__tests__/integration/stale-row-activation.test.js +45 -32
  38. package/dist/clients/inbox/controller.d.ts +42 -14
  39. package/dist/clients/inbox/controller.js +240 -124
  40. package/dist/clients/inbox/dto-adapt.d.ts +28 -0
  41. package/dist/clients/inbox/dto-adapt.js +93 -0
  42. package/dist/clients/inbox/page-adapter.d.ts +5 -4
  43. package/dist/clients/inbox/page-adapter.js +12 -12
  44. package/dist/clients/inbox/resolve.d.ts +10 -5
  45. package/dist/clients/inbox/resolve.js +13 -12
  46. package/dist/clients/inbox/review/review-client.d.ts +0 -1
  47. package/dist/clients/inbox/review/review-client.js +0 -4
  48. package/dist/clients/inbox/review-adapter.d.ts +2 -1
  49. package/dist/clients/inbox/review-adapter.js +3 -5
  50. package/dist/clients/inbox/surface.d.ts +2 -2
  51. package/dist/clients/inbox/surface.js +19 -8
  52. package/dist/clients/inbox/tui.d.ts +3 -3
  53. package/dist/commands/__tests__/human.test.js +31 -15
  54. package/dist/commands/__tests__/integration/dashboard-snapshot.test.js +36 -11
  55. package/dist/commands/{sys/__tests__ → __tests__/integration}/migrate.test.js +142 -36
  56. package/dist/commands/__tests__/revive-now-gate.test.js +2 -0
  57. package/dist/commands/api-client.d.ts +5 -4
  58. package/dist/commands/api-client.js +13 -7
  59. package/dist/commands/canvas-history/shared.js +1 -1
  60. package/dist/commands/canvas-history.js +1 -1
  61. package/dist/commands/canvas-roster.js +1 -1
  62. package/dist/commands/canvas.js +1 -2
  63. package/dist/commands/human/feedback.js +20 -17
  64. package/dist/commands/human/prompts.js +45 -36
  65. package/dist/commands/human/queue.js +73 -123
  66. package/dist/commands/human/review.js +6 -16
  67. package/dist/commands/memory/__tests__/command-selector-and-mutation-guards.test.js +2 -0
  68. package/dist/commands/memory/__tests__/memory-list-and-lint-ignore.test.js +2 -0
  69. package/dist/commands/memory/__tests__/repository-root-lint.test.js +2 -0
  70. package/dist/commands/node-inspect-artifacts.js +1 -1
  71. package/dist/commands/node-lifecycle-revive.d.ts +2 -2
  72. package/dist/commands/node-lifecycle-revive.js +9 -19
  73. package/dist/commands/pkg/plugin-manage.js +0 -1
  74. package/dist/commands/profile/show.js +4 -12
  75. package/dist/commands/surface-tmux-spread.js +1 -5
  76. package/dist/commands/sys/__tests__/config-model-ladders.test.js +23 -30
  77. package/dist/commands/sys/__tests__/sync-project-guidance.test.js +37 -11
  78. package/dist/commands/sys/branch.d.ts +2 -0
  79. package/dist/commands/sys/branch.js +19 -0
  80. package/dist/commands/sys/config.js +106 -33
  81. package/dist/commands/sys/daemon.d.ts +2 -0
  82. package/dist/commands/sys/daemon.js +130 -7
  83. package/dist/commands/sys/doctor.js +5 -15
  84. package/dist/commands/sys/migrate.js +21 -92
  85. package/dist/commands/sys/setup-settings-runner.js +4 -2
  86. package/dist/commands/sys.js +2 -15
  87. package/dist/core/__tests__/boot-fault-attempt.test.js +23 -1
  88. package/dist/core/__tests__/boot.test.js +32 -25
  89. package/dist/core/__tests__/broker-launch-candidates.test.js +49 -0
  90. package/dist/core/__tests__/canvas-inbox-watcher-hold.test.js +149 -176
  91. package/dist/core/__tests__/canvas-inbox-watcher-naming.test.js +59 -10
  92. package/dist/core/__tests__/canvas-inbox-watcher.test.js +76 -20
  93. package/dist/core/__tests__/canvas.test.js +18 -47
  94. package/dist/core/__tests__/child-death-wake.test.js +29 -7
  95. package/dist/core/__tests__/cli-help-contract.test.js +2 -0
  96. package/dist/core/__tests__/close.test.js +29 -10
  97. package/dist/core/__tests__/collectible.test.js +2 -1
  98. package/dist/core/__tests__/config-change-delta.test.js +2 -0
  99. package/dist/core/__tests__/context-intro.test.js +13 -1
  100. package/dist/core/__tests__/cron-armed-context-failure.test.js +17 -12
  101. package/dist/core/__tests__/cron-held-settlement.test.js +21 -3
  102. package/dist/core/__tests__/cron-node-sink-parked-root.test.js +29 -10
  103. package/dist/core/__tests__/cron-self-cancel-delivery.test.js +14 -2
  104. package/dist/core/__tests__/cron-timeout-descendants.test.js +13 -1
  105. package/dist/core/__tests__/daemon-boot.test.js +51 -14
  106. package/dist/core/__tests__/fixtures/fake-engine.d.ts +1 -1
  107. package/dist/core/__tests__/fixtures/fake-engine.js +8 -3
  108. package/dist/core/__tests__/focuses.test.js +10 -5
  109. package/dist/core/__tests__/helpers/harness.js +50 -18
  110. package/dist/core/__tests__/history-inbox.test.js +12 -16
  111. package/dist/core/__tests__/human-action-delivery.test.js +48 -28
  112. package/dist/core/__tests__/human-actions.test.js +7 -3
  113. package/dist/core/__tests__/inline-memory-refs.test.js +7 -2
  114. package/dist/core/__tests__/integration/broker-fork-seam.test.js +37 -10
  115. package/dist/core/__tests__/integration/broker-sdk-wiring.test.js +42 -0
  116. package/dist/core/__tests__/integration/broker-snapshot-history.test.js +42 -29
  117. package/dist/core/__tests__/integration/broker-wedge-supervision.test.js +36 -35
  118. package/dist/core/__tests__/integration/command-plugins.test.js +15 -6
  119. package/dist/core/__tests__/integration/deferred-no-wake.test.js +113 -92
  120. package/dist/core/__tests__/integration/host-teardown-process-group.test.js +9 -5
  121. package/dist/core/__tests__/integration/lifecycle-hooks.test.js +16 -3
  122. package/dist/core/__tests__/integration/plugin-revalidate.test.js +4 -0
  123. package/dist/core/__tests__/integration/profile-pause.test.js +4 -4
  124. package/dist/core/__tests__/integration/refresh-stall-recycle.test.js +9 -12
  125. package/dist/core/__tests__/integration/revive.test.js +67 -21
  126. package/dist/core/__tests__/integration/spawn-root.test.js +51 -8
  127. package/dist/core/__tests__/integration/subscription-delivery.test.js +33 -21
  128. package/dist/core/__tests__/integration/worktree-land.test.js +5 -2
  129. package/dist/core/__tests__/integration/worktree-reap.test.js +15 -1
  130. package/dist/core/__tests__/kickoff.test.js +36 -39
  131. package/dist/core/__tests__/lifecycle-terminal-reasons.test.js +2 -1
  132. package/dist/core/__tests__/lifecycle.test.js +2 -1
  133. package/dist/core/__tests__/live-lifecycle-prompt.test.js +13 -1
  134. package/dist/core/__tests__/memory-resolver-precedence.test.js +2 -0
  135. package/dist/core/__tests__/migration.test.js +145 -31
  136. package/dist/core/__tests__/model-pin-durability.test.js +4 -1
  137. package/dist/core/__tests__/model-routes-config.test.js +13 -5
  138. package/dist/core/__tests__/node-outcome.test.js +93 -26
  139. package/dist/core/__tests__/on-read-crouter-home-fence.test.js +2 -1
  140. package/dist/core/__tests__/on-read-dedup-resume.test.js +2 -1
  141. package/dist/core/__tests__/on-read-nested-store.test.js +2 -1
  142. package/dist/core/__tests__/passive-subscription.test.js +50 -157
  143. package/dist/core/__tests__/plugin-kinds.test.js +6 -4
  144. package/dist/core/__tests__/plugin-link-symlinked-scope-root.test.js +6 -1
  145. package/dist/core/__tests__/plugin-page-components.test.js +6 -4
  146. package/dist/core/__tests__/preview-registry-sync.test.js +2 -0
  147. package/dist/core/__tests__/profile-project-memory-delivery.test.js +4 -1
  148. package/dist/core/__tests__/prune.test.js +11 -5
  149. package/dist/core/__tests__/push-final-guard.test.js +14 -7
  150. package/dist/core/__tests__/relaunch-root.test.js +30 -2
  151. package/dist/core/__tests__/remote-canvas-target.test.js +7 -1
  152. package/dist/core/__tests__/repository-root-identity.test.js +4 -0
  153. package/dist/core/__tests__/review-model-floor.test.js +6 -3
  154. package/dist/core/__tests__/revive-all.test.js +13 -3
  155. package/dist/core/__tests__/revive-capacity.test.js +26 -4
  156. package/dist/core/__tests__/revive-parked-fresh.test.js +31 -8
  157. package/dist/core/__tests__/seam/broker-attach-stream.test.js +1 -1
  158. package/dist/core/__tests__/seam/broker-cap-freeze.test.js +4 -3
  159. package/dist/core/__tests__/seam/broker-crash-teardown.test.js +11 -14
  160. package/dist/core/__tests__/seam/broker-provider-retry.test.js +85 -71
  161. package/dist/core/__tests__/seam/dormancy-release.test.js +33 -19
  162. package/dist/core/__tests__/seam/held-deferred-human-prompt.test.js +7 -5
  163. package/dist/core/__tests__/seam/inbox-reference-guidance.test.js +20 -6
  164. package/dist/core/__tests__/seam/node-outcome-delivery.test.js +27 -3
  165. package/dist/core/__tests__/spawn-worktree-id-conflict.test.js +2 -1
  166. package/dist/core/__tests__/stop-guard.test.js +2 -1
  167. package/dist/core/__tests__/subscription-pool-credential-guard.test.js +4 -3
  168. package/dist/core/__tests__/warm-claim-preference-snapshot.test.js +18 -4
  169. package/dist/core/__tests__/yield-ensures-daemon.test.js +2 -1
  170. package/dist/core/bootstrap.js +2 -0
  171. package/dist/core/broker-client/__tests__/transport-socket.test.js +51 -6
  172. package/dist/core/broker-client/transport-socket.d.ts +1 -0
  173. package/dist/core/broker-client/transport-socket.js +13 -5
  174. package/dist/core/canvas/__tests__/attention.test.js +29 -35
  175. package/dist/core/canvas/__tests__/history-transcript.test.js +6 -6
  176. package/dist/core/canvas/__tests__/render-remote.test.js +25 -9
  177. package/dist/core/canvas/attention.d.ts +2 -5
  178. package/dist/core/canvas/attention.js +15 -64
  179. package/dist/core/canvas/boot.d.ts +6 -7
  180. package/dist/core/canvas/boot.js +5 -9
  181. package/dist/core/canvas/canvas.d.ts +13 -109
  182. package/dist/core/canvas/canvas.js +140 -401
  183. package/dist/core/canvas/crons.d.ts +2 -0
  184. package/dist/core/canvas/crons.js +16 -15
  185. package/dist/core/canvas/daemon-owner.js +10 -0
  186. package/dist/core/canvas/db.d.ts +2 -2
  187. package/dist/core/canvas/db.js +2 -18
  188. package/dist/core/canvas/deliveries.d.ts +104 -0
  189. package/dist/core/canvas/deliveries.js +354 -0
  190. package/dist/core/canvas/executions.d.ts +29 -0
  191. package/dist/core/canvas/executions.js +68 -0
  192. package/dist/core/canvas/history.js +35 -35
  193. package/dist/core/canvas/index.d.ts +3 -1
  194. package/dist/core/canvas/index.js +3 -1
  195. package/dist/core/canvas/migrations.js +20 -12
  196. package/dist/core/canvas/nav-model.js +1 -3
  197. package/dist/core/canvas/nav-render.d.ts +4 -4
  198. package/dist/core/canvas/nav-render.js +11 -21
  199. package/dist/core/canvas/node-sql-migration.d.ts +3 -0
  200. package/dist/core/canvas/node-sql-migration.js +261 -0
  201. package/dist/core/canvas/paths.d.ts +2 -16
  202. package/dist/core/canvas/paths.js +2 -31
  203. package/dist/core/canvas/recovery.d.ts +76 -0
  204. package/dist/core/canvas/recovery.js +588 -0
  205. package/dist/core/canvas/remote-canvas-source.js +4 -0
  206. package/dist/core/canvas/render-source.d.ts +16 -27
  207. package/dist/core/canvas/render-source.js +16 -45
  208. package/dist/core/canvas/sessions.d.ts +33 -0
  209. package/dist/core/canvas/sessions.js +78 -0
  210. package/dist/core/canvas/types.d.ts +33 -33
  211. package/dist/core/canvas/types.js +2 -5
  212. package/dist/core/canvas/waits.d.ts +18 -0
  213. package/dist/core/canvas/waits.js +70 -0
  214. package/dist/core/canvas/worktrees.d.ts +40 -0
  215. package/dist/core/canvas/worktrees.js +93 -0
  216. package/dist/core/config.d.ts +17 -12
  217. package/dist/core/config.js +106 -155
  218. package/dist/core/feed/__tests__/inbox-migrate.test.js +27 -31
  219. package/dist/core/feed/feed.d.ts +0 -6
  220. package/dist/core/feed/feed.js +68 -56
  221. package/dist/core/feed/inbox.d.ts +7 -81
  222. package/dist/core/feed/inbox.js +46 -378
  223. package/dist/core/feed/messages.d.ts +58 -0
  224. package/dist/core/feed/messages.js +217 -0
  225. package/dist/core/fs-utils.d.ts +4 -0
  226. package/dist/core/fs-utils.js +21 -1
  227. package/dist/core/human/answer.d.ts +1 -1
  228. package/dist/core/human/answer.js +1 -1
  229. package/dist/core/human/claim.d.ts +1 -1
  230. package/dist/core/human/claim.js +2 -4
  231. package/dist/core/human/component-docs.js +1 -1
  232. package/dist/core/human/feedback-companion.js +3 -2
  233. package/dist/core/human/feedback.d.ts +5 -8
  234. package/dist/core/human/feedback.js +57 -85
  235. package/dist/core/human/page-authoring.d.ts +30 -0
  236. package/dist/core/human/page-authoring.js +19 -0
  237. package/dist/core/human/requests.d.ts +136 -0
  238. package/dist/core/human/requests.js +515 -0
  239. package/dist/core/human/root.d.ts +0 -7
  240. package/dist/core/human/root.js +0 -17
  241. package/dist/core/human/scan.d.ts +2 -7
  242. package/dist/core/human/scan.js +48 -132
  243. package/dist/core/human/summary.d.ts +1 -1
  244. package/dist/core/human/summary.js +1 -1
  245. package/dist/core/human/tickets.d.ts +23 -83
  246. package/dist/core/human/tickets.js +92 -243
  247. package/dist/core/human/types.d.ts +5 -1
  248. package/dist/core/installed-plugins.js +8 -3
  249. package/dist/core/keybindings/__tests__/resolve.test.js +19 -17
  250. package/dist/core/locked-file.d.ts +6 -3
  251. package/dist/core/locked-file.js +36 -9
  252. package/dist/core/memory/extensions.js +2 -0
  253. package/dist/core/preview-registry.js +0 -1
  254. package/dist/core/profiles/__tests__/env-store.test.js +2 -0
  255. package/dist/core/profiles/default-binding.d.ts +0 -4
  256. package/dist/core/profiles/default-binding.js +12 -58
  257. package/dist/core/profiles/env-store.js +8 -3
  258. package/dist/core/profiles/manifest.d.ts +2 -37
  259. package/dist/core/profiles/manifest.js +35 -161
  260. package/dist/core/profiles/select.js +3 -0
  261. package/dist/core/review/__tests__/capture-origin.test.js +13 -2
  262. package/dist/core/review/__tests__/comments.test.js +28 -10
  263. package/dist/core/review/__tests__/remap.test.js +28 -10
  264. package/dist/core/review/__tests__/stage-identity.test.js +17 -7
  265. package/dist/core/review/birth.d.ts +1 -1
  266. package/dist/core/review/birth.js +34 -5
  267. package/dist/core/review/comments.js +1 -1
  268. package/dist/core/review/document.js +1 -1
  269. package/dist/core/review/project.d.ts +5 -1
  270. package/dist/core/review/project.js +14 -36
  271. package/dist/core/review/realize.d.ts +3 -6
  272. package/dist/core/review/realize.js +51 -168
  273. package/dist/core/review/remap.js +1 -1
  274. package/dist/core/review/stage.d.ts +3 -2
  275. package/dist/core/review/stage.js +2 -3
  276. package/dist/core/review/store.d.ts +3 -21
  277. package/dist/core/review/store.js +140 -186
  278. package/dist/core/review/types.d.ts +0 -1
  279. package/dist/core/runtime/__tests__/install-id-cache-scoping.test.js +9 -5
  280. package/dist/core/runtime/__tests__/spawn-env.test.js +8 -9
  281. package/dist/core/runtime/broker/auth-reload.js +9 -10
  282. package/dist/core/runtime/broker/daemon-ops.d.ts +25 -8
  283. package/dist/core/runtime/broker/daemon-ops.js +42 -9
  284. package/dist/core/runtime/broker/extension-abort.d.ts +3 -0
  285. package/dist/core/runtime/broker/extension-abort.js +11 -0
  286. package/dist/core/runtime/broker/fault-retry.d.ts +15 -6
  287. package/dist/core/runtime/broker/fault-retry.js +142 -95
  288. package/dist/core/runtime/broker/inbox.d.ts +4 -32
  289. package/dist/core/runtime/broker/inbox.js +4 -92
  290. package/dist/core/runtime/broker/rebind.d.ts +1 -0
  291. package/dist/core/runtime/broker/rebind.js +21 -12
  292. package/dist/core/runtime/broker-persona-guidance.d.ts +1 -1
  293. package/dist/core/runtime/broker-persona-guidance.js +2 -13
  294. package/dist/core/runtime/broker.js +28 -22
  295. package/dist/core/runtime/close.d.ts +3 -9
  296. package/dist/core/runtime/close.js +16 -27
  297. package/dist/core/runtime/fault.d.ts +3 -93
  298. package/dist/core/runtime/fault.js +9 -419
  299. package/dist/core/runtime/kickoff.d.ts +3 -6
  300. package/dist/core/runtime/kickoff.js +12 -18
  301. package/dist/core/runtime/launch.js +1 -1
  302. package/dist/core/runtime/lifecycle.js +40 -7
  303. package/dist/core/runtime/placement.js +2 -2
  304. package/dist/core/runtime/recycle.js +8 -2
  305. package/dist/core/runtime/reset.js +22 -6
  306. package/dist/core/runtime/revive.js +226 -218
  307. package/dist/core/runtime/spawn.js +14 -3
  308. package/dist/core/scoped-state/db.d.ts +7 -0
  309. package/dist/core/scoped-state/db.js +92 -0
  310. package/dist/core/scoped-state/migrate.d.ts +11 -0
  311. package/dist/core/scoped-state/migrate.js +198 -0
  312. package/dist/core/scoped-state/paths.d.ts +9 -0
  313. package/dist/core/scoped-state/paths.js +27 -0
  314. package/dist/core/scoped-state/profiles.d.ts +12 -0
  315. package/dist/core/scoped-state/profiles.js +62 -0
  316. package/dist/core/scoped-state/providers.d.ts +16 -0
  317. package/dist/core/scoped-state/providers.js +8 -0
  318. package/dist/core/scoped-state/schema.d.ts +3 -0
  319. package/dist/core/scoped-state/schema.js +26 -0
  320. package/dist/core/scoped-state/settings.d.ts +28 -0
  321. package/dist/core/scoped-state/settings.js +82 -0
  322. package/dist/core/subscription-state.d.ts +29 -48
  323. package/dist/core/subscription-state.js +176 -712
  324. package/dist/core/worktree-close.js +4 -4
  325. package/dist/core/worktree-mutation-async.js +2 -2
  326. package/dist/core/worktree-sweep.js +11 -16
  327. package/dist/core/worktree.js +6 -12
  328. package/dist/daemon/__tests__/autostart-storm.test.js +1 -39
  329. package/dist/daemon/__tests__/helpers/source-daemon.d.ts +2 -2
  330. package/dist/daemon/__tests__/helpers/source-daemon.js +7 -6
  331. package/dist/daemon/__tests__/integration/migration-startup.test.js +59 -26
  332. package/dist/daemon/__tests__/node-deadline-lane.test.js +2 -1
  333. package/dist/daemon/__tests__/node-outcome-birth-invariants.test.js +39 -15
  334. package/dist/daemon/__tests__/node-outcome-delivery.test.js +39 -10
  335. package/dist/daemon/__tests__/reconciler-signature.test.js +2 -2
  336. package/dist/daemon/__tests__/subtree-filter-freshness.test.js +2 -2
  337. package/dist/daemon/api/__tests__/broker-settle-park.test.js +17 -12
  338. package/dist/daemon/api/__tests__/canvas-snapshot-fields.test.js +27 -5
  339. package/dist/daemon/api/__tests__/model-config.test.js +8 -8
  340. package/dist/daemon/api/__tests__/node-create-description.test.js +22 -5
  341. package/dist/daemon/api/__tests__/node-model-validation.test.js +21 -1
  342. package/dist/daemon/api/__tests__/nodes-activity-query.test.js +10 -12
  343. package/dist/daemon/api/__tests__/profile-launch-gates.test.js +4 -1
  344. package/dist/daemon/api/__tests__/profile-metadata-route.test.js +4 -1
  345. package/dist/daemon/api/__tests__/reopen-delivery.test.js +26 -8
  346. package/dist/daemon/api/__tests__/seam/api-server.test.js +24 -32
  347. package/dist/daemon/api/__tests__/seam/b10-attach-modelauth.test.js +4 -1
  348. package/dist/daemon/api/__tests__/seam/leaf-api-parity.test.js +5 -4
  349. package/dist/daemon/api/__tests__/seam/profile-delete.test.js +27 -41
  350. package/dist/daemon/api/__tests__/submit-result.test.js +3 -2
  351. package/dist/daemon/api/bridge.js +1 -1
  352. package/dist/daemon/api/handlers/bash-jobs.js +6 -7
  353. package/dist/daemon/api/handlers/broker-ops.js +47 -84
  354. package/dist/daemon/api/handlers/broker-recovery.d.ts +4 -0
  355. package/dist/daemon/api/handlers/broker-recovery.js +251 -0
  356. package/dist/daemon/api/handlers/canvas.js +2 -44
  357. package/dist/daemon/api/handlers/daemon.js +41 -0
  358. package/dist/daemon/api/handlers/feedback-comments.js +2 -2
  359. package/dist/daemon/api/handlers/health.js +10 -5
  360. package/dist/daemon/api/handlers/human-requests.js +168 -188
  361. package/dist/daemon/api/handlers/human.js +3 -151
  362. package/dist/daemon/api/handlers/inbox-page.d.ts +4 -0
  363. package/dist/daemon/api/handlers/inbox-page.js +89 -0
  364. package/dist/daemon/api/handlers/inbox.js +21 -120
  365. package/dist/daemon/api/handlers/messages.d.ts +1 -0
  366. package/dist/daemon/api/handlers/messages.js +73 -15
  367. package/dist/daemon/api/handlers/node-outcomes.js +58 -13
  368. package/dist/daemon/api/handlers/nodes.js +7 -13
  369. package/dist/daemon/api/handlers/reviews.js +4 -29
  370. package/dist/daemon/api/map.d.ts +25 -3
  371. package/dist/daemon/api/map.js +84 -14
  372. package/dist/daemon/api/server.js +68 -9
  373. package/dist/daemon/control.d.ts +18 -0
  374. package/dist/daemon/cron/disposition.d.ts +2 -0
  375. package/dist/daemon/cron/disposition.js +8 -5
  376. package/dist/daemon/cron/settle.js +37 -13
  377. package/dist/daemon/cron/sinks.d.ts +18 -1
  378. package/dist/daemon/cron/sinks.js +47 -93
  379. package/dist/daemon/crtrd-cli.js +4 -19
  380. package/dist/daemon/crtrd.d.ts +2 -0
  381. package/dist/daemon/crtrd.js +206 -81
  382. package/dist/daemon/fleet.js +5 -6
  383. package/dist/daemon/human/finish.d.ts +12 -24
  384. package/dist/daemon/human/finish.js +88 -285
  385. package/dist/daemon/human/settle.d.ts +40 -0
  386. package/dist/daemon/human/settle.js +89 -0
  387. package/dist/daemon/human/sweep.d.ts +20 -5
  388. package/dist/daemon/human/sweep.js +56 -60
  389. package/dist/daemon/manage.d.ts +21 -16
  390. package/dist/daemon/manage.js +85 -51
  391. package/dist/daemon/messaging/node-message.d.ts +1 -1
  392. package/dist/daemon/messaging/node-message.js +9 -12
  393. package/dist/daemon/park-activity.js +3 -3
  394. package/dist/daemon/reconcilers/bash-deadline.js +6 -7
  395. package/dist/daemon/reconcilers/broker-supervision.d.ts +1 -1
  396. package/dist/daemon/reconcilers/broker-supervision.js +41 -19
  397. package/dist/daemon/reconcilers/controller-death.js +6 -18
  398. package/dist/daemon/reconcilers/delivery-lane.d.ts +9 -0
  399. package/dist/daemon/reconcilers/delivery-lane.js +130 -0
  400. package/dist/daemon/reconcilers/live-obligation.js +3 -3
  401. package/dist/daemon/reconcilers/node-deadline.js +1 -1
  402. package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.d.ts +1 -1
  403. package/dist/daemon/reconcilers/node-lifecycle/freeze-lane.js +10 -12
  404. package/dist/daemon/reconcilers/node-lifecycle/tick.js +5 -5
  405. package/dist/daemon/reconcilers/node-lifecycle/wants-execution.js +1 -1
  406. package/dist/daemon/reconcilers/pending-review-submit.js +3 -3
  407. package/dist/daemon/reconcilers/storage-maintenance.d.ts +2 -8
  408. package/dist/daemon/reconcilers/storage-maintenance.js +13 -43
  409. package/dist/daemon/review/companion.js +5 -11
  410. package/dist/daemon/review/deliver.d.ts +1 -5
  411. package/dist/daemon/review/deliver.js +3 -52
  412. package/dist/daemon/review/finish.d.ts +2 -27
  413. package/dist/daemon/review/finish.js +79 -263
  414. package/dist/daemon/review/sweep.d.ts +3 -10
  415. package/dist/daemon/review/sweep.js +13 -131
  416. package/dist/daemon/startup-policy.d.ts +0 -5
  417. package/dist/daemon/startup-policy.js +0 -5
  418. package/dist/index.d.ts +2 -1
  419. package/dist/index.js +1 -1
  420. package/dist/migrations/__tests__/activation-concurrency.test.js +3 -2
  421. package/dist/migrations/__tests__/activation.test.js +9 -6
  422. package/dist/migrations/activation.d.ts +3 -2
  423. package/dist/migrations/activation.js +2 -4
  424. package/dist/migrations/corpus.d.ts +2 -5
  425. package/dist/migrations/corpus.js +9 -20
  426. package/dist/migrations/runner.d.ts +3 -1
  427. package/dist/migrations/runner.js +6 -2
  428. package/dist/pi-extensions/__tests__/canvas-context-intro.test.js +21 -89
  429. package/dist/pi-extensions/__tests__/canvas-goal-capture-envelope.test.js +4 -2
  430. package/dist/pi-extensions/__tests__/canvas-stophook-agentend.test.js +51 -33
  431. package/dist/pi-extensions/__tests__/canvas-stophook-context-nudge.test.js +16 -2
  432. package/dist/pi-extensions/__tests__/pre-command-gate.test.js +13 -1
  433. package/dist/pi-extensions/canvas-inbox-watcher.js +98 -244
  434. package/dist/pi-extensions/canvas-passive-context.d.ts +4 -8
  435. package/dist/pi-extensions/canvas-passive-context.js +85 -37
  436. package/dist/pi-extensions/canvas-stophook.js +47 -31
  437. package/dist/shared/env.d.ts +1 -0
  438. package/dist/shared/env.js +3 -0
  439. package/package.json +1 -1
  440. package/runtime.lock.json +5 -5
  441. package/dist/clients/attach/__tests__/page-block.test.js +0 -54
  442. package/dist/clients/inbox/review-visibility.d.ts +0 -5
  443. package/dist/clients/inbox/review-visibility.js +0 -19
  444. package/dist/commands/canvas-rebuild-index.d.ts +0 -2
  445. package/dist/commands/canvas-rebuild-index.js +0 -46
  446. package/dist/core/__tests__/human-cancel-guard.test.js +0 -110
  447. package/dist/core/__tests__/human-deliver.test.d.ts +0 -1
  448. package/dist/core/__tests__/human-deliver.test.js +0 -256
  449. package/dist/core/__tests__/human-node-not-supervised.test.d.ts +0 -1
  450. package/dist/core/__tests__/human-node-not-supervised.test.js +0 -89
  451. package/dist/core/__tests__/integration/human-deliver-e2e.test.d.ts +0 -1
  452. package/dist/core/__tests__/integration/human-deliver-e2e.test.js +0 -131
  453. package/dist/core/__tests__/phase4-review-store.test.d.ts +0 -1
  454. package/dist/core/__tests__/phase4-review-store.test.js +0 -144
  455. package/dist/core/__tests__/watchdog-abort-arms-retry.test.d.ts +0 -1
  456. package/dist/core/__tests__/watchdog-abort-arms-retry.test.js +0 -110
  457. package/dist/core/canvas/human-deliveries.d.ts +0 -39
  458. package/dist/core/canvas/human-deliveries.js +0 -75
  459. package/dist/core/canvas/node-outcome-deliveries.d.ts +0 -64
  460. package/dist/core/canvas/node-outcome-deliveries.js +0 -159
  461. package/dist/core/feed/passive.d.ts +0 -3
  462. package/dist/core/feed/passive.js +0 -53
  463. package/dist/core/human/__tests__/inbox-cancel-worker.d.ts +0 -1
  464. package/dist/core/human/__tests__/inbox-cancel-worker.js +0 -7
  465. package/dist/core/human/__tests__/inbox-claim-worker.d.ts +0 -1
  466. package/dist/core/human/__tests__/inbox-claim-worker.js +0 -17
  467. package/dist/core/human/__tests__/inbox-stale-claim-worker.d.ts +0 -1
  468. package/dist/core/human/__tests__/inbox-stale-claim-worker.js +0 -8
  469. package/dist/core/human/__tests__/integration/inbox-core.test.d.ts +0 -1
  470. package/dist/core/human/__tests__/integration/inbox-core.test.js +0 -145
  471. package/dist/core/human/__tests__/page-tickets.test.d.ts +0 -1
  472. package/dist/core/human/__tests__/page-tickets.test.js +0 -161
  473. package/dist/core/review/ticket-filter.d.ts +0 -17
  474. package/dist/core/review/ticket-filter.js +0 -21
  475. package/dist/core/runtime/broker/passive.d.ts +0 -17
  476. package/dist/core/runtime/broker/passive.js +0 -44
  477. package/dist/core/runtime/busy.d.ts +0 -46
  478. package/dist/core/runtime/busy.js +0 -150
  479. package/dist/daemon/__tests__/startup-block-marker.test.d.ts +0 -1
  480. package/dist/daemon/__tests__/startup-block-marker.test.js +0 -86
  481. package/dist/daemon/api/__tests__/review-terminal-conflict.test.d.ts +0 -1
  482. package/dist/daemon/api/__tests__/review-terminal-conflict.test.js +0 -98
  483. package/dist/daemon/human/deliver-action.d.ts +0 -3
  484. package/dist/daemon/human/deliver-action.js +0 -9
  485. package/dist/daemon/node-outcome/deliver-outcome.d.ts +0 -3
  486. package/dist/daemon/node-outcome/deliver-outcome.js +0 -9
  487. package/dist/daemon/reconcilers/human-delivery-lane.d.ts +0 -10
  488. package/dist/daemon/reconcilers/human-delivery-lane.js +0 -41
  489. package/dist/daemon/reconcilers/node-outcome-delivery-lane.d.ts +0 -10
  490. package/dist/daemon/reconcilers/node-outcome-delivery-lane.js +0 -41
  491. package/dist/daemon/startup-block-marker.d.ts +0 -25
  492. package/dist/daemon/startup-block-marker.js +0 -99
  493. /package/dist/{clients/attach/__tests__/page-block.test.d.ts → api/dto/mail.js} +0 -0
  494. /package/dist/{commands/sys/__tests__/migrate.test.d.ts → api/dto/recovery.js} +0 -0
  495. /package/dist/{core/__tests__/human-cancel-guard.test.d.ts → commands/__tests__/integration/migrate.test.d.ts} +0 -0
@@ -1,188 +1,71 @@
1
1
  import { existsSync } from 'node:fs';
2
- import { basename } from 'node:path';
3
- import { getNode, subscribersOf, subscribe } from '../canvas/index.js';
4
- import { withCanvasWrite } from '../canvas/db.js';
5
- import { bindTicketReplyRoute } from '../human/convention.js';
6
- import { ticketDir } from '../human/root.js';
7
- import { submitReview } from '../human/tickets.js';
8
- import { NodeIdConflictError, spawnNode } from '../runtime/nodes.js';
9
- import { loadProfileManifest } from '../profiles/manifest.js';
10
- import { transition } from '../runtime/lifecycle.js';
2
+ import { getNode } from '../canvas/index.js';
3
+ import { openRequest, cancelBindingRequest, getRequest } from '../human/requests.js';
4
+ import { NodeIdConflictError } from '../runtime/nodes.js';
11
5
  import { reviveNode } from '../runtime/revive.js';
12
6
  import { awaitCompanionBind, spawnReviewCompanion } from './companion.js';
13
7
  import { signalReviewActivity } from './signal.js';
14
- import { bindBridgeNode, getReview, openReviewRow } from './store.js';
15
8
  import { COMPANION_BIND_DEADLINE_MS, ReviewOperationError } from './types.js';
16
- function unknownReview(reviewId) {
17
- return new ReviewOperationError('unknown_review', 'review was not found', { received: reviewId });
9
+ function requireBinding(reviewId) {
10
+ const request = getRequest(reviewId);
11
+ if (request === null || request.kind !== 'review')
12
+ throw new ReviewOperationError('unknown_review', 'review was not found', { received: reviewId });
13
+ return request;
18
14
  }
19
- function originMissing(originNodeId) {
20
- return new ReviewOperationError('review_origin_missing', 'review origin was not found', {
21
- origin_node_id: originNodeId,
22
- reason: 'origin_missing',
23
- });
24
- }
25
- function companionUnbound(reviewId, waitedMs) {
26
- return new ReviewOperationError('review_companion_unbound', 'review companion did not bind in time', {
27
- review_id: reviewId,
28
- waited_ms: waitedMs,
29
- });
30
- }
31
- function bridgeUnsubscribed(review, bridgeNodeId) {
32
- return new ReviewOperationError('review_bridge_unsubscribed', 'review bridge is not subscribed to its origin', {
33
- review_id: review.review_id,
34
- bridge_node_id: bridgeNodeId,
35
- origin_node_id: review.origin_node_id,
36
- });
37
- }
38
- /** Cancel only a binding whose immutable branch has disappeared. No later pass may recapture it. */
39
- function cancelLostBinding(review) {
40
- const canceled = withCanvasWrite((db) => db.prepare(`
41
- UPDATE reviews
42
- SET state = 'canceled', canceled_at = ?, cancel_reason = 'branch_lost', cancel_actor = NULL
43
- WHERE review_id = ? AND state = 'binding'
44
- `).run(new Date().toISOString(), review.review_id).changes > 0);
45
- if (canceled)
46
- signalReviewActivity();
47
- }
48
- function requireReview(reviewId) {
49
- const review = getReview(reviewId);
50
- if (review === null)
51
- throw unknownReview(reviewId);
52
- return review;
53
- }
54
- function requireOrigin(review) {
55
- const origin = getNode(review.origin_node_id);
56
- if (origin === null)
57
- throw originMissing(review.origin_node_id);
58
- return origin;
59
- }
60
- async function spawnCompanion(review) {
61
- if (getNode(review.companion_node_id) !== null)
62
- return;
63
- const origin = requireOrigin(review);
15
+ function specification(request) {
64
16
  try {
65
- await spawnReviewCompanion({
66
- nodeId: review.companion_node_id,
67
- reviewId: review.review_id,
68
- originNodeId: review.origin_node_id,
69
- branchFile: review.branch_file,
70
- targetFile: review.file,
71
- modelSpec: review.model_spec,
72
- cwd: origin.cwd,
73
- profileId: origin.profile_id ?? null,
74
- });
17
+ const value = JSON.parse(request.specification_json);
18
+ if (typeof value !== 'object' || value === null)
19
+ throw new Error('not an object');
20
+ return value;
75
21
  }
76
22
  catch (error) {
77
- if (!(error instanceof NodeIdConflictError))
78
- throw error;
23
+ throw new Error(`corrupt review specification: ${request.request_id}`, { cause: error });
79
24
  }
80
25
  }
81
- function cancelInvisibleBridge(nodeId) {
82
- // A bridge which lost bindBridgeNode() was never exposed, so canceling it
83
- // cannot produce a final report or notify the origin.
84
- const node = getNode(nodeId);
85
- if (node !== null && node.status !== 'done' && node.status !== 'canceled')
86
- transition(nodeId, 'cancel', { reason: 'retired' });
87
- }
88
- /** Assert the only route a bridge has back to its origin before ticket exposure. */
89
- function ensureBridgeSubscription(review, bridgeNodeId) {
90
- const hasActiveOrigin = () => subscribersOf(bridgeNodeId).some((subscriber) => subscriber.node_id === review.origin_node_id && subscriber.active);
91
- if (!hasActiveOrigin())
92
- subscribe(review.origin_node_id, bridgeNodeId, true);
93
- if (!hasActiveOrigin())
94
- throw bridgeUnsubscribed(review, bridgeNodeId);
95
- }
96
- /** R2: create/bind the ticket bridge and prove its active origin subscription. */
97
- async function realizeBridge(review) {
98
- if (review.origin_kind !== 'ticket')
99
- return review;
100
- let current = review;
101
- if (current.bridge_node_id === null) {
102
- const origin = requireOrigin(current);
103
- const bridge = await spawnNode({
104
- kind: 'human',
105
- lifecycle: 'terminal',
106
- parent: current.origin_node_id,
107
- creator: current.origin_node_id,
108
- cwd: origin.cwd,
109
- profile_id: origin.profile_id ?? null,
110
- name: 'human-review',
111
- });
112
- bindTicketReplyRoute(ticketDir(bridge.node_id), bridge.node_id);
113
- if (!bindBridgeNode(current.review_id, bridge.node_id)) {
114
- cancelInvisibleBridge(bridge.node_id);
115
- current = requireReview(current.review_id);
26
+ /** Finish a committed binding without bridge creation or directory descriptor publication. */
27
+ export async function realizeReview(reviewId) {
28
+ let request = requireBinding(reviewId);
29
+ if (request.state !== 'binding')
30
+ return request;
31
+ const spec = specification(request);
32
+ const branchFile = spec['branch_file'];
33
+ if (typeof branchFile !== 'string' || !existsSync(branchFile)) {
34
+ if (cancelBindingRequest(request.request_id, new Date().toISOString(), 'branch_lost'))
35
+ signalReviewActivity();
36
+ throw new ReviewOperationError('branch_lost', 'review branch was lost before realization', { review_id: request.request_id });
37
+ }
38
+ if (request.file === null || request.requester_node_id === null || request.companion_node_id === null) {
39
+ throw new Error(`binding review has incomplete identity: ${request.request_id}`);
40
+ }
41
+ const origin = getNode(request.requester_node_id);
42
+ if (origin === null)
43
+ throw new ReviewOperationError('review_origin_missing', 'review origin was not found', { origin_node_id: request.requester_node_id });
44
+ if (getNode(request.companion_node_id) === null) {
45
+ const modelSpec = spec['model_spec'];
46
+ if (typeof modelSpec !== 'string')
47
+ throw new Error(`binding review has no model spec: ${request.request_id}`);
48
+ try {
49
+ await spawnReviewCompanion({
50
+ nodeId: request.companion_node_id, reviewId: request.request_id, originNodeId: request.requester_node_id,
51
+ branchFile, targetFile: request.file, modelSpec, cwd: origin.cwd, profileId: origin.profile_id ?? null,
52
+ });
116
53
  }
117
- else {
118
- current = requireReview(current.review_id);
54
+ catch (error) {
55
+ if (!(error instanceof NodeIdConflictError))
56
+ throw error;
119
57
  }
120
58
  }
121
- if (current.bridge_node_id === null)
122
- throw bridgeUnsubscribed(current, '');
123
- ensureBridgeSubscription(current, current.bridge_node_id);
124
- return current;
125
- }
126
- function publishTicket(review) {
127
- if (review.bridge_node_id === null)
128
- throw bridgeUnsubscribed(review, '');
129
- if (review.subtitle === null)
130
- throw new Error(`ticket review has no subtitle: ${review.review_id}`);
131
- const origin = requireOrigin(review);
132
- const profileName = origin.profile_id == null
133
- ? undefined
134
- : loadProfileManifest(origin.profile_id).manifest.name;
135
- submitReview({
136
- dir: ticketDir(review.bridge_node_id),
137
- review: {
138
- file: review.file,
139
- ...(review.output_path !== null ? { output: review.output_path } : {}),
140
- title: basename(review.file),
141
- subtitle: review.subtitle,
142
- source: {
143
- nodeId: review.origin_node_id,
144
- ...(profileName === undefined ? {} : { profileName }),
145
- },
146
- blockedSince: review.created,
147
- },
148
- });
149
- }
150
- /**
151
- * Finish a committed binding without ever recapturing its origin. Each step is
152
- * safe to repeat after a crash; review.json is the final visibility switch.
153
- */
154
- export async function realizeReview(reviewId) {
155
- let review = requireReview(reviewId);
156
- if (review.state !== 'binding')
157
- return review;
158
- if (!existsSync(review.branch_file)) {
159
- cancelLostBinding(review);
160
- throw new ReviewOperationError('branch_lost', 'review branch was lost before realization', { review_id: review.review_id });
161
- }
162
- // R1: creation consumes only the persisted coordinates and preallocated id.
163
- await spawnCompanion(review);
164
- // R2: ticket bridge birth and route assertion precede all public exposure.
165
- review = await realizeBridge(requireReview(reviewId));
166
- if (review.state !== 'binding')
167
- return review;
168
- // R3: only realization owns this initial launch/retry.
169
- const companion = getNode(review.companion_node_id);
59
+ const companion = getNode(request.companion_node_id);
170
60
  if (companion === null)
171
- throw companionUnbound(review.review_id, 0);
172
- // Realization is bounded by the bind deadline below, which only a live broker
173
- // can meet: refuse at the cap rather than freeze into a certain timeout.
61
+ throw new ReviewOperationError('review_companion_unbound', 'review companion was not created', { review_id: request.request_id });
174
62
  if (companion.pi_session_id === null)
175
63
  await reviveNode(companion.node_id, { resume: false, capacity: 'refuse' });
176
- // R4: session_start is the durable bind boundary.
177
- if (!await awaitCompanionBind(review.companion_node_id, COMPANION_BIND_DEADLINE_MS)) {
178
- throw companionUnbound(review.review_id, COMPANION_BIND_DEADLINE_MS);
64
+ if (!await awaitCompanionBind(request.companion_node_id, COMPANION_BIND_DEADLINE_MS)) {
65
+ throw new ReviewOperationError('review_companion_unbound', 'review companion did not bind in time', { review_id: request.request_id, waited_ms: COMPANION_BIND_DEADLINE_MS });
179
66
  }
180
- // R5: SQLite visibility commits before the ticket projection. A missing
181
- // projection is deliberately under-exposed and retried by the review lane.
182
- if (openReviewRow(review.review_id, new Date().toISOString())) {
67
+ if (openRequest(request.request_id, new Date().toISOString()))
183
68
  signalReviewActivity();
184
- if (review.origin_kind === 'ticket')
185
- publishTicket(review);
186
- }
187
- return requireReview(reviewId);
69
+ request = requireBinding(reviewId);
70
+ return request;
188
71
  }
@@ -56,7 +56,7 @@ function appendReanchorEvent(db, args) {
56
56
  /** Atomically replace every live review coordinate with ranges expressed against the current source. */
57
57
  export function applyRangeBatch(args) {
58
58
  const result = withCanvasWrite((db) => {
59
- const review = db.prepare('SELECT file, anchor_base_sha256 FROM reviews WHERE review_id = ?').get(args.review_id);
59
+ const review = db.prepare("SELECT file, anchor_base_sha256 FROM human_requests WHERE request_id = ? AND kind = 'review' AND state = 'open'").get(args.review_id);
60
60
  if (review === undefined) {
61
61
  throw new ReviewOperationError('unknown_review', 'review was not found', { received: args.review_id });
62
62
  }
@@ -1,4 +1,5 @@
1
- import { type NewReviewRow, type ReviewOriginKind, type ReviewRecord } from './types.js';
1
+ import { type HumanRequestRecord } from '../human/requests.js';
2
+ import { type NewReviewRow, type ReviewOriginKind } from './types.js';
2
3
  export interface StageReviewArgs {
3
4
  origin_kind: ReviewOriginKind;
4
5
  origin_node_id: string;
@@ -9,7 +10,7 @@ export interface StageReviewArgs {
9
10
  }
10
11
  /** A persisted winner needs realization, while a new stage has unreferenced filesystem state to commit or discard. */
11
12
  export type StagedReview = {
12
- existing: ReviewRecord;
13
+ existing: HumanRequestRecord;
13
14
  row?: never;
14
15
  review_dir?: never;
15
16
  } | {
@@ -6,7 +6,7 @@ import { ensureReviewDir, reviewBranchPath, reviewDir } from '../canvas/paths.js
6
6
  import { checkReviewableFile } from '../human/visible-paths.js';
7
7
  import { newNodeId } from '../runtime/nodes.js';
8
8
  import { captureOrigin, materializeReviewBranch } from './companion.js';
9
- import { getReviewByIdempotencyKey } from './store.js';
9
+ import { getRequestByIdempotencyKey } from '../human/requests.js';
10
10
  import { ReviewOperationError, } from './types.js';
11
11
  function targetError(file, reason) {
12
12
  return new ReviewOperationError('review_target_unreviewable', 'review target cannot be staged', {
@@ -114,7 +114,7 @@ export function discardStaging(reviewId) {
114
114
  * canvas node or review row. The caller alone commits or discards this stage.
115
115
  */
116
116
  export async function stageReview(args) {
117
- const existing = getReviewByIdempotencyKey(args.idempotency_key);
117
+ const existing = getRequestByIdempotencyKey(args.idempotency_key);
118
118
  if (existing !== null)
119
119
  return { existing };
120
120
  if (getNode(args.origin_node_id) === null) {
@@ -140,7 +140,6 @@ export async function stageReview(args) {
140
140
  idempotency_key: args.idempotency_key,
141
141
  origin_kind: args.origin_kind,
142
142
  origin_node_id: args.origin_node_id,
143
- bridge_node_id: null,
144
143
  companion_node_id: companionNodeId,
145
144
  review_dir: reviewDir(reviewId),
146
145
  file,
@@ -1,6 +1,5 @@
1
1
  import type { DatabaseSync } from 'node:sqlite';
2
- import { type NewReviewRow, type ReviewRecord, type ReviewState } from './types.js';
3
- /** Fields written when an open review is conditionally approved. */
2
+ import { type ReviewRecord, type ReviewState } from './types.js';
4
3
  export interface ApproveReviewArgs {
5
4
  review_id: string;
6
5
  approved_at: string;
@@ -10,38 +9,21 @@ export interface ApproveReviewArgs {
10
9
  comments_unresolved: number;
11
10
  result_json: string;
12
11
  }
13
- export declare function mintReviewId(): string;
14
- /** Atomically claim the idempotency key, without publishing any non-SQLite state. */
15
- export declare function commitBindingReview(row: NewReviewRow): {
16
- review_id: string;
17
- won: boolean;
18
- };
19
12
  export declare function getReview(reviewId: string): ReviewRecord | null;
20
- /** The review `reviewId` names, for a caller that cannot proceed without one.
21
- * A `binding` row is still mid-creation and reads as absent. */
22
13
  export declare function requireVisibleReview(reviewId: string): ReviewRecord;
23
14
  export declare function getReviewByIdempotencyKey(key: string): ReviewRecord | null;
24
15
  export declare function getReviewByCompanion(nodeId: string): ReviewRecord | null;
25
- export declare function getReviewByBridge(nodeId: string): ReviewRecord | null;
26
16
  export declare function listReviews(filter: {
27
17
  state?: ReviewState;
28
18
  origin_node_id?: string;
29
19
  file?: string;
30
20
  }): ReviewRecord[];
31
- /** Review ids whose immutable origin is one of `nodeIds`, including binding
32
- * rows that normal user-facing review listings intentionally hide. */
33
21
  export declare function reviewIdsByOriginNodes(nodeIds: readonly string[]): string[];
34
- /** Delete review audit state for the selected origins in dependency order.
35
- * Filesystem cleanup is deliberately left to the daemon lifecycle owner. */
36
22
  export declare function deleteReviewsByOriginNodes(nodeIds: readonly string[]): string[];
37
23
  export declare function listBindingReviews(): ReviewRecord[];
38
- /** Open reviews the human has already submitted, still waiting on their companion. */
39
24
  export declare function listSubmitRequestedReviews(): ReviewRecord[];
40
25
  export declare function listUnprojectedTerminalReviews(): ReviewRecord[];
41
- export declare function bindBridgeNode(reviewId: string, bridgeNodeId: string): boolean;
42
26
  export declare function openReviewRow(reviewId: string, openedAt: string): boolean;
43
- /** Record the human's submit intent on a review that stays open meanwhile.
44
- * False when the review already left `open` or already carries an intent. */
45
27
  export declare function requestReviewSubmit(reviewId: string, at: string): boolean;
46
28
  export declare function approveReviewLocked(db: DatabaseSync, args: ApproveReviewArgs): boolean;
47
29
  export declare function cancelReviewRow(reviewId: string, args: {
@@ -51,8 +33,8 @@ export declare function cancelReviewRow(reviewId: string, args: {
51
33
  }): boolean;
52
34
  export declare function markProjected(reviewId: string, at: string): void;
53
35
  export declare function markProjectionError(reviewId: string, error: string): void;
54
- export declare function markDelivered(reviewId: string, receipt: string | null, at: string): void;
55
- export declare function markDeliveryError(reviewId: string, error: string): void;
36
+ export declare function markDelivered(_reviewId: string, _receipt: string | null, _at: string): void;
37
+ export declare function markDeliveryError(_reviewId: string, _error: string): void;
56
38
  export declare function readAnchorBase(reviewId: string): {
57
39
  bytes: Buffer;
58
40
  sha256: string;