@openrig/cli 0.6.13 → 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 (823) hide show
  1. package/README.md +58 -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 +39 -21
  14. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +10 -4
  15. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +12 -32
  16. package/daemon/assets/skills/rigs/SKILL.md +24 -5
  17. package/daemon/context-packs/help/manifest.yaml +1 -1
  18. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  19. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +18 -8
  20. package/daemon/context-packs/reference/getting-started.md +178 -35
  21. package/daemon/context-packs/reference/manifest.yaml +1 -1
  22. package/daemon/context-packs/reference/rig-spec.md +1 -1
  23. package/daemon/context-packs/reference/whats-new.md +126 -100
  24. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +9 -2
  28. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
  34. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +2 -2
  39. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +11 -5
  42. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +3 -2
  51. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/openrig-user/SKILL.md +39 -21
  56. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/pods/development-team/SKILL.md +2 -0
  66. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -1
  67. package/daemon/context-packs/skills/pods/development-team/references/refactoring.md +11 -0
  68. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pods/review-team/SKILL.md +46 -96
  71. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +17 -80
  79. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +5 -3
  80. package/daemon/context-packs/skills/process/verification-before-completion/references/performance-claims.md +12 -0
  81. package/daemon/context-packs/skills/queue-handoff/SKILL.md +10 -4
  82. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +12 -32
  85. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  89. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  90. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  91. package/daemon/dist/adapters/claude-code-adapter.d.ts +6 -2
  92. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  93. package/daemon/dist/adapters/claude-code-adapter.js +33 -6
  94. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  95. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  96. package/daemon/dist/adapters/codex-resume.js +2 -7
  97. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  98. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +68 -2
  99. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  100. package/daemon/dist/adapters/codex-runtime-adapter.js +371 -60
  101. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  102. package/daemon/dist/adapters/compose-services-adapter.d.ts +16 -0
  103. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  104. package/daemon/dist/adapters/compose-services-adapter.js +52 -9
  105. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  106. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  107. package/daemon/dist/adapters/kernel-authority.js +9 -5
  108. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  109. package/daemon/dist/adapters/pi-runner.d.ts +2 -0
  110. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  111. package/daemon/dist/adapters/pi-runner.js +5 -0
  112. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  113. package/daemon/dist/adapters/runtime-probe-exec.d.ts +11 -0
  114. package/daemon/dist/adapters/runtime-probe-exec.d.ts.map +1 -0
  115. package/daemon/dist/adapters/runtime-probe-exec.js +25 -0
  116. package/daemon/dist/adapters/runtime-probe-exec.js.map +1 -0
  117. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  118. package/daemon/dist/adapters/stub-runner.js +2 -0
  119. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  120. package/daemon/dist/adapters/tmux.d.ts +21 -1
  121. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  122. package/daemon/dist/adapters/tmux.js +101 -14
  123. package/daemon/dist/adapters/tmux.js.map +1 -1
  124. package/daemon/dist/build-info.js +3 -3
  125. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  126. package/daemon/dist/db/all-migrations.js +12 -0
  127. package/daemon/dist/db/all-migrations.js.map +1 -1
  128. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts +3 -0
  129. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts.map +1 -0
  130. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js +8 -0
  131. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js.map +1 -0
  132. package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts +3 -0
  133. package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts.map +1 -0
  134. package/daemon/dist/db/migrations/118_human_quiet_windows.js +30 -0
  135. package/daemon/dist/db/migrations/118_human_quiet_windows.js.map +1 -0
  136. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts +3 -0
  137. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts.map +1 -0
  138. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js +7 -0
  139. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js.map +1 -0
  140. package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts +13 -0
  141. package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts.map +1 -0
  142. package/daemon/dist/db/migrations/121_rig_startup_layers.js +17 -0
  143. package/daemon/dist/db/migrations/121_rig_startup_layers.js.map +1 -0
  144. package/daemon/dist/db/migrations/122_human_operating_modes.d.ts +3 -0
  145. package/daemon/dist/db/migrations/122_human_operating_modes.d.ts.map +1 -0
  146. package/daemon/dist/db/migrations/122_human_operating_modes.js +55 -0
  147. package/daemon/dist/db/migrations/122_human_operating_modes.js.map +1 -0
  148. package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts +3 -0
  149. package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts.map +1 -0
  150. package/daemon/dist/db/migrations/123_queue_delegated_decision.js +10 -0
  151. package/daemon/dist/db/migrations/123_queue_delegated_decision.js.map +1 -0
  152. package/daemon/dist/domain/active-occupant.d.ts +5 -3
  153. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  154. package/daemon/dist/domain/active-occupant.js +2 -2
  155. package/daemon/dist/domain/active-occupant.js.map +1 -1
  156. package/daemon/dist/domain/activity-taxonomy.d.ts +16 -1
  157. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  158. package/daemon/dist/domain/activity-taxonomy.js +21 -0
  159. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  160. package/daemon/dist/domain/agent-activity-store.d.ts +20 -0
  161. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  162. package/daemon/dist/domain/agent-activity-store.js +41 -5
  163. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  164. package/daemon/dist/domain/agent-images/evidence-guard.js +3 -3
  165. package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -1
  166. package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -1
  167. package/daemon/dist/domain/agent-images/resume-token-discovery.js +2 -10
  168. package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -1
  169. package/daemon/dist/domain/ask-service.d.ts +1 -0
  170. package/daemon/dist/domain/ask-service.d.ts.map +1 -1
  171. package/daemon/dist/domain/ask-service.js +7 -1
  172. package/daemon/dist/domain/ask-service.js.map +1 -1
  173. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +2 -0
  174. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  175. package/daemon/dist/domain/bootstrap-orchestrator.js +5 -6
  176. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  177. package/daemon/dist/domain/claim-service.d.ts +10 -19
  178. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  179. package/daemon/dist/domain/claim-service.js +90 -0
  180. package/daemon/dist/domain/claim-service.js.map +1 -1
  181. package/daemon/dist/domain/classification-sources.d.ts.map +1 -1
  182. package/daemon/dist/domain/classification-sources.js +2 -0
  183. package/daemon/dist/domain/classification-sources.js.map +1 -1
  184. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +19 -6
  185. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  186. package/daemon/dist/domain/claude-compaction-enforcer.js +108 -38
  187. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  188. package/daemon/dist/domain/claude-core-plugin-env.d.ts +11 -0
  189. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
  190. package/daemon/dist/domain/claude-core-plugin-env.js +15 -0
  191. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -1
  192. package/daemon/dist/domain/codex-core-plugin-install.d.ts +41 -0
  193. package/daemon/dist/domain/codex-core-plugin-install.d.ts.map +1 -0
  194. package/daemon/dist/domain/codex-core-plugin-install.js +126 -0
  195. package/daemon/dist/domain/codex-core-plugin-install.js.map +1 -0
  196. package/daemon/dist/domain/codex-thread-id.d.ts +23 -1
  197. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  198. package/daemon/dist/domain/codex-thread-id.js +58 -17
  199. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  200. package/daemon/dist/domain/context-monitor.d.ts +13 -5
  201. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  202. package/daemon/dist/domain/context-monitor.js +47 -13
  203. package/daemon/dist/domain/context-monitor.js.map +1 -1
  204. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  205. package/daemon/dist/domain/context-usage-store.js +3 -0
  206. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  207. package/daemon/dist/domain/current-work.d.ts +18 -0
  208. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  209. package/daemon/dist/domain/current-work.js +17 -3
  210. package/daemon/dist/domain/current-work.js.map +1 -1
  211. package/daemon/dist/domain/draft-aware-delivery.d.ts +7 -7
  212. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -1
  213. package/daemon/dist/domain/draft-aware-delivery.js +61 -82
  214. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -1
  215. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  216. package/daemon/dist/domain/execution-view.js +2 -1
  217. package/daemon/dist/domain/execution-view.js.map +1 -1
  218. package/daemon/dist/domain/existing-rig-restore.d.ts +110 -0
  219. package/daemon/dist/domain/existing-rig-restore.d.ts.map +1 -0
  220. package/daemon/dist/domain/existing-rig-restore.js +254 -0
  221. package/daemon/dist/domain/existing-rig-restore.js.map +1 -0
  222. package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
  223. package/daemon/dist/domain/fresh-occupant-relation.js +11 -3
  224. package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
  225. package/daemon/dist/domain/gateway/channel-operations.d.ts +3 -4
  226. package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
  227. package/daemon/dist/domain/gateway/channel-operations.js.map +1 -1
  228. package/daemon/dist/domain/gateway/connections-projection.d.ts +0 -5
  229. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  230. package/daemon/dist/domain/gateway/connections-projection.js +3 -46
  231. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  232. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +11 -1
  233. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -1
  234. package/daemon/dist/domain/gateway/delivery-rules-engine.js +12 -2
  235. package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -1
  236. package/daemon/dist/domain/gateway/dispatch-buffer.d.ts +4 -0
  237. package/daemon/dist/domain/gateway/dispatch-buffer.d.ts.map +1 -1
  238. package/daemon/dist/domain/gateway/dispatch-buffer.js +18 -0
  239. package/daemon/dist/domain/gateway/dispatch-buffer.js.map +1 -1
  240. package/daemon/dist/domain/gateway/human-mode-account.d.ts +61 -0
  241. package/daemon/dist/domain/gateway/human-mode-account.d.ts.map +1 -0
  242. package/daemon/dist/domain/gateway/human-mode-account.js +112 -0
  243. package/daemon/dist/domain/gateway/human-mode-account.js.map +1 -0
  244. package/daemon/dist/domain/gateway/human-operating-modes.d.ts +171 -0
  245. package/daemon/dist/domain/gateway/human-operating-modes.d.ts.map +1 -0
  246. package/daemon/dist/domain/gateway/human-operating-modes.js +422 -0
  247. package/daemon/dist/domain/gateway/human-operating-modes.js.map +1 -0
  248. package/daemon/dist/domain/gateway/human-quiet-windows.d.ts +121 -0
  249. package/daemon/dist/domain/gateway/human-quiet-windows.d.ts.map +1 -0
  250. package/daemon/dist/domain/gateway/human-quiet-windows.js +217 -0
  251. package/daemon/dist/domain/gateway/human-quiet-windows.js.map +1 -0
  252. package/daemon/dist/domain/gateway/human-registry.d.ts +23 -2
  253. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  254. package/daemon/dist/domain/gateway/human-registry.js +67 -5
  255. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  256. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  257. package/daemon/dist/domain/gateway/operator-delivery-engine.js +9 -0
  258. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  259. package/daemon/dist/domain/gateway/slack/inbound.d.ts +10 -2
  260. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  261. package/daemon/dist/domain/gateway/slack/inbound.js +24 -2
  262. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  263. package/daemon/dist/domain/gateway/slack/message.d.ts +1 -0
  264. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  265. package/daemon/dist/domain/gateway/slack/message.js +5 -1
  266. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  267. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +9 -3
  268. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  269. package/daemon/dist/domain/gateway/slack/outbound-driver.js +40 -6
  270. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  271. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +19 -1
  272. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  273. package/daemon/dist/domain/gateway/slack/slack-delivery.js +128 -41
  274. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  275. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -2
  276. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  277. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +268 -50
  278. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  279. package/daemon/dist/domain/health-passive-ceremony.d.ts +4 -0
  280. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  281. package/daemon/dist/domain/health-passive-ceremony.js +34 -4
  282. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  283. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +3 -1
  284. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  285. package/daemon/dist/domain/hosts/hosts-registry-reader.js +9 -9
  286. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  287. package/daemon/dist/domain/hosts/learned-host-bindings.d.ts +28 -0
  288. package/daemon/dist/domain/hosts/learned-host-bindings.d.ts.map +1 -0
  289. package/daemon/dist/domain/hosts/learned-host-bindings.js +77 -0
  290. package/daemon/dist/domain/hosts/learned-host-bindings.js.map +1 -0
  291. package/daemon/dist/domain/hot-potato-enforcer.d.ts +7 -5
  292. package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -1
  293. package/daemon/dist/domain/hot-potato-enforcer.js +19 -10
  294. package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -1
  295. package/daemon/dist/domain/human-questions.d.ts +8 -1
  296. package/daemon/dist/domain/human-questions.d.ts.map +1 -1
  297. package/daemon/dist/domain/human-questions.js.map +1 -1
  298. package/daemon/dist/domain/kernel-boot-tracker.d.ts +17 -1
  299. package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
  300. package/daemon/dist/domain/kernel-boot-tracker.js +44 -3
  301. package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
  302. package/daemon/dist/domain/kernel-boot.d.ts +21 -0
  303. package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  304. package/daemon/dist/domain/kernel-boot.js +57 -2
  305. package/daemon/dist/domain/kernel-boot.js.map +1 -1
  306. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +2 -1
  307. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  308. package/daemon/dist/domain/model-divergence/current-generation-record.js +8 -3
  309. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  310. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  311. package/daemon/dist/domain/native-process-lineage.js +43 -15
  312. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  313. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  314. package/daemon/dist/domain/node-inventory.js +26 -12
  315. package/daemon/dist/domain/node-inventory.js.map +1 -1
  316. package/daemon/dist/domain/node-launcher.d.ts +5 -3
  317. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  318. package/daemon/dist/domain/node-launcher.js +29 -25
  319. package/daemon/dist/domain/node-launcher.js.map +1 -1
  320. package/daemon/dist/domain/outbox-handler.d.ts +3 -5
  321. package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
  322. package/daemon/dist/domain/outbox-handler.js +9 -19
  323. package/daemon/dist/domain/outbox-handler.js.map +1 -1
  324. package/daemon/dist/domain/park-wake-text.d.ts +11 -0
  325. package/daemon/dist/domain/park-wake-text.d.ts.map +1 -0
  326. package/daemon/dist/domain/park-wake-text.js +26 -0
  327. package/daemon/dist/domain/park-wake-text.js.map +1 -0
  328. package/daemon/dist/domain/plugin-vendor-service.d.ts +4 -0
  329. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  330. package/daemon/dist/domain/plugin-vendor-service.js +29 -6
  331. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  332. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +1 -0
  333. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -1
  334. package/daemon/dist/domain/policies/delivery-digest-flush.js +25 -4
  335. package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -1
  336. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts +37 -0
  337. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts.map +1 -0
  338. package/daemon/dist/domain/policies/mode-scheduled-end.js +161 -0
  339. package/daemon/dist/domain/policies/mode-scheduled-end.js.map +1 -0
  340. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +11 -7
  341. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  342. package/daemon/dist/domain/policies/parked-owner-consumer.js +82 -113
  343. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  344. package/daemon/dist/domain/policies/quiet-release.d.ts +109 -0
  345. package/daemon/dist/domain/policies/quiet-release.d.ts.map +1 -0
  346. package/daemon/dist/domain/policies/quiet-release.js +213 -0
  347. package/daemon/dist/domain/policies/quiet-release.js.map +1 -0
  348. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  349. package/daemon/dist/domain/profile-resolver.js +8 -3
  350. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  351. package/daemon/dist/domain/proof/source-watch.js +2 -2
  352. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  353. package/daemon/dist/domain/queue-destination-check.d.ts +6 -0
  354. package/daemon/dist/domain/queue-destination-check.d.ts.map +1 -0
  355. package/daemon/dist/domain/queue-destination-check.js +35 -0
  356. package/daemon/dist/domain/queue-destination-check.js.map +1 -0
  357. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  358. package/daemon/dist/domain/queue-owner.js +2 -1
  359. package/daemon/dist/domain/queue-owner.js.map +1 -1
  360. package/daemon/dist/domain/queue-recovery.d.ts +1 -1
  361. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  362. package/daemon/dist/domain/queue-recovery.js +3 -2
  363. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  364. package/daemon/dist/domain/queue-repository.d.ts +108 -67
  365. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  366. package/daemon/dist/domain/queue-repository.js +316 -140
  367. package/daemon/dist/domain/queue-repository.js.map +1 -1
  368. package/daemon/dist/domain/queue-stuck-sweep.d.ts +13 -1
  369. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  370. package/daemon/dist/domain/queue-stuck-sweep.js +95 -13
  371. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  372. package/daemon/dist/domain/queue-transition-log.d.ts +5 -0
  373. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  374. package/daemon/dist/domain/queue-transition-log.js +25 -8
  375. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  376. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -0
  377. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  378. package/daemon/dist/domain/queue-wake-ladder.js +94 -11
  379. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  380. package/daemon/dist/domain/quiet-hold-custody.d.ts +24 -0
  381. package/daemon/dist/domain/quiet-hold-custody.d.ts.map +1 -0
  382. package/daemon/dist/domain/quiet-hold-custody.js +85 -0
  383. package/daemon/dist/domain/quiet-hold-custody.js.map +1 -0
  384. package/daemon/dist/domain/rehydrate-eligibility.d.ts +12 -1
  385. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  386. package/daemon/dist/domain/rehydrate-eligibility.js +47 -9
  387. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  388. package/daemon/dist/domain/restore-orchestrator.d.ts +11 -0
  389. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  390. package/daemon/dist/domain/restore-orchestrator.js +144 -15
  391. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  392. package/daemon/dist/domain/restore-plan-preview.d.ts +3 -1
  393. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  394. package/daemon/dist/domain/restore-plan-preview.js +30 -13
  395. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  396. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  397. package/daemon/dist/domain/review/gather.js +8 -5
  398. package/daemon/dist/domain/review/gather.js.map +1 -1
  399. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
  400. package/daemon/dist/domain/rig-mode/operating-posture.js +3 -1
  401. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
  402. package/daemon/dist/domain/rig-repository.d.ts +11 -1
  403. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  404. package/daemon/dist/domain/rig-repository.js +27 -3
  405. package/daemon/dist/domain/rig-repository.js.map +1 -1
  406. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  407. package/daemon/dist/domain/rig-teardown.js +31 -4
  408. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  409. package/daemon/dist/domain/rigspec-instantiator.d.ts +9 -0
  410. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  411. package/daemon/dist/domain/rigspec-instantiator.js +59 -28
  412. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  413. package/daemon/dist/domain/rigspec-schema.d.ts +5 -0
  414. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  415. package/daemon/dist/domain/rigspec-schema.js +30 -0
  416. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  417. package/daemon/dist/domain/runtime-adapter.d.ts +27 -2
  418. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  419. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  420. package/daemon/dist/domain/seat-activity-service.d.ts +18 -3
  421. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  422. package/daemon/dist/domain/seat-activity-service.js +124 -57
  423. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  424. package/daemon/dist/domain/seat-attention-reconciler.d.ts +8 -1
  425. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  426. package/daemon/dist/domain/seat-attention-reconciler.js +3 -1
  427. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  428. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  429. package/daemon/dist/domain/seat-delivery-guard.js +21 -5
  430. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  431. package/daemon/dist/domain/seat-handover-service.d.ts +2 -2
  432. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  433. package/daemon/dist/domain/seat-handover-service.js +28 -2
  434. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  435. package/daemon/dist/domain/seat-identity-reconciler.js +1 -1
  436. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  437. package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
  438. package/daemon/dist/domain/seat-identity-store.js +5 -2
  439. package/daemon/dist/domain/seat-identity-store.js.map +1 -1
  440. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -1
  441. package/daemon/dist/domain/seat-launch-environment.js +17 -1
  442. package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
  443. package/daemon/dist/domain/seat-lifecycle-service.d.ts +4 -0
  444. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  445. package/daemon/dist/domain/seat-restart-in-place.d.ts +33 -14
  446. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
  447. package/daemon/dist/domain/seat-restart-in-place.js +102 -30
  448. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
  449. package/daemon/dist/domain/self-attach-service.d.ts +3 -2
  450. package/daemon/dist/domain/self-attach-service.d.ts.map +1 -1
  451. package/daemon/dist/domain/self-attach-service.js +18 -1
  452. package/daemon/dist/domain/self-attach-service.js.map +1 -1
  453. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  454. package/daemon/dist/domain/services-readiness.js +14 -3
  455. package/daemon/dist/domain/services-readiness.js.map +1 -1
  456. package/daemon/dist/domain/session-registry.d.ts +45 -0
  457. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  458. package/daemon/dist/domain/session-registry.js +124 -0
  459. package/daemon/dist/domain/session-registry.js.map +1 -1
  460. package/daemon/dist/domain/session-transport.d.ts +24 -6
  461. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  462. package/daemon/dist/domain/session-transport.js +58 -41
  463. package/daemon/dist/domain/session-transport.js.map +1 -1
  464. package/daemon/dist/domain/skill-discovery.d.ts +7 -1
  465. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  466. package/daemon/dist/domain/skill-discovery.js +41 -7
  467. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  468. package/daemon/dist/domain/snapshot-repository.d.ts +1 -0
  469. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  470. package/daemon/dist/domain/snapshot-repository.js +23 -10
  471. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  472. package/daemon/dist/domain/startup-orchestrator.d.ts +21 -3
  473. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  474. package/daemon/dist/domain/startup-orchestrator.js +66 -16
  475. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  476. package/daemon/dist/domain/startup-submission-evidence.d.ts +4 -11
  477. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  478. package/daemon/dist/domain/startup-submission-evidence.js +11 -17
  479. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  480. package/daemon/dist/domain/successor-session-launcher.d.ts +2 -1
  481. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  482. package/daemon/dist/domain/successor-session-launcher.js +3 -1
  483. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  484. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +1 -1
  485. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  486. package/daemon/dist/domain/terminal/herdr-adapter.js +22 -4
  487. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  488. package/daemon/dist/domain/topology-converge.d.ts +1 -0
  489. package/daemon/dist/domain/topology-converge.d.ts.map +1 -1
  490. package/daemon/dist/domain/topology-converge.js +1 -0
  491. package/daemon/dist/domain/topology-converge.js.map +1 -1
  492. package/daemon/dist/domain/types.d.ts +15 -4
  493. package/daemon/dist/domain/types.d.ts.map +1 -1
  494. package/daemon/dist/domain/types.js.map +1 -1
  495. package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
  496. package/daemon/dist/domain/user-settings/settings-browser.js +2 -0
  497. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
  498. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  499. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  500. package/daemon/dist/domain/user-settings/settings-store.js +37 -7
  501. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  502. package/daemon/dist/domain/wake-resolve-service.d.ts +1 -0
  503. package/daemon/dist/domain/wake-resolve-service.d.ts.map +1 -1
  504. package/daemon/dist/domain/wake-resolve-service.js +10 -0
  505. package/daemon/dist/domain/wake-resolve-service.js.map +1 -1
  506. package/daemon/dist/domain/wake-resolver.d.ts.map +1 -1
  507. package/daemon/dist/domain/wake-resolver.js +7 -0
  508. package/daemon/dist/domain/wake-resolver.js.map +1 -1
  509. package/daemon/dist/domain/watchdog-delivery.d.ts +3 -23
  510. package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -1
  511. package/daemon/dist/domain/watchdog-delivery.js +12 -89
  512. package/daemon/dist/domain/watchdog-delivery.js.map +1 -1
  513. package/daemon/dist/domain/watchdog-history-log.d.ts +5 -2
  514. package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -1
  515. package/daemon/dist/domain/watchdog-history-log.js.map +1 -1
  516. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -2
  517. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  518. package/daemon/dist/domain/watchdog-jobs-repository.js +4 -0
  519. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  520. package/daemon/dist/domain/watchdog-policy-engine.d.ts +16 -24
  521. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  522. package/daemon/dist/domain/watchdog-policy-engine.js +44 -43
  523. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  524. package/daemon/dist/domain/whoami-service.d.ts +2 -0
  525. package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
  526. package/daemon/dist/domain/whoami-service.js +23 -6
  527. package/daemon/dist/domain/whoami-service.js.map +1 -1
  528. package/daemon/dist/domain/workflow-boot-sweep.d.ts +2 -1
  529. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  530. package/daemon/dist/domain/workflow-boot-sweep.js +11 -5
  531. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  532. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  533. package/daemon/dist/domain/workflow-exception-escalation.js +2 -1
  534. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  535. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  536. package/daemon/dist/domain/workflow-projector.js +5 -2
  537. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  538. package/daemon/dist/domain/workflow-role-context.js +2 -2
  539. package/daemon/dist/domain/workflow-role-context.js.map +1 -1
  540. package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
  541. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  542. package/daemon/dist/domain/workflow-runtime.js +2 -0
  543. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  544. package/daemon/dist/routes/activity.d.ts +13 -1
  545. package/daemon/dist/routes/activity.d.ts.map +1 -1
  546. package/daemon/dist/routes/activity.js +67 -2
  547. package/daemon/dist/routes/activity.js.map +1 -1
  548. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  549. package/daemon/dist/routes/agent-images.js +2 -0
  550. package/daemon/dist/routes/agent-images.js.map +1 -1
  551. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  552. package/daemon/dist/routes/compaction.js +8 -3
  553. package/daemon/dist/routes/compaction.js.map +1 -1
  554. package/daemon/dist/routes/discovery.js +3 -0
  555. package/daemon/dist/routes/discovery.js.map +1 -1
  556. package/daemon/dist/routes/down.js +9 -1
  557. package/daemon/dist/routes/down.js.map +1 -1
  558. package/daemon/dist/routes/gateway.d.ts +2 -0
  559. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  560. package/daemon/dist/routes/gateway.js +181 -1
  561. package/daemon/dist/routes/gateway.js.map +1 -1
  562. package/daemon/dist/routes/kernel-status.js +6 -1
  563. package/daemon/dist/routes/kernel-status.js.map +1 -1
  564. package/daemon/dist/routes/provider.d.ts.map +1 -1
  565. package/daemon/dist/routes/provider.js +0 -73
  566. package/daemon/dist/routes/provider.js.map +1 -1
  567. package/daemon/dist/routes/queue.d.ts.map +1 -1
  568. package/daemon/dist/routes/queue.js +73 -13
  569. package/daemon/dist/routes/queue.js.map +1 -1
  570. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  571. package/daemon/dist/routes/rigs.js +29 -10
  572. package/daemon/dist/routes/rigs.js.map +1 -1
  573. package/daemon/dist/routes/rigspec.js +2 -3
  574. package/daemon/dist/routes/rigspec.js.map +1 -1
  575. package/daemon/dist/routes/seat.js +2 -2
  576. package/daemon/dist/routes/seat.js.map +1 -1
  577. package/daemon/dist/routes/sessions.js +35 -0
  578. package/daemon/dist/routes/sessions.js.map +1 -1
  579. package/daemon/dist/routes/skills.js +2 -2
  580. package/daemon/dist/routes/skills.js.map +1 -1
  581. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  582. package/daemon/dist/routes/transcripts.js +7 -3
  583. package/daemon/dist/routes/transcripts.js.map +1 -1
  584. package/daemon/dist/routes/transport.js +1 -1
  585. package/daemon/dist/routes/transport.js.map +1 -1
  586. package/daemon/dist/routes/up.js +36 -52
  587. package/daemon/dist/routes/up.js.map +1 -1
  588. package/daemon/dist/server.d.ts.map +1 -1
  589. package/daemon/dist/server.js +6 -4
  590. package/daemon/dist/server.js.map +1 -1
  591. package/daemon/dist/startup.d.ts.map +1 -1
  592. package/daemon/dist/startup.js +104 -65
  593. package/daemon/dist/startup.js.map +1 -1
  594. package/daemon/docs/reference/agent-state-taxonomy.md +17 -2
  595. package/daemon/docs/reference/getting-started.md +178 -35
  596. package/daemon/docs/reference/quickstart.md +200 -0
  597. package/daemon/docs/reference/refocus-channel.md +9 -3
  598. package/daemon/docs/reference/rig-spec.md +1 -1
  599. package/daemon/docs/reference/seat-delivery.md +57 -18
  600. package/daemon/docs/reference/slack-app-setup.md +49 -2
  601. package/daemon/docs/reference/whats-new.md +126 -100
  602. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
  603. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +2 -2
  604. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +11 -5
  605. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +2 -0
  606. package/daemon/specs/agents/shared/skills/pods/development-team/references/refactoring.md +11 -0
  607. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +46 -96
  608. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +17 -80
  609. package/daemon/specs/agents/shared/skills/process/verification-before-completion/references/performance-claims.md +12 -0
  610. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +93 -14
  611. package/dist/build-info.js +3 -3
  612. package/dist/cli-error.d.ts +4 -0
  613. package/dist/cli-error.d.ts.map +1 -1
  614. package/dist/cli-error.js +6 -0
  615. package/dist/cli-error.js.map +1 -1
  616. package/dist/client.d.ts +7 -1
  617. package/dist/client.d.ts.map +1 -1
  618. package/dist/client.js +28 -0
  619. package/dist/client.js.map +1 -1
  620. package/dist/commands/agent-image.d.ts.map +1 -1
  621. package/dist/commands/agent-image.js +15 -7
  622. package/dist/commands/agent-image.js.map +1 -1
  623. package/dist/commands/archive.d.ts.map +1 -1
  624. package/dist/commands/archive.js +17 -3
  625. package/dist/commands/archive.js.map +1 -1
  626. package/dist/commands/ask.d.ts.map +1 -1
  627. package/dist/commands/ask.js +13 -3
  628. package/dist/commands/ask.js.map +1 -1
  629. package/dist/commands/attach.d.ts.map +1 -1
  630. package/dist/commands/attach.js +6 -4
  631. package/dist/commands/attach.js.map +1 -1
  632. package/dist/commands/broadcast.js +2 -0
  633. package/dist/commands/broadcast.js.map +1 -1
  634. package/dist/commands/chatroom.d.ts.map +1 -1
  635. package/dist/commands/chatroom.js +1 -0
  636. package/dist/commands/chatroom.js.map +1 -1
  637. package/dist/commands/community-harness.d.ts.map +1 -1
  638. package/dist/commands/community-harness.js +2 -1
  639. package/dist/commands/community-harness.js.map +1 -1
  640. package/dist/commands/compact-plan.d.ts.map +1 -1
  641. package/dist/commands/compact-plan.js +2 -1
  642. package/dist/commands/compact-plan.js.map +1 -1
  643. package/dist/commands/compact.d.ts.map +1 -1
  644. package/dist/commands/compact.js +15 -7
  645. package/dist/commands/compact.js.map +1 -1
  646. package/dist/commands/config.d.ts.map +1 -1
  647. package/dist/commands/config.js +11 -2
  648. package/dist/commands/config.js.map +1 -1
  649. package/dist/commands/context.d.ts.map +1 -1
  650. package/dist/commands/context.js +16 -9
  651. package/dist/commands/context.js.map +1 -1
  652. package/dist/commands/doctor.d.ts +3 -0
  653. package/dist/commands/doctor.d.ts.map +1 -1
  654. package/dist/commands/doctor.js +39 -16
  655. package/dist/commands/doctor.js.map +1 -1
  656. package/dist/commands/expand.d.ts.map +1 -1
  657. package/dist/commands/expand.js +16 -2
  658. package/dist/commands/expand.js.map +1 -1
  659. package/dist/commands/export.d.ts.map +1 -1
  660. package/dist/commands/export.js +9 -2
  661. package/dist/commands/export.js.map +1 -1
  662. package/dist/commands/fork.d.ts.map +1 -1
  663. package/dist/commands/fork.js +3 -1
  664. package/dist/commands/fork.js.map +1 -1
  665. package/dist/commands/gateway.d.ts +39 -0
  666. package/dist/commands/gateway.d.ts.map +1 -1
  667. package/dist/commands/gateway.js +310 -3
  668. package/dist/commands/gateway.js.map +1 -1
  669. package/dist/commands/health.js +3 -2
  670. package/dist/commands/health.js.map +1 -1
  671. package/dist/commands/host.d.ts +1 -1
  672. package/dist/commands/host.d.ts.map +1 -1
  673. package/dist/commands/host.js +2 -2
  674. package/dist/commands/host.js.map +1 -1
  675. package/dist/commands/launch.d.ts.map +1 -1
  676. package/dist/commands/launch.js +9 -2
  677. package/dist/commands/launch.js.map +1 -1
  678. package/dist/commands/plugin.d.ts.map +1 -1
  679. package/dist/commands/plugin.js +2 -1
  680. package/dist/commands/plugin.js.map +1 -1
  681. package/dist/commands/provider.d.ts.map +1 -1
  682. package/dist/commands/provider.js +0 -73
  683. package/dist/commands/provider.js.map +1 -1
  684. package/dist/commands/ps.d.ts +4 -0
  685. package/dist/commands/ps.d.ts.map +1 -1
  686. package/dist/commands/ps.js +95 -5
  687. package/dist/commands/ps.js.map +1 -1
  688. package/dist/commands/queue.d.ts +4 -0
  689. package/dist/commands/queue.d.ts.map +1 -1
  690. package/dist/commands/queue.js +78 -3
  691. package/dist/commands/queue.js.map +1 -1
  692. package/dist/commands/reconcile-session.d.ts.map +1 -1
  693. package/dist/commands/reconcile-session.js +25 -4
  694. package/dist/commands/reconcile-session.js.map +1 -1
  695. package/dist/commands/release.d.ts.map +1 -1
  696. package/dist/commands/release.js +16 -2
  697. package/dist/commands/release.js.map +1 -1
  698. package/dist/commands/restore-check.d.ts.map +1 -1
  699. package/dist/commands/restore-check.js +2 -1
  700. package/dist/commands/restore-check.js.map +1 -1
  701. package/dist/commands/restore-packet.d.ts.map +1 -1
  702. package/dist/commands/restore-packet.js +2 -1
  703. package/dist/commands/restore-packet.js.map +1 -1
  704. package/dist/commands/restore.d.ts.map +1 -1
  705. package/dist/commands/restore.js +23 -6
  706. package/dist/commands/restore.js.map +1 -1
  707. package/dist/commands/scope.d.ts.map +1 -1
  708. package/dist/commands/scope.js +5 -2
  709. package/dist/commands/scope.js.map +1 -1
  710. package/dist/commands/seat.js +0 -4
  711. package/dist/commands/seat.js.map +1 -1
  712. package/dist/commands/send.d.ts.map +1 -1
  713. package/dist/commands/send.js +27 -3
  714. package/dist/commands/send.js.map +1 -1
  715. package/dist/commands/setup.d.ts +3 -0
  716. package/dist/commands/setup.d.ts.map +1 -1
  717. package/dist/commands/setup.js +29 -9
  718. package/dist/commands/setup.js.map +1 -1
  719. package/dist/commands/shrink.d.ts.map +1 -1
  720. package/dist/commands/shrink.js +16 -2
  721. package/dist/commands/shrink.js.map +1 -1
  722. package/dist/commands/slack.d.ts.map +1 -1
  723. package/dist/commands/slack.js +11 -24
  724. package/dist/commands/slack.js.map +1 -1
  725. package/dist/commands/snapshot.d.ts.map +1 -1
  726. package/dist/commands/snapshot.js +36 -10
  727. package/dist/commands/snapshot.js.map +1 -1
  728. package/dist/commands/specs.d.ts.map +1 -1
  729. package/dist/commands/specs.js +11 -5
  730. package/dist/commands/specs.js.map +1 -1
  731. package/dist/commands/start.d.ts.map +1 -1
  732. package/dist/commands/start.js +36 -10
  733. package/dist/commands/start.js.map +1 -1
  734. package/dist/commands/status.d.ts.map +1 -1
  735. package/dist/commands/status.js +4 -1
  736. package/dist/commands/status.js.map +1 -1
  737. package/dist/commands/transcript.d.ts.map +1 -1
  738. package/dist/commands/transcript.js +12 -7
  739. package/dist/commands/transcript.js.map +1 -1
  740. package/dist/commands/ui.d.ts.map +1 -1
  741. package/dist/commands/ui.js +8 -1
  742. package/dist/commands/ui.js.map +1 -1
  743. package/dist/commands/unarchive.d.ts.map +1 -1
  744. package/dist/commands/unarchive.js +16 -2
  745. package/dist/commands/unarchive.js.map +1 -1
  746. package/dist/commands/up.d.ts.map +1 -1
  747. package/dist/commands/up.js +33 -7
  748. package/dist/commands/up.js.map +1 -1
  749. package/dist/commands/walk.d.ts.map +1 -1
  750. package/dist/commands/walk.js +2 -1
  751. package/dist/commands/walk.js.map +1 -1
  752. package/dist/commands/whoami.d.ts.map +1 -1
  753. package/dist/commands/whoami.js +3 -0
  754. package/dist/commands/whoami.js.map +1 -1
  755. package/dist/config-store.d.ts +5 -2
  756. package/dist/config-store.d.ts.map +1 -1
  757. package/dist/config-store.js +39 -7
  758. package/dist/config-store.js.map +1 -1
  759. package/dist/daemon-lifecycle.d.ts +9 -4
  760. package/dist/daemon-lifecycle.d.ts.map +1 -1
  761. package/dist/daemon-lifecycle.js +38 -12
  762. package/dist/daemon-lifecycle.js.map +1 -1
  763. package/dist/daemon-reachability.d.ts +13 -0
  764. package/dist/daemon-reachability.d.ts.map +1 -1
  765. package/dist/daemon-reachability.js +28 -0
  766. package/dist/daemon-reachability.js.map +1 -1
  767. package/dist/fetch-with-timeout.d.ts.map +1 -1
  768. package/dist/fetch-with-timeout.js +19 -16
  769. package/dist/fetch-with-timeout.js.map +1 -1
  770. package/dist/front-door.d.ts.map +1 -1
  771. package/dist/front-door.js +3 -1
  772. package/dist/front-door.js.map +1 -1
  773. package/dist/host-bindings.d.ts +6 -0
  774. package/dist/host-bindings.d.ts.map +1 -1
  775. package/dist/host-bindings.js +7 -4
  776. package/dist/host-bindings.js.map +1 -1
  777. package/dist/lib/bundle-check.d.ts.map +1 -1
  778. package/dist/lib/bundle-check.js +13 -5
  779. package/dist/lib/bundle-check.js.map +1 -1
  780. package/dist/local-daemon-owner.d.ts +28 -0
  781. package/dist/local-daemon-owner.d.ts.map +1 -0
  782. package/dist/local-daemon-owner.js +98 -0
  783. package/dist/local-daemon-owner.js.map +1 -0
  784. package/dist/mcp-server.d.ts.map +1 -1
  785. package/dist/mcp-server.js +57 -14
  786. package/dist/mcp-server.js.map +1 -1
  787. package/dist/rig-handle.d.ts +18 -1
  788. package/dist/rig-handle.d.ts.map +1 -1
  789. package/dist/rig-handle.js +19 -2
  790. package/dist/rig-handle.js.map +1 -1
  791. package/package.json +1 -1
  792. package/tui/dist/config/config-model.js +1 -1
  793. package/tui/dist/config/config-model.js.map +1 -1
  794. package/tui/dist/connections/connections-model.d.ts +0 -5
  795. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  796. package/tui/dist/connections/connections-model.js +1 -1
  797. package/tui/dist/connections/connections-model.js.map +1 -1
  798. package/tui/dist/daemon-client.d.ts +2 -0
  799. package/tui/dist/daemon-client.d.ts.map +1 -1
  800. package/tui/dist/daemon-client.js +23 -0
  801. package/tui/dist/daemon-client.js.map +1 -1
  802. package/tui/dist/hydrate.d.ts.map +1 -1
  803. package/tui/dist/hydrate.js +13 -1
  804. package/tui/dist/hydrate.js.map +1 -1
  805. package/tui/dist/live.d.ts +10 -1
  806. package/tui/dist/live.d.ts.map +1 -1
  807. package/tui/dist/live.js +56 -7
  808. package/tui/dist/live.js.map +1 -1
  809. package/tui/dist/main.js +35 -2
  810. package/tui/dist/main.js.map +1 -1
  811. package/tui/dist/render.d.ts.map +1 -1
  812. package/tui/dist/render.js +111 -7
  813. package/tui/dist/render.js.map +1 -1
  814. package/tui/dist/types.d.ts +53 -0
  815. package/tui/dist/types.d.ts.map +1 -1
  816. package/tui/dist/version-skew.d.ts +24 -0
  817. package/tui/dist/version-skew.d.ts.map +1 -0
  818. package/tui/dist/version-skew.js +37 -0
  819. package/tui/dist/version-skew.js.map +1 -0
  820. package/daemon/dist/domain/provider/subscription-moves.d.ts +0 -77
  821. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +0 -1
  822. package/daemon/dist/domain/provider/subscription-moves.js +0 -140
  823. package/daemon/dist/domain/provider/subscription-moves.js.map +0 -1
package/README.md CHANGED
@@ -8,28 +8,74 @@ OpenRig is open-source software for building and running your own network of age
8
8
 
9
9
  It's the open-source system behind my AI civilization experiments.
10
10
 
11
- **Guide:** [Getting started](docs/reference/getting-started.md) · **Stuck?** [Help](docs/reference/help.md) · **Questions:** [Q&A](https://github.com/mvschwarz/openrig/discussions/92) · **Updates and demos:** [@_feralmachine on X](https://x.com/_feralmachine)
11
+ **Guide:** [Getting started](docs/reference/quickstart.md) · **Stuck?** [Help](docs/reference/help.md) · **Questions:** [Q&A](https://github.com/mvschwarz/openrig/discussions/92) · **Updates and demos:** [@_feralmachine on X](https://x.com/_feralmachine)
12
12
 
13
13
  ## See it running
14
14
 
15
15
  ![The OpenRig TUI: the build rig as a graph, then as a table of seats with runtime, model, context and state, then one seat in detail (real recording, 10 seconds)](assets/readme/openrig-agents-working.gif)
16
16
 
17
- **Start here:** [the guided first-use path](docs/reference/getting-started.md): install, talk to the kernel operator, then choose a team for your first useful change.
17
+ **Start here:** [the guided first-use path](docs/reference/quickstart.md): install, talk to the kernel operator, then choose a team for your first useful change.
18
18
 
19
19
  Not setting this up today? Get the next walkthrough and occasional OpenRig updates → https://openrig.dev/follow
20
20
 
21
21
  ## Install and first run
22
22
 
23
- Requires Node.js 22 or 24 and tmux, on macOS or Linux, and one working Claude Code or Codex account: one is enough, since the kernel operator adapts the shipped `starter` team to whichever you have. On Linux, the distribution's own Node.js can be older (Ubuntu 24.04's is 18); install a supported version with [nvm](https://github.com/nvm-sh/nvm) (`nvm install 22`) or NodeSource. On a Mac with Apple silicon, use Node.js 22 ([compatibility history](docs/releases/v0.5.15.md#known-compatibility-limitation)). On a Mac where you aren't an administrator, or where Homebrew belongs to another account (its `brew install` is refused), install Node.js in your own home folder with [nvm](https://github.com/nvm-sh/nvm): run `touch ~/.zshrc` (a new Mac account has none, and nvm's installer only adds itself to a profile file that already exists), then the install command on nvm's page, open a new terminal, and run `nvm install 22`. That needs no administrator password, and `npm install -g` then installs into your nvm folder. On Windows, use WSL2, the Windows route OpenRig supports; native Windows isn't supported. OpenRig's automated tests don't run on WSL2 yet; see [one user's working setup](docs/reference/getting-started.md#wsl2-a-reported-working-setup). Launching a rig writes provider hooks and workspace trust settings. Before running the commands below, read [what OpenRig changes on your machine](#what-openrig-changes-on-your-machine) and back up the relevant files.
23
+ **Let your coding agent set it up.** First check that `node --version` shows 22 or 24: the command below needs
24
+ Node.js and the `npx` that comes with it. Then, in your project folder, add OpenRig's `rigs` skill to the agent you
25
+ use:
24
26
 
25
- **One command.** This runs OpenRig's install script from the `v0.6.13` release. It checks Node.js and npm, installs the latest published `@openrig/cli` with `npm install -g`, runs the Node.js and SQLite check, then runs `rig setup --dry-run` and `rig setup`. The first line prints that plan and changes nothing:
27
+ ```sh
28
+ # Claude Code
29
+ npx skills add https://github.com/mvschwarz/openrig/tree/v0.7.0/skills/rigs --skill rigs --agent claude-code
30
+ # Codex
31
+ npx skills add https://github.com/mvschwarz/openrig/tree/v0.7.0/skills/rigs --skill rigs --agent codex
32
+ ```
33
+
34
+ Then type `/rigs` in Claude Code, or `$rigs` in Codex, and say what you want built. The skill has your agent tell
35
+ you what it will run and change before it does, install OpenRig, open the OpenRig view and pass your goal to
36
+ OpenRig's operator.
37
+
38
+ You need Node.js 22 or 24 (22 on Apple silicon), tmux, macOS or Linux (WSL2 on Windows), and Claude Code or Codex
39
+ signed in. One provider is enough to start.
40
+
41
+ Already have OpenRig? Use the tag that matches `rig --version`, or upgrade first.
42
+
43
+ Prefer to type the commands yourself? [Install it yourself ↓](#install-it-yourself)
44
+
45
+ Requires Node.js 22 or 24 and tmux, on macOS or Linux, and one working Claude Code or Codex account: one is enough, since the kernel operator adapts the shipped `starter` team to whichever you have. On Linux, the distribution's own Node.js can be older (Ubuntu 24.04's is 18); install a supported version with [nvm](https://github.com/nvm-sh/nvm) (`nvm install 22`) or NodeSource. On a Mac with Apple silicon, use Node.js 22 ([compatibility history](docs/releases/v0.5.15.md#known-compatibility-limitation)). On a Mac where you aren't an administrator, or where Homebrew belongs to another account (its `brew install` is refused), install Node.js in your own home folder with [nvm](https://github.com/nvm-sh/nvm): run `touch ~/.zshrc` (a new Mac account has none, and nvm's installer only adds itself to a profile file that already exists), then nvm's install command, for nvm v0.40.8 `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash` ([nvm's page](https://github.com/nvm-sh/nvm#install--update-script) has the newest), open a new terminal, and run `nvm install 22`. nvm itself needs no administrator password, and `npm install -g` then installs into your nvm folder. If nvm's installer says you need Apple's command line tools, run `xcode-select --install`, then its install command again. On Windows, use WSL2, the Windows route OpenRig supports; native Windows isn't supported. OpenRig's automated tests don't run on WSL2 yet; see [one user's working setup](docs/reference/getting-started.md#wsl2-a-reported-working-setup).
46
+
47
+ > **What OpenRig changes on your machine**
48
+ > - **Install:** `@openrig/cli` goes in globally with npm.
49
+ > - **Setup:** `rig setup` adds an OpenRig block to `~/.tmux.conf`. It can install tmux (with Homebrew on macOS), and
50
+ > Herdr unless you pass `--no-herdr`. Plain `rig setup`, which is what the one-command install runs, checks both
51
+ > Claude Code and Codex and may install a missing one; `rig setup --providers claude` (or `codex`) limits it to
52
+ > yours.
53
+ > - **Starting OpenRig, for the coding agent you use** (paths are the usual defaults):
54
+ > - Codex: hooks and trust in `~/.codex/config.toml`.
55
+ > - Claude Code: workspace trust in `~/.claude.json`, and activity hooks in the project's
56
+ > `.claude/settings.local.json`, plus a status line unless you already have your own.
57
+ > - Discovery skills go in `~/.claude/skills` and `~/.agents/skills`.
58
+ > - **Starting a team in your project:** adds managed guidance to `AGENTS.md` or `CLAUDE.md`, plus the team's skills
59
+ > and plugins.
60
+ > - **Permissions:** by default, OpenRig's own kernel gets broader permissions than a project team gets by default.
61
+ > On Codex that's full access with no approval prompts (`-s danger-full-access -a never`). On Claude Code, its file
62
+ > tools, web fetches and operational commands, including reads under your home folder, run without asking. A
63
+ > permission policy, per-agent choice or Codex profile changes that. What your team can do depends on the team you
64
+ > choose and your settings; `workshop`, for example, ships with broad access.
65
+ > - **Backups:** OpenRig doesn't guarantee it can preserve or roll back these files, so back them up first.
66
+ >
67
+ > [Everything OpenRig writes, and why →](https://github.com/mvschwarz/openrig#what-openrig-changes-on-your-machine)
68
+
69
+ ### Install it yourself
70
+
71
+ This runs OpenRig's install script from the `v0.7.0` release. It checks Node.js and npm, installs the latest published `@openrig/cli` with `npm install -g`, runs the Node.js and SQLite check, then runs `rig setup --dry-run` and `rig setup`. The first line prints that plan and changes nothing:
26
72
 
27
73
  ```bash
28
- curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.13/scripts/install.sh | sh -s -- --dry-run
29
- curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.13/scripts/install.sh | sh
74
+ curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh -s -- --dry-run
75
+ curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh
30
76
  ```
31
77
 
32
- If `rig setup` doesn't finish ready, for example because a provider isn't signed in yet, the script ends with `INSTALLED, SETUP NOT COMPLETE`: the CLI is installed, and `rig setup` lists what's left under "Some steps need attention". If the only items left are provider sign-ins, sign in to each selected provider as below and continue; run `rig setup` again rather than reinstalling the CLI.
78
+ If a provider isn't signed in yet, the last step reports `FAILED [4/4]`, and `rig setup` lists the sign-in under "Some steps need attention". If the only remaining failures are provider sign-ins, the install steps finished; sign in to each selected provider as below and continue.
33
79
 
34
80
  **Or step by step:**
35
81
 
@@ -60,10 +106,11 @@ to an unused provider.
60
106
  ### Your agent opens OpenRig for you
61
107
 
62
108
  After installing, your agent opens the OpenRig TUI and the operator for you. To get back to them later, ask your
63
- agent for OpenRig or your agents in any words. After checking the selected login, it runs:
109
+ agent for OpenRig or your agents in any words. After checking the selected login, it starts the daemon if it's stopped
110
+ and opens the view:
64
111
 
65
112
  ```sh
66
- rig daemon start # if stopped
113
+ rig daemon start
67
114
  rig terminal open saved:kernel --window
68
115
  ```
69
116
 
@@ -342,6 +389,8 @@ For cmux, use `--provider cmux`. In the TUI, a rig's detail view has an `Open te
342
389
 
343
390
  ## Key Concepts
344
391
 
392
+ The first words you meet, in plain language: [What these words mean](docs/reference/quickstart.md#what-these-words-mean).
393
+
345
394
  - **RigSpec**: Declarative multi-agent harness definition in YAML. Pods, members, edges, continuity policies, culture file.
346
395
  - **AgentSpec**: Reusable agent blueprint with skills, guidance, hooks, profiles, and startup contracts.
347
396
  - **Seat**: A stable role and address in a rig, such as `dev-build@starter`. The conversation occupying it can change while its identity and authored context remain.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openrig-core",
3
- "version": "0.1.14",
3
+ "version": "0.1.17",
4
4
  "description": "OpenRig canonical skills and hooks for cross-runtime agent topology coordination, continuity, and operating discipline.",
5
5
  "author": {
6
6
  "name": "Mike Schwarz",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openrig-core",
3
- "version": "0.1.14",
3
+ "version": "0.1.17",
4
4
  "description": "OpenRig canonical skills and hooks for cross-runtime agent topology coordination, continuity, and operating discipline.",
5
5
  "author": {
6
6
  "name": "Mike Schwarz",
@@ -41,14 +41,21 @@ This plugin ships dual-manifest packaging — both `.claude-plugin/` and `.codex
41
41
  `CLAUDE_PROJECT_DIR` doesn't follow a `cd`. A Claude started in the seat's own project folder is the same project and
42
42
  still acts as the seat. A seat launched before this change has no `OPENRIG_SEAT_PROJECT_DIR` until its next launch, restore
43
43
  or handover, and behaves as before until then.
44
- - **Codex CLI** — Codex has no directory option for plugins, so it does not load this plugin. A Codex seat gets only the hooks
45
- the daemon writes into Codex's `config.toml` (the activity relay); `hooks/codex.json` is not read.
44
+ - **Codex CLI** — OpenRig installs the plugin automatically when a Codex seat selects it and hooks are enabled.
45
+ On the first installation, it trusts only the six exact shipped hook definitions, after checking installed hook files
46
+ and scripts against the daemon's packaged copy. Existing plugin disables and hook choices remain in place across
47
+ restart and upgrade. An existing untrusted plugin stays under native review: Codex does not persist "continue without
48
+ trusting", so an absent trust record on an existing installation is not treated as permission.
49
+ - **One activity producer:** the four managed inline hooks report Codex activity; the plugin's activity entries are
50
+ no-ops. The plugin supplies refocus and skills. Disabling an inline activity hook is not bypassed by the plugin.
51
+ - **Seat scope:** the commands require both `OPENRIG_SEAT_PROJECT_DIR` and the executable `OPENRIG_NODE`. Personal and
52
+ unselected sessions are no-ops. A nested Codex inheriting those seat variables still acts as that seat.
46
53
 
47
54
  Generated Claude settings commands for the activity relay and context collector use the daemon's absolute Node
48
55
  executable when its name is recognized (`node` or `node.exe`); other names keep the legacy bare `node` command and
49
56
  its PATH requirement. Pinned commands do not require Node on the Claude process's inherited PATH. The executable must
50
- remain installed; removing or moving it requires normal command refresh from a healthy runtime. This does not change the static plugin
51
- manifest commands, which still use `node`, or prove that an already-running Claude reloaded changed settings.
57
+ remain installed; removing or moving it requires normal command refresh from a healthy runtime. This does not change the Claude plugin
58
+ manifest's commands, which still use `node` (the Codex manifest's run `$OPENRIG_NODE`, above), or prove that an already-running Claude reloaded changed settings.
52
59
 
53
60
  One skill targets Claude Code's compaction behavior specifically:
54
61
  - `claude-compaction-restore` — used to rebuild a Claude Code agent's working mental model after `/compact`, from JSONL transcripts and touched files
@@ -5,7 +5,7 @@
5
5
  "hooks": [
6
6
  {
7
7
  "type": "command",
8
- "command": "node \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\"",
8
+ "command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\" --from-plugin",
9
9
  "timeout": 5
10
10
  }
11
11
  ]
@@ -16,7 +16,7 @@
16
16
  "hooks": [
17
17
  {
18
18
  "type": "command",
19
- "command": "node \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\"",
19
+ "command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\" --from-plugin",
20
20
  "timeout": 5
21
21
  }
22
22
  ]
@@ -25,7 +25,7 @@
25
25
  "hooks": [
26
26
  {
27
27
  "type": "command",
28
- "command": "node \"${PLUGIN_ROOT}/hooks/scripts/refocus.cjs\" --runtime codex",
28
+ "command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/refocus.cjs\" --runtime codex",
29
29
  "timeout": 60
30
30
  }
31
31
  ]
@@ -36,7 +36,7 @@
36
36
  "hooks": [
37
37
  {
38
38
  "type": "command",
39
- "command": "node \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\"",
39
+ "command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\" --from-plugin",
40
40
  "timeout": 5
41
41
  }
42
42
  ]
@@ -47,7 +47,7 @@
47
47
  "hooks": [
48
48
  {
49
49
  "type": "command",
50
- "command": "node \"${PLUGIN_ROOT}/hooks/scripts/refocus.cjs\" --runtime codex",
50
+ "command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/refocus.cjs\" --runtime codex",
51
51
  "timeout": 60
52
52
  }
53
53
  ]
@@ -58,7 +58,7 @@
58
58
  "hooks": [
59
59
  {
60
60
  "type": "command",
61
- "command": "node \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\"",
61
+ "command": "test -n \"$OPENRIG_SEAT_PROJECT_DIR\" && test -f \"$OPENRIG_NODE\" && test -x \"$OPENRIG_NODE\" || exit 0; exec \"$OPENRIG_NODE\" \"${PLUGIN_ROOT}/hooks/scripts/activity-relay.cjs\" --from-plugin",
62
62
  "timeout": 5
63
63
  }
64
64
  ]
@@ -46,7 +46,9 @@ function firstString(...values) {
46
46
  return null;
47
47
  }
48
48
 
49
- function buildOpenRigPayload(providerPayload, env = process.env, now = () => new Date()) {
49
+ // The route this run reports by, so the daemon can count one event once per route: "plugin" for the plugin's hook
50
+ // (started with --from-plugin), "managed" for the settings or managed hook copy.
51
+ function buildOpenRigPayload(providerPayload, env = process.env, now = () => new Date(), argv = process.argv) {
50
52
  const sessionName = firstString(env.OPENRIG_SESSION_NAME, env.RIGGED_SESSION_NAME);
51
53
  const nodeId = firstString(env.OPENRIG_NODE_ID, env.RIGGED_NODE_ID);
52
54
  const runtime = firstString(env.OPENRIG_RUNTIME, env.RIGGED_RUNTIME);
@@ -80,6 +82,7 @@ function buildOpenRigPayload(providerPayload, env = process.env, now = () => new
80
82
  subtype,
81
83
  turnId: firstString(providerPayload.turn_id, providerPayload.turnId),
82
84
  occurredAt: now().toISOString(),
85
+ relayRoute: argv.includes("--from-plugin") ? "plugin" : "managed",
83
86
  };
84
87
  }
85
88
 
@@ -170,6 +173,10 @@ function buildSessionIdentityPayload(providerPayload, env = process.env, now = (
170
173
 
171
174
  if ((!sessionName && !nodeId) || !runtime) return null;
172
175
 
176
+ // #1524 (a): whether the runtime sent transcript_path, and its raw value. Codex sends an explicit null for a
177
+ // thread it never persists; the daemon tells that apart from an absent key, an empty string or a malformed value.
178
+ const transcriptPathPresent = Object.prototype.hasOwnProperty.call(providerPayload, "transcript_path");
179
+
173
180
  return {
174
181
  eventFamily: "session_identity",
175
182
  sessionName,
@@ -182,6 +189,8 @@ function buildSessionIdentityPayload(providerPayload, env = process.env, now = (
182
189
  // The daemon finds the Claude that ran this hook from its parent chain.
183
190
  hookPid: process.pid,
184
191
  sessionId,
192
+ transcriptPathPresent,
193
+ ...(transcriptPathPresent ? { transcriptPath: providerPayload.transcript_path } : {}),
185
194
  occurredAt: now().toISOString(),
186
195
  };
187
196
  }
@@ -268,6 +277,9 @@ function settingsRelayReports(hookEvent, providerPayload, env = process.env) {
268
277
  function pluginRunIsRedundant(providerPayload, argv = process.argv, env = process.env) {
269
278
  if (!argv.includes("--from-plugin")) return false;
270
279
  const hookEvent = firstString(providerPayload.hookEvent, providerPayload.hookEventName, providerPayload.hook_event_name, providerPayload.event, providerPayload.eventName);
280
+ // Codex activity has one producer: OpenRig's managed inline hooks. The plugin supplies refocus and skills, but its
281
+ // activity entries are no-ops. Do not infer merged native hook state here or bypass a person's inline-hook disable.
282
+ if (firstString(env.OPENRIG_RUNTIME, env.RIGGED_RUNTIME) === "codex") return true;
271
283
  return settingsRelayReports(hookEvent, providerPayload, env);
272
284
  }
273
285
 
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ // Codex's hook trust identity: the key and hash Codex records for a hook it has trusted.
4
+ //
5
+ // The recipe reproduces Codex's (codex-rs hooks/src/engine/discovery.rs hook_hash at rust-v0.163.0): the normalized
6
+ // identity { event_name: <snake_case label>, matcher?, hooks: [<normalized handler>] }, with absent fields dropped, keys
7
+ // sorted recursively, compact JSON, then "sha256:" + hex. The daemon's trust writer for its own managed activity hooks uses
8
+ // it (codex-runtime-adapter.ts, computeCodexHookTrust). It needs no packages.
9
+
10
+ const crypto = require("node:crypto");
11
+
12
+ const EVENT_LABELS = {
13
+ SessionStart: "session_start",
14
+ UserPromptSubmit: "user_prompt_submit",
15
+ Stop: "stop",
16
+ PostCompact: "post_compact",
17
+ PermissionRequest: "permission_request",
18
+ };
19
+
20
+ function sortKeys(value) {
21
+ if (Array.isArray(value)) return value.map(sortKeys);
22
+ if (value !== null && typeof value === "object") {
23
+ const out = {};
24
+ for (const key of Object.keys(value).sort()) out[key] = sortKeys(value[key]);
25
+ return out;
26
+ }
27
+ return value;
28
+ }
29
+
30
+ /** Codex's trust hash for one command handler, from every field Codex folds into it. */
31
+ function codexHookHash(eventLabel, handler) {
32
+ const normalized = { type: "command", command: handler.command, timeout: handler.timeoutSec, async: handler.async === true };
33
+ if (handler.statusMessage != null) normalized.statusMessage = handler.statusMessage;
34
+ if (handler.additionalContextLimit != null) normalized.additionalContextLimit = handler.additionalContextLimit;
35
+ const identity = { event_name: eventLabel, hooks: [normalized] };
36
+ if (handler.matcher != null) identity.matcher = handler.matcher;
37
+ const hex = crypto.createHash("sha256").update(JSON.stringify(sortKeys(identity)), "utf8").digest("hex");
38
+ return `sha256:${hex}`;
39
+ }
40
+
41
+ /** Codex's persisted trust key and hash for one hook, at its position in the config layer. */
42
+ function computeCodexHookTrust(event, input) {
43
+ const label = EVENT_LABELS[event];
44
+ if (!label) throw new Error(`no Codex hook label for ${event}`);
45
+ const key = `${input.keySource}:${label}:${input.groupIndex ?? 0}:${input.handlerIndex ?? 0}`;
46
+ return { key, hash: codexHookHash(label, input) };
47
+ }
48
+
49
+ module.exports = { EVENT_LABELS, codexHookHash, computeCodexHookTrust };
@@ -17,6 +17,8 @@ const DEFAULT_THRESHOLD = 2_600_000;
17
17
  const FALSE_VALUES = new Set(["0", "false", "off", "no"]);
18
18
  // The issue report after a failed attempt gets this long once the attempt's lookups are done.
19
19
  const REPORT_MS = 1_500;
20
+ // A failed attempt's reason, kept for the retry's label. The attempt's own TRACE GAP line keeps the full text.
21
+ const PENDING_FAILURE_MAX = 300;
20
22
  // The hook's time budget. Both registrations allow this hook 60 s (hooks/claude.json, hooks/codex.json). With no budget
21
23
  // selected, every lookup keeps its fixed 2 s cap exactly as before. OPENRIG_REFOCUS_BUDGET_MS selects a longer one, up
22
24
  // to 52 s: each lookup's cap then scales with it and every lookup is also clipped to what's left of it, so a slow lookup
@@ -286,15 +288,17 @@ function renderTrace() {
286
288
  timeout,
287
289
  maxBuffer: 16 * 1024 * 1024,
288
290
  });
289
- const reason = result.error?.message || result.stderr?.trim() || `trace exited ${result.status ?? "without a status"}`;
291
+ const reason = String(result.error?.message || result.stderr?.trim() || `trace exited ${result.status ?? "without a status"}`)
292
+ .replace(/\s+/g, " ").trim();
290
293
  const failed = Boolean(result.error) || result.status !== 0 || !result.stdout?.trim();
291
294
  const trace = [
292
- ...(failed ? [`TRACE GAP — ${String(reason).replace(/\s+/g, " ").trim()}`] : []),
295
+ ...(failed ? [`TRACE GAP — ${reason}`] : []),
293
296
  result.stdout?.trim(),
294
297
  ].filter(Boolean).join("\n");
295
298
  return {
296
299
  text: [trace, role].filter(Boolean).join("\n\n"),
297
300
  failed,
301
+ failure: failed ? `trace gap: ${reason}` : null,
298
302
  };
299
303
  }
300
304
 
@@ -334,8 +338,14 @@ function runsForThisSeatsProject(env = process.env) {
334
338
  const rawPrompt = typeof input.prompt === "string" ? input.prompt.trim() : "";
335
339
  // Claude can wrap a complete submitted message as pasted content. Unwrap only
336
340
  // that envelope; a peer quoting a restore request is still an ordinary prompt.
337
- const prompt = harness === "claude"
338
- ? (rawPrompt.match(/^<pasted_content id="([^"]+)">\s*([\s\S]*)\s*<\/pasted_content id="\1">$/)?.[2]?.trim() ?? rawPrompt)
341
+ // Check the delimiters separately: overlapping whitespace/wildcard matches can
342
+ // backtrack excessively on an incomplete paste or text after the closing tag.
343
+ const opening = harness === "claude" ? rawPrompt.match(/^<pasted_content id="([^"]+)">/) : null;
344
+ const closing = opening ? `</pasted_content id="${opening[1]}">` : "";
345
+ const prompt = opening
346
+ && rawPrompt.length >= opening[0].length + closing.length
347
+ && rawPrompt.endsWith(closing)
348
+ ? rawPrompt.slice(opening[0].length, -closing.length).trim()
339
349
  : rawPrompt;
340
350
  if (event === "UserPromptSubmit" && prompt.startsWith("OpenRig post-compaction turn boundary.")) process.exit(0);
341
351
 
@@ -429,6 +439,7 @@ function runsForThisSeatsProject(env = process.env) {
429
439
  if (state.pendingOn !== "PostCompact") {
430
440
  delete state.pendingOn;
431
441
  delete state.pendingAt;
442
+ delete state.pendingFailure;
432
443
  }
433
444
  state.lastReset = { at: new Date().toISOString(), fromBytes: Number(state.lastBytes || 0), toBytes: size };
434
445
  state.lastBytes = size;
@@ -463,6 +474,8 @@ function runsForThisSeatsProject(env = process.env) {
463
474
  if (state.managedRestorePending) state.managedRestorePendingAt = new Date().toISOString();
464
475
  else delete state.managedRestorePendingAt;
465
476
  }
477
+ // A new compaction is a fresh obligation, not a retry of the refocus before it.
478
+ if (event === "PostCompact") delete state.pendingFailure;
466
479
  if (event === "PostCompact" || !state.pendingOn) state.pendingOn = event;
467
480
  state.pendingAt ||= new Date().toISOString();
468
481
  persist();
@@ -487,10 +500,13 @@ function runsForThisSeatsProject(env = process.env) {
487
500
  const trace = rendered.text;
488
501
  const configured = readConfiguredContent(home);
489
502
  const failed = rendered.failed || Boolean(configured.failure);
503
+ // A post-compaction refocus still pending after a failed attempt is a retry of it, not a second compaction.
490
504
  const why = onDemand
491
505
  ? "on demand"
492
506
  : state.pendingOn === "PostCompact"
493
- ? "just compacted — your picture is lossy"
507
+ ? state.pendingFailure
508
+ ? `retrying the post-compaction refocus; the last attempt failed: ${state.pendingFailure}`
509
+ : "just compacted — your picture is lossy"
494
510
  : `${Math.round(grown / 1e6 * 10) / 10}MB of work since your last refocus`;
495
511
 
496
512
  const body = configured.failure
@@ -541,6 +557,10 @@ function runsForThisSeatsProject(env = process.env) {
541
557
  if (failed || error) {
542
558
  state.pendingOn ||= event;
543
559
  state.pendingAt ||= new Date().toISOString();
560
+ const failure = rendered.failure
561
+ || (configured.failure ? `content ref ${configured.contentRef}: ${configured.failure}` : null)
562
+ || `the refocus could not be written: ${String(error?.message ?? error).replace(/\s+/g, " ").trim()}`;
563
+ state.pendingFailure = failure.length > PENDING_FAILURE_MAX ? `${failure.slice(0, PENDING_FAILURE_MAX - 1)}…` : failure;
544
564
  persist();
545
565
  return;
546
566
  }
@@ -549,6 +569,7 @@ function runsForThisSeatsProject(env = process.env) {
549
569
  state.firedOn = event;
550
570
  delete state.pendingOn;
551
571
  delete state.pendingAt;
572
+ delete state.pendingFailure;
552
573
  persist();
553
574
  });
554
575
  })();
@@ -221,12 +221,19 @@ The audit message asks for a read-depth table and tells you not to conserve toke
221
221
 
222
222
  The next restore map links this note, which keeps the chain unbroken.
223
223
 
224
+ ## Then resume
225
+
226
+ Resume the outcome selected by the user's current instructions, standing duties and assigned work. Use existing
227
+ task records, decisions and your recap to recover the next useful action, remaining constraints and evidence
228
+ already earned. Check uncertain effects before replaying work. Available skills and historical suggestions do not
229
+ by themselves widen scope or create required stages. Use authorized skills, subagents, peer help and useful tests
230
+ within your remit without another permission request. Route a missing decision to its existing owner and continue
231
+ unaffected work.
232
+
224
233
  ## Guardrails
225
234
 
226
235
  - Compaction is survival, not housekeeping. Compact only when a seat is genuinely near its limit, never to
227
236
  "lean" a seat or prepare a starter image; a compacted seat can sound confident while missing the context it needs.
228
- - Continue from the map and the files, not from the summary's "next step" alone: a hold placed after the
229
- summary was written still binds.
230
237
  - Do not launch a fresh session in place of restoring.
231
238
  - An honest `PARTIAL` with its reason is a correct outcome. Claiming coverage you did not reach is the
232
239
  failure.
@@ -242,8 +242,9 @@ If you're booting into a new seat in an OpenRig rig:
242
242
  4. **Check what skills you have** — list `.claude/skills/` or
243
243
  `.agents/skills/` in your cwd. Each skill has a frontmatter description
244
244
  that tells you when to reach for it.
245
- 5. **Check your peers** — `rig capture <peer-session>` to see what they're
246
- doing.
245
+ 5. **Check your peers** — `rig ps --nodes` and the queue first (who is up,
246
+ who holds what). Capture a peer (`rig capture <peer-session>`) only when
247
+ you actually need to see its screen.
247
248
  6. **Check the transcripts** if you're returning to an in-flight workstream
248
249
  — `rig transcript <session> --tail 100` for recent context.
249
250
  7. **Ask `rig ask <rig> "<question>"`** if you need cross-cutting evidence
@@ -5,6 +5,8 @@ metadata:
5
5
  cli_surfaces_referenced:
6
6
  - gateway human list
7
7
  - gateway human show
8
+ - gateway human mode room
9
+ - gateway human mode decide
8
10
  - queue create
9
11
  - queue transitions
10
12
  - queue block
@@ -69,6 +71,28 @@ rig queue create --destination <entityId>@external \
69
71
  --evidence-ref <durable-evidence> --verify --json
70
72
  ```
71
73
 
74
+ Before asking a **decision**, check whether the person has a mode on with a
75
+ decision room: what they said the team may decide for them meanwhile.
76
+
77
+ ```bash
78
+ rig gateway human mode room <entityId>
79
+ ```
80
+
81
+ If it names a room and your decision is plainly inside their words (and none of
82
+ their exclusions), decide instead of waiting. Create the ask as above, then
83
+ record your choice on it straight away:
84
+
85
+ ```bash
86
+ rig gateway human mode decide <qitem-id> --application <applicationId> \
87
+ --choose <question>=<option> --reason "<why>" --reversible # or --irreversible
88
+ ```
89
+
90
+ It's recorded as decided on their behalf, never as their answer, the ask
91
+ closes, and it's in their account when they're back. Say honestly whether it
92
+ can be undone. A permission prompt or an approval is never decided this way.
93
+ With no room, a room that doesn't plainly cover it, or any doubt, ask and wait;
94
+ a recommended option is not a decision.
95
+
72
96
  An optional `--human-detail-file <path>` supplies one coherent supplemental
73
97
  reply in the same thread. Announce its purpose in the brief; the product also
74
98
  marks that a detail reply follows. The primary must already contain the complete
@@ -91,7 +91,7 @@ These ship in the OpenRig repo and reach a seat when its profile selects them. T
91
91
  Pod handbooks (load when you're in that pod):
92
92
  - **orchestration-team** — you're orchestrating a rig: dispatching, monitoring, keeping the loop moving.
93
93
  - **development-team** — you're on the dev pod: building and shipping product changes.
94
- - **review-team** — you're reviewing: fresh scrutiny, anti-slop, empirical verification.
94
+ - **review-team** — you're reviewing: fresh scrutiny, anti-slop, grounded findings.
95
95
  - **oversight-team** — you're in an oversight pod: monitor boundaries and route findings without taking over the work.
96
96
 
97
97
  Product-management craft (load when shaping/reviewing work):
@@ -106,7 +106,7 @@ Product-management craft (load when shaping/reviewing work):
106
106
  ### Vendored craft — load when you're coding (ships with upstream provenance)
107
107
  General engineering skills OpenRig ships as vendored copies. Open when the task matches; they carry "modified by OpenRig" provenance.
108
108
 
109
- - **verification-before-completion** — about to claim done / passing / fixed: run the check and read the output first.
109
+ - **verification-before-completion** — about to claim done / passing / fixed: have evidence that applies to the candidate you name first.
110
110
  - **systematic-debugging** — debugging: find the root cause before the fix.
111
111
  - **agent-browser** — driving a browser (screenshot / screencast) from an agent.
112
112
  - **frontend-design** — designing frontend / UI.
@@ -90,6 +90,23 @@ rig queue handoff <qitem-id> \
90
90
  --body-file /tmp/import-report-handoff.md
91
91
  ```
92
92
 
93
+ ### After a queue write — use the response; read back only when it doesn't show what you need
94
+
95
+ A queue write (`create`, `claim`, `update`, `handoff`, `handoff-and-complete`) answers with the row it wrote; a
96
+ handoff answers with the closed row and its successor. When that answer shows what you need to establish, use it.
97
+ Read back (`rig queue show <id> --full --json`, or `rig queue transitions <id>`) when it doesn't, for example:
98
+
99
+ - the outcome was INDETERMINATE (a transport failure, or a 502 `remote_queue_write_failed`), or the write warned
100
+ `qitem_body_not_saved` (an existing row came back). Reconcile by the original ID before any retry;
101
+ - the output was compact or truncated and the field you need isn't in it (the compact receipt shows `bodyBytes`, not
102
+ the body, and its footer names what it left out);
103
+ - you need a transition note, a closure or blocker detail, or a successor that the output you saw omits;
104
+ - you need evidence from downstream of the write: the recipient's wake (`create --verify` waits for it), or its
105
+ pickup or claim (a later read);
106
+ - your team's custody rule asks for a separate read-back.
107
+
108
+ Don't read back only to see again a field the response already showed you.
109
+
93
110
  ### §1b doctrine — turn ends by passing the ball
94
111
 
95
112
  **A turn ends by passing the ball, never by going idle holding the slice waiting
@@ -384,11 +401,19 @@ rig reconcile-session <session>
384
401
  rig reconcile-session <session> --rig <rigId> --node <logicalId>
385
402
  rig reconcile-session <session> --no-launch
386
403
  rig reconcile-session <session> --json
404
+ rig reconcile-session <session> --repair-missing-pane --no-launch
387
405
  ```
388
406
 
389
- This is a no-launch, no-input adopt. `--rig`/`--node` disambiguate when the
390
- canonical session name does not uniquely resolve. `--no-launch` is accepted
391
- for explicitness (it is the only mode this command has).
407
+ This is a no-launch, no-input adopt: it records a new claimed session row for
408
+ the seat (any running row is superseded); it re-captures the resume token if
409
+ it can, and conversation continuity stays unverified. `--rig`/`--node`
410
+ disambiguate when the canonical session name does not uniquely resolve.
411
+ `--no-launch` is accepted for explicitness.
412
+
413
+ `--repair-missing-pane --no-launch` is different: for a running launched seat
414
+ whose tmux pane was never recorded, it fills in the pane and keeps the
415
+ session, resume token and generation. It never adopts. Both forms refuse
416
+ while the seat's typing protection is on.
392
417
 
393
418
  ### Five-term restore status vocabulary
394
419
 
@@ -948,12 +973,7 @@ rig auth seats … --runtime codex # seat -> profile registry (metadata
948
973
 
949
974
  ### Manage subscriptions across a fleet (when the person asks you to)
950
975
 
951
- **This applies only when both hold:**
952
- - the daemon's `provider.subscription_moves` setting is on. It's off by default; the person turns it on with
953
- `rig config set provider.subscription_moves true`;
954
- - the person has asked you to manage their subscriptions.
955
-
956
- Otherwise, don't take this job on. Installing or upgrading OpenRig appoints no agent, launches no bundle and starts no
976
+ **This applies only when the person has asked you to manage their subscriptions.** Otherwise, don't take this job on. Installing or upgrading OpenRig appoints no agent, launches no bundle and starts no
957
977
  rotation.
958
978
 
959
979
  When a person runs several Claude and Codex subscriptions across machines, the fleet studio bundle's one agent is meant
@@ -961,19 +981,19 @@ to keep work running, through the Fleet app. Until that bundle is available, the
961
981
  subscriptions can use this section. If that's you, you decide which subscription or home moves, and when. You decide
962
982
  from:
963
983
  - the usage and assignment readings, and their freshness;
964
- - the move record;
984
+ - your earlier move reports;
965
985
  - the person's standing preferences.
966
986
 
967
987
  You say why, and you see the outcome through. OpenRig gives you the facts and the tools; it never decides for you,
968
988
  and there's no threshold to obey.
969
989
 
970
990
  **Who decides:**
971
- - **The person's operator agent** can ask you for a move, or look at the record. It doesn't make competing moves of
991
+ - **The person's operator agent** can ask you for a move, or ask what you've moved. It doesn't make competing moves of
972
992
  its own.
973
993
  - **One agent manages subscriptions:** the one the person asked, or the fleet studio's agent once that bundle is
974
994
  available. There's no other fleet-manager role and no automatic manager. Use the commands below directly; no extra
975
995
  hand-off is needed.
976
- - **The Observatory is optional:** it can show your moves and readings, but you don't need it to rotate.
996
+ - **The Observatory is optional:** it can show readings, but you don't need it to rotate.
977
997
 
978
998
  **The unit is a Codex home, with every seat on it.** Moving some seats on a shared home to a different account, and
979
999
  moving Claude seats, aren't supported moves yet: say so instead of improvising.
@@ -1005,8 +1025,7 @@ moving Claude seats, aren't supported moves yet: say so instead of improvising.
1005
1025
  --expect-account <the target's Account line>`. `--verify` only checks; it never restarts. Only that check
1006
1026
  reports `moved`, and anything less is unconfirmed.
1007
1027
  - **A slow reply isn't a failure:** never restart a seat a second time. Follow up at your next look.
1008
- 5. **Record every move, partial or unconfirmed included,** with `rig provider moves record --file <move.json>`
1009
- (`--help` shows the shape):
1028
+ 5. **Report every move, partial or unconfirmed included,** to whoever asked for it (a queue item to their seat):
1010
1029
  - the home and machine;
1011
1030
  - from and to, as labels;
1012
1031
  - your reason;
@@ -1014,10 +1033,8 @@ moving Claude seats, aren't supported moves yet: say so instead of improvising.
1014
1033
  - each seat's result (`moved`, `unconfirmed` or `unknown`) with its evidence or what's missing;
1015
1034
  - the peers, for example "not restarted; account unverified".
1016
1035
 
1017
- A seat marked `moved` needs its `evidence`, and an `unconfirmed` or `unknown` one needs what's `missing`. A home
1018
- switched with every seat left as a peer is still a move to record, with `seats: []`. A follow-up that confirms an
1019
- earlier unconfirmed seat records a new move with `supersedes`. Asked "why did this
1020
- seat move?", answer from `rig provider moves --seat <seat>`. Never put credentials in a record.
1036
+ A home switched with every seat left as a peer is still a move to report. A follow-up that confirms an earlier
1037
+ unconfirmed seat says which report it follows. Never put credentials in a report.
1021
1038
  6. **When a sign-in is needed:**
1022
1039
  - Ask the person once, durably: a queue item to their seat, naming the machine and the subscription.
1023
1040
  - Move nothing onto that subscription until it's done.
@@ -1385,9 +1402,10 @@ or `rig add` (one member) when a seat needs an explicit model, a permission poli
1385
1402
  different agent spec or role profile, per-seat runtime or cwd, or startup files.
1386
1403
 
1387
1404
  Node-granular managed partial restore (v0.3.4+):
1388
- - `rig launch <rig> <nodeRef>` relaunches a single seat by logical id or node id through orchestration. `<rig>` is the
1389
- rig's name or ID; a name shared by more than one active rig stops with the candidate IDs.
1390
- - `rig launch <rig> --seats <a,b,c>` relaunches a comma-separated subset of seats.
1405
+ - `rig launch <rig> <nodeRef>` launches a single seat that isn't running, by logical id or node id, through orchestration.
1406
+ `<rig>` is the rig's name or ID; a name shared by more than one active rig stops with the candidate IDs. A seat that's
1407
+ already running is left as it is; for a fresh occupant there, use `rig seat launch <seat> --fresh --stop --reason <why>`.
1408
+ - `rig launch <rig> --seats <a,b,c>` launches a comma-separated subset of seats.
1391
1409
  - `--hold-reason <text>` records a reason for holding non-target seats during the partial launch.
1392
1410
  - This is a SUPPORTED managed path. The prior `pod_aware_launch_unsupported` dead-end is retired; pod-aware narrow launch now goes through this surface rather than ad-hoc rebuilds.
1393
1411