@openrig/cli 0.5.3 → 0.5.5

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 (842) hide show
  1. package/daemon/assets/guidance/openrig-start.md +7 -0
  2. package/daemon/assets/onboarding/01-world-and-purpose.md +52 -0
  3. package/daemon/assets/onboarding/02-self-and-competent-action.md +57 -0
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/README.md +5 -2
  7. package/daemon/assets/plugins/openrig-core/hooks/claude.json +3 -12
  8. package/daemon/assets/plugins/openrig-core/hooks/codex.json +5 -12
  9. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +196 -106
  10. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +18 -23
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/CHANGELOG.md +92 -0
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/REVISION-GUIDE.md +34 -0
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROADMAP.md +23 -0
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/ROLLOUT.md +234 -0
  15. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +404 -0
  16. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +653 -0
  17. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/scaffold.sh +34 -0
  18. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trace-due.sh +32 -0
  19. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trace-stamp.sh +5 -0
  20. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trunk-diff.sh +18 -0
  21. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/LEARNED.md +40 -0
  22. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/NOTES.md +9 -0
  23. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/PLAYBOOK.md +5 -0
  24. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SOP.md +24 -0
  25. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SPEC.md +54 -0
  26. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +5 -0
  27. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +31 -0
  28. package/daemon/assets/plugins/openrig-core/skills/refocusing/references/refocus.md +22 -0
  29. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +221 -0
  30. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -3
  31. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +4 -9
  32. package/daemon/context-packs/onboarding-width/manifest.yaml +11 -0
  33. package/daemon/context-packs/{world/install/reference-material.md → onboarding-width/public-reference-material.md} +4 -26
  34. package/daemon/context-packs/{world/install/what-you-can-do.md → onboarding-width/public-what-you-can-do.md} +13 -9
  35. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
  37. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +21 -15
  57. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +3 -3
  58. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +1 -1
  74. package/daemon/context-packs/world-example/manifest.yaml +8 -0
  75. package/daemon/context-packs/world-example/your-world.md +37 -0
  76. package/daemon/dist/adapters/claude-code-adapter.d.ts +15 -0
  77. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  78. package/daemon/dist/adapters/claude-code-adapter.js +57 -0
  79. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  80. package/daemon/dist/adapters/tmux.d.ts +31 -0
  81. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  82. package/daemon/dist/adapters/tmux.js +31 -11
  83. package/daemon/dist/adapters/tmux.js.map +1 -1
  84. package/daemon/dist/build-info.js +3 -3
  85. package/daemon/dist/daemon-db-path.d.ts.map +1 -1
  86. package/daemon/dist/daemon-db-path.js +50 -2
  87. package/daemon/dist/daemon-db-path.js.map +1 -1
  88. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  89. package/daemon/dist/db/all-migrations.js +4 -0
  90. package/daemon/dist/db/all-migrations.js.map +1 -1
  91. package/daemon/dist/db/migrations/072_thread_seat_map.d.ts +3 -0
  92. package/daemon/dist/db/migrations/072_thread_seat_map.d.ts.map +1 -0
  93. package/daemon/dist/db/migrations/072_thread_seat_map.js +22 -0
  94. package/daemon/dist/db/migrations/072_thread_seat_map.js.map +1 -0
  95. package/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts +3 -0
  96. package/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts.map +1 -0
  97. package/daemon/dist/db/migrations/073_queue_transition_wakes.js +21 -0
  98. package/daemon/dist/db/migrations/073_queue_transition_wakes.js.map +1 -0
  99. package/daemon/dist/domain/activity-taxonomy.d.ts +112 -0
  100. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -0
  101. package/daemon/dist/domain/activity-taxonomy.js +99 -0
  102. package/daemon/dist/domain/activity-taxonomy.js.map +1 -0
  103. package/daemon/dist/domain/bind-plan.d.ts +19 -0
  104. package/daemon/dist/domain/bind-plan.d.ts.map +1 -0
  105. package/daemon/dist/domain/bind-plan.js +25 -0
  106. package/daemon/dist/domain/bind-plan.js.map +1 -0
  107. package/daemon/dist/domain/event-bus.d.ts +6 -0
  108. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  109. package/daemon/dist/domain/event-bus.js +15 -5
  110. package/daemon/dist/domain/event-bus.js.map +1 -1
  111. package/daemon/dist/domain/gateway/gateway-process-main.d.ts.map +1 -1
  112. package/daemon/dist/domain/gateway/gateway-process-main.js +9 -0
  113. package/daemon/dist/domain/gateway/gateway-process-main.js.map +1 -1
  114. package/daemon/dist/domain/gateway/gateway-process.d.ts.map +1 -1
  115. package/daemon/dist/domain/gateway/gateway-process.js +9 -0
  116. package/daemon/dist/domain/gateway/gateway-process.js.map +1 -1
  117. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +80 -0
  118. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -0
  119. package/daemon/dist/domain/gateway/gateway-subsystem.js +149 -0
  120. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -0
  121. package/daemon/dist/domain/gateway/human-registry.d.ts +109 -0
  122. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  123. package/daemon/dist/domain/gateway/human-registry.js +250 -0
  124. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  125. package/{dist → daemon/dist/domain/gateway}/slack/config.d.ts +8 -5
  126. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -0
  127. package/{dist → daemon/dist/domain/gateway}/slack/config.js +8 -6
  128. package/daemon/dist/domain/gateway/slack/config.js.map +1 -0
  129. package/{dist → daemon/dist/domain/gateway}/slack/inbound-admission.d.ts +1 -1
  130. package/daemon/dist/domain/gateway/slack/inbound-admission.d.ts.map +1 -0
  131. package/daemon/dist/domain/gateway/slack/inbound-admission.js.map +1 -0
  132. package/{dist → daemon/dist/domain/gateway}/slack/inbound.d.ts +14 -3
  133. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -0
  134. package/{dist → daemon/dist/domain/gateway}/slack/inbound.js +6 -5
  135. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -0
  136. package/daemon/dist/domain/gateway/slack/message.d.ts +80 -0
  137. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -0
  138. package/daemon/dist/domain/gateway/slack/message.js +164 -0
  139. package/daemon/dist/domain/gateway/slack/message.js.map +1 -0
  140. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +54 -0
  141. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -0
  142. package/daemon/dist/domain/gateway/slack/outbound-driver.js +96 -0
  143. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -0
  144. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +53 -0
  145. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -0
  146. package/daemon/dist/domain/gateway/slack/queue-access.js +72 -0
  147. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -0
  148. package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -0
  149. package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -0
  150. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +106 -0
  151. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -0
  152. package/daemon/dist/domain/gateway/slack/slack-api.js +198 -0
  153. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -0
  154. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +47 -0
  155. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -0
  156. package/daemon/dist/domain/gateway/slack/slack-delivery.js +147 -0
  157. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -0
  158. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +21 -0
  159. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -0
  160. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +198 -0
  161. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -0
  162. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +30 -0
  163. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -0
  164. package/daemon/dist/domain/gateway/slack/socket-inbound.js +99 -0
  165. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -0
  166. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -0
  167. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -0
  168. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +17 -0
  169. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -0
  170. package/daemon/dist/domain/gateway/slack/thread-routing.js +35 -0
  171. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -0
  172. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +56 -0
  173. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -0
  174. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +103 -0
  175. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -0
  176. package/daemon/dist/domain/gateway/spawn-gateway.d.ts.map +1 -1
  177. package/daemon/dist/domain/gateway/spawn-gateway.js +9 -0
  178. package/daemon/dist/domain/gateway/spawn-gateway.js.map +1 -1
  179. package/daemon/dist/domain/gateway/transport.d.ts.map +1 -1
  180. package/daemon/dist/domain/gateway/transport.js +9 -0
  181. package/daemon/dist/domain/gateway/transport.js.map +1 -1
  182. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  183. package/daemon/dist/domain/node-inventory.js +20 -0
  184. package/daemon/dist/domain/node-inventory.js.map +1 -1
  185. package/daemon/dist/domain/parked-query.d.ts +81 -0
  186. package/daemon/dist/domain/parked-query.d.ts.map +1 -0
  187. package/daemon/dist/domain/parked-query.js +126 -0
  188. package/daemon/dist/domain/parked-query.js.map +1 -0
  189. package/daemon/dist/domain/plugin-discovery-service.d.ts +16 -0
  190. package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  191. package/daemon/dist/domain/plugin-discovery-service.js +175 -1
  192. package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  193. package/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
  194. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  195. package/daemon/dist/domain/plugin-vendor-service.js +101 -12
  196. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  197. package/daemon/dist/domain/queue-pickup.d.ts +38 -0
  198. package/daemon/dist/domain/queue-pickup.d.ts.map +1 -0
  199. package/daemon/dist/domain/queue-pickup.js +67 -0
  200. package/daemon/dist/domain/queue-pickup.js.map +1 -0
  201. package/daemon/dist/domain/queue-repository.d.ts +41 -11
  202. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  203. package/daemon/dist/domain/queue-repository.js +316 -36
  204. package/daemon/dist/domain/queue-repository.js.map +1 -1
  205. package/daemon/dist/domain/queue-stuck-sweep.d.ts +77 -0
  206. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -0
  207. package/daemon/dist/domain/queue-stuck-sweep.js +348 -0
  208. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -0
  209. package/daemon/dist/domain/queue-wake-ladder.d.ts +96 -0
  210. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -0
  211. package/daemon/dist/domain/queue-wake-ladder.js +533 -0
  212. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -0
  213. package/daemon/dist/domain/queue-wake-repository.d.ts +37 -0
  214. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -0
  215. package/daemon/dist/domain/queue-wake-repository.js +80 -0
  216. package/daemon/dist/domain/queue-wake-repository.js.map +1 -0
  217. package/daemon/dist/domain/rebuild-priming-chain.d.ts +28 -0
  218. package/daemon/dist/domain/rebuild-priming-chain.d.ts.map +1 -0
  219. package/daemon/dist/domain/rebuild-priming-chain.js +71 -0
  220. package/daemon/dist/domain/rebuild-priming-chain.js.map +1 -0
  221. package/daemon/dist/domain/reconciler.d.ts.map +1 -1
  222. package/daemon/dist/domain/reconciler.js +6 -1
  223. package/daemon/dist/domain/reconciler.js.map +1 -1
  224. package/daemon/dist/domain/review/compose.d.ts +3 -1
  225. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  226. package/daemon/dist/domain/review/compose.js +14 -8
  227. package/daemon/dist/domain/review/compose.js.map +1 -1
  228. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  229. package/daemon/dist/domain/review/gather.js +3 -1
  230. package/daemon/dist/domain/review/gather.js.map +1 -1
  231. package/daemon/dist/domain/rig-repository.d.ts +4 -0
  232. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  233. package/daemon/dist/domain/rig-repository.js +9 -0
  234. package/daemon/dist/domain/rig-repository.js.map +1 -1
  235. package/daemon/dist/domain/rigspec-instantiator.d.ts +12 -0
  236. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  237. package/daemon/dist/domain/rigspec-instantiator.js +50 -0
  238. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  239. package/daemon/dist/domain/running-name-guard.d.ts +52 -0
  240. package/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
  241. package/daemon/dist/domain/running-name-guard.js +34 -0
  242. package/daemon/dist/domain/running-name-guard.js.map +1 -0
  243. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +6 -5
  244. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  245. package/daemon/dist/domain/scope/plan-lock-artifacts.js +23 -20
  246. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  247. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -5
  248. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  249. package/daemon/dist/domain/scope/scaffold-placeholder.js +6 -7
  250. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  251. package/daemon/dist/domain/scope/scope-approve.d.ts +1 -1
  252. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  253. package/daemon/dist/domain/scope/scope-approve.js +5 -4
  254. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  255. package/daemon/dist/domain/scope/scope-audit.d.ts +42 -3
  256. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  257. package/daemon/dist/domain/scope/scope-audit.js +78 -93
  258. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  259. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  260. package/daemon/dist/domain/scope/scope-view-projection.js +7 -2
  261. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  262. package/daemon/dist/domain/seat-activity-service.d.ts +91 -0
  263. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  264. package/daemon/dist/domain/seat-activity-service.js +416 -1
  265. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  266. package/daemon/dist/domain/seat-handover-planner.d.ts +14 -0
  267. package/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -1
  268. package/daemon/dist/domain/seat-handover-planner.js +14 -1
  269. package/daemon/dist/domain/seat-handover-planner.js.map +1 -1
  270. package/daemon/dist/domain/seat-handover-service.d.ts +54 -1
  271. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  272. package/daemon/dist/domain/seat-handover-service.js +162 -19
  273. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  274. package/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
  275. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
  276. package/daemon/dist/domain/seat-lifecycle-service.js +312 -0
  277. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
  278. package/daemon/dist/domain/session-transport.d.ts +8 -5
  279. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  280. package/daemon/dist/domain/session-transport.js +40 -18
  281. package/daemon/dist/domain/session-transport.js.map +1 -1
  282. package/daemon/dist/domain/successor-session-launcher.d.ts +6 -1
  283. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  284. package/daemon/dist/domain/successor-session-launcher.js +3 -3
  285. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  286. package/daemon/dist/domain/types.d.ts +69 -0
  287. package/daemon/dist/domain/types.d.ts.map +1 -1
  288. package/daemon/dist/domain/types.js.map +1 -1
  289. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  290. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  291. package/daemon/dist/domain/user-settings/settings-store.js +48 -0
  292. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  293. package/daemon/dist/domain/view-projector.d.ts +1 -1
  294. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  295. package/daemon/dist/domain/view-projector.js +41 -2
  296. package/daemon/dist/domain/view-projector.js.map +1 -1
  297. package/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -0
  298. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  299. package/daemon/dist/domain/watchdog-policy-engine.js +3 -0
  300. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  301. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +4 -3
  302. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  303. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +56 -196
  304. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  305. package/daemon/dist/domain/workspace/getting-started-narrative.js +1 -1
  306. package/daemon/dist/domain/workspace/getting-started-narrative.js.map +1 -1
  307. package/daemon/dist/domain/workspace/workspace-doctor.d.ts +8 -11
  308. package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  309. package/daemon/dist/domain/workspace/workspace-doctor.js +23 -25
  310. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  311. package/daemon/dist/gateway-slack-surface.d.ts +4 -0
  312. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -0
  313. package/daemon/dist/gateway-slack-surface.js +8 -0
  314. package/daemon/dist/gateway-slack-surface.js.map +1 -0
  315. package/daemon/dist/index.d.ts +29 -0
  316. package/daemon/dist/index.d.ts.map +1 -1
  317. package/daemon/dist/index.js +99 -4
  318. package/daemon/dist/index.js.map +1 -1
  319. package/daemon/dist/lib/pane-envelope.d.ts +1 -1
  320. package/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  321. package/daemon/dist/lib/pane-envelope.js +8 -14
  322. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  323. package/daemon/dist/routes/activity.d.ts +13 -0
  324. package/daemon/dist/routes/activity.d.ts.map +1 -1
  325. package/daemon/dist/routes/activity.js +186 -0
  326. package/daemon/dist/routes/activity.js.map +1 -1
  327. package/daemon/dist/routes/config.js +2 -2
  328. package/daemon/dist/routes/config.js.map +1 -1
  329. package/daemon/dist/routes/gateway.d.ts +3 -0
  330. package/daemon/dist/routes/gateway.d.ts.map +1 -0
  331. package/daemon/dist/routes/gateway.js +46 -0
  332. package/daemon/dist/routes/gateway.js.map +1 -0
  333. package/daemon/dist/routes/health-summary.d.ts.map +1 -1
  334. package/daemon/dist/routes/health-summary.js +8 -0
  335. package/daemon/dist/routes/health-summary.js.map +1 -1
  336. package/daemon/dist/routes/queue.d.ts.map +1 -1
  337. package/daemon/dist/routes/queue.js +32 -25
  338. package/daemon/dist/routes/queue.js.map +1 -1
  339. package/daemon/dist/routes/rigspec.js +20 -6
  340. package/daemon/dist/routes/rigspec.js.map +1 -1
  341. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  342. package/daemon/dist/routes/scope-audit.js +72 -13
  343. package/daemon/dist/routes/scope-audit.js.map +1 -1
  344. package/daemon/dist/routes/seat.d.ts.map +1 -1
  345. package/daemon/dist/routes/seat.js +73 -0
  346. package/daemon/dist/routes/seat.js.map +1 -1
  347. package/daemon/dist/routes/transport.d.ts.map +1 -1
  348. package/daemon/dist/routes/transport.js +40 -36
  349. package/daemon/dist/routes/transport.js.map +1 -1
  350. package/daemon/dist/routes/up.js +21 -2
  351. package/daemon/dist/routes/up.js.map +1 -1
  352. package/daemon/dist/server.d.ts +17 -0
  353. package/daemon/dist/server.d.ts.map +1 -1
  354. package/daemon/dist/server.js +25 -4
  355. package/daemon/dist/server.js.map +1 -1
  356. package/daemon/dist/startup.d.ts +4 -0
  357. package/daemon/dist/startup.d.ts.map +1 -1
  358. package/daemon/dist/startup.js +33 -0
  359. package/daemon/dist/startup.js.map +1 -1
  360. package/daemon/docs/reference/agent-state-taxonomy.md +106 -0
  361. package/daemon/docs/reference/project-workspace.md +22 -14
  362. package/daemon/docs/reference/refocus-channel.md +27 -14
  363. package/daemon/docs/reference/sdlc-conventions.md +24 -13
  364. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
  365. package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +21 -15
  366. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +1 -1
  367. package/dist/build-info.js +3 -3
  368. package/dist/cli-error.js +1 -1
  369. package/dist/cli-error.js.map +1 -1
  370. package/dist/commands/broadcast.js +6 -0
  371. package/dist/commands/broadcast.js.map +1 -1
  372. package/dist/commands/config-init-workspace.d.ts.map +1 -1
  373. package/dist/commands/config-init-workspace.js +32 -57
  374. package/dist/commands/config-init-workspace.js.map +1 -1
  375. package/dist/commands/config.d.ts.map +1 -1
  376. package/dist/commands/config.js +5 -0
  377. package/dist/commands/config.js.map +1 -1
  378. package/dist/commands/context.d.ts.map +1 -1
  379. package/dist/commands/context.js +13 -3
  380. package/dist/commands/context.js.map +1 -1
  381. package/dist/commands/daemon.d.ts.map +1 -1
  382. package/dist/commands/daemon.js +36 -5
  383. package/dist/commands/daemon.js.map +1 -1
  384. package/dist/commands/gateway.d.ts +19 -1
  385. package/dist/commands/gateway.d.ts.map +1 -1
  386. package/dist/commands/gateway.js +157 -33
  387. package/dist/commands/gateway.js.map +1 -1
  388. package/dist/commands/import.d.ts.map +1 -1
  389. package/dist/commands/import.js +10 -0
  390. package/dist/commands/import.js.map +1 -1
  391. package/dist/commands/parked.d.ts +3 -0
  392. package/dist/commands/parked.d.ts.map +1 -0
  393. package/dist/commands/parked.js +83 -0
  394. package/dist/commands/parked.js.map +1 -0
  395. package/dist/commands/proof.d.ts +2 -1
  396. package/dist/commands/proof.d.ts.map +1 -1
  397. package/dist/commands/proof.js +8 -8
  398. package/dist/commands/proof.js.map +1 -1
  399. package/dist/commands/ps.d.ts +10 -0
  400. package/dist/commands/ps.d.ts.map +1 -1
  401. package/dist/commands/ps.js +14 -3
  402. package/dist/commands/ps.js.map +1 -1
  403. package/dist/commands/queue.d.ts.map +1 -1
  404. package/dist/commands/queue.js +67 -16
  405. package/dist/commands/queue.js.map +1 -1
  406. package/dist/commands/scope.d.ts.map +1 -1
  407. package/dist/commands/scope.js +255 -136
  408. package/dist/commands/scope.js.map +1 -1
  409. package/dist/commands/seat.d.ts.map +1 -1
  410. package/dist/commands/seat.js +128 -10
  411. package/dist/commands/seat.js.map +1 -1
  412. package/dist/commands/send.d.ts +1 -1
  413. package/dist/commands/send.d.ts.map +1 -1
  414. package/dist/commands/send.js +237 -34
  415. package/dist/commands/send.js.map +1 -1
  416. package/dist/commands/slack.d.ts +14 -28
  417. package/dist/commands/slack.d.ts.map +1 -1
  418. package/dist/commands/slack.js +73 -187
  419. package/dist/commands/slack.js.map +1 -1
  420. package/dist/commands/start.d.ts +3 -0
  421. package/dist/commands/start.d.ts.map +1 -1
  422. package/dist/commands/start.js +12 -5
  423. package/dist/commands/start.js.map +1 -1
  424. package/dist/commands/up.d.ts.map +1 -1
  425. package/dist/commands/up.js +19 -4
  426. package/dist/commands/up.js.map +1 -1
  427. package/dist/commands/view.d.ts +4 -2
  428. package/dist/commands/view.d.ts.map +1 -1
  429. package/dist/commands/view.js +1 -1
  430. package/dist/commands/view.js.map +1 -1
  431. package/dist/commands/walk.d.ts +1 -1
  432. package/dist/commands/walk.d.ts.map +1 -1
  433. package/dist/commands/walk.js +20 -10
  434. package/dist/commands/walk.js.map +1 -1
  435. package/dist/commands/watchdog.d.ts.map +1 -1
  436. package/dist/commands/watchdog.js +2 -1
  437. package/dist/commands/watchdog.js.map +1 -1
  438. package/dist/commands/workspace.js +1 -1
  439. package/dist/config-store.d.ts +15 -1
  440. package/dist/config-store.d.ts.map +1 -1
  441. package/dist/config-store.js +60 -0
  442. package/dist/config-store.js.map +1 -1
  443. package/dist/cross-host-target.d.ts.map +1 -1
  444. package/dist/cross-host-target.js +5 -4
  445. package/dist/cross-host-target.js.map +1 -1
  446. package/dist/daemon-lifecycle.d.ts +45 -3
  447. package/dist/daemon-lifecycle.d.ts.map +1 -1
  448. package/dist/daemon-lifecycle.js +126 -0
  449. package/dist/daemon-lifecycle.js.map +1 -1
  450. package/dist/index.d.ts.map +1 -1
  451. package/dist/index.js +2 -0
  452. package/dist/index.js.map +1 -1
  453. package/dist/lib/scope/capability-delta.d.ts +9 -0
  454. package/dist/lib/scope/capability-delta.d.ts.map +1 -0
  455. package/dist/lib/scope/capability-delta.js +73 -0
  456. package/dist/lib/scope/capability-delta.js.map +1 -0
  457. package/dist/lib/scope/scaffold-placeholder.d.ts +4 -5
  458. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  459. package/dist/lib/scope/scaffold-placeholder.js +6 -7
  460. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  461. package/dist/lib/scope/scope-audit.d.ts +42 -3
  462. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  463. package/dist/lib/scope/scope-audit.js +78 -93
  464. package/dist/lib/scope/scope-audit.js.map +1 -1
  465. package/dist/lib/scope/scope-fs.d.ts +18 -14
  466. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  467. package/dist/lib/scope/scope-fs.js +60 -29
  468. package/dist/lib/scope/scope-fs.js.map +1 -1
  469. package/dist/lib/scope/templates.d.ts +17 -17
  470. package/dist/lib/scope/templates.d.ts.map +1 -1
  471. package/dist/lib/scope/templates.js +35 -39
  472. package/dist/lib/scope/templates.js.map +1 -1
  473. package/dist/lib/scope-templates/backlog-deprecation.md +3 -1
  474. package/dist/lib/scope-templates/backlog-tech-debt.md +3 -1
  475. package/dist/lib/scope-templates/bug-fix.md +3 -1
  476. package/dist/lib/scope-templates/capability-delta.md +60 -0
  477. package/dist/lib/scope-templates/mission-placeholder.md +9 -40
  478. package/dist/lib/scope-templates/mission-progress.md +5 -6
  479. package/dist/lib/scope-templates/mission-release.md +9 -40
  480. package/dist/lib/scope-templates/notes.md +14 -0
  481. package/dist/lib/scope-templates/placeholder.md +3 -1
  482. package/dist/lib/scope-templates/proof.md +1 -1
  483. package/dist/lib/scope-templates/release-feature.md +3 -1
  484. package/dist/lib/scope-templates/research.md +3 -1
  485. package/dist/lib/scope-templates/slice-progress.md +4 -5
  486. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts +15 -0
  487. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  488. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +57 -0
  489. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  490. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +31 -0
  491. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  492. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +31 -11
  493. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  494. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  495. package/node_modules/@openrig/daemon/dist/daemon-db-path.d.ts.map +1 -1
  496. package/node_modules/@openrig/daemon/dist/daemon-db-path.js +50 -2
  497. package/node_modules/@openrig/daemon/dist/daemon-db-path.js.map +1 -1
  498. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
  499. package/node_modules/@openrig/daemon/dist/db/all-migrations.js +4 -0
  500. package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
  501. package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.d.ts +3 -0
  502. package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.d.ts.map +1 -0
  503. package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.js +22 -0
  504. package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.js.map +1 -0
  505. package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts +3 -0
  506. package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts.map +1 -0
  507. package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.js +21 -0
  508. package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.js.map +1 -0
  509. package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.d.ts +112 -0
  510. package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -0
  511. package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.js +99 -0
  512. package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.js.map +1 -0
  513. package/node_modules/@openrig/daemon/dist/domain/bind-plan.d.ts +19 -0
  514. package/node_modules/@openrig/daemon/dist/domain/bind-plan.d.ts.map +1 -0
  515. package/node_modules/@openrig/daemon/dist/domain/bind-plan.js +25 -0
  516. package/node_modules/@openrig/daemon/dist/domain/bind-plan.js.map +1 -0
  517. package/node_modules/@openrig/daemon/dist/domain/event-bus.d.ts +6 -0
  518. package/node_modules/@openrig/daemon/dist/domain/event-bus.d.ts.map +1 -1
  519. package/node_modules/@openrig/daemon/dist/domain/event-bus.js +15 -5
  520. package/node_modules/@openrig/daemon/dist/domain/event-bus.js.map +1 -1
  521. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.d.ts.map +1 -1
  522. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.js +9 -0
  523. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.js.map +1 -1
  524. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.d.ts.map +1 -1
  525. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.js +9 -0
  526. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.js.map +1 -1
  527. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +80 -0
  528. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -0
  529. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +149 -0
  530. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -0
  531. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +109 -0
  532. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  533. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +250 -0
  534. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  535. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts +44 -0
  536. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -0
  537. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js +62 -0
  538. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js.map +1 -0
  539. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.d.ts +8 -0
  540. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.d.ts.map +1 -0
  541. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.js +20 -0
  542. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.js.map +1 -0
  543. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +113 -0
  544. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -0
  545. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +146 -0
  546. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -0
  547. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.d.ts +80 -0
  548. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -0
  549. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.js +164 -0
  550. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.js.map +1 -0
  551. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +54 -0
  552. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -0
  553. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js +96 -0
  554. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -0
  555. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +53 -0
  556. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -0
  557. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +72 -0
  558. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -0
  559. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.d.ts +21 -0
  560. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -0
  561. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.js +73 -0
  562. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.js.map +1 -0
  563. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts +106 -0
  564. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -0
  565. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js +198 -0
  566. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -0
  567. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +47 -0
  568. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -0
  569. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js +147 -0
  570. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -0
  571. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +21 -0
  572. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -0
  573. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +198 -0
  574. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -0
  575. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +30 -0
  576. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -0
  577. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js +99 -0
  578. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -0
  579. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts +62 -0
  580. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -0
  581. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js +132 -0
  582. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js.map +1 -0
  583. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts +17 -0
  584. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -0
  585. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js +35 -0
  586. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -0
  587. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +56 -0
  588. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -0
  589. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js +103 -0
  590. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -0
  591. package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.d.ts.map +1 -1
  592. package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.js +9 -0
  593. package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.js.map +1 -1
  594. package/node_modules/@openrig/daemon/dist/domain/gateway/transport.d.ts.map +1 -1
  595. package/node_modules/@openrig/daemon/dist/domain/gateway/transport.js +9 -0
  596. package/node_modules/@openrig/daemon/dist/domain/gateway/transport.js.map +1 -1
  597. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  598. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +20 -0
  599. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
  600. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +81 -0
  601. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +1 -0
  602. package/node_modules/@openrig/daemon/dist/domain/parked-query.js +126 -0
  603. package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +1 -0
  604. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts +16 -0
  605. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  606. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js +175 -1
  607. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  608. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
  609. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  610. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js +101 -12
  611. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  612. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts +38 -0
  613. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +1 -0
  614. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +67 -0
  615. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +1 -0
  616. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +41 -11
  617. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  618. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +316 -36
  619. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  620. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +77 -0
  621. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -0
  622. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +348 -0
  623. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -0
  624. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +96 -0
  625. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -0
  626. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +533 -0
  627. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +1 -0
  628. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +37 -0
  629. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -0
  630. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +80 -0
  631. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -0
  632. package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.d.ts +28 -0
  633. package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.d.ts.map +1 -0
  634. package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.js +71 -0
  635. package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.js.map +1 -0
  636. package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +1 -1
  637. package/node_modules/@openrig/daemon/dist/domain/reconciler.js +6 -1
  638. package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +1 -1
  639. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +3 -1
  640. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  641. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +14 -8
  642. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  643. package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +1 -1
  644. package/node_modules/@openrig/daemon/dist/domain/review/gather.js +3 -1
  645. package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +1 -1
  646. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +4 -0
  647. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  648. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +9 -0
  649. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
  650. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +12 -0
  651. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  652. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +50 -0
  653. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  654. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts +52 -0
  655. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
  656. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js +34 -0
  657. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js.map +1 -0
  658. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +6 -5
  659. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  660. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +23 -20
  661. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  662. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -5
  663. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  664. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +6 -7
  665. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  666. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts +1 -1
  667. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  668. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js +5 -4
  669. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  670. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +42 -3
  671. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  672. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js +78 -93
  673. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  674. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  675. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +7 -2
  676. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  677. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +91 -0
  678. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  679. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +416 -1
  680. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
  681. package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.d.ts +14 -0
  682. package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -1
  683. package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.js +14 -1
  684. package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.js.map +1 -1
  685. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +54 -1
  686. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  687. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +162 -19
  688. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  689. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
  690. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
  691. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +312 -0
  692. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
  693. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +8 -5
  694. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
  695. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +40 -18
  696. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  697. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +6 -1
  698. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  699. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +3 -3
  700. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  701. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +69 -0
  702. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  703. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  704. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  705. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  706. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +48 -0
  707. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  708. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts +1 -1
  709. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts.map +1 -1
  710. package/node_modules/@openrig/daemon/dist/domain/view-projector.js +41 -2
  711. package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +1 -1
  712. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -0
  713. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  714. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +3 -0
  715. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  716. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +4 -3
  717. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  718. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +56 -196
  719. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  720. package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.js +1 -1
  721. package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.js.map +1 -1
  722. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts +8 -11
  723. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  724. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +23 -25
  725. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  726. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts +4 -0
  727. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts.map +1 -0
  728. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js +8 -0
  729. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js.map +1 -0
  730. package/node_modules/@openrig/daemon/dist/index.d.ts +29 -0
  731. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  732. package/node_modules/@openrig/daemon/dist/index.js +99 -4
  733. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  734. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts +1 -1
  735. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  736. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js +8 -14
  737. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js.map +1 -1
  738. package/node_modules/@openrig/daemon/dist/routes/activity.d.ts +13 -0
  739. package/node_modules/@openrig/daemon/dist/routes/activity.d.ts.map +1 -1
  740. package/node_modules/@openrig/daemon/dist/routes/activity.js +186 -0
  741. package/node_modules/@openrig/daemon/dist/routes/activity.js.map +1 -1
  742. package/node_modules/@openrig/daemon/dist/routes/config.js +2 -2
  743. package/node_modules/@openrig/daemon/dist/routes/config.js.map +1 -1
  744. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts +3 -0
  745. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +1 -0
  746. package/node_modules/@openrig/daemon/dist/routes/gateway.js +46 -0
  747. package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -0
  748. package/node_modules/@openrig/daemon/dist/routes/health-summary.d.ts.map +1 -1
  749. package/node_modules/@openrig/daemon/dist/routes/health-summary.js +8 -0
  750. package/node_modules/@openrig/daemon/dist/routes/health-summary.js.map +1 -1
  751. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  752. package/node_modules/@openrig/daemon/dist/routes/queue.js +32 -25
  753. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  754. package/node_modules/@openrig/daemon/dist/routes/rigspec.js +20 -6
  755. package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
  756. package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  757. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +72 -13
  758. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
  759. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  760. package/node_modules/@openrig/daemon/dist/routes/seat.js +73 -0
  761. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  762. package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
  763. package/node_modules/@openrig/daemon/dist/routes/transport.js +40 -36
  764. package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
  765. package/node_modules/@openrig/daemon/dist/routes/up.js +21 -2
  766. package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
  767. package/node_modules/@openrig/daemon/dist/server.d.ts +17 -0
  768. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  769. package/node_modules/@openrig/daemon/dist/server.js +25 -4
  770. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  771. package/node_modules/@openrig/daemon/dist/startup.d.ts +4 -0
  772. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  773. package/node_modules/@openrig/daemon/dist/startup.js +33 -0
  774. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  775. package/node_modules/@openrig/daemon/package.json +5 -1
  776. package/package.json +1 -1
  777. package/tui/dist/daemon-client.d.ts +5 -0
  778. package/tui/dist/daemon-client.d.ts.map +1 -1
  779. package/tui/dist/daemon-client.js +17 -0
  780. package/tui/dist/daemon-client.js.map +1 -1
  781. package/tui/dist/hydrate.d.ts.map +1 -1
  782. package/tui/dist/hydrate.js +12 -4
  783. package/tui/dist/hydrate.js.map +1 -1
  784. package/tui/dist/live-events.d.ts +21 -0
  785. package/tui/dist/live-events.d.ts.map +1 -0
  786. package/tui/dist/live-events.js +88 -0
  787. package/tui/dist/live-events.js.map +1 -0
  788. package/tui/dist/live.js +1 -1
  789. package/tui/dist/main.js +27 -8
  790. package/tui/dist/main.js.map +1 -1
  791. package/tui/dist/refresh.d.ts +10 -1
  792. package/tui/dist/refresh.d.ts.map +1 -1
  793. package/tui/dist/refresh.js +22 -2
  794. package/tui/dist/refresh.js.map +1 -1
  795. package/daemon/context-packs/world/install/01-world-from-primitives.md +0 -97
  796. package/daemon/context-packs/world/install/02-permission-self-sleep.md +0 -141
  797. package/daemon/context-packs/world/install/03-what-this-is-for.md +0 -86
  798. package/daemon/context-packs/world/install/04-ontology.md +0 -790
  799. package/daemon/context-packs/world/install/05-harness-power-use.md +0 -355
  800. package/daemon/context-packs/world/install/06-a-competent-turn.md +0 -225
  801. package/daemon/context-packs/world/install/manifest.yaml +0 -125
  802. package/dist/lib/scope-templates/mission-brief.md +0 -20
  803. package/dist/lib/scope-templates/mission-notes.md +0 -102
  804. package/dist/slack/config.d.ts.map +0 -1
  805. package/dist/slack/config.js.map +0 -1
  806. package/dist/slack/connector-server.d.ts +0 -31
  807. package/dist/slack/connector-server.d.ts.map +0 -1
  808. package/dist/slack/connector-server.js +0 -108
  809. package/dist/slack/connector-server.js.map +0 -1
  810. package/dist/slack/inbound-admission.d.ts.map +0 -1
  811. package/dist/slack/inbound-admission.js.map +0 -1
  812. package/dist/slack/inbound.d.ts.map +0 -1
  813. package/dist/slack/inbound.js.map +0 -1
  814. package/dist/slack/message.d.ts +0 -39
  815. package/dist/slack/message.d.ts.map +0 -1
  816. package/dist/slack/message.js +0 -88
  817. package/dist/slack/message.js.map +0 -1
  818. package/dist/slack/outbound.d.ts +0 -39
  819. package/dist/slack/outbound.d.ts.map +0 -1
  820. package/dist/slack/outbound.js +0 -63
  821. package/dist/slack/outbound.js.map +0 -1
  822. package/dist/slack/queue-bridge.d.ts +0 -61
  823. package/dist/slack/queue-bridge.d.ts.map +0 -1
  824. package/dist/slack/queue-bridge.js +0 -114
  825. package/dist/slack/queue-bridge.js.map +0 -1
  826. package/dist/slack/secrets.d.ts.map +0 -1
  827. package/dist/slack/secrets.js.map +0 -1
  828. package/dist/slack/slack-api.d.ts +0 -49
  829. package/dist/slack/slack-api.d.ts.map +0 -1
  830. package/dist/slack/slack-api.js +0 -110
  831. package/dist/slack/slack-api.js.map +0 -1
  832. package/dist/slack/slack-delivery.d.ts +0 -14
  833. package/dist/slack/slack-delivery.d.ts.map +0 -1
  834. package/dist/slack/slack-delivery.js +0 -28
  835. package/dist/slack/slack-delivery.js.map +0 -1
  836. package/dist/slack/state-store.d.ts.map +0 -1
  837. package/dist/slack/state-store.js.map +0 -1
  838. /package/{dist → daemon/dist/domain/gateway}/slack/inbound-admission.js +0 -0
  839. /package/{dist → daemon/dist/domain/gateway}/slack/secrets.d.ts +0 -0
  840. /package/{dist → daemon/dist/domain/gateway}/slack/secrets.js +0 -0
  841. /package/{dist → daemon/dist/domain/gateway}/slack/state-store.d.ts +0 -0
  842. /package/{dist → daemon/dist/domain/gateway}/slack/state-store.js +0 -0
@@ -0,0 +1,533 @@
1
+ // S01 (OPR.0.5.5.1) — WAKE OR ESCALATE ON BATONS. A handoff whose wake fails must never
2
+ // silently park: today one failed nudge is recorded and nothing follows (the measured
3
+ // dominant 0.5.3 failure class — a perfect surviving packet, a recipient never woken).
4
+ // This module gives every baton (handed-off row) whose wake FAILED a bounded retry ladder,
5
+ // then named escalation rungs — the destination's orchestrator (aggregated per destination,
6
+ // never a duplicate row per baton), then the operator surface — each step a recorded
7
+ // transition, none silent.
8
+ //
9
+ // NAMED INVARIANT (mini-req 7): THE ROW CARRIES THE OBLIGATION EXACTLY-ONCE; THE WAKE IS
10
+ // AT-LEAST-ONCE. The ladder retries the NUDGE — an envelope pointer at the row — never the
11
+ // content, so a re-attempt can never double-deliver the obligation.
12
+ //
13
+ // AM-P3-F6: the transitions ARE the ladder state. Attempts, rungs, suspension and
14
+ // exhaustion are all markers on the row's transition log, and every tick DERIVES its
15
+ // position from them — a daemon restart can neither forget a ladder (silent park returns)
16
+ // nor restart its counts (cap violated by repetition). Marker vocabulary is imported from
17
+ // queue-stuck-sweep (AM-P3-F5): S02's undelivered half skips rows whose ladder is live and
18
+ // remains the net for the exhausted handback; created-with-destination obligations stay
19
+ // S02 territory (the baton filter here is handed_off_from — the named hole is explicit).
20
+ //
21
+ // AM-P3-F1: `rendered-unconfirmed`-class outcomes (queue grammar: delivered-ack-pending,
22
+ // indeterminate:*, gateway-owned:*) NEVER retry — the measured false-negative class — but
23
+ // they enter the ladder on a confirmation path: unconfirmed + zero pickup evidence within
24
+ // the config-keyed window escalates directly, skipping the retry rung entirely (escalation
25
+ // is not a re-send; it cannot double-deliver).
26
+ //
27
+ // AM-P3-F2: suspension is DERIVED, never declared — the destination's post-swap state
28
+ // (nodes.handover_at within a bounded grace; the handover txn itself is atomic and
29
+ // unobservable) suspends wake attempts, with suspend/resume recorded. The manually
30
+ // declared window survives ONLY as an operator override (OPENRIG_WAKE_SUSPEND, fresh-read).
31
+ //
32
+ // AM-P3-F4 + AM-R25: rungs DELIVER, not just record. The orchestrator rung attempts a real
33
+ // wake on the aggregate escalation row; a rung whose own wake fails advances after one
34
+ // bounded cycle. The operator rung's delivery floor here is the escalation view + the
35
+ // daemon-health surface, stated honestly in its marker — the human-layer connector attempt
36
+ // is S11 territory (0.5.6), cited, not built; the rung gains that leg when S11 lands.
37
+ import { SettingsStore } from "./user-settings/settings-store.js";
38
+ import { LADDER_ATTEMPT_PREFIX, LADDER_RUNG_PREFIX, LADDER_EXHAUSTED_PREFIX, defaultResolveOrchestrator, resolveSessionNodeId, } from "./queue-stuck-sweep.js";
39
+ export const WAKE_RETRY_INTERVAL_KEY = "queue.wake_retry_interval_seconds";
40
+ export const DEFAULT_WAKE_RETRY_INTERVAL_SECONDS = 300;
41
+ export const WAKE_RETRY_CAP_KEY = "queue.wake_retry_cap";
42
+ export const DEFAULT_WAKE_RETRY_CAP = 3;
43
+ export const WAKE_UNCONFIRMED_WINDOW_KEY = "queue.wake_unconfirmed_window_minutes";
44
+ export const DEFAULT_WAKE_UNCONFIRMED_WINDOW_MINUTES = 30;
45
+ export const WAKE_SWAP_GRACE_KEY = "queue.wake_swap_grace_seconds";
46
+ export const DEFAULT_WAKE_SWAP_GRACE_SECONDS = 180;
47
+ /** The operator-declared suspension override (F2: override, never the mechanism).
48
+ * Format: comma-separated `<session>:<untilIso>` pairs; fresh-read every tick. */
49
+ export const WAKE_SUSPEND_OVERRIDE_ENV = "OPENRIG_WAKE_SUSPEND";
50
+ /** Stamp tag on the per-destination aggregate escalation row. */
51
+ export const WAKE_ESCALATION_TAG = "wake-escalation";
52
+ export function escalationDedupTag(destination) {
53
+ return `wake-escalation:${destination}`;
54
+ }
55
+ // Suspension markers (attempt/rung/exhausted come from the S02 seam vocabulary).
56
+ export const LADDER_SUSPEND_PREFIX = "ladder-suspend:";
57
+ export const LADDER_RESUME_PREFIX = "ladder-resume:";
58
+ const LADDER_ACTOR = "wake-ladder@system";
59
+ /** The loop's observable heartbeat — rides /healthz beside the S02 sweep's. */
60
+ export function createWakeLadderStatus() {
61
+ const state = {
62
+ lastTickAt: null,
63
+ lastOutcome: null,
64
+ lastError: null,
65
+ consecutiveFailures: 0,
66
+ activeLadders: 0,
67
+ escalationsOpen: 0,
68
+ exhaustedTotal: 0,
69
+ };
70
+ return {
71
+ record(outcome, detail) {
72
+ state.lastTickAt = new Date().toISOString();
73
+ state.lastOutcome = outcome;
74
+ state.lastError = outcome === "failed" ? (detail?.error ?? "unknown error") : null;
75
+ state.consecutiveFailures = outcome === "failed" ? state.consecutiveFailures + 1 : 0;
76
+ if (detail?.active !== undefined)
77
+ state.activeLadders = detail.active;
78
+ if (detail?.escalations !== undefined)
79
+ state.escalationsOpen = detail.escalations;
80
+ if (detail?.exhausted)
81
+ state.exhaustedTotal += detail.exhausted;
82
+ },
83
+ snapshot() {
84
+ return { ...state };
85
+ },
86
+ };
87
+ }
88
+ /** The operator seat for the self-skip floor (workspace.operator_seat_name — the
89
+ * conventional `operator-${USER}@kernel`); null when settings resolution fails. */
90
+ function resolveOperatorSeat() {
91
+ try {
92
+ const v = new SettingsStore().resolveOne("workspace.operator_seat_name").value;
93
+ return typeof v === "string" && v.length > 0 ? v : null;
94
+ }
95
+ catch {
96
+ return null;
97
+ }
98
+ }
99
+ function resolveNumber(key, fallback) {
100
+ try {
101
+ const v = new SettingsStore().resolveOne(key).value;
102
+ const n = typeof v === "number" ? v : Number(v);
103
+ return Number.isFinite(n) && n > 0 ? n : fallback;
104
+ }
105
+ catch {
106
+ return fallback;
107
+ }
108
+ }
109
+ export const resolveWakeRetryIntervalSeconds = () => resolveNumber(WAKE_RETRY_INTERVAL_KEY, DEFAULT_WAKE_RETRY_INTERVAL_SECONDS);
110
+ export const resolveWakeRetryCap = () => resolveNumber(WAKE_RETRY_CAP_KEY, DEFAULT_WAKE_RETRY_CAP);
111
+ export const resolveWakeUnconfirmedWindowMinutes = () => resolveNumber(WAKE_UNCONFIRMED_WINDOW_KEY, DEFAULT_WAKE_UNCONFIRMED_WINDOW_MINUTES);
112
+ export const resolveWakeSwapGraceSeconds = () => resolveNumber(WAKE_SWAP_GRACE_KEY, DEFAULT_WAKE_SWAP_GRACE_SECONDS);
113
+ function readLadder(db, qitemId) {
114
+ const rows = db
115
+ .prepare("SELECT ts, transition_note FROM queue_transitions WHERE qitem_id = ? ORDER BY ts, rowid")
116
+ .all(qitemId);
117
+ const view = {
118
+ attempts: 0,
119
+ lastMarkerTs: null,
120
+ orchRung: false,
121
+ orchRungFailed: false,
122
+ opRung: false,
123
+ exhausted: false,
124
+ suspendEpisodeOpen: false,
125
+ firstMarkerTs: null,
126
+ };
127
+ let suspends = 0;
128
+ let resumes = 0;
129
+ for (const r of rows) {
130
+ const note = r.transition_note ?? "";
131
+ const isAttempt = note.startsWith(LADDER_ATTEMPT_PREFIX);
132
+ const isRung = note.startsWith(LADDER_RUNG_PREFIX);
133
+ if (isAttempt)
134
+ view.attempts += 1;
135
+ if (isRung && /^escalation-rung:\s*orchestrator/.test(note)) {
136
+ view.orchRung = true;
137
+ view.orchRungFailed = /outcome=failed:/.test(note);
138
+ }
139
+ if (isRung && /^escalation-rung:\s*operator/.test(note))
140
+ view.opRung = true;
141
+ if (note.startsWith(LADDER_EXHAUSTED_PREFIX))
142
+ view.exhausted = true;
143
+ if (note.startsWith(LADDER_SUSPEND_PREFIX))
144
+ suspends += 1;
145
+ if (note.startsWith(LADDER_RESUME_PREFIX))
146
+ resumes += 1;
147
+ if (isAttempt || isRung) {
148
+ const t = Date.parse(r.ts);
149
+ if (!Number.isNaN(t)) {
150
+ view.lastMarkerTs = Math.max(view.lastMarkerTs ?? t, t);
151
+ view.firstMarkerTs = view.firstMarkerTs === null ? t : Math.min(view.firstMarkerTs, t);
152
+ }
153
+ }
154
+ }
155
+ view.suspendEpisodeOpen = suspends > resumes;
156
+ return view;
157
+ }
158
+ /** Pickup evidence (the S04 receipt join, F1): a claim, a heartbeat, or any transition
159
+ * that is neither a founding record nor ladder machinery — someone real moved. */
160
+ function hasPickupEvidence(db, row) {
161
+ if (row.claimedAt)
162
+ return true;
163
+ if (row.lastHeartbeat)
164
+ return true;
165
+ const rows = db
166
+ .prepare("SELECT transition_note FROM queue_transitions WHERE qitem_id = ?")
167
+ .all(row.qitemId);
168
+ for (const r of rows) {
169
+ const note = r.transition_note ?? "";
170
+ if (note === "created")
171
+ continue;
172
+ if (note.startsWith("handoff"))
173
+ continue;
174
+ if (note.startsWith(LADDER_ATTEMPT_PREFIX) ||
175
+ note.startsWith(LADDER_RUNG_PREFIX) ||
176
+ note.startsWith(LADDER_EXHAUSTED_PREFIX) ||
177
+ note.startsWith(LADDER_SUSPEND_PREFIX) ||
178
+ note.startsWith(LADDER_RESUME_PREFIX))
179
+ continue;
180
+ return true;
181
+ }
182
+ return false;
183
+ }
184
+ function classifyWakeResult(lastNudgeResult) {
185
+ if (!lastNudgeResult)
186
+ return null;
187
+ if (lastNudgeResult.startsWith("failed:"))
188
+ return "failed";
189
+ if (lastNudgeResult === "delivered-ack-pending" ||
190
+ lastNudgeResult.startsWith("indeterminate:") ||
191
+ lastNudgeResult.startsWith("gateway-owned:"))
192
+ return "unconfirmed";
193
+ return null; // verified (or unknown vocabulary) — never enters the ladder
194
+ }
195
+ /** F2 — derived suspension: the destination's post-swap grace (nodes.handover_at within
196
+ * the bound), or the operator-declared override. Returns the reason, or null. */
197
+ function suspensionReason(db, destination, graceSeconds, now) {
198
+ const override = process.env[WAKE_SUSPEND_OVERRIDE_ENV];
199
+ if (override) {
200
+ for (const entry of override.split(",")) {
201
+ const idx = entry.lastIndexOf(":");
202
+ const session = entry.slice(0, entry.indexOf(":"));
203
+ const untilIso = entry.slice(entry.indexOf(":") + 1);
204
+ void idx;
205
+ if (session === destination) {
206
+ const until = Date.parse(untilIso);
207
+ if (!Number.isNaN(until) && now.getTime() < until) {
208
+ return `operator override (${WAKE_SUSPEND_OVERRIDE_ENV}) until ${untilIso}`;
209
+ }
210
+ }
211
+ }
212
+ }
213
+ // The durable session→node binding — never a string transform of the session name
214
+ // (canonical dash-form sessions and dotted logical ids are independent identities).
215
+ const nodeId = resolveSessionNodeId(db, destination);
216
+ if (!nodeId)
217
+ return null;
218
+ const row = db
219
+ .prepare("SELECT handover_at AS handoverAt FROM nodes WHERE id = ? LIMIT 1")
220
+ .get(nodeId);
221
+ if (!row?.handoverAt)
222
+ return null;
223
+ const swapAt = Date.parse(row.handoverAt);
224
+ if (Number.isNaN(swapAt))
225
+ return null;
226
+ const ageS = (now.getTime() - swapAt) / 1000;
227
+ if (ageS >= 0 && ageS < graceSeconds) {
228
+ return `destination in post-swap grace (handover ${Math.round(ageS)}s ago, grace ${graceSeconds}s)`;
229
+ }
230
+ return null;
231
+ }
232
+ function appendMarker(repo, row, note) {
233
+ repo.transitionLog.append({
234
+ qitemId: row.qitemId,
235
+ state: row.state,
236
+ actorSession: LADDER_ACTOR,
237
+ transitionNote: note,
238
+ });
239
+ }
240
+ function minutesSince(ts, now) {
241
+ if (ts === null || ts === undefined)
242
+ return 0;
243
+ const t = typeof ts === "number" ? ts : Date.parse(ts);
244
+ if (Number.isNaN(t))
245
+ return 0;
246
+ return Math.max(0, Math.round((now.getTime() - t) / 60_000));
247
+ }
248
+ /**
249
+ * One ladder tick. Everything is derived from the row + transition log — the tick holds
250
+ * no memory (F6). Never throws: a tick that cannot run is loud on the status surface
251
+ * and the log, because a silent skip is the exact class this slice kills.
252
+ */
253
+ export async function runWakeLadderTick(deps) {
254
+ const log = deps.log ?? ((line) => console.error(line));
255
+ const status = deps.status;
256
+ try {
257
+ const now = deps.now ?? new Date();
258
+ const intervalS = deps.retryIntervalSeconds ?? resolveWakeRetryIntervalSeconds();
259
+ const cap = deps.retryCap ?? resolveWakeRetryCap();
260
+ const windowMin = deps.unconfirmedWindowMinutes ?? resolveWakeUnconfirmedWindowMinutes();
261
+ const graceS = deps.swapGraceSeconds ?? resolveWakeSwapGraceSeconds();
262
+ const resolveOrch = deps.resolveOrchestrator ?? ((session) => defaultResolveOrchestrator(deps.db, session));
263
+ const attemptWake = deps.attemptWake ??
264
+ (async (qitemId, target) => {
265
+ await deps.queueRepo.maybeNudge(qitemId, target, true);
266
+ return deps.queueRepo.getById(qitemId)?.lastNudgeResult ?? "indeterminate:no transport available";
267
+ });
268
+ const actions = [];
269
+ let exhaustedThisTick = 0;
270
+ // Batons: handed-off rows still pending and unclaimed. Created-with-destination rows
271
+ // are explicitly NOT here — that hole is S02's net (F5).
272
+ const batonRows = deps.db
273
+ .prepare(`SELECT qitem_id FROM queue_items
274
+ WHERE state = 'pending' AND claimed_at IS NULL AND handed_off_from IS NOT NULL`)
275
+ .all();
276
+ /** Escalation-phase members grouped per destination (F3 aggregation). */
277
+ const escalating = new Map();
278
+ /** Per-destination wake attempts inside the current window, across ALL ladders (F3
279
+ * rate bound). Seeded from recorded markers so restarts keep the bound too. */
280
+ const windowBudget = new Map();
281
+ let activeLadders = 0;
282
+ const budgetFor = (dest) => {
283
+ if (!windowBudget.has(dest)) {
284
+ const since = new Date(now.getTime() - intervalS * 1000).toISOString();
285
+ const counted = deps.db
286
+ .prepare(`SELECT COUNT(*) AS n FROM queue_transitions t JOIN queue_items q ON q.qitem_id = t.qitem_id
287
+ WHERE q.destination_session = ? AND t.transition_note LIKE ? AND t.ts >= ?`)
288
+ .get(dest, `${LADDER_ATTEMPT_PREFIX}%`, since);
289
+ windowBudget.set(dest, counted.n);
290
+ }
291
+ return windowBudget.get(dest);
292
+ };
293
+ for (const { qitem_id } of batonRows) {
294
+ const row = deps.queueRepo.getById(qitem_id);
295
+ if (!row)
296
+ continue;
297
+ const mode = classifyWakeResult(row.lastNudgeResult);
298
+ if (!mode)
299
+ continue;
300
+ const view = readLadder(deps.db, row.qitemId);
301
+ if (view.exhausted)
302
+ continue; // finite: an exhausted ladder never re-fires
303
+ // F1 gates for the unconfirmed class: never re-nudge; enter only past the window
304
+ // with zero pickup evidence.
305
+ if (mode === "unconfirmed") {
306
+ if (minutesSince(row.tsCreated, now) < windowMin)
307
+ continue;
308
+ if (hasPickupEvidence(deps.db, row))
309
+ continue;
310
+ }
311
+ activeLadders += 1;
312
+ // Due-ness: the latest ladder marker (or the original nudge attempt) is older than
313
+ // the retry interval. No markers + no recorded attempt = due now. Gates ACTIONS
314
+ // only — detection (and the aggregate refresh) is not throttled by it.
315
+ const lastActivity = view.lastMarkerTs ?? (row.lastNudgeAttempt ? Date.parse(row.lastNudgeAttempt) : null);
316
+ const due = lastActivity === null || Number.isNaN(lastActivity) || now.getTime() - lastActivity >= intervalS * 1000;
317
+ const suspended = due ? suspensionReason(deps.db, row.destinationSession, graceS, now) : null;
318
+ // Retry rung — failed outcomes only, under the cap, inside the destination budget.
319
+ if (mode === "failed" && view.attempts < cap) {
320
+ if (!due)
321
+ continue;
322
+ // F2 — derived suspension, checked only when the ladder would otherwise act.
323
+ if (suspended) {
324
+ if (!view.suspendEpisodeOpen) {
325
+ appendMarker(deps.queueRepo, row, `${LADDER_SUSPEND_PREFIX} ${suspended}`);
326
+ actions.push({ qitemId: row.qitemId, action: "suspend" });
327
+ }
328
+ continue;
329
+ }
330
+ if (view.suspendEpisodeOpen) {
331
+ appendMarker(deps.queueRepo, row, `${LADDER_RESUME_PREFIX} suspension over; ladder resumes`);
332
+ actions.push({ qitemId: row.qitemId, action: "resume" });
333
+ }
334
+ if (budgetFor(row.destinationSession) >= cap)
335
+ continue; // destination-bounded (F3)
336
+ windowBudget.set(row.destinationSession, budgetFor(row.destinationSession) + 1);
337
+ const outcome = await attemptWake(row.qitemId, row.destinationSession);
338
+ appendMarker(deps.queueRepo, row, `${LADDER_ATTEMPT_PREFIX} ${view.attempts + 1}/${cap} outcome=${outcome}`);
339
+ actions.push({ qitemId: row.qitemId, action: "retry", target: row.destinationSession });
340
+ continue;
341
+ }
342
+ // Escalation phase (past the cap, or the F1 direct path). Grouped per destination
343
+ // regardless of due-ness so the aggregate refresh rides every detection pass.
344
+ const reason = mode === "failed"
345
+ ? `wake failed ${view.attempts} times over ${minutesSince(view.firstMarkerTs ?? row.tsCreated, now)} min`
346
+ : `unconfirmed delivery with no pickup evidence over ${minutesSince(row.tsCreated, now)} min`;
347
+ const dest = row.destinationSession;
348
+ if (!escalating.has(dest))
349
+ escalating.set(dest, []);
350
+ escalating.get(dest).push({ row, view, mode, reason, due, suspended });
351
+ }
352
+ // F3 — per-destination aggregation: ONE escalation carrying the row list, refreshed
353
+ // not duplicated (the S02 idempotency shape), and rung markers on every member baton.
354
+ for (const [dest, members] of escalating) {
355
+ const orch = resolveOrch(dest);
356
+ // F3 — the aggregate refresh is detection-gated (the S02 idempotency shape): a
357
+ // live escalation group refreshes its one open row every pass, no wake attached.
358
+ await refreshEscalationRowIfExists(deps, dest, members);
359
+ const actionable = members.filter((m) => m.due && !m.suspended);
360
+ const needsOrchRung = actionable.filter((m) => !m.view.orchRung);
361
+ const reason = needsOrchRung[0]?.reason ?? members[0].reason;
362
+ if (needsOrchRung.length > 0) {
363
+ if (orch === null || orch === dest) {
364
+ // F4: rung 1 self-skips when it resolves to the destination itself (or nowhere)
365
+ // — never escalate INTO the dead seat; fall through to the operator rung now.
366
+ // The operator floor must be a VISIBLE OBJECT, not markers alone: ensure the
367
+ // per-destination escalation row exists (addressed to the operator seat, else
368
+ // the obligation's own creator) so the escalations view and the health count
369
+ // expose it — it stays open past the batons' exhaustion.
370
+ const floorDest = resolveOperatorSeat() ?? needsOrchRung[0].row.sourceSession;
371
+ await ensureEscalationRow(deps, dest, floorDest, needsOrchRung, reason);
372
+ for (const m of needsOrchRung) {
373
+ appendMarker(deps.queueRepo, m.row, `${LADDER_RUNG_PREFIX} orchestrator self-skip (resolves to ${orch === null ? "no orchestrator" : "destination"}) reason=${m.reason}`);
374
+ operatorRung(deps.queueRepo, m.row, m.reason, actions);
375
+ appendExhausted(deps.queueRepo, m.row, "operator rung reached");
376
+ exhaustedThisTick += 1;
377
+ }
378
+ }
379
+ else {
380
+ const escRow = await ensureEscalationRow(deps, dest, orch, members, reason);
381
+ const outcome = await attemptWake(escRow.qitemId, orch);
382
+ for (const m of needsOrchRung) {
383
+ appendMarker(deps.queueRepo, m.row, `${LADDER_RUNG_PREFIX} orchestrator -> ${orch} outcome=${outcome} reason=${m.reason}`);
384
+ actions.push({ qitemId: m.row.qitemId, action: "escalate-orchestrator", target: orch });
385
+ if (!outcome.startsWith("failed:")) {
386
+ // Delivered (or durable-unconfirmed — the aggregate row itself is now the
387
+ // orchestrator's durable obligation; S02 nets it if it sits unclaimed).
388
+ appendExhausted(deps.queueRepo, m.row, `escalated to orchestrator (${outcome === "verified" ? "delivered" : outcome})`);
389
+ exhaustedThisTick += 1;
390
+ }
391
+ }
392
+ }
393
+ continue; // one rung per destination per tick — bounded advance (F4)
394
+ }
395
+ // Orchestrator rung recorded and failed → advance to the operator rung.
396
+ for (const m of actionable) {
397
+ if (m.view.orchRung && m.view.orchRungFailed && !m.view.opRung) {
398
+ operatorRung(deps.queueRepo, m.row, m.reason, actions);
399
+ appendExhausted(deps.queueRepo, m.row, "operator rung reached");
400
+ exhaustedThisTick += 1;
401
+ }
402
+ }
403
+ }
404
+ const escalationsOpen = deps.db
405
+ .prepare(`SELECT COUNT(*) AS n FROM queue_items
406
+ WHERE state IN ('pending','in-progress','blocked') AND tags LIKE ?`)
407
+ .get(`%"${WAKE_ESCALATION_TAG}"%`).n;
408
+ const outcome = actions.length > 0 ? "actions" : "clean";
409
+ status?.record(outcome, { active: activeLadders, escalations: escalationsOpen, exhausted: exhaustedThisTick });
410
+ return { outcome, actions };
411
+ }
412
+ catch (err) {
413
+ const message = err instanceof Error ? err.message : String(err);
414
+ log(`[wake-ladder] TICK FAILED (skipping loudly): ${message}`);
415
+ status?.record("failed", { error: message });
416
+ return { outcome: "failed", actions: [], error: message };
417
+ }
418
+ }
419
+ /** The operator rung: records and advances (AM-R25 trim). Its delivery floor here is the
420
+ * escalation view + the daemon-health surface, stated honestly on the marker; the
421
+ * human-layer connector attempt is S11 territory (0.5.6) and rides in when S11 lands. */
422
+ function operatorRung(repo, row, reason, actions) {
423
+ appendMarker(repo, row, `${LADDER_RUNG_PREFIX} operator floor=escalation view + daemon-health (human-layer connector = S11/0.5.6, cited not built) reason=${reason}`);
424
+ actions.push({ qitemId: row.qitemId, action: "escalate-operator" });
425
+ }
426
+ function appendExhausted(repo, row, why) {
427
+ appendMarker(repo, row, `${LADDER_EXHAUSTED_PREFIX} ${why}`);
428
+ }
429
+ /** Ensure the per-destination aggregate escalation row (F3): one open row, deduped by
430
+ * tag, refreshed on re-detection — never one row per baton. The row is a NEW durable
431
+ * obligation addressed to the orchestrator; the baton itself is never duplicated. */
432
+ /** Refresh-only leg of the F3 aggregate: an already-open escalation row gains a
433
+ * detection-pass note naming the current member list; creation stays with the rung
434
+ * action so a row never exists before its first delivery attempt. */
435
+ async function refreshEscalationRowIfExists(deps, dest, members) {
436
+ const existing = deps.db
437
+ .prepare(`SELECT qitem_id FROM queue_items
438
+ WHERE state IN ('pending','in-progress','blocked') AND tags LIKE ? LIMIT 1`)
439
+ .get(`%"${escalationDedupTag(dest)}"%`);
440
+ if (!existing)
441
+ return;
442
+ deps.queueRepo.transitionLog.append({
443
+ qitemId: existing.qitem_id,
444
+ state: "pending",
445
+ actorSession: LADDER_ACTOR,
446
+ transitionNote: `wake-escalation refresh: ${members.length} stuck baton(s) for ${dest} — ${members
447
+ .map((m) => m.row.qitemId)
448
+ .join(", ")}`,
449
+ });
450
+ }
451
+ async function ensureEscalationRow(deps, dest, orch, members, reason) {
452
+ const dedupTag = escalationDedupTag(dest);
453
+ const existing = deps.db
454
+ .prepare(`SELECT qitem_id FROM queue_items
455
+ WHERE state IN ('pending','in-progress','blocked') AND tags LIKE ? LIMIT 1`)
456
+ .get(`%"${dedupTag}"%`);
457
+ if (existing) {
458
+ deps.queueRepo.transitionLog.append({
459
+ qitemId: existing.qitem_id,
460
+ state: "pending",
461
+ actorSession: LADDER_ACTOR,
462
+ transitionNote: `wake-escalation refresh: ${members.length} stuck baton(s) for ${dest} — ${members
463
+ .map((m) => m.row.qitemId)
464
+ .join(", ")}`,
465
+ });
466
+ return { qitemId: existing.qitem_id };
467
+ }
468
+ const body = `WAKE ESCALATION (aggregated per destination)\n` +
469
+ `destination: ${dest}\n` +
470
+ `reason: ${reason}\n` +
471
+ `stuck batons (${members.length}):\n` +
472
+ members.map((m) => `- ${m.row.qitemId} (${m.reason})`).join("\n") +
473
+ `\nThe rows above still carry their obligations exactly-once; this escalation is the wake, not the content.`;
474
+ const created = await deps.queueRepo.create({
475
+ sourceSession: members[0].row.sourceSession,
476
+ destinationSession: orch,
477
+ body,
478
+ summary: `Wake escalation: ${members.length} baton(s) stuck at ${dest} — ${reason}`,
479
+ tags: [WAKE_ESCALATION_TAG, dedupTag],
480
+ nudge: false, // delivery is the ladder's own rung attempt, recorded with its outcome
481
+ });
482
+ return { qitemId: created.qitemId };
483
+ }
484
+ /** The standing loop — the watchdog-scheduler pattern (injected seams, runTickNow, no
485
+ * overlapping ticks), so the ladder is unit-drivable without timers. */
486
+ export class WakeLadderScheduler {
487
+ deps;
488
+ timer = null;
489
+ inflight = null;
490
+ shuttingDown = false;
491
+ started = false;
492
+ constructor(deps) {
493
+ this.deps = deps;
494
+ }
495
+ start() {
496
+ if (this.started)
497
+ return;
498
+ this.started = true;
499
+ this.shuttingDown = false;
500
+ this.scheduleNext();
501
+ }
502
+ async stop() {
503
+ this.shuttingDown = true;
504
+ if (this.timer) {
505
+ (this.deps.clearTimer ?? clearTimeout)(this.timer);
506
+ this.timer = null;
507
+ }
508
+ if (this.inflight)
509
+ await this.inflight.catch(() => { });
510
+ this.started = false;
511
+ }
512
+ async runTickNow() {
513
+ if (this.inflight) {
514
+ await this.inflight;
515
+ return;
516
+ }
517
+ this.inflight = this.deps.runTick().finally(() => {
518
+ this.inflight = null;
519
+ });
520
+ await this.inflight;
521
+ }
522
+ scheduleNext() {
523
+ if (this.shuttingDown)
524
+ return;
525
+ const ms = this.deps.tickIntervalMs ?? DEFAULT_WAKE_RETRY_INTERVAL_SECONDS * 1000;
526
+ this.timer = (this.deps.setTimer ?? setTimeout)(() => {
527
+ void this.runTickNow()
528
+ .catch((err) => (this.deps.onTickError ?? console.error)(err))
529
+ .finally(() => this.scheduleNext());
530
+ }, ms);
531
+ }
532
+ }
533
+ //# sourceMappingURL=queue-wake-ladder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-wake-ladder.js","sourceRoot":"","sources":["../../src/domain/queue-wake-ladder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type Database from "better-sqlite3";
2
+ export type ParkWakeKind = "watchdog" | "timer" | "blocker";
3
+ export type ParkWakePhase = "armed" | "fired";
4
+ export interface QueueWakeRecord {
5
+ transitionId: number;
6
+ qitemId: string;
7
+ phase: ParkWakePhase;
8
+ kind: ParkWakeKind;
9
+ ref: string;
10
+ deliveryStatus: string | null;
11
+ }
12
+ export interface ParkWakeStatus {
13
+ kind: ParkWakeKind;
14
+ ref: string;
15
+ phase: ParkWakePhase;
16
+ live: boolean;
17
+ deliveryStatus: string | null;
18
+ /** A wake fired, but the row is still HELD. The resume attempt is visible
19
+ * and cannot be mistaken for a healthy armed continuation. */
20
+ unconsumed: boolean;
21
+ }
22
+ /** Persistence + live-state projection for transition-bound park wakes. */
23
+ export declare class QueueWakeRepository {
24
+ private readonly db;
25
+ private readonly available;
26
+ constructor(db: Database.Database);
27
+ record(input: QueueWakeRecord): void;
28
+ getForTransition(transitionId: number): QueueWakeRecord | null;
29
+ getStatus(qitemId: string): ParkWakeStatus | null;
30
+ findBlockedQitemsByWatchdog(jobId: string): Array<{
31
+ qitemId: string;
32
+ kind: "watchdog" | "timer";
33
+ }>;
34
+ private isLive;
35
+ private row;
36
+ }
37
+ //# sourceMappingURL=queue-wake-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-wake-repository.d.ts","sourceRoot":"","sources":["../../src/domain/queue-wake-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;mEAC+D;IAC/D,UAAU,EAAE,OAAO,CAAC;CACrB;AAWD,2EAA2E;AAC3E,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,EAAE;IAF/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAEP,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAMlD,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAgBpC,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAQ9D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IA2BjD,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAA;KAAE,CAAC;IAmBlG,OAAO,CAAC,MAAM;IAad,OAAO,CAAC,GAAG;CAUZ"}