@openrig/cli 0.6.14 → 0.7.0

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 (778) hide show
  1. package/README.md +10 -9
  2. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  3. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  4. package/daemon/assets/plugins/openrig-core/README.md +11 -4
  5. package/daemon/assets/plugins/openrig-core/hooks/codex.json +6 -6
  6. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +13 -1
  7. package/daemon/assets/plugins/openrig-core/hooks/scripts/codex-hook-trust.cjs +49 -0
  8. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +26 -5
  9. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -2
  10. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +3 -2
  11. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +2 -2
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +28 -18
  14. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +10 -4
  15. package/daemon/assets/skills/rigs/SKILL.md +24 -5
  16. package/daemon/context-packs/help/manifest.yaml +1 -1
  17. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  18. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +4 -6
  19. package/daemon/context-packs/reference/getting-started.md +87 -21
  20. package/daemon/context-packs/reference/manifest.yaml +1 -1
  21. package/daemon/context-packs/reference/rig-spec.md +1 -1
  22. package/daemon/context-packs/reference/whats-new.md +123 -68
  23. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +9 -2
  27. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
  33. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +2 -2
  38. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +11 -5
  41. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +3 -2
  50. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/openrig-user/SKILL.md +28 -18
  55. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/pods/development-team/SKILL.md +2 -0
  65. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -1
  66. package/daemon/context-packs/skills/pods/development-team/references/refactoring.md +11 -0
  67. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/pods/review-team/SKILL.md +46 -96
  70. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +17 -80
  78. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +5 -3
  79. package/daemon/context-packs/skills/process/verification-before-completion/references/performance-claims.md +12 -0
  80. package/daemon/context-packs/skills/queue-handoff/SKILL.md +10 -4
  81. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  87. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  88. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  89. package/daemon/dist/adapters/claude-code-adapter.d.ts +6 -2
  90. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  91. package/daemon/dist/adapters/claude-code-adapter.js +33 -6
  92. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  93. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  94. package/daemon/dist/adapters/codex-resume.js +2 -7
  95. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  96. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +68 -2
  97. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  98. package/daemon/dist/adapters/codex-runtime-adapter.js +371 -60
  99. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  100. package/daemon/dist/adapters/compose-services-adapter.d.ts +16 -0
  101. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  102. package/daemon/dist/adapters/compose-services-adapter.js +52 -9
  103. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  104. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  105. package/daemon/dist/adapters/kernel-authority.js +9 -5
  106. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  107. package/daemon/dist/adapters/pi-runner.d.ts +2 -0
  108. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  109. package/daemon/dist/adapters/pi-runner.js +5 -0
  110. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  111. package/daemon/dist/adapters/runtime-probe-exec.d.ts +11 -0
  112. package/daemon/dist/adapters/runtime-probe-exec.d.ts.map +1 -0
  113. package/daemon/dist/adapters/runtime-probe-exec.js +25 -0
  114. package/daemon/dist/adapters/runtime-probe-exec.js.map +1 -0
  115. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  116. package/daemon/dist/adapters/stub-runner.js +2 -0
  117. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  118. package/daemon/dist/adapters/tmux.d.ts +21 -1
  119. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  120. package/daemon/dist/adapters/tmux.js +100 -13
  121. package/daemon/dist/adapters/tmux.js.map +1 -1
  122. package/daemon/dist/build-info.js +3 -3
  123. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  124. package/daemon/dist/db/all-migrations.js +12 -0
  125. package/daemon/dist/db/all-migrations.js.map +1 -1
  126. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts +3 -0
  127. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts.map +1 -0
  128. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js +8 -0
  129. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js.map +1 -0
  130. package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts +3 -0
  131. package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts.map +1 -0
  132. package/daemon/dist/db/migrations/118_human_quiet_windows.js +30 -0
  133. package/daemon/dist/db/migrations/118_human_quiet_windows.js.map +1 -0
  134. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts +3 -0
  135. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts.map +1 -0
  136. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js +7 -0
  137. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js.map +1 -0
  138. package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts +13 -0
  139. package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts.map +1 -0
  140. package/daemon/dist/db/migrations/121_rig_startup_layers.js +17 -0
  141. package/daemon/dist/db/migrations/121_rig_startup_layers.js.map +1 -0
  142. package/daemon/dist/db/migrations/122_human_operating_modes.d.ts +3 -0
  143. package/daemon/dist/db/migrations/122_human_operating_modes.d.ts.map +1 -0
  144. package/daemon/dist/db/migrations/122_human_operating_modes.js +55 -0
  145. package/daemon/dist/db/migrations/122_human_operating_modes.js.map +1 -0
  146. package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts +3 -0
  147. package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts.map +1 -0
  148. package/daemon/dist/db/migrations/123_queue_delegated_decision.js +10 -0
  149. package/daemon/dist/db/migrations/123_queue_delegated_decision.js.map +1 -0
  150. package/daemon/dist/domain/active-occupant.d.ts +5 -3
  151. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  152. package/daemon/dist/domain/active-occupant.js +2 -2
  153. package/daemon/dist/domain/active-occupant.js.map +1 -1
  154. package/daemon/dist/domain/activity-taxonomy.d.ts +16 -1
  155. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  156. package/daemon/dist/domain/activity-taxonomy.js +21 -0
  157. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  158. package/daemon/dist/domain/agent-activity-store.d.ts +20 -0
  159. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  160. package/daemon/dist/domain/agent-activity-store.js +41 -5
  161. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  162. package/daemon/dist/domain/agent-images/evidence-guard.js +3 -3
  163. package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -1
  164. package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -1
  165. package/daemon/dist/domain/agent-images/resume-token-discovery.js +2 -10
  166. package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -1
  167. package/daemon/dist/domain/ask-service.d.ts +1 -0
  168. package/daemon/dist/domain/ask-service.d.ts.map +1 -1
  169. package/daemon/dist/domain/ask-service.js +7 -1
  170. package/daemon/dist/domain/ask-service.js.map +1 -1
  171. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +2 -0
  172. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  173. package/daemon/dist/domain/bootstrap-orchestrator.js +5 -6
  174. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  175. package/daemon/dist/domain/claim-service.d.ts +1 -1
  176. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  177. package/daemon/dist/domain/claim-service.js +7 -0
  178. package/daemon/dist/domain/claim-service.js.map +1 -1
  179. package/daemon/dist/domain/classification-sources.d.ts.map +1 -1
  180. package/daemon/dist/domain/classification-sources.js +2 -0
  181. package/daemon/dist/domain/classification-sources.js.map +1 -1
  182. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +17 -4
  183. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  184. package/daemon/dist/domain/claude-compaction-enforcer.js +88 -24
  185. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  186. package/daemon/dist/domain/claude-core-plugin-env.d.ts +11 -0
  187. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
  188. package/daemon/dist/domain/claude-core-plugin-env.js +15 -0
  189. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -1
  190. package/daemon/dist/domain/codex-core-plugin-install.d.ts +41 -0
  191. package/daemon/dist/domain/codex-core-plugin-install.d.ts.map +1 -0
  192. package/daemon/dist/domain/codex-core-plugin-install.js +126 -0
  193. package/daemon/dist/domain/codex-core-plugin-install.js.map +1 -0
  194. package/daemon/dist/domain/codex-thread-id.d.ts +23 -1
  195. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  196. package/daemon/dist/domain/codex-thread-id.js +58 -17
  197. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  198. package/daemon/dist/domain/context-monitor.d.ts +13 -5
  199. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  200. package/daemon/dist/domain/context-monitor.js +47 -13
  201. package/daemon/dist/domain/context-monitor.js.map +1 -1
  202. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  203. package/daemon/dist/domain/context-usage-store.js +3 -0
  204. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  205. package/daemon/dist/domain/current-work.d.ts +18 -0
  206. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  207. package/daemon/dist/domain/current-work.js +17 -3
  208. package/daemon/dist/domain/current-work.js.map +1 -1
  209. package/daemon/dist/domain/draft-aware-delivery.d.ts +7 -7
  210. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -1
  211. package/daemon/dist/domain/draft-aware-delivery.js +61 -82
  212. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -1
  213. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  214. package/daemon/dist/domain/execution-view.js +2 -1
  215. package/daemon/dist/domain/execution-view.js.map +1 -1
  216. package/daemon/dist/domain/existing-rig-restore.d.ts +110 -0
  217. package/daemon/dist/domain/existing-rig-restore.d.ts.map +1 -0
  218. package/daemon/dist/domain/existing-rig-restore.js +254 -0
  219. package/daemon/dist/domain/existing-rig-restore.js.map +1 -0
  220. package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
  221. package/daemon/dist/domain/fresh-occupant-relation.js +9 -2
  222. package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
  223. package/daemon/dist/domain/gateway/channel-operations.d.ts +3 -4
  224. package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
  225. package/daemon/dist/domain/gateway/channel-operations.js.map +1 -1
  226. package/daemon/dist/domain/gateway/connections-projection.d.ts +0 -5
  227. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  228. package/daemon/dist/domain/gateway/connections-projection.js +3 -46
  229. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  230. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +11 -1
  231. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -1
  232. package/daemon/dist/domain/gateway/delivery-rules-engine.js +12 -2
  233. package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -1
  234. package/daemon/dist/domain/gateway/dispatch-buffer.d.ts +4 -0
  235. package/daemon/dist/domain/gateway/dispatch-buffer.d.ts.map +1 -1
  236. package/daemon/dist/domain/gateway/dispatch-buffer.js +18 -0
  237. package/daemon/dist/domain/gateway/dispatch-buffer.js.map +1 -1
  238. package/daemon/dist/domain/gateway/human-mode-account.d.ts +61 -0
  239. package/daemon/dist/domain/gateway/human-mode-account.d.ts.map +1 -0
  240. package/daemon/dist/domain/gateway/human-mode-account.js +112 -0
  241. package/daemon/dist/domain/gateway/human-mode-account.js.map +1 -0
  242. package/daemon/dist/domain/gateway/human-operating-modes.d.ts +171 -0
  243. package/daemon/dist/domain/gateway/human-operating-modes.d.ts.map +1 -0
  244. package/daemon/dist/domain/gateway/human-operating-modes.js +422 -0
  245. package/daemon/dist/domain/gateway/human-operating-modes.js.map +1 -0
  246. package/daemon/dist/domain/gateway/human-quiet-windows.d.ts +121 -0
  247. package/daemon/dist/domain/gateway/human-quiet-windows.d.ts.map +1 -0
  248. package/daemon/dist/domain/gateway/human-quiet-windows.js +217 -0
  249. package/daemon/dist/domain/gateway/human-quiet-windows.js.map +1 -0
  250. package/daemon/dist/domain/gateway/human-registry.d.ts +23 -2
  251. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  252. package/daemon/dist/domain/gateway/human-registry.js +67 -5
  253. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  254. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  255. package/daemon/dist/domain/gateway/operator-delivery-engine.js +9 -0
  256. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  257. package/daemon/dist/domain/gateway/slack/inbound.d.ts +10 -2
  258. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  259. package/daemon/dist/domain/gateway/slack/inbound.js +24 -2
  260. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  261. package/daemon/dist/domain/gateway/slack/message.d.ts +1 -0
  262. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  263. package/daemon/dist/domain/gateway/slack/message.js +5 -1
  264. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  265. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +9 -3
  266. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  267. package/daemon/dist/domain/gateway/slack/outbound-driver.js +40 -6
  268. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  269. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +19 -1
  270. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  271. package/daemon/dist/domain/gateway/slack/slack-delivery.js +128 -41
  272. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  273. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -2
  274. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  275. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +268 -50
  276. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  277. package/daemon/dist/domain/health-passive-ceremony.d.ts +4 -0
  278. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  279. package/daemon/dist/domain/health-passive-ceremony.js +34 -4
  280. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  281. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +3 -1
  282. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  283. package/daemon/dist/domain/hosts/hosts-registry-reader.js +9 -9
  284. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  285. package/daemon/dist/domain/hosts/learned-host-bindings.d.ts +28 -0
  286. package/daemon/dist/domain/hosts/learned-host-bindings.d.ts.map +1 -0
  287. package/daemon/dist/domain/hosts/learned-host-bindings.js +77 -0
  288. package/daemon/dist/domain/hosts/learned-host-bindings.js.map +1 -0
  289. package/daemon/dist/domain/hot-potato-enforcer.d.ts +7 -5
  290. package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -1
  291. package/daemon/dist/domain/hot-potato-enforcer.js +19 -10
  292. package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -1
  293. package/daemon/dist/domain/human-questions.d.ts +8 -1
  294. package/daemon/dist/domain/human-questions.d.ts.map +1 -1
  295. package/daemon/dist/domain/human-questions.js.map +1 -1
  296. package/daemon/dist/domain/kernel-boot-tracker.d.ts +17 -1
  297. package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
  298. package/daemon/dist/domain/kernel-boot-tracker.js +44 -3
  299. package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
  300. package/daemon/dist/domain/kernel-boot.d.ts +21 -0
  301. package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  302. package/daemon/dist/domain/kernel-boot.js +57 -2
  303. package/daemon/dist/domain/kernel-boot.js.map +1 -1
  304. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +2 -1
  305. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  306. package/daemon/dist/domain/model-divergence/current-generation-record.js +8 -3
  307. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  308. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  309. package/daemon/dist/domain/native-process-lineage.js +43 -15
  310. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  311. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  312. package/daemon/dist/domain/node-inventory.js +26 -12
  313. package/daemon/dist/domain/node-inventory.js.map +1 -1
  314. package/daemon/dist/domain/node-launcher.d.ts +5 -3
  315. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  316. package/daemon/dist/domain/node-launcher.js +29 -25
  317. package/daemon/dist/domain/node-launcher.js.map +1 -1
  318. package/daemon/dist/domain/outbox-handler.d.ts +3 -5
  319. package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
  320. package/daemon/dist/domain/outbox-handler.js +9 -19
  321. package/daemon/dist/domain/outbox-handler.js.map +1 -1
  322. package/daemon/dist/domain/park-wake-text.d.ts +11 -0
  323. package/daemon/dist/domain/park-wake-text.d.ts.map +1 -0
  324. package/daemon/dist/domain/park-wake-text.js +26 -0
  325. package/daemon/dist/domain/park-wake-text.js.map +1 -0
  326. package/daemon/dist/domain/plugin-vendor-service.d.ts +4 -0
  327. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  328. package/daemon/dist/domain/plugin-vendor-service.js +29 -6
  329. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  330. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +1 -0
  331. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -1
  332. package/daemon/dist/domain/policies/delivery-digest-flush.js +25 -4
  333. package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -1
  334. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts +37 -0
  335. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts.map +1 -0
  336. package/daemon/dist/domain/policies/mode-scheduled-end.js +161 -0
  337. package/daemon/dist/domain/policies/mode-scheduled-end.js.map +1 -0
  338. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +11 -7
  339. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  340. package/daemon/dist/domain/policies/parked-owner-consumer.js +82 -113
  341. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  342. package/daemon/dist/domain/policies/quiet-release.d.ts +109 -0
  343. package/daemon/dist/domain/policies/quiet-release.d.ts.map +1 -0
  344. package/daemon/dist/domain/policies/quiet-release.js +213 -0
  345. package/daemon/dist/domain/policies/quiet-release.js.map +1 -0
  346. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  347. package/daemon/dist/domain/profile-resolver.js +8 -3
  348. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  349. package/daemon/dist/domain/proof/source-watch.js +2 -2
  350. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  351. package/daemon/dist/domain/queue-destination-check.d.ts +6 -0
  352. package/daemon/dist/domain/queue-destination-check.d.ts.map +1 -0
  353. package/daemon/dist/domain/queue-destination-check.js +35 -0
  354. package/daemon/dist/domain/queue-destination-check.js.map +1 -0
  355. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  356. package/daemon/dist/domain/queue-owner.js +2 -1
  357. package/daemon/dist/domain/queue-owner.js.map +1 -1
  358. package/daemon/dist/domain/queue-recovery.d.ts +1 -1
  359. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  360. package/daemon/dist/domain/queue-recovery.js +3 -2
  361. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  362. package/daemon/dist/domain/queue-repository.d.ts +108 -67
  363. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  364. package/daemon/dist/domain/queue-repository.js +316 -140
  365. package/daemon/dist/domain/queue-repository.js.map +1 -1
  366. package/daemon/dist/domain/queue-stuck-sweep.d.ts +13 -1
  367. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  368. package/daemon/dist/domain/queue-stuck-sweep.js +95 -13
  369. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  370. package/daemon/dist/domain/queue-transition-log.d.ts +5 -0
  371. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  372. package/daemon/dist/domain/queue-transition-log.js +25 -8
  373. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  374. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -0
  375. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  376. package/daemon/dist/domain/queue-wake-ladder.js +94 -11
  377. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  378. package/daemon/dist/domain/quiet-hold-custody.d.ts +24 -0
  379. package/daemon/dist/domain/quiet-hold-custody.d.ts.map +1 -0
  380. package/daemon/dist/domain/quiet-hold-custody.js +85 -0
  381. package/daemon/dist/domain/quiet-hold-custody.js.map +1 -0
  382. package/daemon/dist/domain/rehydrate-eligibility.d.ts +12 -1
  383. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  384. package/daemon/dist/domain/rehydrate-eligibility.js +47 -9
  385. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  386. package/daemon/dist/domain/restore-orchestrator.d.ts +11 -0
  387. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  388. package/daemon/dist/domain/restore-orchestrator.js +144 -15
  389. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  390. package/daemon/dist/domain/restore-plan-preview.d.ts +3 -1
  391. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  392. package/daemon/dist/domain/restore-plan-preview.js +30 -13
  393. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  394. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  395. package/daemon/dist/domain/review/gather.js +8 -5
  396. package/daemon/dist/domain/review/gather.js.map +1 -1
  397. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
  398. package/daemon/dist/domain/rig-mode/operating-posture.js +3 -1
  399. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
  400. package/daemon/dist/domain/rig-repository.d.ts +11 -1
  401. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  402. package/daemon/dist/domain/rig-repository.js +27 -3
  403. package/daemon/dist/domain/rig-repository.js.map +1 -1
  404. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  405. package/daemon/dist/domain/rig-teardown.js +31 -4
  406. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  407. package/daemon/dist/domain/rigspec-instantiator.d.ts +9 -0
  408. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  409. package/daemon/dist/domain/rigspec-instantiator.js +59 -28
  410. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  411. package/daemon/dist/domain/rigspec-schema.d.ts +5 -0
  412. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  413. package/daemon/dist/domain/rigspec-schema.js +30 -0
  414. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  415. package/daemon/dist/domain/runtime-adapter.d.ts +27 -2
  416. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  417. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  418. package/daemon/dist/domain/seat-activity-service.d.ts +18 -3
  419. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  420. package/daemon/dist/domain/seat-activity-service.js +124 -57
  421. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  422. package/daemon/dist/domain/seat-attention-reconciler.d.ts +8 -1
  423. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  424. package/daemon/dist/domain/seat-attention-reconciler.js +3 -1
  425. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  426. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  427. package/daemon/dist/domain/seat-delivery-guard.js +21 -5
  428. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  429. package/daemon/dist/domain/seat-handover-service.d.ts +2 -2
  430. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  431. package/daemon/dist/domain/seat-handover-service.js +28 -2
  432. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  433. package/daemon/dist/domain/seat-identity-reconciler.js +1 -1
  434. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  435. package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
  436. package/daemon/dist/domain/seat-identity-store.js +5 -2
  437. package/daemon/dist/domain/seat-identity-store.js.map +1 -1
  438. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -1
  439. package/daemon/dist/domain/seat-launch-environment.js +17 -1
  440. package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
  441. package/daemon/dist/domain/seat-lifecycle-service.d.ts +4 -0
  442. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  443. package/daemon/dist/domain/seat-restart-in-place.d.ts +33 -14
  444. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
  445. package/daemon/dist/domain/seat-restart-in-place.js +102 -30
  446. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
  447. package/daemon/dist/domain/self-attach-service.d.ts +3 -2
  448. package/daemon/dist/domain/self-attach-service.d.ts.map +1 -1
  449. package/daemon/dist/domain/self-attach-service.js +18 -1
  450. package/daemon/dist/domain/self-attach-service.js.map +1 -1
  451. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  452. package/daemon/dist/domain/services-readiness.js +14 -3
  453. package/daemon/dist/domain/services-readiness.js.map +1 -1
  454. package/daemon/dist/domain/session-registry.d.ts +45 -0
  455. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  456. package/daemon/dist/domain/session-registry.js +124 -0
  457. package/daemon/dist/domain/session-registry.js.map +1 -1
  458. package/daemon/dist/domain/session-transport.d.ts +24 -6
  459. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  460. package/daemon/dist/domain/session-transport.js +58 -41
  461. package/daemon/dist/domain/session-transport.js.map +1 -1
  462. package/daemon/dist/domain/skill-discovery.d.ts +7 -1
  463. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  464. package/daemon/dist/domain/skill-discovery.js +41 -7
  465. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  466. package/daemon/dist/domain/snapshot-repository.d.ts +1 -0
  467. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  468. package/daemon/dist/domain/snapshot-repository.js +23 -10
  469. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  470. package/daemon/dist/domain/startup-orchestrator.d.ts +21 -3
  471. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  472. package/daemon/dist/domain/startup-orchestrator.js +66 -16
  473. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  474. package/daemon/dist/domain/startup-submission-evidence.d.ts +4 -11
  475. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  476. package/daemon/dist/domain/startup-submission-evidence.js +11 -17
  477. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  478. package/daemon/dist/domain/successor-session-launcher.d.ts +2 -1
  479. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  480. package/daemon/dist/domain/successor-session-launcher.js +3 -1
  481. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  482. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +1 -1
  483. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  484. package/daemon/dist/domain/terminal/herdr-adapter.js +22 -4
  485. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  486. package/daemon/dist/domain/types.d.ts +15 -4
  487. package/daemon/dist/domain/types.d.ts.map +1 -1
  488. package/daemon/dist/domain/types.js.map +1 -1
  489. package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
  490. package/daemon/dist/domain/user-settings/settings-browser.js +2 -0
  491. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
  492. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  493. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  494. package/daemon/dist/domain/user-settings/settings-store.js +33 -7
  495. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  496. package/daemon/dist/domain/watchdog-delivery.d.ts +3 -23
  497. package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -1
  498. package/daemon/dist/domain/watchdog-delivery.js +12 -89
  499. package/daemon/dist/domain/watchdog-delivery.js.map +1 -1
  500. package/daemon/dist/domain/watchdog-history-log.d.ts +5 -2
  501. package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -1
  502. package/daemon/dist/domain/watchdog-history-log.js.map +1 -1
  503. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -2
  504. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  505. package/daemon/dist/domain/watchdog-jobs-repository.js +4 -0
  506. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  507. package/daemon/dist/domain/watchdog-policy-engine.d.ts +16 -24
  508. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  509. package/daemon/dist/domain/watchdog-policy-engine.js +44 -43
  510. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  511. package/daemon/dist/domain/whoami-service.d.ts +2 -0
  512. package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
  513. package/daemon/dist/domain/whoami-service.js +23 -6
  514. package/daemon/dist/domain/whoami-service.js.map +1 -1
  515. package/daemon/dist/domain/workflow-boot-sweep.d.ts +2 -1
  516. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  517. package/daemon/dist/domain/workflow-boot-sweep.js +11 -5
  518. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  519. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  520. package/daemon/dist/domain/workflow-exception-escalation.js +2 -1
  521. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  522. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  523. package/daemon/dist/domain/workflow-projector.js +5 -2
  524. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  525. package/daemon/dist/domain/workflow-role-context.js +2 -2
  526. package/daemon/dist/domain/workflow-role-context.js.map +1 -1
  527. package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
  528. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  529. package/daemon/dist/domain/workflow-runtime.js +2 -0
  530. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  531. package/daemon/dist/routes/activity.d.ts +13 -1
  532. package/daemon/dist/routes/activity.d.ts.map +1 -1
  533. package/daemon/dist/routes/activity.js +67 -2
  534. package/daemon/dist/routes/activity.js.map +1 -1
  535. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  536. package/daemon/dist/routes/agent-images.js +2 -0
  537. package/daemon/dist/routes/agent-images.js.map +1 -1
  538. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  539. package/daemon/dist/routes/compaction.js +7 -2
  540. package/daemon/dist/routes/compaction.js.map +1 -1
  541. package/daemon/dist/routes/discovery.js +3 -0
  542. package/daemon/dist/routes/discovery.js.map +1 -1
  543. package/daemon/dist/routes/down.js +9 -1
  544. package/daemon/dist/routes/down.js.map +1 -1
  545. package/daemon/dist/routes/gateway.d.ts +2 -0
  546. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  547. package/daemon/dist/routes/gateway.js +181 -1
  548. package/daemon/dist/routes/gateway.js.map +1 -1
  549. package/daemon/dist/routes/kernel-status.js +6 -1
  550. package/daemon/dist/routes/kernel-status.js.map +1 -1
  551. package/daemon/dist/routes/provider.d.ts.map +1 -1
  552. package/daemon/dist/routes/provider.js +0 -73
  553. package/daemon/dist/routes/provider.js.map +1 -1
  554. package/daemon/dist/routes/queue.d.ts.map +1 -1
  555. package/daemon/dist/routes/queue.js +73 -13
  556. package/daemon/dist/routes/queue.js.map +1 -1
  557. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  558. package/daemon/dist/routes/rigs.js +29 -10
  559. package/daemon/dist/routes/rigs.js.map +1 -1
  560. package/daemon/dist/routes/rigspec.js +2 -3
  561. package/daemon/dist/routes/rigspec.js.map +1 -1
  562. package/daemon/dist/routes/seat.js +2 -2
  563. package/daemon/dist/routes/seat.js.map +1 -1
  564. package/daemon/dist/routes/skills.js +2 -2
  565. package/daemon/dist/routes/skills.js.map +1 -1
  566. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  567. package/daemon/dist/routes/transcripts.js +7 -3
  568. package/daemon/dist/routes/transcripts.js.map +1 -1
  569. package/daemon/dist/routes/transport.js +1 -1
  570. package/daemon/dist/routes/transport.js.map +1 -1
  571. package/daemon/dist/routes/up.js +36 -52
  572. package/daemon/dist/routes/up.js.map +1 -1
  573. package/daemon/dist/startup.d.ts.map +1 -1
  574. package/daemon/dist/startup.js +102 -60
  575. package/daemon/dist/startup.js.map +1 -1
  576. package/daemon/docs/reference/agent-state-taxonomy.md +17 -2
  577. package/daemon/docs/reference/getting-started.md +87 -21
  578. package/daemon/docs/reference/quickstart.md +33 -20
  579. package/daemon/docs/reference/refocus-channel.md +9 -3
  580. package/daemon/docs/reference/rig-spec.md +1 -1
  581. package/daemon/docs/reference/seat-delivery.md +57 -18
  582. package/daemon/docs/reference/slack-app-setup.md +49 -2
  583. package/daemon/docs/reference/whats-new.md +123 -68
  584. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
  585. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +2 -2
  586. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +11 -5
  587. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +2 -0
  588. package/daemon/specs/agents/shared/skills/pods/development-team/references/refactoring.md +11 -0
  589. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +46 -96
  590. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +17 -80
  591. package/daemon/specs/agents/shared/skills/process/verification-before-completion/references/performance-claims.md +12 -0
  592. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +93 -14
  593. package/dist/build-info.js +3 -3
  594. package/dist/cli-error.d.ts +4 -0
  595. package/dist/cli-error.d.ts.map +1 -1
  596. package/dist/cli-error.js +6 -0
  597. package/dist/cli-error.js.map +1 -1
  598. package/dist/commands/agent-image.d.ts.map +1 -1
  599. package/dist/commands/agent-image.js +15 -7
  600. package/dist/commands/agent-image.js.map +1 -1
  601. package/dist/commands/archive.d.ts.map +1 -1
  602. package/dist/commands/archive.js +17 -3
  603. package/dist/commands/archive.js.map +1 -1
  604. package/dist/commands/attach.d.ts.map +1 -1
  605. package/dist/commands/attach.js +6 -4
  606. package/dist/commands/attach.js.map +1 -1
  607. package/dist/commands/broadcast.js +2 -0
  608. package/dist/commands/broadcast.js.map +1 -1
  609. package/dist/commands/community-harness.d.ts.map +1 -1
  610. package/dist/commands/community-harness.js +2 -1
  611. package/dist/commands/community-harness.js.map +1 -1
  612. package/dist/commands/compact-plan.d.ts.map +1 -1
  613. package/dist/commands/compact-plan.js +2 -1
  614. package/dist/commands/compact-plan.js.map +1 -1
  615. package/dist/commands/compact.d.ts.map +1 -1
  616. package/dist/commands/compact.js +10 -3
  617. package/dist/commands/compact.js.map +1 -1
  618. package/dist/commands/config.d.ts.map +1 -1
  619. package/dist/commands/config.js +10 -2
  620. package/dist/commands/config.js.map +1 -1
  621. package/dist/commands/context.d.ts.map +1 -1
  622. package/dist/commands/context.js +16 -9
  623. package/dist/commands/context.js.map +1 -1
  624. package/dist/commands/expand.d.ts.map +1 -1
  625. package/dist/commands/expand.js +16 -2
  626. package/dist/commands/expand.js.map +1 -1
  627. package/dist/commands/export.d.ts.map +1 -1
  628. package/dist/commands/export.js +9 -2
  629. package/dist/commands/export.js.map +1 -1
  630. package/dist/commands/fork.d.ts.map +1 -1
  631. package/dist/commands/fork.js +3 -1
  632. package/dist/commands/fork.js.map +1 -1
  633. package/dist/commands/gateway.d.ts +39 -0
  634. package/dist/commands/gateway.d.ts.map +1 -1
  635. package/dist/commands/gateway.js +310 -3
  636. package/dist/commands/gateway.js.map +1 -1
  637. package/dist/commands/health.js +3 -2
  638. package/dist/commands/health.js.map +1 -1
  639. package/dist/commands/host.d.ts +1 -1
  640. package/dist/commands/host.d.ts.map +1 -1
  641. package/dist/commands/host.js +2 -2
  642. package/dist/commands/host.js.map +1 -1
  643. package/dist/commands/launch.d.ts.map +1 -1
  644. package/dist/commands/launch.js +9 -2
  645. package/dist/commands/launch.js.map +1 -1
  646. package/dist/commands/plugin.d.ts.map +1 -1
  647. package/dist/commands/plugin.js +2 -1
  648. package/dist/commands/plugin.js.map +1 -1
  649. package/dist/commands/provider.d.ts.map +1 -1
  650. package/dist/commands/provider.js +0 -73
  651. package/dist/commands/provider.js.map +1 -1
  652. package/dist/commands/ps.d.ts +4 -0
  653. package/dist/commands/ps.d.ts.map +1 -1
  654. package/dist/commands/ps.js +95 -5
  655. package/dist/commands/ps.js.map +1 -1
  656. package/dist/commands/queue.d.ts +4 -0
  657. package/dist/commands/queue.d.ts.map +1 -1
  658. package/dist/commands/queue.js +78 -3
  659. package/dist/commands/queue.js.map +1 -1
  660. package/dist/commands/release.d.ts.map +1 -1
  661. package/dist/commands/release.js +16 -2
  662. package/dist/commands/release.js.map +1 -1
  663. package/dist/commands/restore-check.d.ts.map +1 -1
  664. package/dist/commands/restore-check.js +2 -1
  665. package/dist/commands/restore-check.js.map +1 -1
  666. package/dist/commands/restore-packet.d.ts.map +1 -1
  667. package/dist/commands/restore-packet.js +2 -1
  668. package/dist/commands/restore-packet.js.map +1 -1
  669. package/dist/commands/restore.d.ts.map +1 -1
  670. package/dist/commands/restore.js +23 -6
  671. package/dist/commands/restore.js.map +1 -1
  672. package/dist/commands/scope.d.ts.map +1 -1
  673. package/dist/commands/scope.js +5 -2
  674. package/dist/commands/scope.js.map +1 -1
  675. package/dist/commands/seat.js +0 -4
  676. package/dist/commands/seat.js.map +1 -1
  677. package/dist/commands/send.d.ts.map +1 -1
  678. package/dist/commands/send.js +27 -3
  679. package/dist/commands/send.js.map +1 -1
  680. package/dist/commands/setup.d.ts +3 -0
  681. package/dist/commands/setup.d.ts.map +1 -1
  682. package/dist/commands/setup.js +29 -9
  683. package/dist/commands/setup.js.map +1 -1
  684. package/dist/commands/shrink.d.ts.map +1 -1
  685. package/dist/commands/shrink.js +16 -2
  686. package/dist/commands/shrink.js.map +1 -1
  687. package/dist/commands/slack.d.ts.map +1 -1
  688. package/dist/commands/slack.js +11 -24
  689. package/dist/commands/slack.js.map +1 -1
  690. package/dist/commands/snapshot.d.ts.map +1 -1
  691. package/dist/commands/snapshot.js +36 -10
  692. package/dist/commands/snapshot.js.map +1 -1
  693. package/dist/commands/specs.d.ts.map +1 -1
  694. package/dist/commands/specs.js +11 -5
  695. package/dist/commands/specs.js.map +1 -1
  696. package/dist/commands/start.d.ts.map +1 -1
  697. package/dist/commands/start.js +36 -10
  698. package/dist/commands/start.js.map +1 -1
  699. package/dist/commands/status.d.ts.map +1 -1
  700. package/dist/commands/status.js +4 -1
  701. package/dist/commands/status.js.map +1 -1
  702. package/dist/commands/transcript.d.ts.map +1 -1
  703. package/dist/commands/transcript.js +12 -7
  704. package/dist/commands/transcript.js.map +1 -1
  705. package/dist/commands/unarchive.d.ts.map +1 -1
  706. package/dist/commands/unarchive.js +16 -2
  707. package/dist/commands/unarchive.js.map +1 -1
  708. package/dist/commands/up.d.ts.map +1 -1
  709. package/dist/commands/up.js +33 -7
  710. package/dist/commands/up.js.map +1 -1
  711. package/dist/commands/walk.d.ts.map +1 -1
  712. package/dist/commands/walk.js +2 -1
  713. package/dist/commands/walk.js.map +1 -1
  714. package/dist/commands/whoami.d.ts.map +1 -1
  715. package/dist/commands/whoami.js +3 -0
  716. package/dist/commands/whoami.js.map +1 -1
  717. package/dist/config-store.d.ts +4 -2
  718. package/dist/config-store.d.ts.map +1 -1
  719. package/dist/config-store.js +34 -7
  720. package/dist/config-store.js.map +1 -1
  721. package/dist/daemon-lifecycle.d.ts +9 -4
  722. package/dist/daemon-lifecycle.d.ts.map +1 -1
  723. package/dist/daemon-lifecycle.js +27 -9
  724. package/dist/daemon-lifecycle.js.map +1 -1
  725. package/dist/daemon-reachability.d.ts +13 -0
  726. package/dist/daemon-reachability.d.ts.map +1 -1
  727. package/dist/daemon-reachability.js +28 -0
  728. package/dist/daemon-reachability.js.map +1 -1
  729. package/dist/fetch-with-timeout.d.ts.map +1 -1
  730. package/dist/fetch-with-timeout.js +19 -16
  731. package/dist/fetch-with-timeout.js.map +1 -1
  732. package/dist/host-bindings.d.ts +6 -0
  733. package/dist/host-bindings.d.ts.map +1 -1
  734. package/dist/host-bindings.js +7 -4
  735. package/dist/host-bindings.js.map +1 -1
  736. package/dist/lib/bundle-check.d.ts.map +1 -1
  737. package/dist/lib/bundle-check.js +13 -5
  738. package/dist/lib/bundle-check.js.map +1 -1
  739. package/dist/mcp-server.d.ts.map +1 -1
  740. package/dist/mcp-server.js +57 -14
  741. package/dist/mcp-server.js.map +1 -1
  742. package/dist/rig-handle.d.ts +18 -1
  743. package/dist/rig-handle.d.ts.map +1 -1
  744. package/dist/rig-handle.js +19 -2
  745. package/dist/rig-handle.js.map +1 -1
  746. package/package.json +1 -1
  747. package/tui/dist/config/config-model.js +1 -1
  748. package/tui/dist/config/config-model.js.map +1 -1
  749. package/tui/dist/connections/connections-model.d.ts +0 -5
  750. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  751. package/tui/dist/connections/connections-model.js +1 -1
  752. package/tui/dist/connections/connections-model.js.map +1 -1
  753. package/tui/dist/daemon-client.d.ts +2 -0
  754. package/tui/dist/daemon-client.d.ts.map +1 -1
  755. package/tui/dist/daemon-client.js +23 -0
  756. package/tui/dist/daemon-client.js.map +1 -1
  757. package/tui/dist/hydrate.d.ts.map +1 -1
  758. package/tui/dist/hydrate.js +13 -1
  759. package/tui/dist/hydrate.js.map +1 -1
  760. package/tui/dist/live.d.ts +10 -1
  761. package/tui/dist/live.d.ts.map +1 -1
  762. package/tui/dist/live.js +56 -7
  763. package/tui/dist/live.js.map +1 -1
  764. package/tui/dist/main.js +35 -2
  765. package/tui/dist/main.js.map +1 -1
  766. package/tui/dist/render.d.ts.map +1 -1
  767. package/tui/dist/render.js +111 -7
  768. package/tui/dist/render.js.map +1 -1
  769. package/tui/dist/types.d.ts +53 -0
  770. package/tui/dist/types.d.ts.map +1 -1
  771. package/tui/dist/version-skew.d.ts +24 -0
  772. package/tui/dist/version-skew.d.ts.map +1 -0
  773. package/tui/dist/version-skew.js +37 -0
  774. package/tui/dist/version-skew.js.map +1 -0
  775. package/daemon/dist/domain/provider/subscription-moves.d.ts +0 -77
  776. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +0 -1
  777. package/daemon/dist/domain/provider/subscription-moves.js +0 -140
  778. package/daemon/dist/domain/provider/subscription-moves.js.map +0 -1
@@ -72,12 +72,16 @@ you aren't an administrator, or where Homebrew belongs to another account (its
72
72
  `brew install` is refused), install Node.js in your own home folder with
73
73
  [nvm](https://github.com/nvm-sh/nvm): run `touch ~/.zshrc` (a new Mac account
74
74
  has none, and nvm's installer only adds itself to a profile file that already
75
- exists), then the install command on nvm's page, open a new terminal, and run
76
- `nvm install 22`. That needs no administrator password, and `npm install -g`
77
- then installs into your nvm folder. Native
78
- Windows isn't supported. On Windows, use WSL2: it's the Windows route OpenRig
79
- supports, though OpenRig's automated tests don't run on it yet. One user's
80
- [working setup](#wsl2-a-reported-working-setup) is below. Node 20 and
75
+ exists), then nvm's install command, for nvm v0.40.8
76
+ `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash`
77
+ ([nvm's page](https://github.com/nvm-sh/nvm#install--update-script) has the
78
+ newest), open a new terminal, and run `nvm install 22`. nvm itself needs no
79
+ administrator password, and `npm install -g` then installs into your nvm folder.
80
+ If nvm's installer says you need Apple's command line tools, run
81
+ `xcode-select --install`, then its install command again. Native Windows isn't
82
+ supported. On Windows, use WSL2: it's the Windows route
83
+ OpenRig supports, though OpenRig's automated tests don't run on it yet. One
84
+ user's [working setup](#wsl2-a-reported-working-setup) is below. Node 20 and
81
85
  odd-numbered releases (23, 25 and so on) are not supported; Node 26 and later
82
86
  even-numbered releases are untested.
83
87
 
@@ -177,20 +181,19 @@ You can also read [`skills/rigs/SKILL.md`](../../skills/rigs/SKILL.md) directly.
177
181
  script will do and changes nothing:
178
182
 
179
183
  ```sh
180
- curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.14/scripts/install.sh | sh -s -- --dry-run
184
+ curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh -s -- --dry-run
181
185
  ```
182
186
 
183
187
  The same command without `--dry-run`,
184
- `curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.14/scripts/install.sh | sh`, installs the
188
+ `curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh`, installs the
185
189
  latest published `@openrig/cli` with `npm install -g`,
186
190
  runs the Node.js and SQLite check, then `rig setup --dry-run` and `rig setup`. `rig setup` checks both Claude Code and
187
- Codex and may install a missing one, as described below. A failed step among the first three prints
188
- `FAILED [n/4] <command or check> (exit <code>)`. When `rig setup` (step 4) doesn't finish ready, for example because a
189
- provider isn't signed in yet, the script ends with `INSTALLED, SETUP NOT COMPLETE (exit <code>)`: the CLI is
190
- installed, and `rig setup` lists what's left under "Some steps need attention". If the only items left are provider
191
- sign-ins, sign in to each selected provider as below, then continue at
192
- [Start the kernel](#start-the-kernel-and-check-its-state); run `rig setup` again rather than reinstalling the CLI. To
193
- install only what the selected providers need, go step by step instead:
191
+ Codex and may install a missing one, as described below. A failed step prints
192
+ `FAILED [n/4] <command or check> (exit <code>)`. Where a provider isn't signed in yet, step 4 ends that way and
193
+ `rig setup` lists each sign-in under "Some steps need attention". If the only remaining failures are provider
194
+ sign-ins, the install steps finished: sign in to each selected provider as below, then continue at
195
+ [Start the kernel](#start-the-kernel-and-check-its-state). To install only what the selected providers need, go step
196
+ by step instead:
194
197
 
195
198
  ### Choose your providers
196
199
 
@@ -220,6 +223,26 @@ writes an OpenRig-managed block (mouse on, a longer history) into `~/.tmux.conf`
220
223
  It is optional for this selected-provider path, not a requirement to fix an unused
221
224
  provider.
222
225
 
226
+ The block keeps `terminal.history_limit` rows of scrollback per pane (default
227
+ 10000). To keep more, run `rig config set terminal.history_limit 50000`, then
228
+ `rig setup` again. A running tmux server keeps its old limit until it restarts
229
+ or you run `tmux source-file ~/.tmux.conf`; before tmux 3.7 that changes new
230
+ panes only.
231
+
232
+ New managed agents and handover successors on macOS/Linux start from the daemon's
233
+ selected launch environment and declared seat values, rather than stored tmux globals.
234
+ Values named by tmux's `update-environment` option, including its default SSH-agent
235
+ and display variables, come from the daemon's environment.
236
+ Normal shell startup and configured tmux shell commands still run. If your custom setup
237
+ intentionally supplies values through tmux's global environment, opt in with
238
+ `rig config set terminal.inherit_tmux_environment true`. Setup points out this option
239
+ when it detects custom tmux configuration; it never enables it automatically. The setting
240
+ applies to future launches and successors, not running agents or your personal tmux server.
241
+ If the scoped environment cannot be prepared, launch keeps its previous environment and
242
+ reports a warning in fresh launch results and the daemon log. For handovers, check
243
+ that log for this warning. This is not a promise that shell startup cannot add or override values.
244
+
245
+
223
246
  ## Start the kernel and check its state
224
247
 
225
248
  With a working selected login, start the daemon if it is stopped, then read its
@@ -251,9 +274,51 @@ A missing or unknown readiness signal is not proof of readiness. Follow
251
274
  startup or missing-seat problems.
252
275
 
253
276
  `rig setup` itself does not start the daemon. Preserve a daemon and kernel that
254
- already exist: ordinary daemon startup skips a managed kernel, and
255
- `OPENRIG_NO_KERNEL=1` skips automatic kernel startup. If neither runtime is
256
- authenticated, kernel boot reports `auth_blocked`. Do not restart or recreate an
277
+ already exist: daemon startup does not boot a second kernel when one is managed,
278
+ and `OPENRIG_NO_KERNEL=1` (`--no-kernel`) skips automatic kernel startup,
279
+ including the restore below. If neither runtime is authenticated, kernel boot
280
+ reports `auth_blocked`.
281
+
282
+ Daemon startup restores one existing kernel by itself: a managed kernel whose
283
+ seats are all `detached` and still bound to their newest session, which is what
284
+ startup reconcile leaves when every kernel terminal is gone, for example after a
285
+ reboot. It does not detect a reboot as such. It uses the same restore as
286
+ `rig up kernel --existing`, and `rig status` reports it as `Kernel: booting`
287
+ until the seats are ready. A kernel stopped with `rig down kernel`, including
288
+ one whose seats were already detached, stays down on later starts. So do a kernel
289
+ with only some seats stopped and seats you unclaimed. Start one again with
290
+ `rig up kernel --existing`.
291
+ When the tmux server is gone, an explicit `rig down` of any rig can start an
292
+ empty server and probe again. It records the stop and clears eligible bindings
293
+ only after confirming the sessions are absent. This can leave an empty tmux
294
+ server running; it never launches an agent or provider session. Unreadable or
295
+ permission results and changed occupants leave the stop bookkeeping unchanged.
296
+
297
+ While that automatic restore runs, `rig start` continues to your other rigs and
298
+ says the kernel is still restoring (`kernelRestore.state: "restoring"` with
299
+ `--json`). Its exit status 0 then does not mean the kernel is ready; check
300
+ `rig status`. When the restore has returned without a ready kernel, `rig start`
301
+ still goes on to your other rigs but exits 1 (`kernelRestore.state: "failed"`),
302
+ so `rig start && next` does not run `next`. A `rig down kernel` made during the
303
+ restore waits for it to return and then stops the kernel, which stays down on
304
+ later starts. A `rig up kernel --existing` with no fresh seats and no change to
305
+ the saved non-interruptive choice, made during the restore, or after it restored
306
+ every seat while those seats still run the sessions it started, reports that
307
+ restore's outcome instead of starting another. Explicitly repeating the saved
308
+ `--non-interruptive` or `--no-non-interruptive` choice also joins that restore.
309
+
310
+ An explicit `rig up kernel --existing --fresh <seat...>` waits for startup's
311
+ restore to finish, then replaces only the named seats that still hold the exact
312
+ sessions startup launched. Other seats keep running. An operator's conversation
313
+ correction also takes effect for that seat on the next explicit `up` or
314
+ `restore`, using the corrected target; editing the token alone restarts nothing.
315
+ Each replacement takes new seat leases, rechecks the managed occupant and terminal,
316
+ and reports its own per-seat outcome. If the occupant changed, it is left alone.
317
+ A different `--non-interruptive` or `--no-non-interruptive` choice after startup
318
+ launched the seats is refused: the running launch choice stays unchanged. Stop
319
+ the rig, then rerun with the desired choice.
320
+
321
+ Do not restart or recreate an
257
322
  existing kernel merely to open its view. The startup TUI (`rig`) offers its own
258
323
  kernel setup and individual-seat recovery; it does not automatically boot agents
259
324
  when it starts the daemon.
@@ -690,7 +755,7 @@ the lifecycle API without booting a new kernel, then stop the remaining rigs.
690
755
  | Shared terminal is absent | Inspect the existing kernel binding and recovery state; use standalone `rig tui` while resolving it. |
691
756
  | Viewing terminal was closed | Open the conversations again with `rig terminal open saved:kernel --window`; `rig tui --shared` is only the dashboard fallback if that window cannot open. Do not relaunch the team. |
692
757
  | Daemon restarted but tmux survived | Re-read `rig status` and the existing queue; a daemon restart is not a fresh project. |
693
- | Host reboot lost tmux sessions | Open `rig`, start the daemon if needed (press **S** if it opens on the work views), and select the existing rig and seats. Resume is the default; a fresh conversation needs a separate decision. |
758
+ | Host reboot lost tmux sessions | Starting the daemon restores the kernel by itself when all of its seats were lost; check `rig status`, and if it reports the restore failed, run `rig up kernel --existing`. For other rigs, open `rig`, start the daemon if needed (press **S** if it opens on the work views), and select the existing rig and seats. Resume is the default; a fresh conversation needs a separate decision. |
694
759
  | Launch reports no usable snapshot | Inspect the existing rig and retained project files, then follow the same-seat recovery below. |
695
760
  | Work is waiting on a prompt or decision | Read the row, transition and named prompt; preserve the obligation until the missing decision arrives. |
696
761
 
@@ -721,8 +786,9 @@ This recovery is for the case the reporter hit: the kernel's seats failed and no
721
786
  IDs, for example `advisor.lead operator.agent operator.human queue.worker` when all four failed. `--fresh` starts a
722
787
  new conversation for each seat you name. Seats you don't name follow their normal recovery policy and may remain
723
788
  awaiting a decision if their old conversation can't be resumed. A later `rig daemon start` doesn't retry the failed
724
- seats by itself: once a kernel exists, startup skips the built-in kernel boot, and `rig status` then reads
725
- `Kernel: skipped` whatever its seats' state, so check `rig ps --nodes --rig kernel --full`.
789
+ seats by itself: once a kernel exists, startup skips the built-in kernel boot and restores only a kernel whose seats
790
+ were all lost, not seats that failed. `rig status` then reads `Kernel: skipped` unless some of its seats are running
791
+ and ready, so check `rig ps --nodes --rig kernel --full`.
726
792
 
727
793
  If a snapshot is unavailable, the startup view checks the selected seat's
728
794
  retained startup source and authoritative occupant relation. It reports a
@@ -6,6 +6,25 @@ talk to one agent, and it hands work to the others. The team keeps its tasks and
6
6
  Most people let their coding agent set it up. This page explains what happens either way, so nothing is a black
7
7
  box, and shows how to do each step by hand if you'd rather.
8
8
 
9
+ ## The quick way: let your coding agent do it
10
+
11
+ In your project folder, add OpenRig's `rigs` skill to the agent you use:
12
+
13
+ ```sh
14
+ # Claude Code
15
+ npx skills add https://github.com/mvschwarz/openrig/tree/<release-tag>/skills/rigs --skill rigs --agent claude-code
16
+ # Codex
17
+ npx skills add https://github.com/mvschwarz/openrig/tree/<release-tag>/skills/rigs --skill rigs --agent codex
18
+ ```
19
+
20
+ For a new install, use the latest release's tag, for example `v0.7.0`. If OpenRig is already installed, use the tag
21
+ that matches `rig --version`, or upgrade first. If the command fails with `npx: command not found`, Node.js isn't
22
+ installed or isn't on your PATH yet (see [What you need](#what-you-need)). Then type `/rigs` in Claude Code, or `$rigs` in Codex, and say what
23
+ you want built.
24
+
25
+ The skill has your agent work through the steps below in order. It says what it will run and change before it runs
26
+ it, and it asks before installing anything on your system. It finishes when you're talking to the operator.
27
+
9
28
  ## How the pieces fit
10
29
 
11
30
  - **`rig`** is the command you and your agents use. It comes from the npm package `@openrig/cli`.
@@ -30,24 +49,18 @@ Ask your coding agent to help use the toolchain already on your machine. On a Ma
30
49
  may belong to another user; do not change its ownership to complete this setup. After correcting PATH or installing
31
50
  Node, open a new terminal and check `node --version` and `npx --version` before continuing.
32
51
 
33
- ## The quick way: let your coding agent do it
34
-
35
- In your project folder, add OpenRig's `rigs` skill to the agent you use:
52
+ On a Mac where you aren't an administrator, or where another account owns Homebrew, install Node.js in your own home
53
+ folder with [nvm](https://github.com/nvm-sh/nvm); nvm itself needs no administrator password. A new Mac account has no
54
+ `~/.zshrc`, and nvm's installer only adds itself to a profile file that already exists, so create one first:
36
55
 
37
56
  ```sh
38
- # Claude Code
39
- npx skills add https://github.com/mvschwarz/openrig/tree/<release-tag>/skills/rigs --skill rigs --agent claude-code
40
- # Codex
41
- npx skills add https://github.com/mvschwarz/openrig/tree/<release-tag>/skills/rigs --skill rigs --agent codex
57
+ touch ~/.zshrc
58
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash
42
59
  ```
43
60
 
44
- For a new install, use the latest release's tag, for example `v0.6.14`. If OpenRig is already installed, use the tag
45
- that matches `rig --version`, or upgrade first. If the command fails with `npx: command not found`, Node.js isn't
46
- installed or isn't on your PATH yet (see above). Then type `/rigs` in Claude Code, or `$rigs` in Codex, and say what
47
- you want built.
48
-
49
- The skill has your agent work through the steps below in order. It says what it will run and change before it runs
50
- it, and it asks before installing anything on your system. It finishes when you're talking to the operator.
61
+ Then open a new terminal and run `nvm install 22`. If nvm's installer says you need Apple's command line tools, run
62
+ `xcode-select --install`, then its install command again. That's nvm v0.40.8's install command; [nvm's
63
+ page](https://github.com/nvm-sh/nvm#install--update-script) has the newest.
51
64
 
52
65
  ## What happens, step by step
53
66
 
@@ -67,10 +80,10 @@ Node.js and SQLite check was skipped.
67
80
  ### 2. Set up the tools around it
68
81
 
69
82
  ```sh
70
- rig setup --providers claude # or codex, or both
83
+ rig setup --providers claude
71
84
  ```
72
85
 
73
- Add `--dry-run` first to see the plan without changing anything. Setup does four things:
86
+ Use `codex` or `both` in place of `claude` to match the coding agents you use. Add `--dry-run` first to see the plan without changing anything. Setup does four things:
74
87
  - it checks Node.js, tmux and your sign-in;
75
88
  - it installs a missing tmux (with Homebrew on macOS, if you have it) or the coding agent you chose;
76
89
  - it installs Herdr, a terminal workspace app the OpenRig view can use, unless you add `--no-herdr`;
@@ -132,10 +145,10 @@ Before it starts one, it tells you what starting a team in your folder changes:
132
145
  `CLAUDE.md`, plus the team's skills. Then it waits for your yes. As shipped, `starter` uses both Claude Code and
133
146
  Codex. With only one of them, ask the operator to adapt it.
134
147
 
135
- By hand, from your repository:
148
+ By hand, from your repository (the first command shows what it would start, and starts nothing):
136
149
 
137
150
  ```sh
138
- rig up starter --cwd . --plan # check what it would start
151
+ rig up starter --cwd . --plan
139
152
  rig up starter --cwd .
140
153
  rig ps --nodes --rig starter
141
154
  ```
@@ -156,10 +169,10 @@ stops that team. `rig daemon stop` stops the background service and leaves agent
156
169
 
157
170
  ## The one-command install
158
171
 
159
- Instead of steps 1 and 2:
172
+ Instead of steps 1 and 2 (the first line shows the plan and changes nothing):
160
173
 
161
174
  ```sh
162
- curl -fsSL https://openrig.dev/install.sh | sh -s -- --dry-run # shows the plan and changes nothing
175
+ curl -fsSL https://openrig.dev/install.sh | sh -s -- --dry-run
163
176
  curl -fsSL https://openrig.dev/install.sh | sh
164
177
  ```
165
178
 
@@ -36,9 +36,15 @@ own project folder is the same project and still acts as the seat, as before thi
36
36
  launched before this change, a manual run) the hooks do what they always did. The plugin's activity relay stays quiet next to
37
37
  the seat's own `settings.local.json` copy only when that entry is exactly OpenRig's and the script it names is the same
38
38
  script; an entry from an older install doesn't match, so both report until the seat's next launch refreshes it.
39
- Codex has no way to load a plugin from a directory; its hooks come from the daemon's
40
- managed block in `config.toml`, which today carries the activity relay only, so the Codex column above describes
41
- `hooks/codex.json`'s registration and not a hook a Codex seat currently runs.
39
+ OpenRig automatically installs its Codex plugin for seats that select it. On its first installation, the six exact shipped
40
+ hook definitions are trusted before launch, after checking the installed hook files against this daemon's shipped copy.
41
+ Existing plugin disables and hook choices are retained. An existing untrusted installation stays under native review:
42
+ Codex's "continue without trusting" leaves no record, so OpenRig does not assume an absent trust record is permission.
43
+ The file check happens only when trust is granted: a later edit to the cached hook scripts keeps that trust, as with any hook trusted in Codex.
44
+ The Codex
45
+ column above then applies only to a Codex seat whose plugin selection includes openrig-core: every Codex hook command
46
+ exits 0 before running anything unless OpenRig gave that seat `OPENRIG_SEAT_PROJECT_DIR` and an explicit
47
+ `OPENRIG_NODE`.
42
48
 
43
49
  Claude's additional firing signal is **transcript growth** — not turns (one turn
44
50
  can burn 200k tokens across fifty tool calls) and not wall-clock (the failure is
@@ -354,7 +354,7 @@ pods:
354
354
 
355
355
  - A seat gets the rig's `env` with its own `env` laid over it, name by name.
356
356
  - The same environment is applied on first launch, on `rig up <rig-name>` restore, and to the successor of a seat handover.
357
- - `rig up <spec> --env KEY=VALUE` (repeatable) adds or overrides a value for one launch. A one-off value belongs to the terminal that launch creates: it stays in that terminal's environment for as long as the terminal lives, and OpenRig removes it from the tmux session's environment as soon as the terminal has started, so a terminal started later in that session does not get it. A restore, a handover successor or any later launch starts from the spec's `env:` alone, so the value is not saved and does not carry forward. To keep a value, put it in `env:`. One exception to "does not carry forward", for a managed Claude seat (see below): a one-off name that the seat's spec does not declare stays on the session's list of names, `OPENRIG_SEAT_ENV_KEYS` (names only, no values), because the first launch and an in-place restart of the same terminal read that list. So if a later pane in that session gets a value for that name from the tmux server's own environment, its managed Claude launch can forward that value, where a launch without `--env` would leave it out. The first launch's one-off value itself is not passed on to that pane. This comes from reading the code and has not been measured. `--env` does not apply to `rig up <rig-name>` (a restore) or to a topology (several rigs from their own specs); the CLI refuses both. For a topology, put `env:` in each rig's spec.
357
+ - `rig up <spec> --env KEY=VALUE` (repeatable) adds or overrides a value for one launch. A one-off value belongs to the terminal that launch creates: it stays in that terminal's environment for as long as the terminal lives, and OpenRig removes it from the tmux session's environment as soon as the terminal has started, so a terminal started later in that session does not get it. If OpenRig can't take it out, the seat keeps running and the launch warns, naming the variable and the tmux command to put it back or remove it. Until then, a terminal started later in that session would get it. A restore, a handover successor or any later launch starts from the spec's `env:` alone, so the value is not saved and does not carry forward. To keep a value, put it in `env:`. One exception to "does not carry forward", for a managed Claude seat (see below): a one-off name that the seat's spec does not declare stays on the session's list of names, `OPENRIG_SEAT_ENV_KEYS` (names only, no values), because the first launch and an in-place restart of the same terminal read that list. So if a later pane in that session gets a value for that name from the tmux server's own environment, its managed Claude launch can forward that value, where a launch without `--env` would leave it out. The first launch's one-off value itself is not passed on to that pane. This comes from reading the code and has not been measured. `--env` does not apply to `rig up <rig-name>` (a restore) or to a topology (several rigs from their own specs); the CLI refuses both. For a topology, put `env:` in each rig's spec.
358
358
  - Names starting `OPENRIG_` are reserved for OpenRig and refused. Empty values are refused, because the launch omits empty variables.
359
359
  - `rig export` writes the rig and member `env:` back out.
360
360
 
@@ -8,7 +8,7 @@ daemon-owned retry scheduler. Sibling seats keep their own mode.
8
8
  | Mode | Terminal input | When input is unavailable |
9
9
  |---|---|---|
10
10
  | `off` (default) | Existing delivery and prompt checks | Existing send result |
11
- | `draft-aware` | Paste into a recognized empty composer; check ownership again before Enter | Immediately retain the original message with the exact refusal reason and ID |
11
+ | `draft-aware` | Paste into a recognized empty composer; check ownership again before Enter | Hold input and retain this attempt for inspection when bookkeeping is available |
12
12
  | `hold` | No automatic terminal input, even at an empty prompt | Retain for inspection outside the pane |
13
13
 
14
14
  Runtime permissions are separate. Recipient and interactive-prompt checks still
@@ -36,13 +36,22 @@ to finish. The API may return HTTP 202 with `pending: true`; wait for
36
36
  `pending: false` before relying on the requested mode. Status reports desired
37
37
  and effective modes and retains the text `Typing guard: on (hold)` for hold.
38
38
 
39
- A held send immediately returns `outcome: "retained"`, `sent: false`,
40
- `outboxIds` and its exact reason, such as `draft_input_busy` or
41
- `draft_input_unknown`. No automatic retry is scheduled, including when the
42
- caller requested wait-for-idle. The caller can inspect or route the retained work
43
- and decide when to make a new request. Reusing the same delivery ID reads its
44
- original result; it does not replay that message. Changing modes, clearing a
45
- draft, or restarting the daemon also does not flush held records.
39
+ A held send immediately returns `outcome: "retained"`, `sent: false`, its exact
40
+ reason (such as `draft_input_busy`) and the saved attempt's `outboxIds`. No automatic
41
+ retry is scheduled. Each explicit draft-aware request is a new attempt, including
42
+ one with a reused `deliveryId`; the result warns older callers that this field no
43
+ longer deduplicates input. The CLI does not generate a deduplication key.
44
+
45
+ Clearing a draft, changing modes or restarting does not flush saved messages or
46
+ callbacks. To try again, send a current request: it rechecks the recipient and input.
47
+ A caller abort before paste cancels input; after a write may have started, the
48
+ result preserves that uncertainty rather than claiming nothing was sent.
49
+
50
+ Bookkeeping is observational. If its write fails, an otherwise valid input attempt
51
+ still proceeds and the response includes a warning instead of a saved receipt.
52
+ Actual transport success stays success; an unknown write stays unknown. If input
53
+ was held and no record could be saved, the response reports failure with `sent:
54
+ false` and the protection reason, rather than claiming durable custody.
46
55
 
47
56
  Reading never sends. Retirement frees that record's active retention quota while
48
57
  preserving evidence; it does not deliver a message or close queue work.
@@ -72,22 +81,34 @@ A large paste can appear as several labels plus a literal tail. The existing
72
81
  boundary. That complete rendering must be observed after this operation's paste
73
82
  and remain unchanged before Enter. Labels alone do not prove arbitrary content.
74
83
 
75
- | Delivery state | Meaning |
84
+ | Historical delivery state | Meaning |
76
85
  |---|---|
77
- | `sending` | The original IDs have an unresolved write attempt |
78
- | `held` | No input was written; the original message remains retained or has been retired |
86
+ | `sending` | This saved attempt has an unresolved write outcome |
87
+ | `held` | No input was written; this attempt remains retained or has been retired |
79
88
  | `complete` | Transport execution succeeded, including render verification if requested; native consumption is not asserted |
80
- | `indeterminate` | Input may have occurred or requested render verification failed; no automatic replay |
89
+ | `indeterminate` | Input may have occurred or requested render verification failed |
90
+ | `failed` | A definite failure before input, such as caller cancellation |
81
91
 
82
92
  Migration `100_typing_guard_modes` extends the existing guard/audit rows and
83
93
  adds receipt metadata to the original outbox rows; it creates no tables, retry
84
94
  indexes or executable requests. Combined wakes retain each original ID and body.
85
- A held queue wake stays on the existing queue recovery path. Interrupted writes
86
- become indeterminate at startup regardless of which recovery component runs first.
95
+ A held queue wake stays on the existing queue recovery path. Interrupted historical
96
+ writes become indeterminate at startup. That history never suppresses a current
97
+ explicit request and is not consulted to determine its result.
98
+
99
+ At startup, the queue recovery pass retries still-current failed or unconfirmed
100
+ wake notifications. It preserves their original envelopes and warns that delivery
101
+ may repeat. Each notification is attempted once per pass, including coalesced
102
+ wakes; a failed attempt cannot spin in that pass. A no-write failure on a later
103
+ retry does not resolve an earlier unknown delivery. Prior-process claims are
104
+ reconciled before new startup sends can begin. Known deliveries and held or
105
+ retired messages stay untouched. Closed, claimed or reassigned work is not woken,
106
+ and the retry never repeats the queue mutation or a lifecycle action.
87
107
 
88
108
  The existing retention limits apply: 100 records and 8 MiB per seat, with a 1 MiB
89
- message limit. New admissions refuse at capacity; already-committed queue intent
90
- remains durable even if concurrent activation exceeds the limit.
109
+ message limit. Hold mode cannot retain another message at capacity. Draft-aware
110
+ input attempts continue with a bookkeeping warning if a record cannot be saved;
111
+ already-committed queue intent remains durable.
91
112
 
92
113
  ## Rollback and lifecycle
93
114
 
@@ -121,7 +142,25 @@ unchanged; no RigSpec field is required.
121
142
  ## Verification scope
122
143
 
123
144
  Regression tests exercise rollback/re-upgrade, same-value legacy writes, exact
124
- retained outcomes, restart without replay, unchanged IDs/bodies, trailing spaces,
125
- numbered bodies, real-menu refusals and multi-placeholder ownership. Native tests
145
+ retained outcomes, current requests after restart, coalesced queue bodies, trailing
146
+ spaces, numbered bodies, real-menu refusals and multi-placeholder ownership. Native tests
126
147
  use private real tmux panes with scripted editable composers. These verify the
127
148
  transport mechanics; they are not live Claude/Codex provider sessions.
149
+
150
+ ## Watchdog reminders
151
+
152
+ A currently due watchdog reminder makes a new delivery attempt, including after an interrupted attempt or job
153
+ accounting. Historical outbox receipts do not suppress a lone reminder or prevent it from joining a digest. The
154
+ message tells its recipient that delivery may repeat after an unconfirmed attempt. Its job history records the
155
+ current transport result; an unknown write is not proof that nothing arrived.
156
+
157
+ The transport still protects approval/question prompts, human drafts and recipient identity. Scheduler timing,
158
+ current parked-row eligibility and stop checks still apply. This changes message retries, not the idempotence of
159
+ structured continuity actions such as creating a cutover baton.
160
+
161
+ The parked-owner supervisor also retries current obligations despite an earlier failed, unknown or unrecorded attempt.
162
+ A recorded success to the same known occupant waits for a change in its obligations. Rotation includes retained attempts,
163
+ so a held input cannot starve another owner. Interactive prompts stay with the existing prompt-refusal recovery.
164
+ Its own reminders wait while managed compaction owes the turn boundary, restore or audit, including a fresh check
165
+ at the paste and Enter boundary. A stage that begins after paste leaves an honest partial-input result; OpenRig
166
+ does not erase or replay that text. Peer messages and unrelated reminder policies keep their existing behavior.
@@ -280,6 +280,7 @@ decisions, and posts its own replies.
280
280
  and the machine checks it when it has `OPENRIG_AUTH_BEARER_TOKEN` set.
281
281
  - **What the receiving machine trusts:** a relayed event comes from whoever holds that machine's
282
282
  daemon token (or, with no token set, anything that can reach its daemon), not from Slack directly, and nothing checks Slack's own signature on it. The
283
+ credential issued by `rig host pair` is the daemon API bearer, not a relay-only credential; it also authorizes the other daemon write APIs that use that bearer. The
283
284
  machine still looks up the sender in its own list of people, but on a relayed event that's no
284
285
  proof a person just typed or clicked it in Slack: it trusts the caller for where the event came
285
286
  from.
@@ -297,16 +298,44 @@ decisions, and posts its own replies.
297
298
  that's down costs one attempt per retry: its other relays wait for the next one. A relay the
298
299
  machine keeps refusing is kept and retried with no limit, because dropping it would lose a
299
300
  person's message.
301
+ - **Changing forwarding entries is not a drain or cancellation:** relays already retained keep
302
+ their original host and remain visible in `rig slack status`, even after the last entry is
303
+ removed. An enabled connector retries them; disabling it pauses retry without deleting them.
304
+ Let relays finish before removing a forward entry. A zero dead-letter backlog alone does not
305
+ prove they have drained: it does not count relay HTTP requests still in flight.
300
306
  - **Who answered:** every post ends `from <seat> on <machine>`, using the machine's host id (set
301
307
  it with `host.name`).
302
308
  - **The hub's own channels** are handled on the hub, as before. A channel can be relayed to one
303
309
  machine only, and never the hub's own default channel.
310
+ Messages that match neither forwarding nor an existing thread or channel route fall back locally
311
+ to `inboundDestination`; `rig slack status` names that policy and destination. These lists do not
312
+ establish exclusive channel ownership: two machines can still both handle a channel.
304
313
  - **Missed messages:** each machine recovers the channels it owns: the hub its own channels, and
305
314
  every other machine its default channel and its channel map's (the hub never recovers a channel
306
315
  it relays). See [Reconnect recovery and status](#reconnect-recovery-and-status).
307
316
  - **Not covered yet:** `rig slack verify` on the hub doesn't check the app's membership in relayed
308
317
  channels.
309
318
 
319
+ ## Quiet hours for a person (optional)
320
+
321
+ Quiet hours hold a person's routine asks while they're on, and post them once they end.
322
+
323
+ - **Set them** with `rig gateway human quiet set <entityId> --daily 22:00-07:00` (every day) or `--until 07:00` (from now
324
+ until then), with `--tz` for the person's zone. `show` reports whether they're on, `end` ends tonight's early ("I'm back";
325
+ a daily rule stays for tomorrow), and `clear` removes the rule. A person's mode can set them too (`rig gateway human
326
+ mode save … --quiet`).
327
+ - **While quiet is on,** an ask that would post to the person isn't posted and doesn't mention them, whatever their delivery
328
+ class: it's held, and its row records the hold.
329
+ - **Not held:** an urgent ask, meaning one tagged `escalation` or `wake-escalation` that isn't an update, and the operator's
330
+ wake-ladder alerts. These reach the person exactly as they would outside quiet. An ask below the posting level is only
331
+ logged, as at any time.
332
+ - **When quiet ends,** each held ask that never started posts once, on its own, with no mention. One that no longer applies
333
+ isn't posted, and its row says why: it closed, a newer notification replaced it, its recipient changed, or it's now below
334
+ the posting level.
335
+ - **A post that may already be in Slack**, confirmed or only partly sent, isn't held: it finishes as itself, in its own
336
+ thread.
337
+ - **If quiet hours can't be read,** nothing is posted to that person until they can.
338
+
310
339
  ## Reconnect recovery and status
311
340
 
312
341
  The daemon scans available top-level messages and replies broadcast with **Also send to
@@ -372,9 +401,27 @@ channel, a thread line (tracked, scanned, waiting and why any are backing off or
372
401
  retry time and accepted/dead-lettered recovery counts since the connector last
373
402
  started, including threads that have since left the window (they reset when it is enabled or disabled, and when the daemon restarts).
374
403
  It also reports the durable dead-letter backlog: the retained records for inbound messages,
375
- reactions and click answers that await retry, counted from both dead-letter files so the number
376
- survives a restart, and shown as unknown with a reason (and no count) when a file cannot be read.
404
+ reactions and click answers that await retry, including retained relays, counted across all three
405
+ dead-letter files so the number survives a restart. Retry is paused while the connector is disabled.
406
+ If a file cannot be read, status shows unknown with a reason and no count.
377
407
  Human-readable coverage and pending bounds use ISO timestamps; JSON keeps Slack timestamps.
378
408
  The status read calls no Slack API and starts no scan. If the daemon cannot be
379
409
  observed, local configuration remains visible and live state is unknown. A
380
410
  connected socket or valid configuration alone does not prove end-to-end delivery.
411
+
412
+ ### Slack rejects a message with `invalid_blocks`
413
+
414
+ `rig queue show <qitemId> --json` records the failure as
415
+ `class=slack-invalid-blocks error=invalid_blocks` in the delivery transition.
416
+ Slack rejected that message's blocks, so OpenRig retains the notification as
417
+ undelivered and does not post the same payload again, including after a daemon
418
+ restart. The rejection is tied to the rendered payload: corrected content can
419
+ make a new attempt. Network failures, server errors and rate limits still retry
420
+ as before; a timed-out request remains uncertain until reconciliation.
421
+
422
+ The source seat gets a `slack-undeliverable` queue item explaining the failure.
423
+ Check the evidence links and message content, then send a corrected ask as a new
424
+ queue item. Close the original when you have handled it. If a long ask was split
425
+ into several messages, earlier parts may already be in Slack; the notice says
426
+ when only part of the ask was posted. A failed part never counts as delivery of
427
+ the whole ask.