@openrig/cli 0.5.4 → 0.5.6

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 (1157) hide show
  1. package/daemon/assets/continuity/apprentice-cutover.md +19 -0
  2. package/daemon/assets/continuity/apprentice-prepare.md +17 -0
  3. package/daemon/assets/guidance/openrig-start.md +7 -0
  4. package/daemon/assets/onboarding/01-world-and-purpose.md +52 -0
  5. package/daemon/assets/onboarding/02-self-and-competent-action.md +57 -0
  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 +271 -124
  10. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +3 -3
  11. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +0 -0
  12. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
  13. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -9
  14. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +82 -118
  15. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +20 -26
  16. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +397 -0
  17. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +572 -0
  18. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/scaffold.sh +34 -0
  19. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trace-due.sh +32 -0
  20. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trace-stamp.sh +5 -0
  21. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/trunk-diff.sh +18 -0
  22. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/LEARNED.md +40 -0
  23. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/NOTES.md +9 -0
  24. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/PLAYBOOK.md +5 -0
  25. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SOP.md +24 -0
  26. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/templates/SPEC.md +54 -0
  27. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +11 -6
  28. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +1 -12
  29. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +1 -1
  30. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +15 -0
  31. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +4 -16
  32. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +31 -0
  33. package/daemon/assets/plugins/openrig-core/skills/refocusing/references/refocus.md +22 -0
  34. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +264 -0
  35. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +26 -6
  36. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +3 -0
  37. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-evidence-toolkit.md +32 -0
  38. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md +256 -0
  39. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/references/orchestrator-role.md +40 -0
  40. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +9 -4
  41. package/daemon/assets/vm-preview-fixtures/README.md +16 -38
  42. package/daemon/assets/vm-preview-fixtures/workflows/sample-basic-loop.yaml +4 -5
  43. package/daemon/context-packs/onboarding-width/manifest.yaml +14 -0
  44. package/daemon/context-packs/{world/install/reference-material.md → onboarding-width/public-reference-material.md} +5 -27
  45. package/daemon/context-packs/{world/install/what-you-can-do.md → onboarding-width/public-what-you-can-do.md} +13 -9
  46. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +2 -1
  47. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +2 -1
  48. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +6 -13
  49. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +2 -1
  50. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +2 -1
  51. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +98 -0
  52. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +10 -0
  53. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +2 -1
  54. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +2 -1
  55. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +2 -1
  56. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +118 -0
  57. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +10 -0
  58. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +19 -75
  59. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +2 -1
  60. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +2 -1
  61. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +2 -1
  62. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +2 -1
  63. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +2 -1
  64. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +2 -1
  65. package/daemon/context-packs/skills/core/watchdog/SKILL.md +4 -10
  66. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +2 -1
  67. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +2 -1
  68. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +2 -1
  69. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +2 -1
  70. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +2 -1
  71. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +2 -1
  72. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +2 -1
  73. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +2 -1
  74. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +2 -1
  75. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +2 -1
  76. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +2 -1
  77. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +2 -1
  78. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +2 -1
  79. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +2 -1
  80. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +2 -1
  81. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +2 -1
  82. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +2 -1
  83. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +2 -1
  84. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +0 -0
  85. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +2 -1
  86. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +2 -1
  87. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +2 -1
  88. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +2 -1
  89. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +2 -1
  90. package/daemon/context-packs/world-example/manifest.yaml +21 -0
  91. package/daemon/context-packs/world-example/your-world.md +54 -0
  92. package/daemon/context-packs/world-public/boundaries.md +33 -0
  93. package/daemon/context-packs/world-public/build-your-world.md +84 -0
  94. package/daemon/context-packs/world-public/claims.yaml +205 -0
  95. package/daemon/context-packs/world-public/manifest.yaml +59 -0
  96. package/daemon/context-packs/world-public/start-here.md +51 -0
  97. package/daemon/context-packs/world-public/verify-world.sh +522 -0
  98. package/daemon/dist/adapters/claude-code-adapter.d.ts +15 -0
  99. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  100. package/daemon/dist/adapters/claude-code-adapter.js +57 -0
  101. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  102. package/daemon/dist/build-info.js +3 -3
  103. package/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
  104. package/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
  105. package/daemon/dist/context-pack-taxonomy-surface.js +6 -0
  106. package/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
  107. package/daemon/dist/db/all-migrations.d.ts +1 -1
  108. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  109. package/daemon/dist/db/all-migrations.js +12 -2
  110. package/daemon/dist/db/all-migrations.js.map +1 -1
  111. package/daemon/dist/db/migrations/072_thread_seat_map.d.ts +3 -0
  112. package/daemon/dist/db/migrations/072_thread_seat_map.d.ts.map +1 -0
  113. package/daemon/dist/db/migrations/072_thread_seat_map.js +22 -0
  114. package/daemon/dist/db/migrations/072_thread_seat_map.js.map +1 -0
  115. package/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts +3 -0
  116. package/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts.map +1 -0
  117. package/daemon/dist/db/migrations/073_queue_transition_wakes.js +21 -0
  118. package/daemon/dist/db/migrations/073_queue_transition_wakes.js.map +1 -0
  119. package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
  120. package/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
  121. package/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
  122. package/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
  123. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
  124. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
  125. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
  126. package/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
  127. package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
  128. package/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
  129. package/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
  130. package/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
  131. package/daemon/dist/domain/active-occupant.d.ts +44 -0
  132. package/daemon/dist/domain/active-occupant.d.ts.map +1 -0
  133. package/daemon/dist/domain/active-occupant.js +72 -0
  134. package/daemon/dist/domain/active-occupant.js.map +1 -0
  135. package/daemon/dist/domain/activity-taxonomy.d.ts +112 -0
  136. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -0
  137. package/daemon/dist/domain/activity-taxonomy.js +99 -0
  138. package/daemon/dist/domain/activity-taxonomy.js.map +1 -0
  139. package/daemon/dist/domain/agent-manifest.d.ts +6 -0
  140. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  141. package/daemon/dist/domain/agent-manifest.js +77 -15
  142. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  143. package/daemon/dist/domain/agent-resolver.d.ts +11 -0
  144. package/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
  145. package/daemon/dist/domain/agent-resolver.js +55 -0
  146. package/daemon/dist/domain/agent-resolver.js.map +1 -1
  147. package/daemon/dist/domain/bind-plan.d.ts +19 -0
  148. package/daemon/dist/domain/bind-plan.d.ts.map +1 -0
  149. package/daemon/dist/domain/bind-plan.js +25 -0
  150. package/daemon/dist/domain/bind-plan.js.map +1 -0
  151. package/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
  152. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  153. package/daemon/dist/domain/bundle-context-packs-router.js +18 -0
  154. package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  155. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
  156. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  157. package/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
  158. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  159. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  160. package/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
  161. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  162. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -0
  163. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  164. package/daemon/dist/domain/context-packs/context-pack-types.js +11 -0
  165. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  166. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  167. package/daemon/dist/domain/context-packs/manifest-parser.js +13 -1
  168. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  169. package/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
  170. package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
  171. package/daemon/dist/domain/continuity-policy-materializer.js +290 -0
  172. package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
  173. package/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
  174. package/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
  175. package/daemon/dist/domain/continuity-stack-packets.js +99 -0
  176. package/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
  177. package/daemon/dist/domain/event-bus.d.ts +6 -0
  178. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  179. package/daemon/dist/domain/event-bus.js +15 -5
  180. package/daemon/dist/domain/event-bus.js.map +1 -1
  181. package/daemon/dist/domain/execution-view.d.ts +39 -0
  182. package/daemon/dist/domain/execution-view.d.ts.map +1 -0
  183. package/daemon/dist/domain/execution-view.js +707 -0
  184. package/daemon/dist/domain/execution-view.js.map +1 -0
  185. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
  186. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
  187. package/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
  188. package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
  189. package/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
  190. package/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
  191. package/daemon/dist/domain/gateway/destination-resolver.js +52 -0
  192. package/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
  193. package/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
  194. package/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
  195. package/daemon/dist/domain/gateway/dispatcher.js +9 -2
  196. package/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
  197. package/daemon/dist/domain/gateway/gateway-process-main.d.ts.map +1 -1
  198. package/daemon/dist/domain/gateway/gateway-process-main.js +9 -0
  199. package/daemon/dist/domain/gateway/gateway-process-main.js.map +1 -1
  200. package/daemon/dist/domain/gateway/gateway-process.d.ts.map +1 -1
  201. package/daemon/dist/domain/gateway/gateway-process.js +9 -0
  202. package/daemon/dist/domain/gateway/gateway-process.js.map +1 -1
  203. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +84 -0
  204. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -0
  205. package/daemon/dist/domain/gateway/gateway-subsystem.js +151 -0
  206. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -0
  207. package/daemon/dist/domain/gateway/human-registry.d.ts +118 -1
  208. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  209. package/daemon/dist/domain/gateway/human-registry.js +282 -1
  210. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  211. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
  212. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
  213. package/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
  214. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
  215. package/{dist → daemon/dist/domain/gateway}/slack/config.d.ts +11 -7
  216. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -0
  217. package/{dist → daemon/dist/domain/gateway}/slack/config.js +28 -10
  218. package/daemon/dist/domain/gateway/slack/config.js.map +1 -0
  219. package/{dist → daemon/dist/domain/gateway}/slack/inbound-admission.d.ts +1 -1
  220. package/daemon/dist/domain/gateway/slack/inbound-admission.d.ts.map +1 -0
  221. package/daemon/dist/domain/gateway/slack/inbound-admission.js.map +1 -0
  222. package/{dist → daemon/dist/domain/gateway}/slack/inbound.d.ts +48 -9
  223. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -0
  224. package/{dist → daemon/dist/domain/gateway}/slack/inbound.js +66 -14
  225. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -0
  226. package/daemon/dist/domain/gateway/slack/message.d.ts +80 -0
  227. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -0
  228. package/daemon/dist/domain/gateway/slack/message.js +164 -0
  229. package/daemon/dist/domain/gateway/slack/message.js.map +1 -0
  230. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +57 -0
  231. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -0
  232. package/daemon/dist/domain/gateway/slack/outbound-driver.js +103 -0
  233. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -0
  234. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +58 -0
  235. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -0
  236. package/daemon/dist/domain/gateway/slack/queue-access.js +99 -0
  237. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -0
  238. package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -0
  239. package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -0
  240. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +129 -0
  241. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -0
  242. package/daemon/dist/domain/gateway/slack/slack-api.js +236 -0
  243. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -0
  244. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +53 -0
  245. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -0
  246. package/daemon/dist/domain/gateway/slack/slack-delivery.js +267 -0
  247. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -0
  248. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +31 -0
  249. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -0
  250. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +473 -0
  251. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -0
  252. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +30 -0
  253. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -0
  254. package/daemon/dist/domain/gateway/slack/socket-inbound.js +99 -0
  255. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -0
  256. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -0
  257. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -0
  258. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +17 -0
  259. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -0
  260. package/daemon/dist/domain/gateway/slack/thread-routing.js +35 -0
  261. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -0
  262. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +56 -0
  263. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -0
  264. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +103 -0
  265. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -0
  266. package/daemon/dist/domain/gateway/spawn-gateway.d.ts.map +1 -1
  267. package/daemon/dist/domain/gateway/spawn-gateway.js +9 -0
  268. package/daemon/dist/domain/gateway/spawn-gateway.js.map +1 -1
  269. package/daemon/dist/domain/gateway/transport.d.ts.map +1 -1
  270. package/daemon/dist/domain/gateway/transport.js +9 -0
  271. package/daemon/dist/domain/gateway/transport.js.map +1 -1
  272. package/daemon/dist/domain/graph-projection.d.ts +6 -0
  273. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  274. package/daemon/dist/domain/graph-projection.js +6 -0
  275. package/daemon/dist/domain/graph-projection.js.map +1 -1
  276. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  277. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
  278. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  279. package/daemon/dist/domain/node-inventory.d.ts +41 -3
  280. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  281. package/daemon/dist/domain/node-inventory.js +65 -48
  282. package/daemon/dist/domain/node-inventory.js.map +1 -1
  283. package/daemon/dist/domain/parked-query.d.ts +82 -0
  284. package/daemon/dist/domain/parked-query.d.ts.map +1 -0
  285. package/daemon/dist/domain/parked-query.js +127 -0
  286. package/daemon/dist/domain/parked-query.js.map +1 -0
  287. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  288. package/daemon/dist/domain/pod-bundle-assembler.js +12 -5
  289. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  290. package/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
  291. package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
  292. package/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
  293. package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
  294. package/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
  295. package/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
  296. package/daemon/dist/domain/policies/delivery-deferral.js +153 -0
  297. package/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
  298. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
  299. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
  300. package/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
  301. package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
  302. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
  303. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
  304. package/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
  305. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
  306. package/daemon/dist/domain/policies/types.d.ts +8 -0
  307. package/daemon/dist/domain/policies/types.d.ts.map +1 -1
  308. package/daemon/dist/domain/profile-resolver.d.ts +4 -0
  309. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  310. package/daemon/dist/domain/profile-resolver.js +58 -0
  311. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  312. package/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
  313. package/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
  314. package/daemon/dist/domain/provider/provider-signals.js +64 -0
  315. package/daemon/dist/domain/provider/provider-signals.js.map +1 -1
  316. package/daemon/dist/domain/ps-projection.d.ts +7 -5
  317. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  318. package/daemon/dist/domain/ps-projection.js +19 -32
  319. package/daemon/dist/domain/ps-projection.js.map +1 -1
  320. package/daemon/dist/domain/queue-pickup.d.ts +38 -0
  321. package/daemon/dist/domain/queue-pickup.d.ts.map +1 -0
  322. package/daemon/dist/domain/queue-pickup.js +72 -0
  323. package/daemon/dist/domain/queue-pickup.js.map +1 -0
  324. package/daemon/dist/domain/queue-repository.d.ts +93 -28
  325. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  326. package/daemon/dist/domain/queue-repository.js +626 -90
  327. package/daemon/dist/domain/queue-repository.js.map +1 -1
  328. package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  329. package/daemon/dist/domain/queue-retention.js +8 -2
  330. package/daemon/dist/domain/queue-retention.js.map +1 -1
  331. package/daemon/dist/domain/queue-stuck-sweep.d.ts +100 -0
  332. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -0
  333. package/daemon/dist/domain/queue-stuck-sweep.js +485 -0
  334. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -0
  335. package/daemon/dist/domain/queue-transition-log.d.ts +10 -0
  336. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  337. package/daemon/dist/domain/queue-transition-log.js +49 -11
  338. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  339. package/daemon/dist/domain/queue-wake-ladder.d.ts +114 -0
  340. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -0
  341. package/daemon/dist/domain/queue-wake-ladder.js +705 -0
  342. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -0
  343. package/daemon/dist/domain/queue-wake-repository.d.ts +53 -0
  344. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -0
  345. package/daemon/dist/domain/queue-wake-repository.js +129 -0
  346. package/daemon/dist/domain/queue-wake-repository.js.map +1 -0
  347. package/daemon/dist/domain/rebuild-priming-chain.d.ts +28 -0
  348. package/daemon/dist/domain/rebuild-priming-chain.d.ts.map +1 -0
  349. package/daemon/dist/domain/rebuild-priming-chain.js +71 -0
  350. package/daemon/dist/domain/rebuild-priming-chain.js.map +1 -0
  351. package/daemon/dist/domain/restore-check-service.js +1 -1
  352. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  353. package/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
  354. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  355. package/daemon/dist/domain/restore-orchestrator.js +88 -15
  356. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  357. package/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
  358. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  359. package/daemon/dist/domain/restore-plan-preview.js +37 -19
  360. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  361. package/daemon/dist/domain/review/compose.d.ts +3 -1
  362. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  363. package/daemon/dist/domain/review/compose.js +14 -8
  364. package/daemon/dist/domain/review/compose.js.map +1 -1
  365. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  366. package/daemon/dist/domain/review/gather.js +3 -1
  367. package/daemon/dist/domain/review/gather.js.map +1 -1
  368. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  369. package/daemon/dist/domain/rig-expansion-service.js +10 -9
  370. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  371. package/daemon/dist/domain/rig-repository.d.ts +4 -0
  372. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  373. package/daemon/dist/domain/rig-repository.js +21 -3
  374. package/daemon/dist/domain/rig-repository.js.map +1 -1
  375. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  376. package/daemon/dist/domain/rigspec-codec.js +74 -4
  377. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  378. package/daemon/dist/domain/rigspec-instantiator.d.ts +7 -0
  379. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  380. package/daemon/dist/domain/rigspec-instantiator.js +32 -0
  381. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  382. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  383. package/daemon/dist/domain/rigspec-schema.js +32 -4
  384. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  385. package/daemon/dist/domain/scope/node-file.d.ts +8 -0
  386. package/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
  387. package/daemon/dist/domain/scope/node-file.js +18 -0
  388. package/daemon/dist/domain/scope/node-file.js.map +1 -1
  389. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +6 -5
  390. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  391. package/daemon/dist/domain/scope/plan-lock-artifacts.js +23 -20
  392. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  393. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -5
  394. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  395. package/daemon/dist/domain/scope/scaffold-placeholder.js +6 -7
  396. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  397. package/daemon/dist/domain/scope/scope-approve.d.ts +1 -1
  398. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  399. package/daemon/dist/domain/scope/scope-approve.js +5 -4
  400. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  401. package/daemon/dist/domain/scope/scope-audit.d.ts +46 -4
  402. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  403. package/daemon/dist/domain/scope/scope-audit.js +79 -94
  404. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  405. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  406. package/daemon/dist/domain/scope/scope-view-projection.js +7 -2
  407. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  408. package/daemon/dist/domain/seat-activity-service.d.ts +91 -0
  409. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  410. package/daemon/dist/domain/seat-activity-service.js +416 -1
  411. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  412. package/daemon/dist/domain/seat-handover-planner.d.ts +14 -0
  413. package/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -1
  414. package/daemon/dist/domain/seat-handover-planner.js +14 -1
  415. package/daemon/dist/domain/seat-handover-planner.js.map +1 -1
  416. package/daemon/dist/domain/seat-handover-service.d.ts +54 -1
  417. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  418. package/daemon/dist/domain/seat-handover-service.js +162 -19
  419. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  420. package/daemon/dist/domain/session-transport.js +1 -2
  421. package/daemon/dist/domain/session-transport.js.map +1 -1
  422. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  423. package/daemon/dist/domain/snapshot-capture.js +6 -0
  424. package/daemon/dist/domain/snapshot-capture.js.map +1 -1
  425. package/daemon/dist/domain/successor-session-launcher.d.ts +6 -1
  426. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  427. package/daemon/dist/domain/successor-session-launcher.js +3 -3
  428. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  429. package/daemon/dist/domain/types.d.ts +59 -4
  430. package/daemon/dist/domain/types.d.ts.map +1 -1
  431. package/daemon/dist/domain/types.js.map +1 -1
  432. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  433. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  434. package/daemon/dist/domain/user-settings/settings-store.js +48 -0
  435. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  436. package/daemon/dist/domain/view-projector.d.ts +5 -1
  437. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  438. package/daemon/dist/domain/view-projector.js +65 -2
  439. package/daemon/dist/domain/view-projector.js.map +1 -1
  440. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
  441. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  442. package/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
  443. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  444. package/daemon/dist/domain/watchdog-policy-engine.d.ts +47 -1
  445. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  446. package/daemon/dist/domain/watchdog-policy-engine.js +115 -6
  447. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  448. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  449. package/daemon/dist/domain/watchdog-scheduler.js +3 -2
  450. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  451. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +4 -3
  452. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  453. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +56 -196
  454. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  455. package/daemon/dist/domain/workspace/getting-started-narrative.js +1 -1
  456. package/daemon/dist/domain/workspace/getting-started-narrative.js.map +1 -1
  457. package/daemon/dist/domain/workspace/workspace-doctor.d.ts +8 -11
  458. package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  459. package/daemon/dist/domain/workspace/workspace-doctor.js +22 -26
  460. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  461. package/daemon/dist/gateway-slack-surface.d.ts +4 -0
  462. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -0
  463. package/daemon/dist/gateway-slack-surface.js +8 -0
  464. package/daemon/dist/gateway-slack-surface.js.map +1 -0
  465. package/daemon/dist/index.d.ts +38 -0
  466. package/daemon/dist/index.d.ts.map +1 -1
  467. package/daemon/dist/index.js +122 -4
  468. package/daemon/dist/index.js.map +1 -1
  469. package/daemon/dist/lib/pane-envelope.d.ts +1 -1
  470. package/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  471. package/daemon/dist/lib/pane-envelope.js +8 -14
  472. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  473. package/daemon/dist/routes/activity.d.ts +13 -0
  474. package/daemon/dist/routes/activity.d.ts.map +1 -1
  475. package/daemon/dist/routes/activity.js +186 -0
  476. package/daemon/dist/routes/activity.js.map +1 -1
  477. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  478. package/daemon/dist/routes/agent-images.js +9 -0
  479. package/daemon/dist/routes/agent-images.js.map +1 -1
  480. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  481. package/daemon/dist/routes/bundles.js +61 -1
  482. package/daemon/dist/routes/bundles.js.map +1 -1
  483. package/daemon/dist/routes/config.js +2 -2
  484. package/daemon/dist/routes/config.js.map +1 -1
  485. package/daemon/dist/routes/gateway.d.ts +3 -0
  486. package/daemon/dist/routes/gateway.d.ts.map +1 -0
  487. package/daemon/dist/routes/gateway.js +46 -0
  488. package/daemon/dist/routes/gateway.js.map +1 -0
  489. package/daemon/dist/routes/health-summary.d.ts.map +1 -1
  490. package/daemon/dist/routes/health-summary.js +8 -0
  491. package/daemon/dist/routes/health-summary.js.map +1 -1
  492. package/daemon/dist/routes/queue.d.ts.map +1 -1
  493. package/daemon/dist/routes/queue.js +25 -12
  494. package/daemon/dist/routes/queue.js.map +1 -1
  495. package/daemon/dist/routes/rigs.js +38 -2
  496. package/daemon/dist/routes/rigs.js.map +1 -1
  497. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  498. package/daemon/dist/routes/scope-audit.js +73 -14
  499. package/daemon/dist/routes/scope-audit.js.map +1 -1
  500. package/daemon/dist/routes/seat.d.ts.map +1 -1
  501. package/daemon/dist/routes/seat.js +15 -0
  502. package/daemon/dist/routes/seat.js.map +1 -1
  503. package/daemon/dist/routes/views.d.ts.map +1 -1
  504. package/daemon/dist/routes/views.js +4 -1
  505. package/daemon/dist/routes/views.js.map +1 -1
  506. package/daemon/dist/routes/watchdog.d.ts.map +1 -1
  507. package/daemon/dist/routes/watchdog.js +40 -3
  508. package/daemon/dist/routes/watchdog.js.map +1 -1
  509. package/daemon/dist/server.d.ts +17 -0
  510. package/daemon/dist/server.d.ts.map +1 -1
  511. package/daemon/dist/server.js +30 -4
  512. package/daemon/dist/server.js.map +1 -1
  513. package/daemon/dist/startup.d.ts +4 -0
  514. package/daemon/dist/startup.d.ts.map +1 -1
  515. package/daemon/dist/startup.js +227 -5
  516. package/daemon/dist/startup.js.map +1 -1
  517. package/daemon/docs/reference/agent-spec.md +4 -4
  518. package/daemon/docs/reference/agent-state-taxonomy.md +101 -0
  519. package/daemon/docs/reference/chain-file-convention.md +2 -2
  520. package/daemon/docs/reference/knowledge-maturity.md +123 -0
  521. package/daemon/docs/reference/lore-routing.md +173 -0
  522. package/daemon/docs/reference/mission-install.md +194 -0
  523. package/daemon/docs/reference/planning-dial.md +55 -0
  524. package/daemon/docs/reference/product-management-pass.md +139 -0
  525. package/daemon/docs/reference/project-workspace.md +22 -14
  526. package/daemon/docs/reference/refocus-channel.md +27 -14
  527. package/daemon/docs/reference/release-boundary.md +88 -0
  528. package/daemon/docs/reference/sdlc-conventions.md +66 -82
  529. package/daemon/docs/reference/wave-sdlc.md +113 -0
  530. package/daemon/policies/builtin/standard.policy.md +3 -3
  531. package/daemon/policies/builtin/yolo.policy.md +7 -2
  532. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +6 -13
  533. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +98 -0
  534. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +118 -0
  535. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +19 -75
  536. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -10
  537. package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
  538. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +3 -3
  539. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +3 -3
  540. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -3
  541. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +1 -1
  542. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +1 -1
  543. package/daemon/substance-surfaces.json +8 -0
  544. package/dist/build-info.js +3 -3
  545. package/dist/commands/broadcast.d.ts.map +1 -1
  546. package/dist/commands/broadcast.js +6 -1
  547. package/dist/commands/broadcast.js.map +1 -1
  548. package/dist/commands/capture.js +1 -1
  549. package/dist/commands/config-init-workspace.d.ts.map +1 -1
  550. package/dist/commands/config-init-workspace.js +32 -57
  551. package/dist/commands/config-init-workspace.js.map +1 -1
  552. package/dist/commands/config.d.ts.map +1 -1
  553. package/dist/commands/config.js +5 -0
  554. package/dist/commands/config.js.map +1 -1
  555. package/dist/commands/context.d.ts.map +1 -1
  556. package/dist/commands/context.js +12 -1
  557. package/dist/commands/context.js.map +1 -1
  558. package/dist/commands/daemon.d.ts.map +1 -1
  559. package/dist/commands/daemon.js +14 -4
  560. package/dist/commands/daemon.js.map +1 -1
  561. package/dist/commands/expand.d.ts.map +1 -1
  562. package/dist/commands/expand.js +9 -13
  563. package/dist/commands/expand.js.map +1 -1
  564. package/dist/commands/gateway.d.ts +19 -1
  565. package/dist/commands/gateway.d.ts.map +1 -1
  566. package/dist/commands/gateway.js +157 -33
  567. package/dist/commands/gateway.js.map +1 -1
  568. package/dist/commands/parked.d.ts +3 -0
  569. package/dist/commands/parked.d.ts.map +1 -0
  570. package/dist/commands/parked.js +83 -0
  571. package/dist/commands/parked.js.map +1 -0
  572. package/dist/commands/proof.d.ts +2 -1
  573. package/dist/commands/proof.d.ts.map +1 -1
  574. package/dist/commands/proof.js +8 -8
  575. package/dist/commands/proof.js.map +1 -1
  576. package/dist/commands/ps.d.ts +14 -0
  577. package/dist/commands/ps.d.ts.map +1 -1
  578. package/dist/commands/ps.js +27 -8
  579. package/dist/commands/ps.js.map +1 -1
  580. package/dist/commands/queue.d.ts.map +1 -1
  581. package/dist/commands/queue.js +31 -3
  582. package/dist/commands/queue.js.map +1 -1
  583. package/dist/commands/scope.d.ts.map +1 -1
  584. package/dist/commands/scope.js +284 -136
  585. package/dist/commands/scope.js.map +1 -1
  586. package/dist/commands/seat.d.ts.map +1 -1
  587. package/dist/commands/seat.js +40 -10
  588. package/dist/commands/seat.js.map +1 -1
  589. package/dist/commands/send.d.ts +3 -1
  590. package/dist/commands/send.d.ts.map +1 -1
  591. package/dist/commands/send.js +37 -16
  592. package/dist/commands/send.js.map +1 -1
  593. package/dist/commands/slack.d.ts +14 -28
  594. package/dist/commands/slack.d.ts.map +1 -1
  595. package/dist/commands/slack.js +77 -189
  596. package/dist/commands/slack.js.map +1 -1
  597. package/dist/commands/start.d.ts +3 -0
  598. package/dist/commands/start.d.ts.map +1 -1
  599. package/dist/commands/start.js +12 -5
  600. package/dist/commands/start.js.map +1 -1
  601. package/dist/commands/up.d.ts.map +1 -1
  602. package/dist/commands/up.js +11 -4
  603. package/dist/commands/up.js.map +1 -1
  604. package/dist/commands/view.d.ts +4 -2
  605. package/dist/commands/view.d.ts.map +1 -1
  606. package/dist/commands/view.js +4 -1
  607. package/dist/commands/view.js.map +1 -1
  608. package/dist/commands/watchdog.d.ts.map +1 -1
  609. package/dist/commands/watchdog.js +64 -8
  610. package/dist/commands/watchdog.js.map +1 -1
  611. package/dist/commands/workspace.js +1 -1
  612. package/dist/config-store.d.ts +15 -1
  613. package/dist/config-store.d.ts.map +1 -1
  614. package/dist/config-store.js +60 -0
  615. package/dist/config-store.js.map +1 -1
  616. package/dist/cross-host-target.d.ts.map +1 -1
  617. package/dist/cross-host-target.js +6 -5
  618. package/dist/cross-host-target.js.map +1 -1
  619. package/dist/daemon-lifecycle.d.ts +45 -3
  620. package/dist/daemon-lifecycle.d.ts.map +1 -1
  621. package/dist/daemon-lifecycle.js +126 -0
  622. package/dist/daemon-lifecycle.js.map +1 -1
  623. package/dist/host-registry.d.ts +2 -2
  624. package/dist/host-registry.js +2 -2
  625. package/dist/index.d.ts.map +1 -1
  626. package/dist/index.js +2 -0
  627. package/dist/index.js.map +1 -1
  628. package/dist/lib/scope/capability-delta.d.ts +9 -0
  629. package/dist/lib/scope/capability-delta.d.ts.map +1 -0
  630. package/dist/lib/scope/capability-delta.js +73 -0
  631. package/dist/lib/scope/capability-delta.js.map +1 -0
  632. package/dist/lib/scope/scaffold-placeholder.d.ts +4 -5
  633. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  634. package/dist/lib/scope/scaffold-placeholder.js +6 -7
  635. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  636. package/dist/lib/scope/scope-audit.d.ts +46 -4
  637. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  638. package/dist/lib/scope/scope-audit.js +79 -94
  639. package/dist/lib/scope/scope-audit.js.map +1 -1
  640. package/dist/lib/scope/scope-fs.d.ts +26 -14
  641. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  642. package/dist/lib/scope/scope-fs.js +78 -29
  643. package/dist/lib/scope/scope-fs.js.map +1 -1
  644. package/dist/lib/scope/templates.d.ts +17 -17
  645. package/dist/lib/scope/templates.d.ts.map +1 -1
  646. package/dist/lib/scope/templates.js +35 -39
  647. package/dist/lib/scope/templates.js.map +1 -1
  648. package/dist/lib/scope-templates/backlog-deprecation.md +4 -2
  649. package/dist/lib/scope-templates/backlog-tech-debt.md +4 -2
  650. package/dist/lib/scope-templates/bug-fix.md +4 -2
  651. package/dist/lib/scope-templates/capability-delta.md +61 -0
  652. package/dist/lib/scope-templates/mission-placeholder.md +9 -40
  653. package/dist/lib/scope-templates/mission-progress.md +5 -6
  654. package/dist/lib/scope-templates/mission-release.md +9 -40
  655. package/dist/lib/scope-templates/notes.md +14 -0
  656. package/dist/lib/scope-templates/placeholder.md +4 -2
  657. package/dist/lib/scope-templates/proof.md +1 -1
  658. package/dist/lib/scope-templates/release-feature.md +4 -2
  659. package/dist/lib/scope-templates/research.md +4 -2
  660. package/dist/lib/scope-templates/slice-progress.md +4 -5
  661. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts +15 -0
  662. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  663. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +57 -0
  664. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  665. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  666. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts +2 -0
  667. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.d.ts.map +1 -0
  668. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js +6 -0
  669. package/node_modules/@openrig/daemon/dist/context-pack-taxonomy-surface.js.map +1 -0
  670. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
  671. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
  672. package/node_modules/@openrig/daemon/dist/db/all-migrations.js +12 -2
  673. package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
  674. package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.d.ts +3 -0
  675. package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.d.ts.map +1 -0
  676. package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.js +22 -0
  677. package/node_modules/@openrig/daemon/dist/db/migrations/072_thread_seat_map.js.map +1 -0
  678. package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts +3 -0
  679. package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.d.ts.map +1 -0
  680. package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.js +21 -0
  681. package/node_modules/@openrig/daemon/dist/db/migrations/073_queue_transition_wakes.js.map +1 -0
  682. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts +4 -0
  683. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.d.ts.map +1 -0
  684. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js +11 -0
  685. package/node_modules/@openrig/daemon/dist/db/migrations/074_context_usage_watchdog.js.map +1 -0
  686. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts +4 -0
  687. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.d.ts.map +1 -0
  688. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js +8 -0
  689. package/node_modules/@openrig/daemon/dist/db/migrations/075_context_usage_watchdog_generation.js.map +1 -0
  690. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts +8 -0
  691. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.d.ts.map +1 -0
  692. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js +15 -0
  693. package/node_modules/@openrig/daemon/dist/db/migrations/076_owner_notification_levels.js.map +1 -0
  694. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +44 -0
  695. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -0
  696. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +72 -0
  697. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -0
  698. package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.d.ts +112 -0
  699. package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -0
  700. package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.js +99 -0
  701. package/node_modules/@openrig/daemon/dist/domain/activity-taxonomy.js.map +1 -0
  702. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts +6 -0
  703. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  704. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js +77 -15
  705. package/node_modules/@openrig/daemon/dist/domain/agent-manifest.js.map +1 -1
  706. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts +11 -0
  707. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.d.ts.map +1 -1
  708. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js +55 -0
  709. package/node_modules/@openrig/daemon/dist/domain/agent-resolver.js.map +1 -1
  710. package/node_modules/@openrig/daemon/dist/domain/bind-plan.d.ts +19 -0
  711. package/node_modules/@openrig/daemon/dist/domain/bind-plan.d.ts.map +1 -0
  712. package/node_modules/@openrig/daemon/dist/domain/bind-plan.js +25 -0
  713. package/node_modules/@openrig/daemon/dist/domain/bind-plan.js.map +1 -0
  714. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts +9 -2
  715. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  716. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js +18 -0
  717. package/node_modules/@openrig/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  718. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts +7 -0
  719. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  720. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js +10 -0
  721. package/node_modules/@openrig/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  722. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  723. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js +7 -0
  724. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  725. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +11 -0
  726. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  727. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +11 -0
  728. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  729. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  730. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +13 -1
  731. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  732. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts +88 -0
  733. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -0
  734. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js +290 -0
  735. package/node_modules/@openrig/daemon/dist/domain/continuity-policy-materializer.js.map +1 -0
  736. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts +65 -0
  737. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.d.ts.map +1 -0
  738. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js +99 -0
  739. package/node_modules/@openrig/daemon/dist/domain/continuity-stack-packets.js.map +1 -0
  740. package/node_modules/@openrig/daemon/dist/domain/event-bus.d.ts +6 -0
  741. package/node_modules/@openrig/daemon/dist/domain/event-bus.d.ts.map +1 -1
  742. package/node_modules/@openrig/daemon/dist/domain/event-bus.js +15 -5
  743. package/node_modules/@openrig/daemon/dist/domain/event-bus.js.map +1 -1
  744. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts +39 -0
  745. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -0
  746. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +707 -0
  747. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -0
  748. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +60 -0
  749. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -0
  750. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js +144 -0
  751. package/node_modules/@openrig/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -0
  752. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts +20 -0
  753. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.d.ts.map +1 -0
  754. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js +52 -0
  755. package/node_modules/@openrig/daemon/dist/domain/gateway/destination-resolver.js.map +1 -0
  756. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts +3 -1
  757. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.d.ts.map +1 -1
  758. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js +9 -2
  759. package/node_modules/@openrig/daemon/dist/domain/gateway/dispatcher.js.map +1 -1
  760. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.d.ts.map +1 -1
  761. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.js +9 -0
  762. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process-main.js.map +1 -1
  763. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.d.ts.map +1 -1
  764. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.js +9 -0
  765. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-process.js.map +1 -1
  766. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts +84 -0
  767. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -0
  768. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js +151 -0
  769. package/node_modules/@openrig/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -0
  770. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +118 -1
  771. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  772. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +282 -1
  773. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  774. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +32 -0
  775. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -0
  776. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js +86 -0
  777. package/node_modules/@openrig/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -0
  778. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts +45 -0
  779. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -0
  780. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js +78 -0
  781. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/config.js.map +1 -0
  782. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.d.ts +8 -0
  783. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.d.ts.map +1 -0
  784. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.js +20 -0
  785. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound-admission.js.map +1 -0
  786. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts +141 -0
  787. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -0
  788. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js +197 -0
  789. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/inbound.js.map +1 -0
  790. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.d.ts +80 -0
  791. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -0
  792. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.js +164 -0
  793. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/message.js.map +1 -0
  794. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +57 -0
  795. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -0
  796. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js +103 -0
  797. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -0
  798. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts +58 -0
  799. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -0
  800. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js +99 -0
  801. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -0
  802. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.d.ts +21 -0
  803. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -0
  804. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.js +73 -0
  805. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/secrets.js.map +1 -0
  806. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts +129 -0
  807. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -0
  808. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js +236 -0
  809. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -0
  810. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +53 -0
  811. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -0
  812. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js +267 -0
  813. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -0
  814. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +31 -0
  815. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -0
  816. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js +473 -0
  817. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -0
  818. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +30 -0
  819. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -0
  820. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js +99 -0
  821. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -0
  822. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts +62 -0
  823. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -0
  824. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js +132 -0
  825. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/state-store.js.map +1 -0
  826. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts +17 -0
  827. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -0
  828. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js +35 -0
  829. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -0
  830. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +56 -0
  831. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -0
  832. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js +103 -0
  833. package/node_modules/@openrig/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -0
  834. package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.d.ts.map +1 -1
  835. package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.js +9 -0
  836. package/node_modules/@openrig/daemon/dist/domain/gateway/spawn-gateway.js.map +1 -1
  837. package/node_modules/@openrig/daemon/dist/domain/gateway/transport.d.ts.map +1 -1
  838. package/node_modules/@openrig/daemon/dist/domain/gateway/transport.js +9 -0
  839. package/node_modules/@openrig/daemon/dist/domain/gateway/transport.js.map +1 -1
  840. package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts +6 -0
  841. package/node_modules/@openrig/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  842. package/node_modules/@openrig/daemon/dist/domain/graph-projection.js +6 -0
  843. package/node_modules/@openrig/daemon/dist/domain/graph-projection.js.map +1 -1
  844. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  845. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js +1 -0
  846. package/node_modules/@openrig/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  847. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts +41 -3
  848. package/node_modules/@openrig/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  849. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js +65 -48
  850. package/node_modules/@openrig/daemon/dist/domain/node-inventory.js.map +1 -1
  851. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts +82 -0
  852. package/node_modules/@openrig/daemon/dist/domain/parked-query.d.ts.map +1 -0
  853. package/node_modules/@openrig/daemon/dist/domain/parked-query.js +127 -0
  854. package/node_modules/@openrig/daemon/dist/domain/parked-query.js.map +1 -0
  855. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  856. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js +12 -5
  857. package/node_modules/@openrig/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  858. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts +7 -0
  859. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -0
  860. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js +99 -0
  861. package/node_modules/@openrig/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -0
  862. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts +54 -0
  863. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.d.ts.map +1 -0
  864. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js +153 -0
  865. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-deferral.js.map +1 -0
  866. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts +45 -0
  867. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -0
  868. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js +94 -0
  869. package/node_modules/@openrig/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -0
  870. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts +65 -0
  871. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -0
  872. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js +244 -0
  873. package/node_modules/@openrig/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -0
  874. package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts +8 -0
  875. package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts.map +1 -1
  876. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts +4 -0
  877. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  878. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js +58 -0
  879. package/node_modules/@openrig/daemon/dist/domain/profile-resolver.js.map +1 -1
  880. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts +20 -1
  881. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -1
  882. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js +64 -0
  883. package/node_modules/@openrig/daemon/dist/domain/provider/provider-signals.js.map +1 -1
  884. package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts +7 -5
  885. package/node_modules/@openrig/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  886. package/node_modules/@openrig/daemon/dist/domain/ps-projection.js +19 -32
  887. package/node_modules/@openrig/daemon/dist/domain/ps-projection.js.map +1 -1
  888. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts +38 -0
  889. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.d.ts.map +1 -0
  890. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js +72 -0
  891. package/node_modules/@openrig/daemon/dist/domain/queue-pickup.js.map +1 -0
  892. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +93 -28
  893. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  894. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +626 -90
  895. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  896. package/node_modules/@openrig/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  897. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js +8 -2
  898. package/node_modules/@openrig/daemon/dist/domain/queue-retention.js.map +1 -1
  899. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts +100 -0
  900. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -0
  901. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js +485 -0
  902. package/node_modules/@openrig/daemon/dist/domain/queue-stuck-sweep.js.map +1 -0
  903. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts +10 -0
  904. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  905. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js +49 -11
  906. package/node_modules/@openrig/daemon/dist/domain/queue-transition-log.js.map +1 -1
  907. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts +114 -0
  908. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -0
  909. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js +705 -0
  910. package/node_modules/@openrig/daemon/dist/domain/queue-wake-ladder.js.map +1 -0
  911. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +53 -0
  912. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -0
  913. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +129 -0
  914. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -0
  915. package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.d.ts +28 -0
  916. package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.d.ts.map +1 -0
  917. package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.js +71 -0
  918. package/node_modules/@openrig/daemon/dist/domain/rebuild-priming-chain.js.map +1 -0
  919. package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js +1 -1
  920. package/node_modules/@openrig/daemon/dist/domain/restore-check-service.js.map +1 -1
  921. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +2 -1
  922. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  923. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +88 -15
  924. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  925. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts +6 -2
  926. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  927. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +37 -19
  928. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  929. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +3 -1
  930. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  931. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +14 -8
  932. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  933. package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +1 -1
  934. package/node_modules/@openrig/daemon/dist/domain/review/gather.js +3 -1
  935. package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +1 -1
  936. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  937. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js +10 -9
  938. package/node_modules/@openrig/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  939. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +4 -0
  940. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  941. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +21 -3
  942. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
  943. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  944. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js +74 -4
  945. package/node_modules/@openrig/daemon/dist/domain/rigspec-codec.js.map +1 -1
  946. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +7 -0
  947. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  948. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +32 -0
  949. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  950. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  951. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +32 -4
  952. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  953. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +8 -0
  954. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -1
  955. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +18 -0
  956. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -1
  957. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +6 -5
  958. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  959. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +23 -20
  960. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  961. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -5
  962. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  963. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +6 -7
  964. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  965. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts +1 -1
  966. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  967. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js +5 -4
  968. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  969. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +46 -4
  970. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  971. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js +79 -94
  972. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  973. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  974. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +7 -2
  975. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  976. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +91 -0
  977. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  978. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +416 -1
  979. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
  980. package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.d.ts +14 -0
  981. package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.d.ts.map +1 -1
  982. package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.js +14 -1
  983. package/node_modules/@openrig/daemon/dist/domain/seat-handover-planner.js.map +1 -1
  984. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +54 -1
  985. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  986. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +162 -19
  987. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  988. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +1 -2
  989. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  990. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  991. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +6 -0
  992. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
  993. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +6 -1
  994. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  995. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +3 -3
  996. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  997. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +59 -4
  998. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  999. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  1000. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  1001. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  1002. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +48 -0
  1003. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  1004. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts +5 -1
  1005. package/node_modules/@openrig/daemon/dist/domain/view-projector.d.ts.map +1 -1
  1006. package/node_modules/@openrig/daemon/dist/domain/view-projector.js +65 -2
  1007. package/node_modules/@openrig/daemon/dist/domain/view-projector.js.map +1 -1
  1008. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +25 -6
  1009. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  1010. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +115 -32
  1011. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  1012. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +47 -1
  1013. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  1014. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +115 -6
  1015. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  1016. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  1017. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js +3 -2
  1018. package/node_modules/@openrig/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  1019. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +4 -3
  1020. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  1021. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +56 -196
  1022. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  1023. package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.js +1 -1
  1024. package/node_modules/@openrig/daemon/dist/domain/workspace/getting-started-narrative.js.map +1 -1
  1025. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts +8 -11
  1026. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  1027. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +22 -26
  1028. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  1029. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts +4 -0
  1030. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.d.ts.map +1 -0
  1031. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js +8 -0
  1032. package/node_modules/@openrig/daemon/dist/gateway-slack-surface.js.map +1 -0
  1033. package/node_modules/@openrig/daemon/dist/index.d.ts +38 -0
  1034. package/node_modules/@openrig/daemon/dist/index.d.ts.map +1 -1
  1035. package/node_modules/@openrig/daemon/dist/index.js +122 -4
  1036. package/node_modules/@openrig/daemon/dist/index.js.map +1 -1
  1037. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts +1 -1
  1038. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.d.ts.map +1 -1
  1039. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js +8 -14
  1040. package/node_modules/@openrig/daemon/dist/lib/pane-envelope.js.map +1 -1
  1041. package/node_modules/@openrig/daemon/dist/routes/activity.d.ts +13 -0
  1042. package/node_modules/@openrig/daemon/dist/routes/activity.d.ts.map +1 -1
  1043. package/node_modules/@openrig/daemon/dist/routes/activity.js +186 -0
  1044. package/node_modules/@openrig/daemon/dist/routes/activity.js.map +1 -1
  1045. package/node_modules/@openrig/daemon/dist/routes/agent-images.d.ts.map +1 -1
  1046. package/node_modules/@openrig/daemon/dist/routes/agent-images.js +9 -0
  1047. package/node_modules/@openrig/daemon/dist/routes/agent-images.js.map +1 -1
  1048. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
  1049. package/node_modules/@openrig/daemon/dist/routes/bundles.js +61 -1
  1050. package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
  1051. package/node_modules/@openrig/daemon/dist/routes/config.js +2 -2
  1052. package/node_modules/@openrig/daemon/dist/routes/config.js.map +1 -1
  1053. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts +3 -0
  1054. package/node_modules/@openrig/daemon/dist/routes/gateway.d.ts.map +1 -0
  1055. package/node_modules/@openrig/daemon/dist/routes/gateway.js +46 -0
  1056. package/node_modules/@openrig/daemon/dist/routes/gateway.js.map +1 -0
  1057. package/node_modules/@openrig/daemon/dist/routes/health-summary.d.ts.map +1 -1
  1058. package/node_modules/@openrig/daemon/dist/routes/health-summary.js +8 -0
  1059. package/node_modules/@openrig/daemon/dist/routes/health-summary.js.map +1 -1
  1060. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  1061. package/node_modules/@openrig/daemon/dist/routes/queue.js +25 -12
  1062. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  1063. package/node_modules/@openrig/daemon/dist/routes/rigs.js +38 -2
  1064. package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
  1065. package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  1066. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +73 -14
  1067. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
  1068. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  1069. package/node_modules/@openrig/daemon/dist/routes/seat.js +15 -0
  1070. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  1071. package/node_modules/@openrig/daemon/dist/routes/views.d.ts.map +1 -1
  1072. package/node_modules/@openrig/daemon/dist/routes/views.js +4 -1
  1073. package/node_modules/@openrig/daemon/dist/routes/views.js.map +1 -1
  1074. package/node_modules/@openrig/daemon/dist/routes/watchdog.d.ts.map +1 -1
  1075. package/node_modules/@openrig/daemon/dist/routes/watchdog.js +40 -3
  1076. package/node_modules/@openrig/daemon/dist/routes/watchdog.js.map +1 -1
  1077. package/node_modules/@openrig/daemon/dist/server.d.ts +17 -0
  1078. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  1079. package/node_modules/@openrig/daemon/dist/server.js +30 -4
  1080. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  1081. package/node_modules/@openrig/daemon/dist/startup.d.ts +4 -0
  1082. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  1083. package/node_modules/@openrig/daemon/dist/startup.js +227 -5
  1084. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  1085. package/node_modules/@openrig/daemon/package.json +9 -1
  1086. package/package.json +1 -1
  1087. package/tui/dist/daemon-client.d.ts +5 -0
  1088. package/tui/dist/daemon-client.d.ts.map +1 -1
  1089. package/tui/dist/daemon-client.js +17 -0
  1090. package/tui/dist/daemon-client.js.map +1 -1
  1091. package/tui/dist/demo-data.js +2 -2
  1092. package/tui/dist/demo-data.js.map +1 -1
  1093. package/tui/dist/hydrate.d.ts.map +1 -1
  1094. package/tui/dist/hydrate.js +12 -4
  1095. package/tui/dist/hydrate.js.map +1 -1
  1096. package/tui/dist/live-events.d.ts +21 -0
  1097. package/tui/dist/live-events.d.ts.map +1 -0
  1098. package/tui/dist/live-events.js +88 -0
  1099. package/tui/dist/live-events.js.map +1 -0
  1100. package/tui/dist/live.js +1 -1
  1101. package/tui/dist/main.js +27 -8
  1102. package/tui/dist/main.js.map +1 -1
  1103. package/tui/dist/refresh.d.ts +10 -1
  1104. package/tui/dist/refresh.d.ts.map +1 -1
  1105. package/tui/dist/refresh.js +22 -2
  1106. package/tui/dist/refresh.js.map +1 -1
  1107. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +0 -264
  1108. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +0 -9
  1109. package/daemon/context-packs/world/install/01-world-from-primitives.md +0 -97
  1110. package/daemon/context-packs/world/install/02-permission-self-sleep.md +0 -141
  1111. package/daemon/context-packs/world/install/03-what-this-is-for.md +0 -86
  1112. package/daemon/context-packs/world/install/04-ontology.md +0 -790
  1113. package/daemon/context-packs/world/install/05-harness-power-use.md +0 -355
  1114. package/daemon/context-packs/world/install/06-a-competent-turn.md +0 -225
  1115. package/daemon/context-packs/world/install/manifest.yaml +0 -125
  1116. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +0 -264
  1117. package/dist/lib/scope-templates/mission-brief.md +0 -20
  1118. package/dist/lib/scope-templates/mission-notes.md +0 -102
  1119. package/dist/slack/config.d.ts.map +0 -1
  1120. package/dist/slack/config.js.map +0 -1
  1121. package/dist/slack/connector-server.d.ts +0 -31
  1122. package/dist/slack/connector-server.d.ts.map +0 -1
  1123. package/dist/slack/connector-server.js +0 -108
  1124. package/dist/slack/connector-server.js.map +0 -1
  1125. package/dist/slack/inbound-admission.d.ts.map +0 -1
  1126. package/dist/slack/inbound-admission.js.map +0 -1
  1127. package/dist/slack/inbound.d.ts.map +0 -1
  1128. package/dist/slack/inbound.js.map +0 -1
  1129. package/dist/slack/message.d.ts +0 -39
  1130. package/dist/slack/message.d.ts.map +0 -1
  1131. package/dist/slack/message.js +0 -88
  1132. package/dist/slack/message.js.map +0 -1
  1133. package/dist/slack/outbound.d.ts +0 -39
  1134. package/dist/slack/outbound.d.ts.map +0 -1
  1135. package/dist/slack/outbound.js +0 -63
  1136. package/dist/slack/outbound.js.map +0 -1
  1137. package/dist/slack/queue-bridge.d.ts +0 -61
  1138. package/dist/slack/queue-bridge.d.ts.map +0 -1
  1139. package/dist/slack/queue-bridge.js +0 -114
  1140. package/dist/slack/queue-bridge.js.map +0 -1
  1141. package/dist/slack/secrets.d.ts.map +0 -1
  1142. package/dist/slack/secrets.js.map +0 -1
  1143. package/dist/slack/slack-api.d.ts +0 -49
  1144. package/dist/slack/slack-api.d.ts.map +0 -1
  1145. package/dist/slack/slack-api.js +0 -110
  1146. package/dist/slack/slack-api.js.map +0 -1
  1147. package/dist/slack/slack-delivery.d.ts +0 -14
  1148. package/dist/slack/slack-delivery.d.ts.map +0 -1
  1149. package/dist/slack/slack-delivery.js +0 -28
  1150. package/dist/slack/slack-delivery.js.map +0 -1
  1151. package/dist/slack/state-store.d.ts.map +0 -1
  1152. package/dist/slack/state-store.js.map +0 -1
  1153. /package/{dist → daemon/dist/domain/gateway}/slack/inbound-admission.js +0 -0
  1154. /package/{dist → daemon/dist/domain/gateway}/slack/secrets.d.ts +0 -0
  1155. /package/{dist → daemon/dist/domain/gateway}/slack/secrets.js +0 -0
  1156. /package/{dist → daemon/dist/domain/gateway}/slack/state-store.d.ts +0 -0
  1157. /package/{dist → daemon/dist/domain/gateway}/slack/state-store.js +0 -0
@@ -0,0 +1,705 @@
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. OPR.0.5.6.1 (A1.2/AM-F3): the operator rung's delivery leg IS the
35
+ // delivery rules engine — the rung dispatches through the injected engine port, records
36
+ // dispatched-to-engine with the decision, and the ladder does NOT advance past the rung
37
+ // until the engine's outcome resolves (a posted receipt or a delivery-termination record);
38
+ // exactly one delivery per episode, never immediate-plus-deferred. When no engine port is
39
+ // wired (fixtures, pre-wire boot), the rung keeps the pre-engine floor honestly
40
+ // (escalation view + daemon-health) and exhausts as before.
41
+ import { deriveUsageLimitPools } from "./provider/provider-signals.js";
42
+ import { USAGE_LIMIT_BLOCKER_TAG, USAGE_LIMIT_POOL_TAG_PREFIX, } from "./queue-wake-repository.js";
43
+ import { SettingsStore } from "./user-settings/settings-store.js";
44
+ import { LADDER_ATTEMPT_PREFIX, LADDER_RUNG_PREFIX, LADDER_EXHAUSTED_PREFIX, defaultResolveOrchestrator, resolveSessionNodeId, } from "./queue-stuck-sweep.js";
45
+ export const WAKE_RETRY_INTERVAL_KEY = "queue.wake_retry_interval_seconds";
46
+ export const DEFAULT_WAKE_RETRY_INTERVAL_SECONDS = 300;
47
+ export const WAKE_RETRY_CAP_KEY = "queue.wake_retry_cap";
48
+ export const DEFAULT_WAKE_RETRY_CAP = 3;
49
+ export const WAKE_UNCONFIRMED_WINDOW_KEY = "queue.wake_unconfirmed_window_minutes";
50
+ export const DEFAULT_WAKE_UNCONFIRMED_WINDOW_MINUTES = 30;
51
+ export const WAKE_SWAP_GRACE_KEY = "queue.wake_swap_grace_seconds";
52
+ export const DEFAULT_WAKE_SWAP_GRACE_SECONDS = 180;
53
+ // S16: this margin absorbs provider reset granularity and host/provider clock
54
+ // skew. Fleet dedup already prevents a thundering herd; narrowing it toward zero
55
+ // would recreate a wake delivered while the seat is still usage-limited.
56
+ export const USAGE_LIMIT_JITTER_FLOOR_SECONDS = 30;
57
+ export const USAGE_LIMIT_JITTER_CEILING_SECONDS = 90;
58
+ export function drawUsageLimitJitterSeconds(random = Math.random) {
59
+ return USAGE_LIMIT_JITTER_FLOOR_SECONDS + Math.floor(random() * (USAGE_LIMIT_JITTER_CEILING_SECONDS - USAGE_LIMIT_JITTER_FLOOR_SECONDS + 1));
60
+ }
61
+ /** The operator-declared suspension override (F2: override, never the mechanism).
62
+ * Format: comma-separated `<session>:<untilIso>` pairs; fresh-read every tick. */
63
+ export const WAKE_SUSPEND_OVERRIDE_ENV = "OPENRIG_WAKE_SUSPEND";
64
+ /** Stamp tag on the per-destination aggregate escalation row. */
65
+ export const WAKE_ESCALATION_TAG = "wake-escalation";
66
+ export function escalationDedupTag(destination) {
67
+ return `wake-escalation:${destination}`;
68
+ }
69
+ // Suspension markers (attempt/rung/exhausted come from the S02 seam vocabulary).
70
+ export const LADDER_SUSPEND_PREFIX = "ladder-suspend:";
71
+ export const LADDER_RESUME_PREFIX = "ladder-resume:";
72
+ const LADDER_ACTOR = "wake-ladder@system";
73
+ /** The loop's observable heartbeat — rides /healthz beside the S02 sweep's. */
74
+ export function createWakeLadderStatus() {
75
+ const state = {
76
+ lastTickAt: null,
77
+ lastOutcome: null,
78
+ lastError: null,
79
+ consecutiveFailures: 0,
80
+ activeLadders: 0,
81
+ escalationsOpen: 0,
82
+ exhaustedTotal: 0,
83
+ };
84
+ return {
85
+ record(outcome, detail) {
86
+ state.lastTickAt = new Date().toISOString();
87
+ state.lastOutcome = outcome;
88
+ state.lastError = outcome === "failed" ? (detail?.error ?? "unknown error") : null;
89
+ state.consecutiveFailures = outcome === "failed" ? state.consecutiveFailures + 1 : 0;
90
+ if (detail?.active !== undefined)
91
+ state.activeLadders = detail.active;
92
+ if (detail?.escalations !== undefined)
93
+ state.escalationsOpen = detail.escalations;
94
+ if (detail?.exhausted)
95
+ state.exhaustedTotal += detail.exhausted;
96
+ },
97
+ snapshot() {
98
+ return { ...state };
99
+ },
100
+ };
101
+ }
102
+ /** The operator seat for the self-skip floor (workspace.operator_seat_name — the
103
+ * conventional `operator-${USER}@kernel`); null when settings resolution fails. */
104
+ function resolveOperatorSeat() {
105
+ try {
106
+ const v = new SettingsStore().resolveOne("workspace.operator_seat_name").value;
107
+ return typeof v === "string" && v.length > 0 ? v : null;
108
+ }
109
+ catch {
110
+ return null;
111
+ }
112
+ }
113
+ function resolveNumber(key, fallback) {
114
+ try {
115
+ const v = new SettingsStore().resolveOne(key).value;
116
+ const n = typeof v === "number" ? v : Number(v);
117
+ return Number.isFinite(n) && n > 0 ? n : fallback;
118
+ }
119
+ catch {
120
+ return fallback;
121
+ }
122
+ }
123
+ export const resolveWakeRetryIntervalSeconds = () => resolveNumber(WAKE_RETRY_INTERVAL_KEY, DEFAULT_WAKE_RETRY_INTERVAL_SECONDS);
124
+ export const resolveWakeRetryCap = () => resolveNumber(WAKE_RETRY_CAP_KEY, DEFAULT_WAKE_RETRY_CAP);
125
+ export const resolveWakeUnconfirmedWindowMinutes = () => resolveNumber(WAKE_UNCONFIRMED_WINDOW_KEY, DEFAULT_WAKE_UNCONFIRMED_WINDOW_MINUTES);
126
+ export const resolveWakeSwapGraceSeconds = () => resolveNumber(WAKE_SWAP_GRACE_KEY, DEFAULT_WAKE_SWAP_GRACE_SECONDS);
127
+ function readLadder(db, qitemId) {
128
+ const rows = db
129
+ .prepare("SELECT ts, transition_note FROM queue_transitions WHERE qitem_id = ? ORDER BY ts, rowid")
130
+ .all(qitemId);
131
+ const view = {
132
+ attempts: 0,
133
+ lastMarkerTs: null,
134
+ orchRung: false,
135
+ orchRungFailed: false,
136
+ opRung: false,
137
+ opEngineDispatched: false,
138
+ opEngineKey: null,
139
+ opOutcomeResolved: false,
140
+ exhausted: false,
141
+ suspendEpisodeOpen: false,
142
+ firstMarkerTs: null,
143
+ };
144
+ let suspends = 0;
145
+ let resumes = 0;
146
+ for (const r of rows) {
147
+ const note = r.transition_note ?? "";
148
+ const isAttempt = note.startsWith(LADDER_ATTEMPT_PREFIX);
149
+ const isRung = note.startsWith(LADDER_RUNG_PREFIX);
150
+ if (isAttempt)
151
+ view.attempts += 1;
152
+ if (isRung && /^escalation-rung:\s*orchestrator/.test(note)) {
153
+ view.orchRung = true;
154
+ view.orchRungFailed = /outcome=failed:/.test(note);
155
+ }
156
+ if (isRung && /^escalation-rung:\s*operator/.test(note))
157
+ view.opRung = true;
158
+ if (isRung && /^escalation-rung:\s*operator dispatched-to-engine/.test(note)) {
159
+ view.opEngineDispatched = true;
160
+ const keyMatch = note.match(/notification_key=(\S+)/);
161
+ if (keyMatch)
162
+ view.opEngineKey = keyMatch[1];
163
+ // R2 003f4786: the key derives BEFORE any resolution note counts — a
164
+ // receipt that PRECEDES this dispatch belongs to an older episode, so
165
+ // any provisional resolution seen so far is discarded here.
166
+ view.opOutcomeResolved = false;
167
+ }
168
+ // Outcome resolution (AM-F3, R1 B-3, R2 pre-marker discriminator): the S14
169
+ // posted receipt or the termination record closes the episode ONLY when it
170
+ // (a) follows the dispatch marker chronologically (this loop resets the
171
+ // flag at each dispatch, so pre-marker notes never survive) and (b) carries
172
+ // the dispatched key when the marker is keyed. An unkeyed dispatch
173
+ // (injected legacy ports) keeps the any-following-note shape.
174
+ if (note.startsWith("slack-owner-notification-posted ") || note.startsWith("delivery-termination:")) {
175
+ if (view.opEngineKey === null || note.split(/\s+/).includes(`notification_key=${view.opEngineKey}`)) {
176
+ view.opOutcomeResolved = true;
177
+ }
178
+ }
179
+ if (note.startsWith(LADDER_EXHAUSTED_PREFIX))
180
+ view.exhausted = true;
181
+ if (note.startsWith(LADDER_SUSPEND_PREFIX))
182
+ suspends += 1;
183
+ if (note.startsWith(LADDER_RESUME_PREFIX))
184
+ resumes += 1;
185
+ if (isAttempt || isRung) {
186
+ const t = Date.parse(r.ts);
187
+ if (!Number.isNaN(t)) {
188
+ view.lastMarkerTs = Math.max(view.lastMarkerTs ?? t, t);
189
+ view.firstMarkerTs = view.firstMarkerTs === null ? t : Math.min(view.firstMarkerTs, t);
190
+ }
191
+ }
192
+ }
193
+ view.suspendEpisodeOpen = suspends > resumes;
194
+ return view;
195
+ }
196
+ /** Pickup evidence (the S04 receipt join, F1): a claim, a heartbeat, or any transition
197
+ * that is neither a founding record nor ladder machinery — someone real moved. */
198
+ function hasPickupEvidence(db, row) {
199
+ if (row.claimedAt)
200
+ return true;
201
+ // Keep this null arm for the 0.5.7 mechanized-pull turn-end hook that knows the in-flight row;
202
+ // it is the first honest row-scoped writer, and wiring reopens only in that slice.
203
+ if (row.lastHeartbeat)
204
+ return true;
205
+ const rows = db
206
+ .prepare("SELECT transition_note FROM queue_transitions WHERE qitem_id = ?")
207
+ .all(row.qitemId);
208
+ for (const r of rows) {
209
+ const note = r.transition_note ?? "";
210
+ if (note === "created")
211
+ continue;
212
+ if (note.startsWith("handoff"))
213
+ continue;
214
+ if (note.startsWith(LADDER_ATTEMPT_PREFIX) ||
215
+ note.startsWith(LADDER_RUNG_PREFIX) ||
216
+ note.startsWith(LADDER_EXHAUSTED_PREFIX) ||
217
+ note.startsWith(LADDER_SUSPEND_PREFIX) ||
218
+ note.startsWith(LADDER_RESUME_PREFIX) ||
219
+ // OPR.0.5.6.1: delivery-leg records are ladder machinery, not pickup —
220
+ // a receipt/termination/deferral stamp must not pull the row out of the
221
+ // ladder before the resolution pass reads it.
222
+ note.startsWith("slack-owner-notification-") ||
223
+ note.startsWith("delivery-termination:") ||
224
+ note.startsWith("delivery-deferral-"))
225
+ continue;
226
+ return true;
227
+ }
228
+ return false;
229
+ }
230
+ function classifyWakeResult(lastNudgeResult) {
231
+ if (!lastNudgeResult)
232
+ return null;
233
+ if (lastNudgeResult.startsWith("failed:"))
234
+ return "failed";
235
+ if (lastNudgeResult === "delivered-ack-pending" ||
236
+ lastNudgeResult.startsWith("indeterminate:") ||
237
+ lastNudgeResult.startsWith("gateway-owned:"))
238
+ return "unconfirmed";
239
+ return null; // verified (or unknown vocabulary) — never enters the ladder
240
+ }
241
+ /** F2 — derived suspension: the destination's post-swap grace (nodes.handover_at within
242
+ * the bound), or the operator-declared override. Returns the reason, or null. */
243
+ function suspensionReason(db, destination, graceSeconds, now) {
244
+ const override = process.env[WAKE_SUSPEND_OVERRIDE_ENV];
245
+ if (override) {
246
+ for (const entry of override.split(",")) {
247
+ const idx = entry.lastIndexOf(":");
248
+ const session = entry.slice(0, entry.indexOf(":"));
249
+ const untilIso = entry.slice(entry.indexOf(":") + 1);
250
+ void idx;
251
+ if (session === destination) {
252
+ const until = Date.parse(untilIso);
253
+ if (!Number.isNaN(until) && now.getTime() < until) {
254
+ return `operator override (${WAKE_SUSPEND_OVERRIDE_ENV}) until ${untilIso}`;
255
+ }
256
+ }
257
+ }
258
+ }
259
+ // The durable session→node binding — never a string transform of the session name
260
+ // (canonical dash-form sessions and dotted logical ids are independent identities).
261
+ const nodeId = resolveSessionNodeId(db, destination);
262
+ if (!nodeId)
263
+ return null;
264
+ const row = db
265
+ .prepare("SELECT handover_at AS handoverAt FROM nodes WHERE id = ? LIMIT 1")
266
+ .get(nodeId);
267
+ if (!row?.handoverAt)
268
+ return null;
269
+ const swapAt = Date.parse(row.handoverAt);
270
+ if (Number.isNaN(swapAt))
271
+ return null;
272
+ const ageS = (now.getTime() - swapAt) / 1000;
273
+ if (ageS >= 0 && ageS < graceSeconds) {
274
+ return `destination in post-swap grace (handover ${Math.round(ageS)}s ago, grace ${graceSeconds}s)`;
275
+ }
276
+ return null;
277
+ }
278
+ function appendMarker(repo, row, note) {
279
+ repo.transitionLog.append({
280
+ qitemId: row.qitemId,
281
+ state: row.state,
282
+ actorSession: LADDER_ACTOR,
283
+ transitionNote: note,
284
+ });
285
+ }
286
+ function minutesSince(ts, now) {
287
+ if (ts === null || ts === undefined)
288
+ return 0;
289
+ const t = typeof ts === "number" ? ts : Date.parse(ts);
290
+ if (Number.isNaN(t))
291
+ return 0;
292
+ return Math.max(0, Math.round((now.getTime() - t) / 60_000));
293
+ }
294
+ function usageLimitPoolTag(poolKey) {
295
+ return `${USAGE_LIMIT_POOL_TAG_PREFIX}${poolKey}`;
296
+ }
297
+ function rigOf(session) {
298
+ return session.slice(session.lastIndexOf("@") + 1);
299
+ }
300
+ async function ensureUsageLimitBlocker(deps, pool, now, jitterSeconds) {
301
+ const poolTag = usageLimitPoolTag(pool.poolKey);
302
+ const existing = deps.db.prepare(`SELECT qitem_id FROM queue_items
303
+ WHERE state IN ('pending', 'in-progress', 'blocked')
304
+ AND EXISTS (SELECT 1 FROM json_each(queue_items.tags) WHERE value = ?)
305
+ AND EXISTS (SELECT 1 FROM json_each(queue_items.tags) WHERE value = ?)
306
+ LIMIT 1`).get(USAGE_LIMIT_BLOCKER_TAG, poolTag);
307
+ let blocker = existing ? deps.queueRepo.getById(existing.qitem_id) : null;
308
+ if (blocker) {
309
+ const wake = deps.queueRepo.getParkWakeStatus(blocker.qitemId);
310
+ if (wake?.kind === "timer" && wake.live)
311
+ return blocker;
312
+ if (wake)
313
+ throw new Error(`usage-limit blocker ${blocker.qitemId} has a non-live timer`);
314
+ }
315
+ else {
316
+ const rig = rigOf(pool.seatSessions[0]);
317
+ blocker = await deps.queueRepo.create({
318
+ sourceSession: LADDER_ACTOR,
319
+ destinationSession: `wake-ladder@${rig}`,
320
+ body: `Provider usage limit for ${pool.poolKey}; release every dependent once at ${pool.expiresAt}.`,
321
+ tags: [USAGE_LIMIT_BLOCKER_TAG, poolTag],
322
+ expiresAt: new Date(Date.parse(pool.expiresAt) + jitterSeconds * 1000).toISOString(),
323
+ nudge: false,
324
+ });
325
+ }
326
+ const wakeAtMs = Date.parse(pool.expiresAt) + jitterSeconds * 1000;
327
+ const wakeAfterSeconds = Math.max(1, Math.ceil((wakeAtMs - now.getTime()) / 1000));
328
+ deps.queueRepo.update({
329
+ qitemId: blocker.qitemId,
330
+ actorSession: LADDER_ACTOR,
331
+ state: "blocked",
332
+ blockedOn: `external:provider-limit:${pool.poolKey}`,
333
+ transitionNote: `usage-limit cause=${pool.source} pool=${pool.poolKey} reset=${pool.expiresAt} wake=${new Date(wakeAtMs).toISOString()}`,
334
+ wakeAfterSeconds,
335
+ });
336
+ return deps.queueRepo.getById(blocker.qitemId);
337
+ }
338
+ /**
339
+ * One ladder tick. Everything is derived from the row + transition log — the tick holds
340
+ * no memory (F6). Never throws: a tick that cannot run is loud on the status surface
341
+ * and the log, because a silent skip is the exact class this slice kills.
342
+ */
343
+ export async function runWakeLadderTick(deps) {
344
+ const log = deps.log ?? ((line) => console.error(line));
345
+ const status = deps.status;
346
+ try {
347
+ const now = deps.now ?? new Date();
348
+ const intervalS = deps.retryIntervalSeconds ?? resolveWakeRetryIntervalSeconds();
349
+ const cap = deps.retryCap ?? resolveWakeRetryCap();
350
+ const windowMin = deps.unconfirmedWindowMinutes ?? resolveWakeUnconfirmedWindowMinutes();
351
+ const graceS = deps.swapGraceSeconds ?? resolveWakeSwapGraceSeconds();
352
+ const resolveOrch = deps.resolveOrchestrator ?? ((session) => defaultResolveOrchestrator(deps.db, session));
353
+ const attemptWake = deps.attemptWake ??
354
+ (async (qitemId, target) => {
355
+ await deps.queueRepo.maybeNudge(qitemId, target, true);
356
+ return deps.queueRepo.getById(qitemId)?.lastNudgeResult ?? "indeterminate:no transport available";
357
+ });
358
+ const actions = [];
359
+ let exhaustedThisTick = 0;
360
+ const usagePoolBySeat = new Map();
361
+ if (deps.getProviderReadModel) {
362
+ try {
363
+ const model = await deps.getProviderReadModel();
364
+ const pools = deriveUsageLimitPools({
365
+ ...model,
366
+ now,
367
+ fallbackSeconds: intervalS,
368
+ });
369
+ for (const pool of pools) {
370
+ for (const seat of pool.seatSessions)
371
+ usagePoolBySeat.set(seat, pool);
372
+ }
373
+ }
374
+ catch (err) {
375
+ log(`[wake-ladder] provider signal read unavailable; preserving shipped ladder: ${err instanceof Error ? err.message : String(err)}`);
376
+ }
377
+ }
378
+ const blockerByPool = new Map();
379
+ // Batons: handed-off rows still pending and unclaimed. Created-with-destination rows
380
+ // are explicitly NOT here — that hole is S02's net (F5).
381
+ const batonRows = deps.db
382
+ .prepare(`SELECT qitem_id FROM queue_items
383
+ WHERE state = 'pending' AND claimed_at IS NULL AND handed_off_from IS NOT NULL`)
384
+ .all();
385
+ // OPR.0.5.6.24 B2 (advisor-ruled one-engine arm): claimed in-progress rows
386
+ // that a parked-owner consumer wake FAILED into join the SAME ladder flow.
387
+ // Consumer ORIGIN is the row's durable FAILED transition note (the ladder's
388
+ // own retries overwrite last_nudge_result with generic transport detail, so
389
+ // the column carries only failed-CLASS eligibility, never origin — R2's
390
+ // one-shot-entry finding). Retry cap and exhaustion stay bounded by the
391
+ // ladder's own derived markers; the consumer never retries.
392
+ const parkedOwnerFailureRows = deps.db
393
+ .prepare(`SELECT q.qitem_id FROM queue_items q
394
+ WHERE q.state = 'in-progress' AND q.claimed_at IS NOT NULL
395
+ AND q.last_nudge_result LIKE 'failed:%'
396
+ AND EXISTS (
397
+ SELECT 1 FROM queue_transitions t
398
+ WHERE t.qitem_id = q.qitem_id
399
+ AND t.transition_note LIKE 'parked-owner wake delivery failed:%'
400
+ )`)
401
+ .all();
402
+ /** Escalation-phase members grouped per destination (F3 aggregation). */
403
+ const escalating = new Map();
404
+ /** Per-destination wake attempts inside the current window, across ALL ladders (F3
405
+ * rate bound). Seeded from recorded markers so restarts keep the bound too. */
406
+ const windowBudget = new Map();
407
+ let activeLadders = 0;
408
+ const budgetFor = (dest) => {
409
+ if (!windowBudget.has(dest)) {
410
+ const since = new Date(now.getTime() - intervalS * 1000).toISOString();
411
+ const counted = deps.db
412
+ .prepare(`SELECT COUNT(*) AS n FROM queue_transitions t JOIN queue_items q ON q.qitem_id = t.qitem_id
413
+ WHERE q.destination_session = ? AND t.transition_note LIKE ? AND t.ts >= ?`)
414
+ .get(dest, `${LADDER_ATTEMPT_PREFIX}%`, since);
415
+ windowBudget.set(dest, counted.n);
416
+ }
417
+ return windowBudget.get(dest);
418
+ };
419
+ for (const { qitem_id } of [...batonRows, ...parkedOwnerFailureRows]) {
420
+ const row = deps.queueRepo.getById(qitem_id);
421
+ if (!row)
422
+ continue;
423
+ const usagePool = usagePoolBySeat.get(row.destinationSession);
424
+ // OPR.0.5.6.24: the usage-limit PARK mutation applies only to pending
425
+ // batons — a claimed in-progress row is someone's live work and is never
426
+ // state-mutated here; it falls through to ordinary mode classification.
427
+ if (usagePool && row.state === "pending") {
428
+ let blocker = blockerByPool.get(usagePool.poolKey);
429
+ if (!blocker) {
430
+ blocker = await ensureUsageLimitBlocker(deps, usagePool, now, deps.usageLimitJitterSeconds ?? drawUsageLimitJitterSeconds());
431
+ blockerByPool.set(usagePool.poolKey, blocker);
432
+ }
433
+ deps.queueRepo.update({
434
+ qitemId: row.qitemId,
435
+ actorSession: LADDER_ACTOR,
436
+ state: "blocked",
437
+ blockedOn: blocker.qitemId,
438
+ transitionNote: `usage-limit suppressed: pool=${usagePool.poolKey} reset=${usagePool.expiresAt}; waiting on shared blocker ${blocker.qitemId}`,
439
+ });
440
+ actions.push({ qitemId: row.qitemId, action: "park-usage-limit" });
441
+ continue;
442
+ }
443
+ const mode = classifyWakeResult(row.lastNudgeResult);
444
+ if (!mode)
445
+ continue;
446
+ const view = readLadder(deps.db, row.qitemId);
447
+ if (view.exhausted)
448
+ continue; // finite: an exhausted ladder never re-fires
449
+ // F1 gates for the unconfirmed class: never re-nudge; enter only past the window
450
+ // with zero pickup evidence.
451
+ if (mode === "unconfirmed") {
452
+ if (minutesSince(row.tsCreated, now) < windowMin)
453
+ continue;
454
+ if (hasPickupEvidence(deps.db, row))
455
+ continue;
456
+ }
457
+ activeLadders += 1;
458
+ // Due-ness: the latest ladder marker (or the original nudge attempt) is older than
459
+ // the retry interval. No markers + no recorded attempt = due now. Gates ACTIONS
460
+ // only — detection (and the aggregate refresh) is not throttled by it.
461
+ const lastActivity = view.lastMarkerTs ?? (row.lastNudgeAttempt ? Date.parse(row.lastNudgeAttempt) : null);
462
+ const due = lastActivity === null || Number.isNaN(lastActivity) || now.getTime() - lastActivity >= intervalS * 1000;
463
+ const suspended = due ? suspensionReason(deps.db, row.destinationSession, graceS, now) : null;
464
+ // Retry rung — failed outcomes only, under the cap, inside the destination budget.
465
+ if (mode === "failed" && view.attempts < cap) {
466
+ if (!due)
467
+ continue;
468
+ // F2 — derived suspension, checked only when the ladder would otherwise act.
469
+ if (suspended) {
470
+ if (!view.suspendEpisodeOpen) {
471
+ appendMarker(deps.queueRepo, row, `${LADDER_SUSPEND_PREFIX} ${suspended}`);
472
+ actions.push({ qitemId: row.qitemId, action: "suspend" });
473
+ }
474
+ continue;
475
+ }
476
+ if (view.suspendEpisodeOpen) {
477
+ appendMarker(deps.queueRepo, row, `${LADDER_RESUME_PREFIX} suspension over; ladder resumes`);
478
+ actions.push({ qitemId: row.qitemId, action: "resume" });
479
+ }
480
+ if (budgetFor(row.destinationSession) >= cap)
481
+ continue; // destination-bounded (F3)
482
+ windowBudget.set(row.destinationSession, budgetFor(row.destinationSession) + 1);
483
+ const outcome = await attemptWake(row.qitemId, row.destinationSession);
484
+ appendMarker(deps.queueRepo, row, `${LADDER_ATTEMPT_PREFIX} ${view.attempts + 1}/${cap} outcome=${outcome}`);
485
+ actions.push({ qitemId: row.qitemId, action: "retry", target: row.destinationSession });
486
+ continue;
487
+ }
488
+ // Escalation phase (past the cap, or the F1 direct path). Grouped per destination
489
+ // regardless of due-ness so the aggregate refresh rides every detection pass.
490
+ const reason = mode === "failed"
491
+ ? `wake failed ${view.attempts} times over ${minutesSince(view.firstMarkerTs ?? row.tsCreated, now)} min`
492
+ : `unconfirmed delivery with no pickup evidence over ${minutesSince(row.tsCreated, now)} min`;
493
+ const dest = row.destinationSession;
494
+ if (!escalating.has(dest))
495
+ escalating.set(dest, []);
496
+ escalating.get(dest).push({ row, view, mode, reason, due, suspended });
497
+ }
498
+ // F3 — per-destination aggregation: ONE escalation carrying the row list, refreshed
499
+ // not duplicated (the S02 idempotency shape), and rung markers on every member baton.
500
+ for (const [dest, members] of escalating) {
501
+ const orch = resolveOrch(dest);
502
+ // F3 — the aggregate refresh is detection-gated (the S02 idempotency shape): a
503
+ // live escalation group refreshes its one open row every pass, no wake attached.
504
+ await refreshEscalationRowIfExists(deps, dest, members);
505
+ const actionable = members.filter((m) => m.due && !m.suspended);
506
+ const needsOrchRung = actionable.filter((m) => !m.view.orchRung);
507
+ const reason = needsOrchRung[0]?.reason ?? members[0].reason;
508
+ if (needsOrchRung.length > 0) {
509
+ if (orch === null || orch === dest) {
510
+ // F4: rung 1 self-skips when it resolves to the destination itself (or nowhere)
511
+ // — never escalate INTO the dead seat; fall through to the operator rung now.
512
+ // The operator floor must be a VISIBLE OBJECT, not markers alone: ensure the
513
+ // per-destination escalation row exists (addressed to the operator seat, else
514
+ // the obligation's own creator) so the escalations view and the health count
515
+ // expose it — it stays open past the batons' exhaustion.
516
+ const floorDest = resolveOperatorSeat() ?? needsOrchRung[0].row.sourceSession;
517
+ await ensureEscalationRow(deps, dest, floorDest, needsOrchRung, reason);
518
+ for (const m of needsOrchRung) {
519
+ appendMarker(deps.queueRepo, m.row, `${LADDER_RUNG_PREFIX} orchestrator self-skip (resolves to ${orch === null ? "no orchestrator" : "destination"}) reason=${m.reason}`);
520
+ if (await operatorRung(deps, m.row, m.reason, actions, m.view)) {
521
+ appendExhausted(deps.queueRepo, m.row, "operator rung resolved");
522
+ exhaustedThisTick += 1;
523
+ }
524
+ }
525
+ }
526
+ else {
527
+ const escRow = await ensureEscalationRow(deps, dest, orch, members, reason);
528
+ const outcome = await attemptWake(escRow.qitemId, orch);
529
+ for (const m of needsOrchRung) {
530
+ appendMarker(deps.queueRepo, m.row, `${LADDER_RUNG_PREFIX} orchestrator -> ${orch} outcome=${outcome} reason=${m.reason}`);
531
+ actions.push({ qitemId: m.row.qitemId, action: "escalate-orchestrator", target: orch });
532
+ if (!outcome.startsWith("failed:")) {
533
+ // Delivered (or durable-unconfirmed — the aggregate row itself is now the
534
+ // orchestrator's durable obligation; S02 nets it if it sits unclaimed).
535
+ appendExhausted(deps.queueRepo, m.row, `escalated to orchestrator (${outcome === "verified" ? "delivered" : outcome})`);
536
+ exhaustedThisTick += 1;
537
+ }
538
+ }
539
+ }
540
+ continue; // one rung per destination per tick — bounded advance (F4)
541
+ }
542
+ // Orchestrator rung recorded and failed → advance to the operator rung.
543
+ for (const m of actionable) {
544
+ if (m.view.orchRung && m.view.orchRungFailed && !m.view.opRung) {
545
+ if (await operatorRung(deps, m.row, m.reason, actions, m.view)) {
546
+ appendExhausted(deps.queueRepo, m.row, "operator rung resolved");
547
+ exhaustedThisTick += 1;
548
+ }
549
+ }
550
+ }
551
+ // AM-F3 resolution pass: a rung whose engine outcome was pending exhausts
552
+ // once the row carries its resolution (posted receipt or termination) —
553
+ // never before, never silently.
554
+ for (const m of members) {
555
+ if (m.view.opEngineDispatched && !m.view.exhausted && m.view.opOutcomeResolved) {
556
+ appendExhausted(deps.queueRepo, m.row, "engine outcome resolved");
557
+ exhaustedThisTick += 1;
558
+ }
559
+ }
560
+ }
561
+ const escalationsOpen = deps.db
562
+ .prepare(`SELECT COUNT(*) AS n FROM queue_items
563
+ WHERE state IN ('pending','in-progress','blocked') AND tags LIKE ?`)
564
+ .get(`%"${WAKE_ESCALATION_TAG}"%`).n;
565
+ const outcome = actions.length > 0 ? "actions" : "clean";
566
+ status?.record(outcome, { active: activeLadders, escalations: escalationsOpen, exhausted: exhaustedThisTick });
567
+ return { outcome, actions };
568
+ }
569
+ catch (err) {
570
+ const message = err instanceof Error ? err.message : String(err);
571
+ log(`[wake-ladder] TICK FAILED (skipping loudly): ${message}`);
572
+ status?.record("failed", { error: message });
573
+ return { outcome: "failed", actions: [], error: message };
574
+ }
575
+ }
576
+ /** The operator rung (OPR.0.5.6.1 A1.2/AM-F3): the delivery rules engine IS the rung's
577
+ * delivery leg. With an engine port wired, the rung dispatches exactly once per episode,
578
+ * records the decision, and exhausts ONLY when the outcome resolves (synchronously, or
579
+ * later via the posted receipt / termination record the resolution pass reads). Without
580
+ * a port the pre-engine floor stands honestly and exhausts as before.
581
+ * Returns true when the ladder may append its exhausted marker now. */
582
+ async function operatorRung(deps, row, reason, actions, view) {
583
+ const repo = deps.queueRepo;
584
+ if (!deps.deliveryEngine) {
585
+ appendMarker(repo, row, `${LADDER_RUNG_PREFIX} operator floor=escalation view + daemon-health (delivery engine not wired) reason=${reason}`);
586
+ actions.push({ qitemId: row.qitemId, action: "escalate-operator" });
587
+ return true;
588
+ }
589
+ if (view.opEngineDispatched) {
590
+ // Exactly-once per episode: never re-dispatch; the resolution pass decides advance.
591
+ return view.opOutcomeResolved;
592
+ }
593
+ const outcome = await deps.deliveryEngine.dispatchEscalation(row, reason);
594
+ appendMarker(repo, row, `${LADDER_RUNG_PREFIX} operator dispatched-to-engine decision=${outcome.decision} resolved=${outcome.resolved}${outcome.notificationKey ? ` notification_key=${outcome.notificationKey}` : ""} reason=${reason}`);
595
+ actions.push({ qitemId: row.qitemId, action: "escalate-operator" });
596
+ return outcome.resolved;
597
+ }
598
+ function appendExhausted(repo, row, why) {
599
+ appendMarker(repo, row, `${LADDER_EXHAUSTED_PREFIX} ${why}`);
600
+ }
601
+ /** Ensure the per-destination aggregate escalation row (F3): one open row, deduped by
602
+ * tag, refreshed on re-detection — never one row per baton. The row is a NEW durable
603
+ * obligation addressed to the orchestrator; the baton itself is never duplicated. */
604
+ /** Refresh-only leg of the F3 aggregate: an already-open escalation row gains a
605
+ * detection-pass note naming the current member list; creation stays with the rung
606
+ * action so a row never exists before its first delivery attempt. */
607
+ async function refreshEscalationRowIfExists(deps, dest, members) {
608
+ const existing = deps.db
609
+ .prepare(`SELECT qitem_id FROM queue_items
610
+ WHERE state IN ('pending','in-progress','blocked') AND tags LIKE ? LIMIT 1`)
611
+ .get(`%"${escalationDedupTag(dest)}"%`);
612
+ if (!existing)
613
+ return;
614
+ deps.queueRepo.transitionLog.append({
615
+ qitemId: existing.qitem_id,
616
+ state: "pending",
617
+ actorSession: LADDER_ACTOR,
618
+ transitionNote: `wake-escalation refresh: ${members.length} stuck baton(s) for ${dest} — ${members
619
+ .map((m) => m.row.qitemId)
620
+ .join(", ")}`,
621
+ });
622
+ }
623
+ async function ensureEscalationRow(deps, dest, orch, members, reason) {
624
+ const dedupTag = escalationDedupTag(dest);
625
+ const existing = deps.db
626
+ .prepare(`SELECT qitem_id FROM queue_items
627
+ WHERE state IN ('pending','in-progress','blocked') AND tags LIKE ? LIMIT 1`)
628
+ .get(`%"${dedupTag}"%`);
629
+ if (existing) {
630
+ deps.queueRepo.transitionLog.append({
631
+ qitemId: existing.qitem_id,
632
+ state: "pending",
633
+ actorSession: LADDER_ACTOR,
634
+ transitionNote: `wake-escalation refresh: ${members.length} stuck baton(s) for ${dest} — ${members
635
+ .map((m) => m.row.qitemId)
636
+ .join(", ")}`,
637
+ });
638
+ return { qitemId: existing.qitem_id };
639
+ }
640
+ const body = `WAKE ESCALATION (aggregated per destination)\n` +
641
+ `destination: ${dest}\n` +
642
+ `reason: ${reason}\n` +
643
+ `stuck batons (${members.length}):\n` +
644
+ members.map((m) => `- ${m.row.qitemId} (${m.reason})`).join("\n") +
645
+ `\nThe rows above still carry their obligations exactly-once; this escalation is the wake, not the content.`;
646
+ const created = await deps.queueRepo.create({
647
+ sourceSession: members[0].row.sourceSession,
648
+ destinationSession: orch,
649
+ body,
650
+ summary: `Wake escalation: ${members.length} baton(s) stuck at ${dest} — ${reason}`,
651
+ tags: [WAKE_ESCALATION_TAG, dedupTag],
652
+ nudge: false, // delivery is the ladder's own rung attempt, recorded with its outcome
653
+ });
654
+ return { qitemId: created.qitemId };
655
+ }
656
+ /** The standing loop — the watchdog-scheduler pattern (injected seams, runTickNow, no
657
+ * overlapping ticks), so the ladder is unit-drivable without timers. */
658
+ export class WakeLadderScheduler {
659
+ deps;
660
+ timer = null;
661
+ inflight = null;
662
+ shuttingDown = false;
663
+ started = false;
664
+ constructor(deps) {
665
+ this.deps = deps;
666
+ }
667
+ start() {
668
+ if (this.started)
669
+ return;
670
+ this.started = true;
671
+ this.shuttingDown = false;
672
+ this.scheduleNext();
673
+ }
674
+ async stop() {
675
+ this.shuttingDown = true;
676
+ if (this.timer) {
677
+ (this.deps.clearTimer ?? clearTimeout)(this.timer);
678
+ this.timer = null;
679
+ }
680
+ if (this.inflight)
681
+ await this.inflight.catch(() => { });
682
+ this.started = false;
683
+ }
684
+ async runTickNow() {
685
+ if (this.inflight) {
686
+ await this.inflight;
687
+ return;
688
+ }
689
+ this.inflight = this.deps.runTick().finally(() => {
690
+ this.inflight = null;
691
+ });
692
+ await this.inflight;
693
+ }
694
+ scheduleNext() {
695
+ if (this.shuttingDown)
696
+ return;
697
+ const ms = this.deps.tickIntervalMs ?? DEFAULT_WAKE_RETRY_INTERVAL_SECONDS * 1000;
698
+ this.timer = (this.deps.setTimer ?? setTimeout)(() => {
699
+ void this.runTickNow()
700
+ .catch((err) => (this.deps.onTickError ?? console.error)(err))
701
+ .finally(() => this.scheduleNext());
702
+ }, ms);
703
+ }
704
+ }
705
+ //# sourceMappingURL=queue-wake-ladder.js.map