@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
@@ -29,8 +29,9 @@ without an owner.
29
29
  with the rig appearing dormant.
30
30
  - **Finishing a slice that has a clear next step.** Default-nudge:
31
31
  receiver gets a wake-ping plus the durable queue item.
32
- - **Blocked on another agent's work.** Park the qitem with
33
- `closure_reason: blocked_on` and the blocker qitem id.
32
+ - **Blocked on another agent's work.** Use `rig queue block <id> --on <child>`
33
+ (or `rig queue update <id> --state blocked --blocked-on <child>`). The item
34
+ stays active and returns to pending when its blocker completes.
34
35
  - **Escalating to the human.** Make the escalation a durable attention
35
36
  item, not just a chat message.
36
37
 
@@ -53,16 +54,20 @@ human. The qitem state machine enforces this:
53
54
  `pending → in-progress → done` requires `closure_reason` from one of:
54
55
 
55
56
  - `handed_off_to` — work continues at a different seat (target = new owner)
56
- - `blocked_on` — parked pending another qitem (target = blocker qitem id)
57
57
  - `denied` — receiver rejected the work
58
58
  - `canceled` — sender or receiver withdrew
59
59
  - `no-follow-on` — terminal completion, nothing else needed
60
60
  - `escalation` — kicked up to a higher tier (target = escalation target)
61
+ - `superseded` — replaced by another qitem (target = successor qitem id)
61
62
 
62
- Three of those (`handed_off_to`, `blocked_on`, `escalation`) additionally
63
+ Two of those (`handed_off_to`, `escalation`) additionally
63
64
  require `closure_target`. The daemon enforces this at the domain layer;
64
65
  every surface (CLI, MCP, future UI) inherits the same guarantee.
65
66
 
67
+ `done` is terminal. `closure_reason: blocked_on` is valid only on an active
68
+ `state=blocked` park record, as used by workflow writers; combining it with
69
+ `state=done` is rejected. Use the block command above to wait on another qitem.
70
+
66
71
  **The drafted-park failure (draft ≠ throw).** The rule is about the *actual* pass, not the
67
72
  intention to pass. A turn that ends with a self-instruction **typed into your own prompt but left
68
73
  unsent** — a drafted go-ahead, a next-atom note you never sent — has **not** handed off; it has
@@ -120,6 +125,7 @@ inverted the default-nudge polarity.
120
125
  - **Scope tags `project:<id>`, `mission:<id>`, `slice:<id>`** on project work, set when you create the row (`--tags`; `create` also takes `--mission` and `--slice`). Tags can't be edited afterwards. A handoff keeps the source row's tags unless you pass `--tags` or `--gate`, either of which replaces them; repeat the scope tags in `--tags` when you use `--gate`.
121
126
  - **Pass work on with `handoff-and-complete`.** It closes your row as done and records the next row as its successor in one step. A `create` followed by `update --state done --closure-reason handed_off_to` records no successor, and the stuck sweep raises a recovery item for it.
122
127
  - **Close what you hold.** A row you claimed ends in a handoff or an `update --state done --closure-reason …`; `rig queue overdue` lists claimed rows past their deadline.
128
+ - **Use the write's response.** Read the row back only when the response doesn't show what you need (an indeterminate outcome, a field the compact output left out, downstream wake or pickup, a team custody rule): openrig-user, "After a queue write".
123
129
  - **Brief for the model that will read it.** Before handing a peer open-ended work, check which model it runs: `delegating-work`, "Check what kind of agent you're handing it to".
124
130
 
125
131
  ## Queue-body hygiene (token + parse safety)
@@ -75,39 +75,19 @@ def read(path):
75
75
  return None
76
76
 
77
77
 
78
+ # Contract twin of CLI scope-fs.ts and daemon scope/node-file.ts; parity is tested.
79
+ NOTES_FILE_PRECEDENCE = ("NOTES.md", "MISSION_NOTES.md")
80
+
81
+
78
82
  def resolve_notes(node):
79
- try:
80
- result = subprocess.run(
81
- ["rig", "scope", "resolve-notes", str(node), "--json"],
82
- capture_output=True,
83
- text=True,
84
- timeout=10,
85
- check=False,
86
- )
87
- except subprocess.TimeoutExpired:
88
- return None, "resolver command timed out"
89
- except OSError as error:
90
- return None, f"resolver command could not start: {error}"
91
- if result.returncode != 0:
92
- detail = (result.stderr or result.stdout or "").strip().splitlines()
93
- suffix = f": {detail[0]}" if detail else ""
94
- return None, f"resolver command exited {result.returncode}{suffix}"
95
- try:
96
- payload = json.loads(result.stdout)
97
- except (json.JSONDecodeError, TypeError):
98
- return None, "resolver command returned malformed JSON"
99
- if not isinstance(payload, dict) or payload.get("ok") is not True or "resolution" not in payload:
100
- return None, "resolver command returned an invalid success shape"
101
- resolution = payload["resolution"]
102
- if resolution is None:
103
- return None, None
104
- if not isinstance(resolution, dict):
105
- return None, "resolver command returned an invalid resolution shape"
106
- resolved_path = resolution.get("path")
107
- resolved_name = resolution.get("name")
108
- if not isinstance(resolved_path, str) or not isinstance(resolved_name, str):
109
- return None, "resolver command returned an invalid resolution shape"
110
- return (Path(resolved_path), resolved_name), None
83
+ for name in NOTES_FILE_PRECEDENCE:
84
+ candidate = node / name
85
+ try:
86
+ if candidate.is_file() and os.access(candidate, os.R_OK):
87
+ return (candidate, name), None
88
+ except OSError:
89
+ pass
90
+ return None, None
111
91
 
112
92
 
113
93
  def intent(text):
@@ -14,7 +14,8 @@ if the person asks you to. When they say what they want built, give it to OpenRi
14
14
  building it yourself.
15
15
 
16
16
  Tell the person what you're about to run and why before you run it. Don't install system packages or change their
17
- machine without a yes. Starting OpenRig and a team writes files: Codex hooks and settings in
17
+ machine without a yes, and don't start a team, including `rig up`, without their yes to what it will start; a yes they
18
+ already gave for that same launch counts, so don't ask twice. Starting OpenRig and a team writes files: Codex hooks and settings in
18
19
  `~/.codex/config.toml`, Claude Code workspace trust in `~/.claude.json`, discovery skills in `~/.claude/skills` and
19
20
  `~/.agents/skills`, and, in the repository, managed guidance in `AGENTS.md` or `CLAUDE.md`, activity hooks in
20
21
  `.claude/settings.local.json` and a status line there unless the project already has its own, plus the team's skills
@@ -23,6 +24,10 @@ seats run with an operational default: Codex with `-s danger-full-access -a neve
23
24
  tools, web fetches and operational commands, including reads under the home folder, allowed without asking. Say so
24
25
  before you start OpenRig ([the full list](https://github.com/mvschwarz/openrig#what-openrig-changes-on-your-machine)).
25
26
 
27
+ When you give the person a file or a command to run in their own terminal, use a path that exists on their side. A
28
+ file a sandboxed agent writes under `/tmp` may not exist in the person's terminal (seen with Codex), so put files the
29
+ person needs in their project or home folder and name that path.
30
+
26
31
  ## 1. Install OpenRig, if it isn't installed
27
32
 
28
33
  - **Check first:** `rig --version`. If it prints a version, go to step 2.
@@ -106,13 +111,18 @@ before you start OpenRig ([the full list](https://github.com/mvschwarz/openrig#w
106
111
  `--node <logicalId>` binds to an existing seat instead. Attach once, and keep the variables it prints
107
112
  (`OPENRIG_NODE_ID` and `OPENRIG_SESSION_NAME`). Each command may run in a fresh shell, so put them in front of every
108
113
  later `rig` command. Check with `rig whoami --json`.
114
+ If they decline, a message that must still say who it's from can go as a queue item with a declared source,
115
+ `rig queue create --source <their id>@external --destination <seat> --summary "<one line>" --body-file <file>`: the
116
+ seat sees that name, recorded as declared, and can reply to them if they're registered (`rig gateway human list`).
117
+ A declared name is a claim, not a seat's own identity: for a team that acts only on seat identity, the attached
118
+ shell above is the route.
109
119
  - **Give the operator the goal:** ask what they want worked on, in which repository and on which branch, unless they've
110
120
  said. Find the `operator.agent` row in `rig ps --nodes --rig kernel --json`, take its `canonicalSessionName`
111
121
  (never the logical ID or a guessed name) and send:
112
122
  `rig send <canonicalSessionName> 'This is the agent that installed OpenRig. The person will answer in your pane. Goal: <goal>. Project folder: <absolute path>. Branch: <branch>.'`
113
123
  Or the person types the goal and folder in the operator's pane. If they give you a goal later, forward it the same
114
- way. The operator helps them pick a team that fits their logins, starts it on their yes and gives the goal to the
115
- team's lead. Before that yes, it says what launching into their folder changes for their own agent there; relay
124
+ way. The operator helps them pick a team that fits their logins, starts it (`rig up`) only on their yes to the plan it
125
+ shows, and gives the goal to the team's lead. Before that yes, it says what launching into their folder changes for their own agent there; relay
116
126
  that with the question. Show them where the operator answers, and don't build the project yourself.
117
127
  - **Relay the operator's questions:** the operator asks in its own pane, and the person may not be looking there.
118
128
  After each step you hand it, read its screen with `rig capture <canonicalSessionName>`. When it asks the person
@@ -125,8 +135,17 @@ before you start OpenRig ([the full list](https://github.com/mvschwarz/openrig#w
125
135
  - **See what's running:** `rig ps`, then `rig ps --nodes --rig <rig>` for a team's agents. If a team is already
126
136
  running in that repository, tell the operator.
127
137
  - **Check it's ready before you say so:** `rig ps --nodes --rig <rig>`. If an agent is stopped at a prompt or a menu,
128
- read it with `rig capture <seat>@<rig>` and answer with the key that screen shows (`rig send --help` says how to
129
- send a digit, a letter or Escape), or ask the person. Capture it again before sending anything more.
138
+ read it with `rig capture <seat>@<rig>`. A permission prompt is the person's to answer: show it to them, with any
139
+ others waiting, one line each (seat, exact action, the choices offered). Before sending their choice, capture that
140
+ seat again: if its prompt changed, don't reuse the answer. Then send exactly the choice they made for that prompt
141
+ (`rig send --help` says how to send a digit, a letter or Escape to a prompt). A yes to one prompt isn't a
142
+ yes to the next, and never pick a "don't ask again" choice they didn't pick. If they've told you outright to decide a
143
+ kind of future prompt (say, "approve prompts that only write inside my project"), you may decide each one: read its
144
+ whole action, answer only when it's clearly inside what they said, and tell them you answered under that instruction,
145
+ not that they said yes. Bring anything unclear or outside it back to them; a command's name or a path that looks like
146
+ their project doesn't show what the action touches. Their instruction changes no permission setting.
147
+ Another kind of menu you can answer with
148
+ the key that screen shows, or ask the person. Capture it again before sending anything more.
130
149
  - **Replies:** in a plain shell, other agents can't type into this session. Read work sent to you with
131
150
  `rig queue list --destination <your address>` and `rig queue show <id> --full`, and read an agent's screen with
132
151
  `rig capture <seat>@<rig>`.
@@ -1,6 +1,6 @@
1
1
  # Agent help: the single troubleshooting and escalation guide (docs/reference/help.md).
2
2
  name: help
3
- version: "0.6.13"
3
+ version: "0.7.0"
4
4
  taxonomy: world
5
5
  purpose: "What an agent does when its user says OpenRig isn't working: diagnose, fix within permissions, verify, and escalate to OpenRig support."
6
6
  files:
@@ -1,6 +1,6 @@
1
1
  # Public capability and source-map width for the default onboarding walk.
2
2
  name: onboarding-width
3
- version: "0.6.13"
3
+ version: "0.7.0"
4
4
  taxonomy: world
5
5
  purpose: "The public capability map and source map referenced by the default onboarding walk."
6
6
  files:
@@ -11,7 +11,7 @@ not know exists.** So the point of what follows is not skill. It is recognition:
11
11
  lands, something rhymes, and you go check instead of building.
12
12
 
13
13
  Eighty-eight top-level verbs ship (capability canon refreshed through
14
- `capability-delta-v0.6.13`). This marker describes the pack's teaching, not publication or live
14
+ `capability-delta-v0.6.14`). This marker describes the pack's teaching, not publication or live
15
15
  adoption. Read this once for shape, and let it make you suspicious that a thing already exists.
16
16
  Model-divergence proclamations are live product (trust them; pins use canonical
17
17
  model IDs).
@@ -135,7 +135,8 @@ unseen — which makes messages the one delivery channel that never gets skipped
135
135
  read something, do not ask it. Look.**
136
136
  - **`rig ask`** — search what was said or decided, across *every generation that ever sat in a
137
137
  seat*. It reaches back past a handover that erased your predecessor's context, and costs no
138
- runtime tokens.
138
+ runtime tokens. `--wake` asks a Claude or Codex seat itself; any other runtime (Pi, custom, or
139
+ none recorded) is refused before a wake starts.
139
140
  - **`rig chatroom wait`** — block until a peer actually says something, instead of polling
140
141
  `capture` in a loop. Also `history`, `watch`, `topic` for a named thread that stays retrievable.
141
142
  Its `--timeout` is in seconds and ignores a suffix, so `2m` means 2 seconds. Poll timeouts,
@@ -460,7 +461,12 @@ not have to tear one down to change it, and you rarely have to start from nothin
460
461
  to a node. **`rig adopt`** does the whole thing at once: create the structure and bind the
461
462
  running sessions into it.
462
463
  - **`rig reconcile-session`** — you resumed a seat by hand and the daemon still shows it down; make
463
- the system see the live process **without launching anything**.
464
+ the system see the live process **without launching anything**. A running seat that refuses every
465
+ send because its tmux pane was never recorded (one launched by an older OpenRig) takes
466
+ `rig reconcile-session <seat> --repair-missing-pane --no-launch`: it fills only the missing pane,
467
+ keeps the session and resume token, and never adopts. Plain reconcile adopts: a new session row
468
+ (any running row for the seat is superseded); it re-captures the resume token if it can, and
469
+ conversation continuity stays unverified. Both refuse while typing protection is on.
464
470
  - **`rig unclaim` / `rig release`** — stop managing one adopted session, or all of them,
465
471
  **without killing the process or the agent inside it**. Handing something back to its human is a
466
472
  first-class move, not an abandonment.
@@ -487,6 +493,7 @@ version, from checking the environment to a useful report to the OpenRig team.
487
493
  Stop distinguishes process/listener exit from a clean asynchronous drain: inspect the matching
488
494
  `daemon-shutdown.json` and log when completion is incomplete or unverified. No target is a
489
495
  distinct no-op, and a timeout never proves down. Use command help for exact limits and recovery.
496
+ `/healthz` reports the daemon's effective UID as `euid`, beside `pid`.
490
497
  - **`rig doctor`** — is the *installation* wired up correctly, or are you chasing a bug that is
491
498
  really a broken install. It checks Claude and Codex installs, and a login or configured provider
492
499
  credential, the way setup does; it fails for a harness the person doesn't use, which they can
@@ -590,7 +597,9 @@ version, from checking the environment to a useful report to the OpenRig team.
590
597
  - **`rig compact-plan`** → **`rig compact`** — who is near the context wall, then act on it.
591
598
  **Ordering matters: running `compact` without the plan is guessing which seat needed it.**
592
599
  Managed compaction waits for the seat's restore map before compacting; `rig compact --state`,
593
- `--cancel` and `--skip-map` inspect, stop or skip that wait. The `claude-compaction-restore`
600
+ `--cancel` and `--skip-map` inspect, stop or skip that wait. If preparation stops at an ordinary
601
+ approval, a manual `rig compact` keeps waiting for someone to answer it, within its 180-second
602
+ budget; OpenRig never answers it, and the request times out after 240 seconds. The `claude-compaction-restore`
594
603
  skill covers writing and reading the map; `claude-compact-in-place` no longer ships. After a
595
604
  managed compaction, refocus waits for the restore request, which names the `refocusing` skill
596
605
  (the daemon installs it globally); three failed refocus attempts in a row for one occupant post
@@ -840,7 +849,10 @@ your circumstances is configuration, and the ones that are not, another agent ca
840
849
  - **`rig config get` / `reset` / `init-workspace`** — read one value, change a system-wide setting
841
850
  and put it back exactly as it was, or additively lay down the canonical project scaffold on a
842
851
  box that has none. Instance startup uses the same additive initializer for the surrounding
843
- `state`, `context`, `skills`, `topology`, and operational roots.
852
+ `state`, `context`, `skills`, `topology`, and operational roots. With `transport.local_user_guard`
853
+ on (off by default; `rig config set transport.local_user_guard true`), a Mac's local `rig` requests
854
+ stop only when the daemon's reported, `ps`-corroborated user differs from yours; unknown evidence
855
+ lets the call through. It isn't authentication or isolation.
844
856
  - **`rig policy permissions list` / `show` / `current` / `apply`** — what permission policy is
845
857
  actually in effect: discovers custom policy specs, validates refs (malformed can never read as
846
858
  valid OR absent), shows what would apply. The older `rig policy list|show|current|apply` forms
@@ -914,9 +926,7 @@ your circumstances is configuration, and the ones that are not, another agent ca
914
926
  better than `unknown`. A Codex account's last reading, its reset and its last observed exhaustion
915
927
  survive a daemon restart as history (`retained: "before_restart"`), never a current reading; a
916
928
  window whose reset has passed shows an `expectation`, which is planning, not a reading. Run `rig provider status --refresh`
917
- before telling anyone an account has room. With `provider.subscription_moves`
918
- on (off by default), `rig provider moves` records and lists moves of a Codex home's seats between
919
- subscriptions.
929
+ before telling anyone an account has room.
920
930
  - **Codex configuration fragments** — a `codex_config_fragment` must open with a table header and
921
931
  never overrides a user-declared table; see `docs/reference/agent-spec.md`.
922
932
  - **`rig env`** — the real services behind a rig: are they up, what are they saying, how do you
@@ -1,20 +1,66 @@
1
- # Getting started: meet the kernel, then make one useful change
2
-
3
- Install OpenRig, use a working provider login, and meet the kernel operator with
4
- the advisor and TUI beside it. No starter team is needed to reach that view.
5
- Tell the operator what you want to do, then choose a project team for a bounded
6
- change you can exercise. Reuse the accounts and terminal tools you already have.
7
-
8
- After installation and sign-in, your agent opens the **OpenRig TUI and operator** for you. The path is `rig daemon start` (if stopped),
9
- then `rig terminal open saved:kernel --window`. The second command opens the
10
- desktop window itself. An agent can run it from its shell on the daemon's
11
- desktop; it does not need to type into your current terminal. See
12
- [Open the kernel conversations](#open-the-kernel-conversations).
13
- `rig tui` is the team dashboard; installation ends when you are talking to the
14
- operator in the OpenRig view.
1
+ # OpenRig setup reference
2
+
3
+ This is the full reference for installing and running OpenRig, written for the agent doing the setup and for anyone
4
+ who wants the detail. The short version for people is [Getting started](quickstart.md).
5
+
6
+ ## For the agent doing the setup
7
+
8
+ The `rigs` skill is the procedure: follow it in order. This page is what it looks things up in.
9
+
10
+ - **Done** means the person is talking to the operator in a visible OpenRig view. A healthy daemon, a started kernel
11
+ or an opened window isn't done on its own. If they'd rather talk later, the handoff is still pending: say so, and
12
+ leave them the exact command.
13
+ - **Read readiness; don't assume it:**
14
+ - **The kernel:** the `Kernel:` line in `rig status`, and `rig ps --nodes --rig kernel`.
15
+ - **A team:** `rig ps --nodes --rig <team>`.
16
+ - A missing or unknown signal isn't ready.
17
+ - `rig up` exiting 1 with `Status: partial` and `Startup attention` means a seat is waiting at a prompt. Answer it,
18
+ or ask the person to, then run the `rig seat continue <seat>` it names.
19
+ - **Prerequisites:** check the person's existing toolchain first (mise, nvm, Homebrew or the nodejs.org installer)
20
+ and the PATH. Use what's there. Don't change a shared Homebrew's ownership, and don't make a local workaround the
21
+ standard route. If Node.js is installed after your session started, check that new shells and the session's hooks
22
+ can find it. In one published-0.6.11 Mac run, OpenRig's Claude hooks reported `node: command not found` until the
23
+ PATH was fixed.
24
+ - **Ask once, then reuse the answer:** the provider (Claude Code, Codex or both), Herdr, Ghostty on macOS,
25
+ remembered command allowances, and the team.
26
+ - **Before changing their machine:** say what applies to their route, then wait for a yes. See
27
+ [what OpenRig changes on your machine](../../README.md#what-openrig-changes-on-your-machine).
28
+ - **When something stops:**
29
+ - [Incomplete setup and restart](#incomplete-setup-and-restart) maps what you see to the next action.
30
+ - [What can interrupt installation and the OpenRig view](#what-can-interrupt-installation-and-the-openrig-view)
31
+ covers the view.
32
+ - [Headless or SSH handoff](#headless-or-ssh-handoff) covers no-display cases.
33
+ - A timed-out command may still have taken effect. Read `rig ps` or `rig seat status <seat>` before you run it
34
+ again.
35
+ - **Don't:**
36
+ - relaunch a team to reopen its view;
37
+ - start another seat to clear a prompt;
38
+ - build the person's project yourself. Give the goal to the operator.
15
39
 
16
40
  ## Before you start
17
41
 
42
+ > **What OpenRig changes on your machine**
43
+ > - **Install:** `@openrig/cli` goes in globally with npm.
44
+ > - **Setup:** `rig setup` adds an OpenRig block to `~/.tmux.conf`. It can install tmux (with Homebrew on macOS), and
45
+ > Herdr unless you pass `--no-herdr`. Plain `rig setup`, which is what the one-command install runs, checks both
46
+ > Claude Code and Codex and may install a missing one; `rig setup --providers claude` (or `codex`) limits it to
47
+ > yours.
48
+ > - **Starting OpenRig, for the coding agent you use** (paths are the usual defaults):
49
+ > - Codex: hooks and trust in `~/.codex/config.toml`.
50
+ > - Claude Code: workspace trust in `~/.claude.json`, and activity hooks in the project's
51
+ > `.claude/settings.local.json`, plus a status line unless you already have your own.
52
+ > - Discovery skills go in `~/.claude/skills` and `~/.agents/skills`.
53
+ > - **Starting a team in your project:** adds managed guidance to `AGENTS.md` or `CLAUDE.md`, plus the team's skills
54
+ > and plugins.
55
+ > - **Permissions:** by default, OpenRig's own kernel gets broader permissions than a project team gets by default.
56
+ > On Codex that's full access with no approval prompts (`-s danger-full-access -a never`). On Claude Code, its file
57
+ > tools, web fetches and operational commands, including reads under your home folder, run without asking. A
58
+ > permission policy, per-agent choice or Codex profile changes that. What your team can do depends on the team you
59
+ > choose and your settings; `workshop`, for example, ships with broad access.
60
+ > - **Backups:** OpenRig doesn't guarantee it can preserve or roll back these files, so back them up first.
61
+ >
62
+ > [Everything OpenRig writes, and why →](https://github.com/mvschwarz/openrig#what-openrig-changes-on-your-machine)
63
+
18
64
  You need Node.js 22 or 24 and tmux, on macOS or Linux, and one working Claude
19
65
  Code or Codex account: one is enough, since the kernel operator adapts the
20
66
  shipped `starter` team to whichever you have. On Linux, the distribution's own
@@ -26,12 +72,16 @@ you aren't an administrator, or where Homebrew belongs to another account (its
26
72
  `brew install` is refused), install Node.js in your own home folder with
27
73
  [nvm](https://github.com/nvm-sh/nvm): run `touch ~/.zshrc` (a new Mac account
28
74
  has none, and nvm's installer only adds itself to a profile file that already
29
- exists), then the install command on nvm's page, open a new terminal, and run
30
- `nvm install 22`. That needs no administrator password, and `npm install -g`
31
- then installs into your nvm folder. Native
32
- Windows isn't supported. On Windows, use WSL2: it's the Windows route OpenRig
33
- supports, though OpenRig's automated tests don't run on it yet. One user's
34
- [working setup](#wsl2-a-reported-working-setup) is below. Node 20 and
75
+ exists), then nvm's install command, for nvm v0.40.8
76
+ `curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.8/install.sh | bash`
77
+ ([nvm's page](https://github.com/nvm-sh/nvm#install--update-script) has the
78
+ newest), open a new terminal, and run `nvm install 22`. nvm itself needs no
79
+ administrator password, and `npm install -g` then installs into your nvm folder.
80
+ If nvm's installer says you need Apple's command line tools, run
81
+ `xcode-select --install`, then its install command again. Native Windows isn't
82
+ supported. On Windows, use WSL2: it's the Windows route
83
+ OpenRig supports, though OpenRig's automated tests don't run on it yet. One
84
+ user's [working setup](#wsl2-a-reported-working-setup) is below. Node 20 and
35
85
  odd-numbered releases (23, 25 and so on) are not supported; Node 26 and later
36
86
  even-numbered releases are untested.
37
87
 
@@ -131,20 +181,19 @@ You can also read [`skills/rigs/SKILL.md`](../../skills/rigs/SKILL.md) directly.
131
181
  script will do and changes nothing:
132
182
 
133
183
  ```sh
134
- curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.13/scripts/install.sh | sh -s -- --dry-run
184
+ curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh -s -- --dry-run
135
185
  ```
136
186
 
137
187
  The same command without `--dry-run`,
138
- `curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.6.13/scripts/install.sh | sh`, installs the
188
+ `curl -fsSL https://raw.githubusercontent.com/mvschwarz/openrig/v0.7.0/scripts/install.sh | sh`, installs the
139
189
  latest published `@openrig/cli` with `npm install -g`,
140
190
  runs the Node.js and SQLite check, then `rig setup --dry-run` and `rig setup`. `rig setup` checks both Claude Code and
141
- Codex and may install a missing one, as described below. A failed step among the first three prints
142
- `FAILED [n/4] <command or check> (exit <code>)`. When `rig setup` (step 4) doesn't finish ready, for example because a
143
- provider isn't signed in yet, the script ends with `INSTALLED, SETUP NOT COMPLETE (exit <code>)`: the CLI is
144
- installed, and `rig setup` lists what's left under "Some steps need attention". If the only items left are provider
145
- sign-ins, sign in to each selected provider as below, then continue at
146
- [Start the kernel](#start-the-kernel-and-check-its-state); run `rig setup` again rather than reinstalling the CLI. To
147
- install only what the selected providers need, go step by step instead:
191
+ Codex and may install a missing one, as described below. A failed step prints
192
+ `FAILED [n/4] <command or check> (exit <code>)`. Where a provider isn't signed in yet, step 4 ends that way and
193
+ `rig setup` lists each sign-in under "Some steps need attention". If the only remaining failures are provider
194
+ sign-ins, the install steps finished: sign in to each selected provider as below, then continue at
195
+ [Start the kernel](#start-the-kernel-and-check-its-state). To install only what the selected providers need, go step
196
+ by step instead:
148
197
 
149
198
  ### Choose your providers
150
199
 
@@ -174,6 +223,26 @@ writes an OpenRig-managed block (mouse on, a longer history) into `~/.tmux.conf`
174
223
  It is optional for this selected-provider path, not a requirement to fix an unused
175
224
  provider.
176
225
 
226
+ The block keeps `terminal.history_limit` rows of scrollback per pane (default
227
+ 10000). To keep more, run `rig config set terminal.history_limit 50000`, then
228
+ `rig setup` again. A running tmux server keeps its old limit until it restarts
229
+ or you run `tmux source-file ~/.tmux.conf`; before tmux 3.7 that changes new
230
+ panes only.
231
+
232
+ New managed agents and handover successors on macOS/Linux start from the daemon's
233
+ selected launch environment and declared seat values, rather than stored tmux globals.
234
+ Values named by tmux's `update-environment` option, including its default SSH-agent
235
+ and display variables, come from the daemon's environment.
236
+ Normal shell startup and configured tmux shell commands still run. If your custom setup
237
+ intentionally supplies values through tmux's global environment, opt in with
238
+ `rig config set terminal.inherit_tmux_environment true`. Setup points out this option
239
+ when it detects custom tmux configuration; it never enables it automatically. The setting
240
+ applies to future launches and successors, not running agents or your personal tmux server.
241
+ If the scoped environment cannot be prepared, launch keeps its previous environment and
242
+ reports a warning in fresh launch results and the daemon log. For handovers, check
243
+ that log for this warning. This is not a promise that shell startup cannot add or override values.
244
+
245
+
177
246
  ## Start the kernel and check its state
178
247
 
179
248
  With a working selected login, start the daemon if it is stopped, then read its
@@ -205,9 +274,51 @@ A missing or unknown readiness signal is not proof of readiness. Follow
205
274
  startup or missing-seat problems.
206
275
 
207
276
  `rig setup` itself does not start the daemon. Preserve a daemon and kernel that
208
- already exist: ordinary daemon startup skips a managed kernel, and
209
- `OPENRIG_NO_KERNEL=1` skips automatic kernel startup. If neither runtime is
210
- authenticated, kernel boot reports `auth_blocked`. Do not restart or recreate an
277
+ already exist: daemon startup does not boot a second kernel when one is managed,
278
+ and `OPENRIG_NO_KERNEL=1` (`--no-kernel`) skips automatic kernel startup,
279
+ including the restore below. If neither runtime is authenticated, kernel boot
280
+ reports `auth_blocked`.
281
+
282
+ Daemon startup restores one existing kernel by itself: a managed kernel whose
283
+ seats are all `detached` and still bound to their newest session, which is what
284
+ startup reconcile leaves when every kernel terminal is gone, for example after a
285
+ reboot. It does not detect a reboot as such. It uses the same restore as
286
+ `rig up kernel --existing`, and `rig status` reports it as `Kernel: booting`
287
+ until the seats are ready. A kernel stopped with `rig down kernel`, including
288
+ one whose seats were already detached, stays down on later starts. So do a kernel
289
+ with only some seats stopped and seats you unclaimed. Start one again with
290
+ `rig up kernel --existing`.
291
+ When the tmux server is gone, an explicit `rig down` of any rig can start an
292
+ empty server and probe again. It records the stop and clears eligible bindings
293
+ only after confirming the sessions are absent. This can leave an empty tmux
294
+ server running; it never launches an agent or provider session. Unreadable or
295
+ permission results and changed occupants leave the stop bookkeeping unchanged.
296
+
297
+ While that automatic restore runs, `rig start` continues to your other rigs and
298
+ says the kernel is still restoring (`kernelRestore.state: "restoring"` with
299
+ `--json`). Its exit status 0 then does not mean the kernel is ready; check
300
+ `rig status`. When the restore has returned without a ready kernel, `rig start`
301
+ still goes on to your other rigs but exits 1 (`kernelRestore.state: "failed"`),
302
+ so `rig start && next` does not run `next`. A `rig down kernel` made during the
303
+ restore waits for it to return and then stops the kernel, which stays down on
304
+ later starts. A `rig up kernel --existing` with no fresh seats and no change to
305
+ the saved non-interruptive choice, made during the restore, or after it restored
306
+ every seat while those seats still run the sessions it started, reports that
307
+ restore's outcome instead of starting another. Explicitly repeating the saved
308
+ `--non-interruptive` or `--no-non-interruptive` choice also joins that restore.
309
+
310
+ An explicit `rig up kernel --existing --fresh <seat...>` waits for startup's
311
+ restore to finish, then replaces only the named seats that still hold the exact
312
+ sessions startup launched. Other seats keep running. An operator's conversation
313
+ correction also takes effect for that seat on the next explicit `up` or
314
+ `restore`, using the corrected target; editing the token alone restarts nothing.
315
+ Each replacement takes new seat leases, rechecks the managed occupant and terminal,
316
+ and reports its own per-seat outcome. If the occupant changed, it is left alone.
317
+ A different `--non-interruptive` or `--no-non-interruptive` choice after startup
318
+ launched the seats is refused: the running launch choice stays unchanged. Stop
319
+ the rig, then rerun with the desired choice.
320
+
321
+ Do not restart or recreate an
211
322
  existing kernel merely to open its view. The startup TUI (`rig`) offers its own
212
323
  kernel setup and individual-seat recovery; it does not automatically boot agents
213
324
  when it starts the daemon.
@@ -644,7 +755,7 @@ the lifecycle API without booting a new kernel, then stop the remaining rigs.
644
755
  | Shared terminal is absent | Inspect the existing kernel binding and recovery state; use standalone `rig tui` while resolving it. |
645
756
  | Viewing terminal was closed | Open the conversations again with `rig terminal open saved:kernel --window`; `rig tui --shared` is only the dashboard fallback if that window cannot open. Do not relaunch the team. |
646
757
  | Daemon restarted but tmux survived | Re-read `rig status` and the existing queue; a daemon restart is not a fresh project. |
647
- | Host reboot lost tmux sessions | Open `rig`, start the daemon if needed (press **S** if it opens on the work views), and select the existing rig and seats. Resume is the default; a fresh conversation needs a separate decision. |
758
+ | Host reboot lost tmux sessions | Starting the daemon restores the kernel by itself when all of its seats were lost; check `rig status`, and if it reports the restore failed, run `rig up kernel --existing`. For other rigs, open `rig`, start the daemon if needed (press **S** if it opens on the work views), and select the existing rig and seats. Resume is the default; a fresh conversation needs a separate decision. |
648
759
  | Launch reports no usable snapshot | Inspect the existing rig and retained project files, then follow the same-seat recovery below. |
649
760
  | Work is waiting on a prompt or decision | Read the row, transition and named prompt; preserve the obligation until the missing decision arrives. |
650
761
 
@@ -675,8 +786,9 @@ This recovery is for the case the reporter hit: the kernel's seats failed and no
675
786
  IDs, for example `advisor.lead operator.agent operator.human queue.worker` when all four failed. `--fresh` starts a
676
787
  new conversation for each seat you name. Seats you don't name follow their normal recovery policy and may remain
677
788
  awaiting a decision if their old conversation can't be resumed. A later `rig daemon start` doesn't retry the failed
678
- seats by itself: once a kernel exists, startup skips the built-in kernel boot, and `rig status` then reads
679
- `Kernel: skipped` whatever its seats' state, so check `rig ps --nodes --rig kernel --full`.
789
+ seats by itself: once a kernel exists, startup skips the built-in kernel boot and restores only a kernel whose seats
790
+ were all lost, not seats that failed. `rig status` then reads `Kernel: skipped` unless some of its seats are running
791
+ and ready, so check `rig ps --nodes --rig kernel --full`.
680
792
 
681
793
  If a snapshot is unavailable, the startup view checks the selected seat's
682
794
  retained startup source and authoritative occupant relation. It reports a
@@ -995,6 +1107,37 @@ same-seat stop/resume path after checking its retained policy; do not erase the
995
1107
  rig or start a duplicate to reset permissions. A resume can reapply the stored
996
1108
  launch mode, so verify the native mode again before continuing work.
997
1109
 
1110
+ ## Optional Mac local-user check
1111
+
1112
+ On a Mac shared by multiple OS accounts, `transport.local_user_guard` can reduce
1113
+ accidental CLI routing to another account's local daemon. It is **off by default**.
1114
+ Enable it with `rig config set transport.local_user_guard true`, or set
1115
+ `OPENRIG_TRANSPORT_LOCAL_USER_GUARD=true` in the CLI's environment. Set it to
1116
+ `false` to turn it off; no daemon restart is needed for the CLI check.
1117
+
1118
+ When enabled, automatic local CLI data requests compare the daemon's reported
1119
+ `/healthz` PID and effective UID (`euid`) with two `ps` UID/start observations and
1120
+ a second health response, with at most one second of observation per check.
1121
+ Only stable agreement on a foreign effective UID stops the request. This does
1122
+ not require visibility into another user's socket descriptors. It does not
1123
+ stop the daemon, choose another port or retry. Diagnostic health/status checks
1124
+ remain available. Older daemons without `euid` remain unknown and are permitted.
1125
+ `sudo rig …` uses the caller's **effective** UID, so an enabled check against a
1126
+ user-owned daemon refuses when its reported/observed UID differs from root.
1127
+
1128
+ Explicit `OPENRIG_URL`/`RIGGED_URL` targets and registered remote hosts retain
1129
+ their selected routing, including tunnels. An internally resolved local URL is
1130
+ still checked. Default UI and TUI openings are checked before launch; this does
1131
+ not police later browser or TUI connections.
1132
+
1133
+ Missing, disagreeing, restricted or timed-out evidence **continues today's
1134
+ behavior**. This is a partial accidental-routing check, not authenticated user
1135
+ isolation: it trusts the daemon's PID/UID report and corroborates that process;
1136
+ it does not establish the socket's owner. Identity can change between observation
1137
+ and connection, and equal UIDs do not distinguish separate instances belonging
1138
+ to one account. The check
1139
+ does not add authentication to the daemon or protect direct HTTP clients.
1140
+
998
1141
  ## Custom settings and precedence
999
1142
 
1000
1143
  - **OpenRig:** member `permission_policy` overrides rig `permission_policy`.
@@ -1,7 +1,7 @@
1
1
  # Reference guides the help pack links to, loaded one file or section at a time by address
2
2
  # (rig context get reference/<file>#<section>). Each file is a symlink to docs/reference/.
3
3
  name: reference
4
- version: "0.6.13"
4
+ version: "0.7.0"
5
5
  taxonomy: world
6
6
  purpose: "Version-matched reference guides the help guide links to. Load a single file or section by address; don't load the whole pack."
7
7
  files:
@@ -354,7 +354,7 @@ pods:
354
354
 
355
355
  - A seat gets the rig's `env` with its own `env` laid over it, name by name.
356
356
  - The same environment is applied on first launch, on `rig up <rig-name>` restore, and to the successor of a seat handover.
357
- - `rig up <spec> --env KEY=VALUE` (repeatable) adds or overrides a value for one launch. A one-off value belongs to the terminal that launch creates: it stays in that terminal's environment for as long as the terminal lives, and OpenRig removes it from the tmux session's environment as soon as the terminal has started, so a terminal started later in that session does not get it. A restore, a handover successor or any later launch starts from the spec's `env:` alone, so the value is not saved and does not carry forward. To keep a value, put it in `env:`. One exception to "does not carry forward", for a managed Claude seat (see below): a one-off name that the seat's spec does not declare stays on the session's list of names, `OPENRIG_SEAT_ENV_KEYS` (names only, no values), because the first launch and an in-place restart of the same terminal read that list. So if a later pane in that session gets a value for that name from the tmux server's own environment, its managed Claude launch can forward that value, where a launch without `--env` would leave it out. The first launch's one-off value itself is not passed on to that pane. This comes from reading the code and has not been measured. `--env` does not apply to `rig up <rig-name>` (a restore) or to a topology (several rigs from their own specs); the CLI refuses both. For a topology, put `env:` in each rig's spec.
357
+ - `rig up <spec> --env KEY=VALUE` (repeatable) adds or overrides a value for one launch. A one-off value belongs to the terminal that launch creates: it stays in that terminal's environment for as long as the terminal lives, and OpenRig removes it from the tmux session's environment as soon as the terminal has started, so a terminal started later in that session does not get it. If OpenRig can't take it out, the seat keeps running and the launch warns, naming the variable and the tmux command to put it back or remove it. Until then, a terminal started later in that session would get it. A restore, a handover successor or any later launch starts from the spec's `env:` alone, so the value is not saved and does not carry forward. To keep a value, put it in `env:`. One exception to "does not carry forward", for a managed Claude seat (see below): a one-off name that the seat's spec does not declare stays on the session's list of names, `OPENRIG_SEAT_ENV_KEYS` (names only, no values), because the first launch and an in-place restart of the same terminal read that list. So if a later pane in that session gets a value for that name from the tmux server's own environment, its managed Claude launch can forward that value, where a launch without `--env` would leave it out. The first launch's one-off value itself is not passed on to that pane. This comes from reading the code and has not been measured. `--env` does not apply to `rig up <rig-name>` (a restore) or to a topology (several rigs from their own specs); the CLI refuses both. For a topology, put `env:` in each rig's spec.
358
358
  - Names starting `OPENRIG_` are reserved for OpenRig and refused. Empty values are refused, because the launch omits empty variables.
359
359
  - `rig export` writes the rig and member `env:` back out.
360
360