@openrig/cli 0.5.11 → 0.5.13

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 (929) hide show
  1. package/LICENSE +190 -0
  2. package/daemon/assets/plugins/openrig-core/skills/agent-operated-software/SKILL.md +7 -4
  3. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +34 -23
  4. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  5. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +141 -24
  6. package/daemon/context-packs/skills/agent-operated-software/SKILL.md +7 -4
  7. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  8. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  9. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  10. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  11. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  12. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  13. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  14. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  15. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  16. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  17. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  19. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +34 -23
  32. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  59. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  60. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  61. package/daemon/dist/adapters/codex-resume.d.ts +1 -0
  62. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  63. package/daemon/dist/adapters/codex-resume.js +2 -9
  64. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  65. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +7 -3
  66. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  67. package/daemon/dist/adapters/codex-runtime-adapter.js +26 -30
  68. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  69. package/daemon/dist/adapters/tmux.d.ts +15 -1
  70. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  71. package/daemon/dist/adapters/tmux.js +64 -1
  72. package/daemon/dist/adapters/tmux.js.map +1 -1
  73. package/daemon/dist/attention-surface.d.ts +36 -0
  74. package/daemon/dist/attention-surface.d.ts.map +1 -0
  75. package/daemon/dist/attention-surface.js +2 -0
  76. package/daemon/dist/attention-surface.js.map +1 -0
  77. package/daemon/dist/build-info.js +3 -3
  78. package/daemon/dist/db/all-migrations.d.ts +1 -1
  79. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  80. package/daemon/dist/db/all-migrations.js +3 -1
  81. package/daemon/dist/db/all-migrations.js.map +1 -1
  82. package/daemon/dist/db/migrations/080_scoped_operating_posture.d.ts +4 -0
  83. package/daemon/dist/db/migrations/080_scoped_operating_posture.d.ts.map +1 -0
  84. package/daemon/dist/db/migrations/080_scoped_operating_posture.js +21 -0
  85. package/daemon/dist/db/migrations/080_scoped_operating_posture.js.map +1 -0
  86. package/daemon/dist/domain/active-occupant.d.ts +2 -2
  87. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  88. package/daemon/dist/domain/active-occupant.js +5 -5
  89. package/daemon/dist/domain/active-occupant.js.map +1 -1
  90. package/daemon/dist/domain/crash-cart-discovery.d.ts +3 -1
  91. package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
  92. package/daemon/dist/domain/crash-cart-discovery.js +15 -4
  93. package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
  94. package/daemon/dist/domain/execution-view.d.ts +1 -0
  95. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  96. package/daemon/dist/domain/execution-view.js +64 -16
  97. package/daemon/dist/domain/execution-view.js.map +1 -1
  98. package/daemon/dist/domain/files/file-read.d.ts +17 -0
  99. package/daemon/dist/domain/files/file-read.d.ts.map +1 -0
  100. package/daemon/dist/domain/files/file-read.js +24 -0
  101. package/daemon/dist/domain/files/file-read.js.map +1 -0
  102. package/daemon/dist/domain/fresh-occupant-relation.d.ts +8 -0
  103. package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -0
  104. package/daemon/dist/domain/fresh-occupant-relation.js +31 -0
  105. package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -0
  106. package/daemon/dist/domain/gateway/connections-projection.d.ts +31 -2
  107. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  108. package/daemon/dist/domain/gateway/connections-projection.js +36 -14
  109. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  110. package/daemon/dist/domain/health-context.d.ts +3 -0
  111. package/daemon/dist/domain/health-context.d.ts.map +1 -1
  112. package/daemon/dist/domain/health-context.js +78 -6
  113. package/daemon/dist/domain/health-context.js.map +1 -1
  114. package/daemon/dist/domain/health-detectors.d.ts +2 -1
  115. package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
  116. package/daemon/dist/domain/health-detectors.js +8 -2
  117. package/daemon/dist/domain/health-detectors.js.map +1 -1
  118. package/daemon/dist/domain/health-diagnosis.d.ts +51 -1
  119. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  120. package/daemon/dist/domain/health-diagnosis.js +60 -9
  121. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  122. package/daemon/dist/domain/health-passive-ceremony.d.ts +7 -1
  123. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  124. package/daemon/dist/domain/health-passive-ceremony.js +59 -26
  125. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  126. package/daemon/dist/domain/health-projection.d.ts +2 -0
  127. package/daemon/dist/domain/health-projection.d.ts.map +1 -1
  128. package/daemon/dist/domain/health-projection.js.map +1 -1
  129. package/daemon/dist/domain/kernel-boot.d.ts +2 -0
  130. package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  131. package/daemon/dist/domain/kernel-boot.js +1 -1
  132. package/daemon/dist/domain/kernel-boot.js.map +1 -1
  133. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  134. package/daemon/dist/domain/native-resume-probe.js +35 -23
  135. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  136. package/daemon/dist/domain/parked-query.d.ts +1 -0
  137. package/daemon/dist/domain/parked-query.d.ts.map +1 -1
  138. package/daemon/dist/domain/parked-query.js +2 -1
  139. package/daemon/dist/domain/parked-query.js.map +1 -1
  140. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +2 -0
  141. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  142. package/daemon/dist/domain/policies/parked-owner-consumer.js +2 -2
  143. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  144. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  145. package/daemon/dist/domain/policies/workflow-keepalive.js +12 -5
  146. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  147. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +2 -0
  148. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  149. package/daemon/dist/domain/project-lifecycle-compiler.js +2 -0
  150. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  151. package/daemon/dist/domain/proof/judgments.d.ts +138 -0
  152. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -0
  153. package/daemon/dist/domain/proof/judgments.js +361 -0
  154. package/daemon/dist/domain/proof/judgments.js.map +1 -0
  155. package/daemon/dist/domain/proof/source-watch.d.ts +17 -0
  156. package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -0
  157. package/daemon/dist/domain/proof/source-watch.js +60 -0
  158. package/daemon/dist/domain/proof/source-watch.js.map +1 -0
  159. package/daemon/dist/domain/queue-owner.d.ts +12 -0
  160. package/daemon/dist/domain/queue-owner.d.ts.map +1 -0
  161. package/daemon/dist/domain/queue-owner.js +28 -0
  162. package/daemon/dist/domain/queue-owner.js.map +1 -0
  163. package/daemon/dist/domain/queue-pickup.d.ts +3 -0
  164. package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  165. package/daemon/dist/domain/queue-pickup.js +14 -15
  166. package/daemon/dist/domain/queue-pickup.js.map +1 -1
  167. package/daemon/dist/domain/queue-recovery.d.ts +10 -0
  168. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -0
  169. package/daemon/dist/domain/queue-recovery.js +27 -0
  170. package/daemon/dist/domain/queue-recovery.js.map +1 -0
  171. package/daemon/dist/domain/queue-repository.d.ts +13 -6
  172. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  173. package/daemon/dist/domain/queue-repository.js +177 -63
  174. package/daemon/dist/domain/queue-repository.js.map +1 -1
  175. package/daemon/dist/domain/queue-stuck-sweep.d.ts +2 -11
  176. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  177. package/daemon/dist/domain/queue-stuck-sweep.js +51 -52
  178. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  179. package/daemon/dist/domain/queue-wait-backoff.d.ts +29 -2
  180. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
  181. package/daemon/dist/domain/queue-wait-backoff.js +73 -14
  182. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
  183. package/daemon/dist/domain/queue-waiting.d.ts +61 -0
  184. package/daemon/dist/domain/queue-waiting.d.ts.map +1 -0
  185. package/daemon/dist/domain/queue-waiting.js +108 -0
  186. package/daemon/dist/domain/queue-waiting.js.map +1 -0
  187. package/daemon/dist/domain/queue-wake-ladder.d.ts +9 -0
  188. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  189. package/daemon/dist/domain/queue-wake-ladder.js +122 -62
  190. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  191. package/daemon/dist/domain/queue-wake-repository.d.ts +2 -0
  192. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  193. package/daemon/dist/domain/queue-wake-repository.js +1 -0
  194. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  195. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  196. package/daemon/dist/domain/rehydrate-eligibility.js +5 -3
  197. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  198. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  199. package/daemon/dist/domain/restore-orchestrator.js +1 -0
  200. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  201. package/daemon/dist/domain/restore-plan-preview.d.ts +7 -4
  202. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  203. package/daemon/dist/domain/restore-plan-preview.js +12 -6
  204. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  205. package/daemon/dist/domain/review/compose.d.ts +9 -1
  206. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  207. package/daemon/dist/domain/review/compose.js +26 -7
  208. package/daemon/dist/domain/review/compose.js.map +1 -1
  209. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  210. package/daemon/dist/domain/review/gather.js +3 -0
  211. package/daemon/dist/domain/review/gather.js.map +1 -1
  212. package/daemon/dist/domain/review/types.d.ts +2 -0
  213. package/daemon/dist/domain/review/types.d.ts.map +1 -1
  214. package/daemon/dist/domain/rig-mode/operating-posture.d.ts +49 -0
  215. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -0
  216. package/daemon/dist/domain/rig-mode/operating-posture.js +255 -0
  217. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -0
  218. package/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -1
  219. package/daemon/dist/domain/rig-mode/rig-mode-defaults.js +20 -0
  220. package/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -1
  221. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts +2 -2
  222. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -1
  223. package/daemon/dist/domain/rig-mode/rig-mode-store.js +19 -3
  224. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -1
  225. package/daemon/dist/domain/rig-mode/rig-mode-types.d.ts +12 -7
  226. package/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -1
  227. package/daemon/dist/domain/rig-mode/rig-mode-types.js +14 -3
  228. package/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -1
  229. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  230. package/daemon/dist/domain/runtime-adapter.js +1 -0
  231. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  232. package/daemon/dist/domain/scope/scope-view-projection.d.ts +8 -0
  233. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  234. package/daemon/dist/domain/scope/scope-view-projection.js +6 -25
  235. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  236. package/daemon/dist/domain/seat-lifecycle-service.d.ts +21 -0
  237. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  238. package/daemon/dist/domain/seat-lifecycle-service.js +47 -1
  239. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  240. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +3 -0
  241. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  242. package/daemon/dist/domain/slices/slice-detail-projector.js +14 -4
  243. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  244. package/daemon/dist/domain/slices/slice-indexer.d.ts +6 -0
  245. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  246. package/daemon/dist/domain/slices/slice-indexer.js +36 -1
  247. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  248. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  249. package/daemon/dist/domain/snapshot-capture.js +4 -2
  250. package/daemon/dist/domain/snapshot-capture.js.map +1 -1
  251. package/daemon/dist/domain/startup-orchestrator.d.ts +11 -0
  252. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  253. package/daemon/dist/domain/startup-orchestrator.js +43 -10
  254. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  255. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +2 -0
  256. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  257. package/daemon/dist/domain/terminal/herdr-adapter.js +1 -1
  258. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  259. package/daemon/dist/domain/terminal/terminal-service.d.ts +28 -2
  260. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  261. package/daemon/dist/domain/terminal/terminal-service.js +50 -13
  262. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  263. package/daemon/dist/domain/types.d.ts +13 -0
  264. package/daemon/dist/domain/types.d.ts.map +1 -1
  265. package/daemon/dist/domain/types.js.map +1 -1
  266. package/daemon/dist/domain/user-settings/settings-browser.d.ts +33 -0
  267. package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -0
  268. package/daemon/dist/domain/user-settings/settings-browser.js +261 -0
  269. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -0
  270. package/daemon/dist/domain/view-event-bridge.d.ts.map +1 -1
  271. package/daemon/dist/domain/view-event-bridge.js +2 -0
  272. package/daemon/dist/domain/view-event-bridge.js.map +1 -1
  273. package/daemon/dist/domain/view-projector.d.ts +2 -0
  274. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  275. package/daemon/dist/domain/view-projector.js +5 -1
  276. package/daemon/dist/domain/view-projector.js.map +1 -1
  277. package/daemon/dist/domain/watchdog-policy-engine.d.ts +4 -0
  278. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  279. package/daemon/dist/domain/watchdog-policy-engine.js +8 -1
  280. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  281. package/daemon/dist/domain/watchdog-scheduler.d.ts +3 -0
  282. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  283. package/daemon/dist/domain/watchdog-scheduler.js +3 -0
  284. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  285. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  286. package/daemon/dist/domain/workflow-exception-escalation.js +13 -32
  287. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  288. package/daemon/dist/domain/workflow-exception-readiness.d.ts +39 -0
  289. package/daemon/dist/domain/workflow-exception-readiness.d.ts.map +1 -0
  290. package/daemon/dist/domain/workflow-exception-readiness.js +77 -0
  291. package/daemon/dist/domain/workflow-exception-readiness.js.map +1 -0
  292. package/daemon/dist/domain/workflow-exception-router.d.ts +3 -0
  293. package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -1
  294. package/daemon/dist/domain/workflow-exception-router.js +6 -1
  295. package/daemon/dist/domain/workflow-exception-router.js.map +1 -1
  296. package/daemon/dist/domain/workflow-exception.d.ts +6 -0
  297. package/daemon/dist/domain/workflow-exception.d.ts.map +1 -1
  298. package/daemon/dist/domain/workflow-exception.js +10 -3
  299. package/daemon/dist/domain/workflow-exception.js.map +1 -1
  300. package/daemon/dist/domain/workflow-guidance.d.ts +53 -0
  301. package/daemon/dist/domain/workflow-guidance.d.ts.map +1 -0
  302. package/daemon/dist/domain/workflow-guidance.js +212 -0
  303. package/daemon/dist/domain/workflow-guidance.js.map +1 -0
  304. package/daemon/dist/domain/workflow-instance-store.d.ts +2 -0
  305. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  306. package/daemon/dist/domain/workflow-instance-store.js +7 -0
  307. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  308. package/daemon/dist/domain/workflow-planning-context.d.ts +3 -0
  309. package/daemon/dist/domain/workflow-planning-context.d.ts.map +1 -0
  310. package/daemon/dist/domain/workflow-planning-context.js +36 -0
  311. package/daemon/dist/domain/workflow-planning-context.js.map +1 -0
  312. package/daemon/dist/domain/workflow-projector.d.ts +11 -2
  313. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  314. package/daemon/dist/domain/workflow-projector.js +83 -73
  315. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  316. package/daemon/dist/domain/workflow-reconciliation.d.ts +55 -0
  317. package/daemon/dist/domain/workflow-reconciliation.d.ts.map +1 -0
  318. package/daemon/dist/domain/workflow-reconciliation.js +228 -0
  319. package/daemon/dist/domain/workflow-reconciliation.js.map +1 -0
  320. package/daemon/dist/domain/workflow-runtime.d.ts +79 -2
  321. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  322. package/daemon/dist/domain/workflow-runtime.js +97 -25
  323. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  324. package/daemon/dist/domain/workspace/project-catalog.d.ts +18 -0
  325. package/daemon/dist/domain/workspace/project-catalog.d.ts.map +1 -0
  326. package/daemon/dist/domain/workspace/project-catalog.js +66 -0
  327. package/daemon/dist/domain/workspace/project-catalog.js.map +1 -0
  328. package/daemon/dist/domain/workspace/project-read.d.ts +29 -0
  329. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -0
  330. package/daemon/dist/domain/workspace/project-read.js +107 -0
  331. package/daemon/dist/domain/workspace/project-read.js.map +1 -0
  332. package/daemon/dist/health-projection-surface.d.ts +1 -0
  333. package/daemon/dist/health-projection-surface.d.ts.map +1 -1
  334. package/daemon/dist/index.d.ts.map +1 -1
  335. package/daemon/dist/index.js +1 -0
  336. package/daemon/dist/index.js.map +1 -1
  337. package/daemon/dist/local-reading-surface.d.ts +3 -0
  338. package/daemon/dist/local-reading-surface.d.ts.map +1 -0
  339. package/daemon/dist/local-reading-surface.js +3 -0
  340. package/daemon/dist/local-reading-surface.js.map +1 -0
  341. package/daemon/dist/project-catalog-surface.d.ts +2 -0
  342. package/daemon/dist/project-catalog-surface.d.ts.map +1 -0
  343. package/daemon/dist/project-catalog-surface.js +2 -0
  344. package/daemon/dist/project-catalog-surface.js.map +1 -0
  345. package/daemon/dist/routes/activity.js +1 -1
  346. package/daemon/dist/routes/activity.js.map +1 -1
  347. package/daemon/dist/routes/attention.d.ts +3 -0
  348. package/daemon/dist/routes/attention.d.ts.map +1 -0
  349. package/daemon/dist/routes/attention.js +155 -0
  350. package/daemon/dist/routes/attention.js.map +1 -0
  351. package/daemon/dist/routes/config.d.ts +3 -1
  352. package/daemon/dist/routes/config.d.ts.map +1 -1
  353. package/daemon/dist/routes/config.js +11 -1
  354. package/daemon/dist/routes/config.js.map +1 -1
  355. package/daemon/dist/routes/files.d.ts +1 -1
  356. package/daemon/dist/routes/files.d.ts.map +1 -1
  357. package/daemon/dist/routes/files.js +4 -24
  358. package/daemon/dist/routes/files.js.map +1 -1
  359. package/daemon/dist/routes/missions.d.ts.map +1 -1
  360. package/daemon/dist/routes/missions.js +5 -2
  361. package/daemon/dist/routes/missions.js.map +1 -1
  362. package/daemon/dist/routes/proof.d.ts +3 -0
  363. package/daemon/dist/routes/proof.d.ts.map +1 -0
  364. package/daemon/dist/routes/proof.js +65 -0
  365. package/daemon/dist/routes/proof.js.map +1 -0
  366. package/daemon/dist/routes/review.d.ts.map +1 -1
  367. package/daemon/dist/routes/review.js +3 -2
  368. package/daemon/dist/routes/review.js.map +1 -1
  369. package/daemon/dist/routes/rig-mode.d.ts.map +1 -1
  370. package/daemon/dist/routes/rig-mode.js +67 -14
  371. package/daemon/dist/routes/rig-mode.js.map +1 -1
  372. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  373. package/daemon/dist/routes/rigs.js +4 -3
  374. package/daemon/dist/routes/rigs.js.map +1 -1
  375. package/daemon/dist/routes/scopes.d.ts.map +1 -1
  376. package/daemon/dist/routes/scopes.js +62 -6
  377. package/daemon/dist/routes/scopes.js.map +1 -1
  378. package/daemon/dist/routes/seat.d.ts +4 -0
  379. package/daemon/dist/routes/seat.d.ts.map +1 -1
  380. package/daemon/dist/routes/seat.js +1 -1
  381. package/daemon/dist/routes/seat.js.map +1 -1
  382. package/daemon/dist/routes/slices.d.ts +2 -2
  383. package/daemon/dist/routes/slices.d.ts.map +1 -1
  384. package/daemon/dist/routes/slices.js +26 -3
  385. package/daemon/dist/routes/slices.js.map +1 -1
  386. package/daemon/dist/routes/spec-library.d.ts.map +1 -1
  387. package/daemon/dist/routes/spec-library.js +11 -2
  388. package/daemon/dist/routes/spec-library.js.map +1 -1
  389. package/daemon/dist/routes/startup.d.ts +7 -0
  390. package/daemon/dist/routes/startup.d.ts.map +1 -0
  391. package/daemon/dist/routes/startup.js +221 -0
  392. package/daemon/dist/routes/startup.js.map +1 -0
  393. package/daemon/dist/routes/terminal.d.ts.map +1 -1
  394. package/daemon/dist/routes/terminal.js +14 -4
  395. package/daemon/dist/routes/terminal.js.map +1 -1
  396. package/daemon/dist/routes/up.d.ts.map +1 -1
  397. package/daemon/dist/routes/up.js +2 -1
  398. package/daemon/dist/routes/up.js.map +1 -1
  399. package/daemon/dist/routes/views.d.ts.map +1 -1
  400. package/daemon/dist/routes/views.js +11 -1
  401. package/daemon/dist/routes/views.js.map +1 -1
  402. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  403. package/daemon/dist/routes/workflow.js +43 -2
  404. package/daemon/dist/routes/workflow.js.map +1 -1
  405. package/daemon/dist/server.d.ts +2 -0
  406. package/daemon/dist/server.d.ts.map +1 -1
  407. package/daemon/dist/server.js +8 -0
  408. package/daemon/dist/server.js.map +1 -1
  409. package/daemon/dist/startup.d.ts.map +1 -1
  410. package/daemon/dist/startup.js +23 -6
  411. package/daemon/dist/startup.js.map +1 -1
  412. package/daemon/docs/reference/agent-spec.md +1 -1
  413. package/daemon/docs/reference/getting-started.md +40 -17
  414. package/daemon/docs/reference/health-diagnosis.md +83 -6
  415. package/daemon/docs/reference/legacy-topology-migration.md +1 -2
  416. package/daemon/docs/reference/mission-install.md +5 -11
  417. package/daemon/docs/reference/planning-dial.md +12 -14
  418. package/daemon/docs/reference/project-release-profile.yaml +4 -0
  419. package/daemon/docs/reference/project-workspace.md +23 -0
  420. package/daemon/docs/reference/refocus-channel.md +1 -4
  421. package/daemon/docs/reference/release-boundary.md +33 -30
  422. package/daemon/docs/reference/rig-spec.md +6 -6
  423. package/daemon/docs/reference/scoped-operating-posture.md +95 -0
  424. package/daemon/docs/reference/sdlc-conventions.md +16 -5
  425. package/daemon/docs/reference/wave-sdlc.md +5 -16
  426. package/daemon/docs/reference/worktree-builds.md +3 -3
  427. package/daemon/policies/examples/my-cautious-dev.policy.md +1 -1
  428. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -3
  429. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +11 -12
  430. package/dist/bin-wrapper.d.ts +1 -0
  431. package/dist/bin-wrapper.d.ts.map +1 -1
  432. package/dist/bin-wrapper.js +13 -0
  433. package/dist/bin-wrapper.js.map +1 -1
  434. package/dist/build-info.js +3 -3
  435. package/dist/commands/context.d.ts.map +1 -1
  436. package/dist/commands/context.js +66 -124
  437. package/dist/commands/context.js.map +1 -1
  438. package/dist/commands/crash-cart.d.ts.map +1 -1
  439. package/dist/commands/crash-cart.js +20 -6
  440. package/dist/commands/crash-cart.js.map +1 -1
  441. package/dist/commands/health.d.ts.map +1 -1
  442. package/dist/commands/health.js +17 -2
  443. package/dist/commands/health.js.map +1 -1
  444. package/dist/commands/proof.d.ts +2 -2
  445. package/dist/commands/proof.d.ts.map +1 -1
  446. package/dist/commands/proof.js +84 -4
  447. package/dist/commands/proof.js.map +1 -1
  448. package/dist/commands/queue.js +1 -1
  449. package/dist/commands/queue.js.map +1 -1
  450. package/dist/commands/rig-mode.d.ts +2 -2
  451. package/dist/commands/rig-mode.d.ts.map +1 -1
  452. package/dist/commands/rig-mode.js +36 -11
  453. package/dist/commands/rig-mode.js.map +1 -1
  454. package/dist/commands/workflow-render.d.ts +50 -0
  455. package/dist/commands/workflow-render.d.ts.map +1 -1
  456. package/dist/commands/workflow-render.js +41 -0
  457. package/dist/commands/workflow-render.js.map +1 -1
  458. package/dist/commands/workflow.d.ts.map +1 -1
  459. package/dist/commands/workflow.js +106 -5
  460. package/dist/commands/workflow.js.map +1 -1
  461. package/dist/front-door.d.ts.map +1 -1
  462. package/dist/front-door.js +4 -1
  463. package/dist/front-door.js.map +1 -1
  464. package/dist/lib/context-git.d.ts +141 -0
  465. package/dist/lib/context-git.d.ts.map +1 -0
  466. package/dist/lib/context-git.js +256 -0
  467. package/dist/lib/context-git.js.map +1 -0
  468. package/dist/lib/context-install.d.ts +5 -0
  469. package/dist/lib/context-install.d.ts.map +1 -0
  470. package/dist/lib/context-install.js +125 -0
  471. package/dist/lib/context-install.js.map +1 -0
  472. package/dist/lib/work-install.d.ts.map +1 -1
  473. package/dist/lib/work-install.js +11 -36
  474. package/dist/lib/work-install.js.map +1 -1
  475. package/dist/local-reading.d.ts +31 -0
  476. package/dist/local-reading.d.ts.map +1 -0
  477. package/dist/local-reading.js +62 -0
  478. package/dist/local-reading.js.map +1 -0
  479. package/node_modules/@openrig/daemon/dist/adapters/codex-resume.d.ts +1 -0
  480. package/node_modules/@openrig/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  481. package/node_modules/@openrig/daemon/dist/adapters/codex-resume.js +2 -9
  482. package/node_modules/@openrig/daemon/dist/adapters/codex-resume.js.map +1 -1
  483. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts +7 -3
  484. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  485. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js +26 -30
  486. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  487. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +15 -1
  488. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  489. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +64 -1
  490. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  491. package/node_modules/@openrig/daemon/dist/attention-surface.d.ts +36 -0
  492. package/node_modules/@openrig/daemon/dist/attention-surface.d.ts.map +1 -0
  493. package/node_modules/@openrig/daemon/dist/attention-surface.js +2 -0
  494. package/node_modules/@openrig/daemon/dist/attention-surface.js.map +1 -0
  495. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  496. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
  497. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
  498. package/node_modules/@openrig/daemon/dist/db/all-migrations.js +3 -1
  499. package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
  500. package/node_modules/@openrig/daemon/dist/db/migrations/080_scoped_operating_posture.d.ts +4 -0
  501. package/node_modules/@openrig/daemon/dist/db/migrations/080_scoped_operating_posture.d.ts.map +1 -0
  502. package/node_modules/@openrig/daemon/dist/db/migrations/080_scoped_operating_posture.js +21 -0
  503. package/node_modules/@openrig/daemon/dist/db/migrations/080_scoped_operating_posture.js.map +1 -0
  504. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +2 -2
  505. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  506. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +5 -5
  507. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -1
  508. package/node_modules/@openrig/daemon/dist/domain/crash-cart-discovery.d.ts +3 -1
  509. package/node_modules/@openrig/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
  510. package/node_modules/@openrig/daemon/dist/domain/crash-cart-discovery.js +15 -4
  511. package/node_modules/@openrig/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
  512. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts +1 -0
  513. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
  514. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +64 -16
  515. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
  516. package/node_modules/@openrig/daemon/dist/domain/files/file-read.d.ts +17 -0
  517. package/node_modules/@openrig/daemon/dist/domain/files/file-read.d.ts.map +1 -0
  518. package/node_modules/@openrig/daemon/dist/domain/files/file-read.js +24 -0
  519. package/node_modules/@openrig/daemon/dist/domain/files/file-read.js.map +1 -0
  520. package/node_modules/@openrig/daemon/dist/domain/fresh-occupant-relation.d.ts +8 -0
  521. package/node_modules/@openrig/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -0
  522. package/node_modules/@openrig/daemon/dist/domain/fresh-occupant-relation.js +31 -0
  523. package/node_modules/@openrig/daemon/dist/domain/fresh-occupant-relation.js.map +1 -0
  524. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts +31 -2
  525. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  526. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js +36 -14
  527. package/node_modules/@openrig/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  528. package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts +3 -0
  529. package/node_modules/@openrig/daemon/dist/domain/health-context.d.ts.map +1 -1
  530. package/node_modules/@openrig/daemon/dist/domain/health-context.js +78 -6
  531. package/node_modules/@openrig/daemon/dist/domain/health-context.js.map +1 -1
  532. package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts +2 -1
  533. package/node_modules/@openrig/daemon/dist/domain/health-detectors.d.ts.map +1 -1
  534. package/node_modules/@openrig/daemon/dist/domain/health-detectors.js +8 -2
  535. package/node_modules/@openrig/daemon/dist/domain/health-detectors.js.map +1 -1
  536. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts +51 -1
  537. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  538. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js +60 -9
  539. package/node_modules/@openrig/daemon/dist/domain/health-diagnosis.js.map +1 -1
  540. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts +7 -1
  541. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  542. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js +59 -26
  543. package/node_modules/@openrig/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  544. package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts +2 -0
  545. package/node_modules/@openrig/daemon/dist/domain/health-projection.d.ts.map +1 -1
  546. package/node_modules/@openrig/daemon/dist/domain/health-projection.js.map +1 -1
  547. package/node_modules/@openrig/daemon/dist/domain/kernel-boot.d.ts +2 -0
  548. package/node_modules/@openrig/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  549. package/node_modules/@openrig/daemon/dist/domain/kernel-boot.js +1 -1
  550. package/node_modules/@openrig/daemon/dist/domain/kernel-boot.js.map +1 -1
  551. package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  552. package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js +35 -23
  553. package/node_modules/@openrig/daemon/dist/domain/native-resume-probe.js.map +1 -1
  554. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +1 -0
  555. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +1 -1
  556. package/node_modules/@openrig/daemon/dist/domain/parked-query.js +2 -1
  557. package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +1 -1
  558. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts +2 -0
  559. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  560. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +2 -2
  561. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  562. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  563. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js +12 -5
  564. package/node_modules/@openrig/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  565. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts +2 -0
  566. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  567. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js +2 -0
  568. package/node_modules/@openrig/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  569. package/node_modules/@openrig/daemon/dist/domain/proof/judgments.d.ts +138 -0
  570. package/node_modules/@openrig/daemon/dist/domain/proof/judgments.d.ts.map +1 -0
  571. package/node_modules/@openrig/daemon/dist/domain/proof/judgments.js +361 -0
  572. package/node_modules/@openrig/daemon/dist/domain/proof/judgments.js.map +1 -0
  573. package/node_modules/@openrig/daemon/dist/domain/proof/source-watch.d.ts +17 -0
  574. package/node_modules/@openrig/daemon/dist/domain/proof/source-watch.d.ts.map +1 -0
  575. package/node_modules/@openrig/daemon/dist/domain/proof/source-watch.js +60 -0
  576. package/node_modules/@openrig/daemon/dist/domain/proof/source-watch.js.map +1 -0
  577. package/node_modules/@openrig/daemon/dist/domain/queue-owner.d.ts +12 -0
  578. package/node_modules/@openrig/daemon/dist/domain/queue-owner.d.ts.map +1 -0
  579. package/node_modules/@openrig/daemon/dist/domain/queue-owner.js +28 -0
  580. package/node_modules/@openrig/daemon/dist/domain/queue-owner.js.map +1 -0
  581. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts +3 -0
  582. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  583. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +14 -15
  584. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +1 -1
  585. package/node_modules/@openrig/daemon/dist/domain/queue-recovery.d.ts +10 -0
  586. package/node_modules/@openrig/daemon/dist/domain/queue-recovery.d.ts.map +1 -0
  587. package/node_modules/@openrig/daemon/dist/domain/queue-recovery.js +27 -0
  588. package/node_modules/@openrig/daemon/dist/domain/queue-recovery.js.map +1 -0
  589. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +13 -6
  590. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  591. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +177 -63
  592. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  593. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +2 -11
  594. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  595. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +51 -52
  596. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  597. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts +29 -2
  598. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
  599. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js +73 -14
  600. package/node_modules/@openrig/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
  601. package/node_modules/@openrig/daemon/dist/domain/queue-waiting.d.ts +61 -0
  602. package/node_modules/@openrig/daemon/dist/domain/queue-waiting.d.ts.map +1 -0
  603. package/node_modules/@openrig/daemon/dist/domain/queue-waiting.js +108 -0
  604. package/node_modules/@openrig/daemon/dist/domain/queue-waiting.js.map +1 -0
  605. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +9 -0
  606. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  607. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +122 -62
  608. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  609. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +2 -0
  610. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  611. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +1 -0
  612. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  613. package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  614. package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.js +5 -3
  615. package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  616. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  617. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +1 -0
  618. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  619. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts +7 -4
  620. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  621. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +12 -6
  622. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  623. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +9 -1
  624. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  625. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +26 -7
  626. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  627. package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +1 -1
  628. package/node_modules/@openrig/daemon/dist/domain/review/gather.js +3 -0
  629. package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +1 -1
  630. package/node_modules/@openrig/daemon/dist/domain/review/types.d.ts +2 -0
  631. package/node_modules/@openrig/daemon/dist/domain/review/types.d.ts.map +1 -1
  632. package/node_modules/@openrig/daemon/dist/domain/rig-mode/operating-posture.d.ts +49 -0
  633. package/node_modules/@openrig/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -0
  634. package/node_modules/@openrig/daemon/dist/domain/rig-mode/operating-posture.js +255 -0
  635. package/node_modules/@openrig/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -0
  636. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -1
  637. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.js +20 -0
  638. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -1
  639. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts +2 -2
  640. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -1
  641. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.js +19 -3
  642. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -1
  643. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.d.ts +12 -7
  644. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -1
  645. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js +14 -3
  646. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -1
  647. package/node_modules/@openrig/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  648. package/node_modules/@openrig/daemon/dist/domain/runtime-adapter.js +1 -0
  649. package/node_modules/@openrig/daemon/dist/domain/runtime-adapter.js.map +1 -1
  650. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts +8 -0
  651. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  652. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +6 -25
  653. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  654. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +21 -0
  655. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  656. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +47 -1
  657. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  658. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts +3 -0
  659. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  660. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +14 -4
  661. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  662. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.d.ts +6 -0
  663. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  664. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js +36 -1
  665. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  666. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  667. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +4 -2
  668. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
  669. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts +11 -0
  670. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  671. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js +43 -10
  672. package/node_modules/@openrig/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  673. package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-adapter.d.ts +2 -0
  674. package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  675. package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-adapter.js +1 -1
  676. package/node_modules/@openrig/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  677. package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-service.d.ts +28 -2
  678. package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  679. package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-service.js +50 -13
  680. package/node_modules/@openrig/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  681. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +13 -0
  682. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  683. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  684. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-browser.d.ts +33 -0
  685. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -0
  686. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-browser.js +261 -0
  687. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-browser.js.map +1 -0
  688. package/node_modules/@openrig/daemon/dist/domain/view-event-bridge.d.ts.map +1 -1
  689. package/node_modules/@openrig/daemon/dist/domain/view-event-bridge.js +2 -0
  690. package/node_modules/@openrig/daemon/dist/domain/view-event-bridge.js.map +1 -1
  691. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts +2 -0
  692. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts.map +1 -1
  693. package/node_modules/@openrig/daemon/dist/domain/view-projector.js +5 -1
  694. package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +1 -1
  695. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +4 -0
  696. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  697. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +8 -1
  698. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  699. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts +3 -0
  700. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  701. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js +3 -0
  702. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  703. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  704. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js +13 -32
  705. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  706. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-readiness.d.ts +39 -0
  707. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-readiness.d.ts.map +1 -0
  708. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-readiness.js +77 -0
  709. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-readiness.js.map +1 -0
  710. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts +3 -0
  711. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -1
  712. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js +6 -1
  713. package/node_modules/@openrig/daemon/dist/domain/workflow-exception-router.js.map +1 -1
  714. package/node_modules/@openrig/daemon/dist/domain/workflow-exception.d.ts +6 -0
  715. package/node_modules/@openrig/daemon/dist/domain/workflow-exception.d.ts.map +1 -1
  716. package/node_modules/@openrig/daemon/dist/domain/workflow-exception.js +10 -3
  717. package/node_modules/@openrig/daemon/dist/domain/workflow-exception.js.map +1 -1
  718. package/node_modules/@openrig/daemon/dist/domain/workflow-guidance.d.ts +53 -0
  719. package/node_modules/@openrig/daemon/dist/domain/workflow-guidance.d.ts.map +1 -0
  720. package/node_modules/@openrig/daemon/dist/domain/workflow-guidance.js +212 -0
  721. package/node_modules/@openrig/daemon/dist/domain/workflow-guidance.js.map +1 -0
  722. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts +2 -0
  723. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  724. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js +7 -0
  725. package/node_modules/@openrig/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  726. package/node_modules/@openrig/daemon/dist/domain/workflow-planning-context.d.ts +3 -0
  727. package/node_modules/@openrig/daemon/dist/domain/workflow-planning-context.d.ts.map +1 -0
  728. package/node_modules/@openrig/daemon/dist/domain/workflow-planning-context.js +36 -0
  729. package/node_modules/@openrig/daemon/dist/domain/workflow-planning-context.js.map +1 -0
  730. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts +11 -2
  731. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  732. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js +83 -73
  733. package/node_modules/@openrig/daemon/dist/domain/workflow-projector.js.map +1 -1
  734. package/node_modules/@openrig/daemon/dist/domain/workflow-reconciliation.d.ts +55 -0
  735. package/node_modules/@openrig/daemon/dist/domain/workflow-reconciliation.d.ts.map +1 -0
  736. package/node_modules/@openrig/daemon/dist/domain/workflow-reconciliation.js +228 -0
  737. package/node_modules/@openrig/daemon/dist/domain/workflow-reconciliation.js.map +1 -0
  738. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts +79 -2
  739. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  740. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js +97 -25
  741. package/node_modules/@openrig/daemon/dist/domain/workflow-runtime.js.map +1 -1
  742. package/node_modules/@openrig/daemon/dist/domain/workspace/project-catalog.d.ts +18 -0
  743. package/node_modules/@openrig/daemon/dist/domain/workspace/project-catalog.d.ts.map +1 -0
  744. package/node_modules/@openrig/daemon/dist/domain/workspace/project-catalog.js +66 -0
  745. package/node_modules/@openrig/daemon/dist/domain/workspace/project-catalog.js.map +1 -0
  746. package/node_modules/@openrig/daemon/dist/domain/workspace/project-read.d.ts +29 -0
  747. package/node_modules/@openrig/daemon/dist/domain/workspace/project-read.d.ts.map +1 -0
  748. package/node_modules/@openrig/daemon/dist/domain/workspace/project-read.js +107 -0
  749. package/node_modules/@openrig/daemon/dist/domain/workspace/project-read.js.map +1 -0
  750. package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts +1 -0
  751. package/node_modules/@openrig/daemon/dist/health-projection-surface.d.ts.map +1 -1
  752. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  753. package/node_modules/@openrig/daemon/dist/index.js +1 -0
  754. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  755. package/node_modules/@openrig/daemon/dist/local-reading-surface.d.ts +3 -0
  756. package/node_modules/@openrig/daemon/dist/local-reading-surface.d.ts.map +1 -0
  757. package/node_modules/@openrig/daemon/dist/local-reading-surface.js +3 -0
  758. package/node_modules/@openrig/daemon/dist/local-reading-surface.js.map +1 -0
  759. package/node_modules/@openrig/daemon/dist/project-catalog-surface.d.ts +2 -0
  760. package/node_modules/@openrig/daemon/dist/project-catalog-surface.d.ts.map +1 -0
  761. package/node_modules/@openrig/daemon/dist/project-catalog-surface.js +2 -0
  762. package/node_modules/@openrig/daemon/dist/project-catalog-surface.js.map +1 -0
  763. package/node_modules/@openrig/daemon/dist/routes/activity.js +1 -1
  764. package/node_modules/@openrig/daemon/dist/routes/activity.js.map +1 -1
  765. package/node_modules/@openrig/daemon/dist/routes/attention.d.ts +3 -0
  766. package/node_modules/@openrig/daemon/dist/routes/attention.d.ts.map +1 -0
  767. package/node_modules/@openrig/daemon/dist/routes/attention.js +155 -0
  768. package/node_modules/@openrig/daemon/dist/routes/attention.js.map +1 -0
  769. package/node_modules/@openrig/daemon/dist/routes/config.d.ts +3 -1
  770. package/node_modules/@openrig/daemon/dist/routes/config.d.ts.map +1 -1
  771. package/node_modules/@openrig/daemon/dist/routes/config.js +11 -1
  772. package/node_modules/@openrig/daemon/dist/routes/config.js.map +1 -1
  773. package/node_modules/@openrig/daemon/dist/routes/files.d.ts +1 -1
  774. package/node_modules/@openrig/daemon/dist/routes/files.d.ts.map +1 -1
  775. package/node_modules/@openrig/daemon/dist/routes/files.js +4 -24
  776. package/node_modules/@openrig/daemon/dist/routes/files.js.map +1 -1
  777. package/node_modules/@openrig/daemon/dist/routes/missions.d.ts.map +1 -1
  778. package/node_modules/@openrig/daemon/dist/routes/missions.js +5 -2
  779. package/node_modules/@openrig/daemon/dist/routes/missions.js.map +1 -1
  780. package/node_modules/@openrig/daemon/dist/routes/proof.d.ts +3 -0
  781. package/node_modules/@openrig/daemon/dist/routes/proof.d.ts.map +1 -0
  782. package/node_modules/@openrig/daemon/dist/routes/proof.js +65 -0
  783. package/node_modules/@openrig/daemon/dist/routes/proof.js.map +1 -0
  784. package/node_modules/@openrig/daemon/dist/routes/review.d.ts.map +1 -1
  785. package/node_modules/@openrig/daemon/dist/routes/review.js +3 -2
  786. package/node_modules/@openrig/daemon/dist/routes/review.js.map +1 -1
  787. package/node_modules/@openrig/daemon/dist/routes/rig-mode.d.ts.map +1 -1
  788. package/node_modules/@openrig/daemon/dist/routes/rig-mode.js +67 -14
  789. package/node_modules/@openrig/daemon/dist/routes/rig-mode.js.map +1 -1
  790. package/node_modules/@openrig/daemon/dist/routes/rigs.d.ts.map +1 -1
  791. package/node_modules/@openrig/daemon/dist/routes/rigs.js +4 -3
  792. package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
  793. package/node_modules/@openrig/daemon/dist/routes/scopes.d.ts.map +1 -1
  794. package/node_modules/@openrig/daemon/dist/routes/scopes.js +62 -6
  795. package/node_modules/@openrig/daemon/dist/routes/scopes.js.map +1 -1
  796. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts +4 -0
  797. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  798. package/node_modules/@openrig/daemon/dist/routes/seat.js +1 -1
  799. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  800. package/node_modules/@openrig/daemon/dist/routes/slices.d.ts +2 -2
  801. package/node_modules/@openrig/daemon/dist/routes/slices.d.ts.map +1 -1
  802. package/node_modules/@openrig/daemon/dist/routes/slices.js +26 -3
  803. package/node_modules/@openrig/daemon/dist/routes/slices.js.map +1 -1
  804. package/node_modules/@openrig/daemon/dist/routes/spec-library.d.ts.map +1 -1
  805. package/node_modules/@openrig/daemon/dist/routes/spec-library.js +11 -2
  806. package/node_modules/@openrig/daemon/dist/routes/spec-library.js.map +1 -1
  807. package/node_modules/@openrig/daemon/dist/routes/startup.d.ts +7 -0
  808. package/node_modules/@openrig/daemon/dist/routes/startup.d.ts.map +1 -0
  809. package/node_modules/@openrig/daemon/dist/routes/startup.js +221 -0
  810. package/node_modules/@openrig/daemon/dist/routes/startup.js.map +1 -0
  811. package/node_modules/@openrig/daemon/dist/routes/terminal.d.ts.map +1 -1
  812. package/node_modules/@openrig/daemon/dist/routes/terminal.js +14 -4
  813. package/node_modules/@openrig/daemon/dist/routes/terminal.js.map +1 -1
  814. package/node_modules/@openrig/daemon/dist/routes/up.d.ts.map +1 -1
  815. package/node_modules/@openrig/daemon/dist/routes/up.js +2 -1
  816. package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
  817. package/node_modules/@openrig/daemon/dist/routes/views.d.ts.map +1 -1
  818. package/node_modules/@openrig/daemon/dist/routes/views.js +11 -1
  819. package/node_modules/@openrig/daemon/dist/routes/views.js.map +1 -1
  820. package/node_modules/@openrig/daemon/dist/routes/workflow.d.ts.map +1 -1
  821. package/node_modules/@openrig/daemon/dist/routes/workflow.js +43 -2
  822. package/node_modules/@openrig/daemon/dist/routes/workflow.js.map +1 -1
  823. package/node_modules/@openrig/daemon/dist/server.d.ts +2 -0
  824. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  825. package/node_modules/@openrig/daemon/dist/server.js +8 -0
  826. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  827. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  828. package/node_modules/@openrig/daemon/dist/startup.js +23 -6
  829. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  830. package/node_modules/@openrig/daemon/package.json +13 -1
  831. package/package.json +3 -2
  832. package/tui/dist/attention/attention-model.d.ts +4 -0
  833. package/tui/dist/attention/attention-model.d.ts.map +1 -0
  834. package/tui/dist/attention/attention-model.js +44 -0
  835. package/tui/dist/attention/attention-model.js.map +1 -0
  836. package/tui/dist/commands/help.d.ts +4 -0
  837. package/tui/dist/commands/help.d.ts.map +1 -0
  838. package/tui/dist/commands/help.js +42 -0
  839. package/tui/dist/commands/help.js.map +1 -0
  840. package/tui/dist/commands/registry.d.ts.map +1 -1
  841. package/tui/dist/commands/registry.js +18 -1
  842. package/tui/dist/commands/registry.js.map +1 -1
  843. package/tui/dist/config/config-model.d.ts +69 -0
  844. package/tui/dist/config/config-model.d.ts.map +1 -0
  845. package/tui/dist/config/config-model.js +239 -0
  846. package/tui/dist/config/config-model.js.map +1 -0
  847. package/tui/dist/crash-cart/from-emit.d.ts +5 -5
  848. package/tui/dist/crash-cart/from-emit.d.ts.map +1 -1
  849. package/tui/dist/crash-cart/from-emit.js +15 -9
  850. package/tui/dist/crash-cart/from-emit.js.map +1 -1
  851. package/tui/dist/crash-cart/keys.d.ts +1 -1
  852. package/tui/dist/crash-cart/keys.d.ts.map +1 -1
  853. package/tui/dist/crash-cart/keys.js +2 -0
  854. package/tui/dist/crash-cart/keys.js.map +1 -1
  855. package/tui/dist/crash-cart/start-daemon.d.ts +4 -0
  856. package/tui/dist/crash-cart/start-daemon.d.ts.map +1 -0
  857. package/tui/dist/crash-cart/start-daemon.js +12 -0
  858. package/tui/dist/crash-cart/start-daemon.js.map +1 -0
  859. package/tui/dist/daemon-client.d.ts +35 -6
  860. package/tui/dist/daemon-client.d.ts.map +1 -1
  861. package/tui/dist/daemon-client.js +96 -12
  862. package/tui/dist/daemon-client.js.map +1 -1
  863. package/tui/dist/detail.d.ts.map +1 -1
  864. package/tui/dist/detail.js +20 -7
  865. package/tui/dist/detail.js.map +1 -1
  866. package/tui/dist/execution/execution-model.d.ts +14 -0
  867. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  868. package/tui/dist/execution/execution-model.js +48 -21
  869. package/tui/dist/execution/execution-model.js.map +1 -1
  870. package/tui/dist/execution/workflow-model.d.ts.map +1 -1
  871. package/tui/dist/execution/workflow-model.js +13 -1
  872. package/tui/dist/execution/workflow-model.js.map +1 -1
  873. package/tui/dist/health/health-model.d.ts.map +1 -1
  874. package/tui/dist/health/health-model.js +26 -34
  875. package/tui/dist/health/health-model.js.map +1 -1
  876. package/tui/dist/hydrate.d.ts +1 -1
  877. package/tui/dist/hydrate.d.ts.map +1 -1
  878. package/tui/dist/hydrate.js +105 -14
  879. package/tui/dist/hydrate.js.map +1 -1
  880. package/tui/dist/input.d.ts.map +1 -1
  881. package/tui/dist/input.js +20 -3
  882. package/tui/dist/input.js.map +1 -1
  883. package/tui/dist/live.d.ts +2 -0
  884. package/tui/dist/live.d.ts.map +1 -1
  885. package/tui/dist/live.js +17 -1
  886. package/tui/dist/live.js.map +1 -1
  887. package/tui/dist/local-reading.d.ts +54 -0
  888. package/tui/dist/local-reading.d.ts.map +1 -0
  889. package/tui/dist/local-reading.js +122 -0
  890. package/tui/dist/local-reading.js.map +1 -0
  891. package/tui/dist/main.js +216 -31
  892. package/tui/dist/main.js.map +1 -1
  893. package/tui/dist/motion.d.ts +2 -0
  894. package/tui/dist/motion.d.ts.map +1 -1
  895. package/tui/dist/motion.js +4 -0
  896. package/tui/dist/motion.js.map +1 -1
  897. package/tui/dist/reading.d.ts +36 -0
  898. package/tui/dist/reading.d.ts.map +1 -0
  899. package/tui/dist/reading.js +89 -0
  900. package/tui/dist/reading.js.map +1 -0
  901. package/tui/dist/render.d.ts +5 -0
  902. package/tui/dist/render.d.ts.map +1 -1
  903. package/tui/dist/render.js +184 -171
  904. package/tui/dist/render.js.map +1 -1
  905. package/tui/dist/scopes/scopes-model.d.ts +45 -0
  906. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  907. package/tui/dist/scopes/scopes-model.js +68 -6
  908. package/tui/dist/scopes/scopes-model.js.map +1 -1
  909. package/tui/dist/sections.d.ts.map +1 -1
  910. package/tui/dist/sections.js +5 -3
  911. package/tui/dist/sections.js.map +1 -1
  912. package/tui/dist/startup.d.ts +88 -0
  913. package/tui/dist/startup.d.ts.map +1 -0
  914. package/tui/dist/startup.js +319 -0
  915. package/tui/dist/startup.js.map +1 -0
  916. package/tui/dist/state.d.ts.map +1 -1
  917. package/tui/dist/state.js +129 -16
  918. package/tui/dist/state.js.map +1 -1
  919. package/tui/dist/stylize.d.ts.map +1 -1
  920. package/tui/dist/stylize.js +10 -1
  921. package/tui/dist/stylize.js.map +1 -1
  922. package/tui/dist/terminals/terminal-model.d.ts +55 -0
  923. package/tui/dist/terminals/terminal-model.d.ts.map +1 -0
  924. package/tui/dist/terminals/terminal-model.js +95 -0
  925. package/tui/dist/terminals/terminal-model.js.map +1 -0
  926. package/tui/dist/types.d.ts +88 -1
  927. package/tui/dist/types.d.ts.map +1 -1
  928. package/ui/dist/assets/{index-wyX378xb.js → index-BVW54ItO.js} +165 -165
  929. package/ui/dist/index.html +1 -1
@@ -1,9 +1,11 @@
1
+ import { readWakeLadderBackstop } from "./queue-wake-ladder.js";
1
2
  import { createHash } from "node:crypto";
2
3
  import { loadHumanRegistry, resolveRegisteredHumanAddress } from "./gateway/human-registry.js";
3
4
  import { resolveExternal } from "./gateway/external-admission.js";
4
5
  import { QueueTransitionLog } from "./queue-transition-log.js";
5
6
  import { WAKE_INTENT_PREFIX } from "./outbox-handler.js";
6
7
  import { derivePickup } from "./queue-pickup.js";
8
+ import { lastMeaningfulTransition, readWaitingView } from "./queue-waiting.js";
7
9
  import { wrapPaneEnvelope } from "../lib/pane-envelope.js";
8
10
  import { getSelfHostId } from "./hosts/fanout-contract.js";
9
11
  import { parseSessionName } from "./session-name.js";
@@ -12,7 +14,7 @@ import { computeClosureRequiredAt, validateClosure, } from "./hot-potato-enforce
12
14
  import { isHumanSeatSession, validateHumanPark, validateHumanRoute } from "./human-route-enforcer.js";
13
15
  import { QueueWakeRepository, USAGE_LIMIT_BLOCKER_TAG, } from "./queue-wake-repository.js";
14
16
  import { WatchdogJobsRepository } from "./watchdog-jobs-repository.js";
15
- import { armQueueWait, backOffQueueWait, refreshQueueWaits } from "./queue-wait-backoff.js";
17
+ import { armQueueWait, backOffQueueWait, refreshQueueWaits, evaluateQueueWait, retargetQueueWait } from "./queue-wait-backoff.js";
16
18
  export const QUEUE_STATES = [
17
19
  "pending",
18
20
  "in-progress",
@@ -362,8 +364,8 @@ export class QueueRepository {
362
364
  }
363
365
  /** Startup wires this after queue/watchdog composition. Tests may also call
364
366
  * it after reconstruction; it only reconciles queue-owned repeating timers. */
365
- reconcileWaitReminders(changedQitem) {
366
- refreshQueueWaits(this.db, this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), changedQitem);
367
+ reconcileWaitReminders(changedQitem, proofChanged = false) {
368
+ refreshQueueWaits(this.db, this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), changedQitem, proofChanged);
367
369
  }
368
370
  startWaitReminders() {
369
371
  this.reconcileWaitReminders();
@@ -371,6 +373,9 @@ export class QueueRepository {
371
373
  if (event.type.startsWith("queue.") && "qitemId" in event && typeof event.qitemId === "string") {
372
374
  this.reconcileWaitReminders(event.qitemId);
373
375
  }
376
+ else if (event.type === "proof.judged" || event.type === "proof.sources_changed") {
377
+ this.reconcileWaitReminders(undefined, true);
378
+ }
374
379
  });
375
380
  }
376
381
  /**
@@ -450,6 +455,8 @@ export class QueueRepository {
450
455
  toSession,
451
456
  identityProvenance,
452
457
  bareBody: `Queue handoff: ${successorQitemId} - check your queue.`,
458
+ tags: this.getById(successorQitemId)?.handedOffFrom
459
+ ? [`queue:return:${this.getByIdOrThrow(successorQitemId).handedOffFrom}`] : undefined,
453
460
  });
454
461
  }
455
462
  recordWakeIntent(input) {
@@ -479,7 +486,7 @@ export class QueueRepository {
479
486
  toSession: input.destinationSession,
480
487
  identityProvenance: input.identityProvenance,
481
488
  bareBody: `Blocker ${input.blockerQitemId} resolved; parked qitem ${input.qitemId} is pending. Resume the recorded continuation and update the row.`,
482
- tags: [AUTO_UNPARK_WAKE_TAG, `${AUTO_UNPARK_BLOCKER_TAG_PREFIX}${input.blockerQitemId}`],
489
+ tags: [AUTO_UNPARK_WAKE_TAG, `${AUTO_UNPARK_BLOCKER_TAG_PREFIX}${input.blockerQitemId}`, `queue:return:${input.blockerQitemId}`],
483
490
  });
484
491
  }
485
492
  deliverWakeIntentAfterCommit(outboxId) {
@@ -543,11 +550,55 @@ export class QueueRepository {
543
550
  // cannot both send. A losing claim — the row is no longer `pending` (already
544
551
  // resolved, in-flight under another drainer, or claimed) — simply skips: no
545
552
  // send, no tally. This makes the external effect once, not merely the state.
546
- if (!this.outbox.claimForDelivery(outboxId))
547
- return "skipped";
548
- const intent = this.outbox.getById(outboxId);
553
+ // Claim the exact return's arrival + dependent resumes atomically. Each
554
+ // original frozen intent and audit pointer survives; only transport coalesces.
555
+ let superseded = false;
556
+ const actionable = (entry) => {
557
+ const row = entry.auditPointer ? this.db.prepare("SELECT state FROM queue_items WHERE qitem_id = ?").get(entry.auditPointer) : undefined;
558
+ let current = row?.state === "pending";
559
+ const resumePrefix = `${WAKE_INTENT_PREFIX}blocker-`;
560
+ if (current && entry.outboxId.startsWith(resumePrefix)) {
561
+ const expected = Number(entry.outboxId.slice(resumePrefix.length));
562
+ const latest = this.db.prepare(`SELECT transition_id FROM (
563
+ SELECT transition_id, state, LAG(state) OVER (ORDER BY transition_id) AS previous_state
564
+ FROM queue_transitions WHERE qitem_id = ?)
565
+ WHERE state = 'pending' AND previous_state IS NOT 'pending' ORDER BY transition_id DESC LIMIT 1`)
566
+ .get(entry.auditPointer);
567
+ current = expected === latest?.transition_id;
568
+ }
569
+ if (!current) {
570
+ // Existing failed state means the requested old delivery was refused;
571
+ // the explicit tag distinguishes supersession from a transport attempt.
572
+ // Do not stamp last_nudge_result or delivered_at: neither happened.
573
+ const changed = this.db.prepare("UPDATE outbox_entries SET delivery_state = 'failed', tags = ? WHERE outbox_id = ? AND delivery_state = 'pending'")
574
+ .run(JSON.stringify([...(entry.tags ?? []), "queue:wake-superseded"]), entry.outboxId);
575
+ superseded ||= changed.changes > 0;
576
+ }
577
+ return current;
578
+ };
579
+ const group = this.db.transaction(() => {
580
+ const candidate = this.outbox.getById(outboxId);
581
+ if (!candidate || candidate.deliveryState !== "pending" || !actionable(candidate))
582
+ return [];
583
+ if (!this.outbox.claimForDelivery(outboxId))
584
+ return [];
585
+ const first = this.outbox.getById(outboxId);
586
+ const intents = [first];
587
+ const correlation = first.tags?.find(tag => tag.startsWith("queue:return:"));
588
+ if (correlation) {
589
+ const peers = this.db.prepare(`SELECT outbox_id FROM outbox_entries
590
+ WHERE delivery_state = 'pending' AND destination_session = ? AND substr(outbox_id, 1, ?) = ?
591
+ AND EXISTS (SELECT 1 FROM json_each(outbox_entries.tags) WHERE value = ?)
592
+ ORDER BY outbox_id`).all(first.destinationSession, WAKE_INTENT_PREFIX.length, WAKE_INTENT_PREFIX, correlation);
593
+ for (const peer of peers)
594
+ if (actionable(this.outbox.getById(peer.outbox_id)) && this.outbox.claimForDelivery(peer.outbox_id))
595
+ intents.push(this.outbox.getById(peer.outbox_id));
596
+ }
597
+ return intents;
598
+ })();
599
+ const intent = group[0];
549
600
  if (!intent)
550
- return "skipped"; // unreachable post-claim; defensive
601
+ return superseded ? "failed" : "skipped";
551
602
  // Only deliver a wake for a qitem that actually exists. A wake intent whose
552
603
  // target qitem is missing — a caller-recorded id under this prefix (the route
553
604
  // no longer refuses those), or a successor already swept — is finalized
@@ -558,46 +609,50 @@ export class QueueRepository {
558
609
  }
559
610
  const qitemId = intent.auditPointer ?? outboxId;
560
611
  // MF4: send the FROZEN envelope stored on the intent verbatim (no re-resolution).
561
- const outcome = await this.performWakeSend(qitemId, intent.destinationSession, intent.senderSession, undefined, intent.body);
612
+ const outcome = await this.performWakeSend(qitemId, intent.destinationSession, intent.senderSession, undefined, group.map(entry => entry.body).join("\n"));
562
613
  const finalState = outcome.classified === "verified" ? "delivered" : outcome.classified;
563
- const blockerRef = intent.tags?.includes(AUTO_UNPARK_WAKE_TAG)
564
- ? intent.tags
565
- .find((tag) => tag.startsWith(AUTO_UNPARK_BLOCKER_TAG_PREFIX))
566
- ?.slice(AUTO_UNPARK_BLOCKER_TAG_PREFIX.length)
567
- : undefined;
568
- const wakeEvent = this.db.transaction(() => {
569
- this.recordNudgeAttempt(qitemId, outcome.nudgeResult);
570
- this.outbox.finalizeDelivery(outboxId, finalState);
571
- if (!blockerRef)
572
- return null;
573
- const item = this.getByIdOrThrow(qitemId);
574
- const transition = this.transitionLog.append({
575
- qitemId,
576
- state: item.state,
577
- actorSession: "queue@system",
578
- transitionNote: `blocker ${blockerRef} wake attempted; delivery=${outcome.nudgeResult}`,
579
- });
580
- this.wakeRepo.record({
581
- transitionId: transition.transitionId,
582
- qitemId,
583
- phase: "fired",
584
- kind: "blocker",
585
- ref: blockerRef,
586
- deliveryStatus: outcome.nudgeResult,
587
- });
588
- return this.eventBus.persistWithinTransaction({
589
- type: "queue.updated",
590
- qitemId,
591
- fromState: item.state,
592
- toState: item.state,
593
- closureReason: null,
594
- closureTarget: null,
595
- actorSession: "queue@system",
596
- summary: item.summary ?? null,
597
- });
598
- })();
599
- if (wakeEvent)
600
- this.eventBus.notifySubscribers(wakeEvent);
614
+ for (const member of group) {
615
+ const intent = member;
616
+ const qitemId = intent.auditPointer;
617
+ const blockerRef = intent.tags?.includes(AUTO_UNPARK_WAKE_TAG)
618
+ ? intent.tags
619
+ .find((tag) => tag.startsWith(AUTO_UNPARK_BLOCKER_TAG_PREFIX))
620
+ ?.slice(AUTO_UNPARK_BLOCKER_TAG_PREFIX.length)
621
+ : undefined;
622
+ const wakeEvent = this.db.transaction(() => {
623
+ this.recordNudgeAttempt(qitemId, outcome.nudgeResult);
624
+ this.outbox.finalizeDelivery(intent.outboxId, finalState);
625
+ if (!blockerRef)
626
+ return null;
627
+ const item = this.getByIdOrThrow(qitemId);
628
+ const transition = this.transitionLog.append({
629
+ qitemId,
630
+ state: item.state,
631
+ actorSession: "queue@system",
632
+ transitionNote: `blocker ${blockerRef} wake attempted; delivery=${outcome.nudgeResult}`,
633
+ });
634
+ this.wakeRepo.record({
635
+ transitionId: transition.transitionId,
636
+ qitemId,
637
+ phase: "fired",
638
+ kind: "blocker",
639
+ ref: blockerRef,
640
+ deliveryStatus: outcome.nudgeResult,
641
+ });
642
+ return this.eventBus.persistWithinTransaction({
643
+ type: "queue.updated",
644
+ qitemId,
645
+ fromState: item.state,
646
+ toState: item.state,
647
+ closureReason: null,
648
+ closureTarget: null,
649
+ actorSession: "queue@system",
650
+ summary: item.summary ?? null,
651
+ });
652
+ })();
653
+ if (wakeEvent)
654
+ this.eventBus.notifySubscribers(wakeEvent);
655
+ }
601
656
  return finalState;
602
657
  }
603
658
  /**
@@ -1994,6 +2049,31 @@ export class QueueRepository {
1994
2049
  .prepare("SELECT qitem_id, destination_session FROM queue_items WHERE blocked_on = ? AND state = 'blocked'")
1995
2050
  .all(input.qitemId);
1996
2051
  for (const r of blockedRows) {
2052
+ const closed = this.getById(input.qitemId);
2053
+ const successors = input.terminalState === "handed-off" ? this.db.prepare("SELECT qitem_id FROM queue_items WHERE handed_off_from = ? AND destination_session = ?").all(input.qitemId, closed?.handedOffTo ?? "") : [];
2054
+ const successor = successors.length === 1 ? this.getById(successors[0].qitem_id) : null;
2055
+ if (successor && isBlockerLive(successor.state) && successor.destinationSession !== r.destination_session) {
2056
+ // Onward custody is a changed blocker. Returning to the waiting owner
2057
+ // below is the result arrival that actually resumes its continuation.
2058
+ const oldWake = this.wakeRepo.getStatus(r.qitem_id);
2059
+ this.db.prepare("UPDATE queue_items SET blocked_on = ?, ts_updated = ? WHERE qitem_id = ?")
2060
+ .run(successor.qitemId, input.ts, r.qitem_id);
2061
+ const rebound = this.transitionLog.append({ qitemId: r.qitem_id, state: "blocked", actorSession: input.actorSession,
2062
+ transitionNote: `blocker custody moved from ${input.qitemId} to ${successor.qitemId}`,
2063
+ identityProvenance: input.identityProvenance });
2064
+ const jobs = this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db);
2065
+ const retainedTimer = oldWake?.kind === "timer" && retargetQueueWait(this.db, jobs, oldWake.ref, successor.qitemId);
2066
+ if (!retainedTimer)
2067
+ this.retireParkGeneratedTimer(r.qitem_id, "blocker_custody_moved");
2068
+ this.wakeRepo.record({ transitionId: rebound.transitionId, qitemId: r.qitem_id, phase: "armed",
2069
+ kind: retainedTimer ? "timer" : "blocker", ref: retainedTimer ? oldWake.ref : successor.qitemId, deliveryStatus: null });
2070
+ const event = this.eventBus.persistWithinTransaction({ type: "queue.updated", qitemId: r.qitem_id,
2071
+ fromState: "blocked", toState: "blocked", closureReason: null, closureTarget: null,
2072
+ actorSession: input.actorSession, summary: this.getById(r.qitem_id)?.summary ?? null });
2073
+ this.eventBus.registerPersistedWithinActiveEnvelope(event);
2074
+ dependentEvents.push(event);
2075
+ continue;
2076
+ }
1997
2077
  this.db
1998
2078
  .prepare("UPDATE queue_items SET state = 'pending', blocked_on = NULL, ts_updated = ? WHERE qitem_id = ?")
1999
2079
  .run(input.ts, r.qitem_id);
@@ -2114,7 +2194,7 @@ export class QueueRepository {
2114
2194
  const events = this.db.transaction(() => {
2115
2195
  const firedEvents = targets.map(recordFired);
2116
2196
  if (usageLimitBlockers.length === 0) {
2117
- if (parkGeneratedTimer && !backOffQueueWait(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), jobId)) {
2197
+ if (parkGeneratedTimer && !backOffQueueWait(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), jobId, deliveryStatus)) {
2118
2198
  (this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db)).markTerminal(jobId, "park_timer_fired_once");
2119
2199
  }
2120
2200
  return firedEvents;
@@ -2197,7 +2277,7 @@ export class QueueRepository {
2197
2277
  .prepare(`SELECT ${columns} FROM queue_items ${where} ORDER BY ${orderBy} LIMIT ?`)
2198
2278
  .all(...params);
2199
2279
  const items = rows.map((r) => {
2200
- const item = this.rowToItem(r);
2280
+ const item = this.rowToItem(r, !opts?.compact);
2201
2281
  const ledger = this.deliveryOutcomeFor(item.qitemId);
2202
2282
  return {
2203
2283
  ...item,
@@ -2208,7 +2288,7 @@ export class QueueRepository {
2208
2288
  return opts?.compact
2209
2289
  ? items.map((item) => ({
2210
2290
  ...item,
2211
- fieldsElided: ["body", "summary", "evidenceRef"],
2291
+ fieldsElided: ["body", "summary", "evidenceRef", "waiting"],
2212
2292
  }))
2213
2293
  : items;
2214
2294
  }
@@ -2319,7 +2399,7 @@ export class QueueRepository {
2319
2399
  params.push(opts.limit);
2320
2400
  }
2321
2401
  const rows = this.db.prepare(sql).all(...params);
2322
- return rows.map((r) => this.rowToItem(r));
2402
+ return rows.map((r) => this.rowToItem(r, !opts?.compact));
2323
2403
  }
2324
2404
  /**
2325
2405
  * Surface two evidence-backed undelivered classes: the original pending
@@ -2361,7 +2441,7 @@ export class QueueRepository {
2361
2441
  const rows = this.db.prepare(sql).all(...params);
2362
2442
  const out = [];
2363
2443
  for (const r of rows) {
2364
- const item = this.rowToItem(r);
2444
+ const item = this.rowToItem(r, !opts?.compact);
2365
2445
  const ledger = this.deliveryOutcomeFor(item.qitemId);
2366
2446
  if (ledger?.outcome === "posted")
2367
2447
  continue; // the receipt wins, always
@@ -2610,31 +2690,65 @@ export class QueueRepository {
2610
2690
  txn();
2611
2691
  return rows.length;
2612
2692
  }
2613
- /** S04 — substantive post-claim motion: transitions strictly after the claim, excluding the
2614
- * claim's own 'claimed' transition. Lazily prepared; indexed on qitem_id. */
2615
- postClaimMotionStmt;
2616
- postClaimMotionCount(qitemId, claimedAt) {
2617
- this.postClaimMotionStmt ??= this.db.prepare("SELECT COUNT(*) AS n FROM queue_transitions WHERE qitem_id = ? AND ts > ? AND transition_note IS NOT 'claimed'");
2693
+ activityReader;
2694
+ attachActivityReader(reader) { this.activityReader = reader; }
2695
+ workflowGuidance;
2696
+ attachWorkflowGuidance(reader) { this.workflowGuidance = reader; }
2697
+ evaluateWaitReminder(input) {
2698
+ if (this.wakeRepo.findQitemsByAttachedWatchdog(input.jobId).length > 0
2699
+ && this.wakeRepo.findQitemsByGeneratedTimer(input.jobId).every(row => row.state !== "blocked"))
2700
+ return null;
2701
+ const binding = this.wakeRepo.findBlockedQitemsByWatchdog(input.jobId).find(row => row.kind === "timer");
2702
+ const result = evaluateQueueWait(this.watchdogJobsRepo ?? new WatchdogJobsRepository(this.db), input.jobId, binding ? this.waitingView(binding.qitemId) : null);
2703
+ // Only an already-admitted send reads prose: healthy silence, receipts and
2704
+ // failed-delivery retries remain owned by the existing wait evaluator.
2705
+ if (result?.action === "send" && binding && this.workflowGuidance) {
2706
+ try {
2707
+ result.message += "\n" + this.workflowGuidance(binding.qitemId).join("\n");
2708
+ }
2709
+ catch (error) {
2710
+ result.message += "\nWorkflow method: UNKNOWN: current guidance unavailable: " + String(error);
2711
+ }
2712
+ }
2713
+ return result;
2714
+ }
2715
+ ownerActivity(session) {
2618
2716
  try {
2619
- return this.postClaimMotionStmt.get(qitemId, claimedAt).n;
2717
+ return this.activityReader?.(session) ?? null;
2620
2718
  }
2621
2719
  catch {
2622
- return 0; // minimal fixture DBs without the transitions table: degrade, never throw
2720
+ return null;
2721
+ }
2722
+ }
2723
+ waitingView(qitemId) {
2724
+ const view = readWaitingView(this.db, qitemId, this.activityReader);
2725
+ if (view && ["pending", "in-progress"].includes(view.state)) {
2726
+ const recovery = readWakeLadderBackstop(this.db, qitemId);
2727
+ if (recovery) {
2728
+ view.laterBackstop = { ...view.nextBackstop, note: "Conditional safety net; current delivery/recovery ownership is evaluated first." };
2729
+ view.nextBackstop = recovery;
2730
+ }
2623
2731
  }
2732
+ return view;
2624
2733
  }
2625
- rowToItem(row) {
2734
+ rowToItem(row, includeWaiting = true) {
2626
2735
  // S04 — derive the pickup receipt at the ONE shared projection point (list/show/overdue
2627
2736
  // all flow through here), so the park-vs-strand question is answered by the row face.
2737
+ const meaningful = lastMeaningfulTransition(this.db, row.qitem_id);
2738
+ const waiting = includeWaiting ? this.waitingView(row.qitem_id) : null;
2739
+ const activity = this.ownerActivity(row.destination_session);
2628
2740
  const pickup = derivePickup({
2629
2741
  state: row.state,
2742
+ lastMeaningfulAt: meaningful?.at,
2743
+ activity: activity?.activity,
2744
+ needsInput: activity?.needsInput.count,
2630
2745
  claimedAt: row.claimed_at,
2631
2746
  lastHeartbeat: row.last_heartbeat,
2632
- postClaimMotionCount: row.claimed_at && row.state !== "blocked"
2633
- ? this.postClaimMotionCount(row.qitem_id, row.claimed_at)
2634
- : 0,
2747
+ postClaimMotionCount: 0, // this reader supplies the current meaningful timestamp
2635
2748
  });
2636
2749
  return {
2637
2750
  pickup,
2751
+ ...(waiting ? { waiting } : {}),
2638
2752
  qitemId: row.qitem_id,
2639
2753
  tsCreated: row.ts_created,
2640
2754
  tsUpdated: row.ts_updated,