@openrig/cli 0.6.9 → 0.6.10

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 (391) hide show
  1. package/README.md +2 -2
  2. package/daemon/assets/onboarding/02-self-and-competent-action.md +4 -3
  3. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  4. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +42 -2
  6. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -1
  7. package/daemon/assets/skills/rigs/SKILL.md +6 -4
  8. package/daemon/context-packs/help/manifest.yaml +1 -1
  9. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  10. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +35 -10
  11. package/daemon/context-packs/reference/getting-started.md +10 -6
  12. package/daemon/context-packs/reference/manifest.yaml +1 -1
  13. package/daemon/context-packs/reference/whats-new.md +146 -70
  14. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  15. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  16. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  17. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  19. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +2 -2
  34. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/openrig-user/SKILL.md +7 -1
  42. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  68. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  69. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  70. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  71. package/daemon/dist/adapters/claude-code-adapter.js +16 -7
  72. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  73. package/daemon/dist/adapters/claude-resume-launch.d.ts +4 -0
  74. package/daemon/dist/adapters/claude-resume-launch.d.ts.map +1 -0
  75. package/daemon/dist/adapters/claude-resume-launch.js +13 -0
  76. package/daemon/dist/adapters/claude-resume-launch.js.map +1 -0
  77. package/daemon/dist/adapters/claude-resume.d.ts +2 -1
  78. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  79. package/daemon/dist/adapters/claude-resume.js +9 -4
  80. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  81. package/daemon/dist/adapters/tmux-server.d.ts +15 -0
  82. package/daemon/dist/adapters/tmux-server.d.ts.map +1 -0
  83. package/daemon/dist/adapters/tmux-server.js +58 -0
  84. package/daemon/dist/adapters/tmux-server.js.map +1 -0
  85. package/daemon/dist/adapters/tmux.d.ts +3 -1
  86. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  87. package/daemon/dist/adapters/tmux.js +4 -2
  88. package/daemon/dist/adapters/tmux.js.map +1 -1
  89. package/daemon/dist/build-info.js +3 -3
  90. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  91. package/daemon/dist/db/all-migrations.js +4 -0
  92. package/daemon/dist/db/all-migrations.js.map +1 -1
  93. package/daemon/dist/db/migrations/099_queue_items_recovery_tags.d.ts +3 -0
  94. package/daemon/dist/db/migrations/099_queue_items_recovery_tags.d.ts.map +1 -0
  95. package/daemon/dist/db/migrations/099_queue_items_recovery_tags.js +19 -0
  96. package/daemon/dist/db/migrations/099_queue_items_recovery_tags.js.map +1 -0
  97. package/daemon/dist/db/migrations/101_claude_resume_rotation.d.ts +3 -0
  98. package/daemon/dist/db/migrations/101_claude_resume_rotation.d.ts.map +1 -0
  99. package/daemon/dist/db/migrations/101_claude_resume_rotation.js +19 -0
  100. package/daemon/dist/db/migrations/101_claude_resume_rotation.js.map +1 -0
  101. package/daemon/dist/domain/agent-activity-store.js +3 -0
  102. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  103. package/daemon/dist/domain/bootstrap-repository.js +1 -1
  104. package/daemon/dist/domain/bootstrap-repository.js.map +1 -1
  105. package/daemon/dist/domain/chat-repository.d.ts +3 -0
  106. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  107. package/daemon/dist/domain/chat-repository.js +15 -4
  108. package/daemon/dist/domain/chat-repository.js.map +1 -1
  109. package/daemon/dist/domain/claude-managed-launch.d.ts +1 -1
  110. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  111. package/daemon/dist/domain/claude-managed-launch.js +3 -2
  112. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  113. package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
  114. package/daemon/dist/domain/cmux-layout-service.js +2 -1
  115. package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
  116. package/daemon/dist/domain/codex-git-add-dirs.js +1 -1
  117. package/daemon/dist/domain/codex-git-add-dirs.js.map +1 -1
  118. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  119. package/daemon/dist/domain/context-usage-store.js +6 -1
  120. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  121. package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -1
  122. package/daemon/dist/domain/crash-cart-conductor.js +3 -1
  123. package/daemon/dist/domain/crash-cart-conductor.js.map +1 -1
  124. package/daemon/dist/domain/files/file-read.d.ts.map +1 -1
  125. package/daemon/dist/domain/files/file-read.js +11 -3
  126. package/daemon/dist/domain/files/file-read.js.map +1 -1
  127. package/daemon/dist/domain/gateway/connections-projection.d.ts +1 -1
  128. package/daemon/dist/domain/gateway/slack/inbound.d.ts +21 -2
  129. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  130. package/daemon/dist/domain/gateway/slack/inbound.js +70 -11
  131. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  132. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +4 -0
  133. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  134. package/daemon/dist/domain/gateway/slack/slack-delivery.js +1 -1
  135. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  136. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  137. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +7 -4
  138. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  139. package/daemon/dist/domain/history-query.d.ts.map +1 -1
  140. package/daemon/dist/domain/history-query.js +8 -6
  141. package/daemon/dist/domain/history-query.js.map +1 -1
  142. package/daemon/dist/domain/human-questions.d.ts +4 -1
  143. package/daemon/dist/domain/human-questions.d.ts.map +1 -1
  144. package/daemon/dist/domain/human-questions.js.map +1 -1
  145. package/daemon/dist/domain/install-engine.js +2 -2
  146. package/daemon/dist/domain/install-engine.js.map +1 -1
  147. package/daemon/dist/domain/native-process-lineage.d.ts +52 -4
  148. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  149. package/daemon/dist/domain/native-process-lineage.js +224 -27
  150. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  151. package/daemon/dist/domain/node-cmux-service.d.ts.map +1 -1
  152. package/daemon/dist/domain/node-cmux-service.js +2 -1
  153. package/daemon/dist/domain/node-cmux-service.js.map +1 -1
  154. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  155. package/daemon/dist/domain/node-inventory.js +58 -13
  156. package/daemon/dist/domain/node-inventory.js.map +1 -1
  157. package/daemon/dist/domain/progress/progress-indexer.d.ts.map +1 -1
  158. package/daemon/dist/domain/progress/progress-indexer.js +19 -0
  159. package/daemon/dist/domain/progress/progress-indexer.js.map +1 -1
  160. package/daemon/dist/domain/provider/codex-limit-banner.d.ts +40 -0
  161. package/daemon/dist/domain/provider/codex-limit-banner.d.ts.map +1 -0
  162. package/daemon/dist/domain/provider/codex-limit-banner.js +121 -0
  163. package/daemon/dist/domain/provider/codex-limit-banner.js.map +1 -0
  164. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  165. package/daemon/dist/domain/ps-projection.js +3 -2
  166. package/daemon/dist/domain/ps-projection.js.map +1 -1
  167. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  168. package/daemon/dist/domain/queue-recovery.js +10 -3
  169. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  170. package/daemon/dist/domain/queue-repository.d.ts +66 -13
  171. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  172. package/daemon/dist/domain/queue-repository.js +56 -40
  173. package/daemon/dist/domain/queue-repository.js.map +1 -1
  174. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  175. package/daemon/dist/domain/queue-stuck-sweep.js +5 -2
  176. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  177. package/daemon/dist/domain/queue-wake-ladder.d.ts +17 -0
  178. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  179. package/daemon/dist/domain/queue-wake-ladder.js +49 -3
  180. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  181. package/daemon/dist/domain/restore-guidance.d.ts +39 -0
  182. package/daemon/dist/domain/restore-guidance.d.ts.map +1 -0
  183. package/daemon/dist/domain/restore-guidance.js +163 -0
  184. package/daemon/dist/domain/restore-guidance.js.map +1 -0
  185. package/daemon/dist/domain/restore-orchestrator.d.ts +6 -1
  186. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  187. package/daemon/dist/domain/restore-orchestrator.js +160 -6
  188. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  189. package/daemon/dist/domain/runtime-adapter.d.ts +2 -0
  190. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  191. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  192. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  193. package/daemon/dist/domain/scope/scope-view-projection.js +5 -7
  194. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  195. package/daemon/dist/domain/seat-attention-reconciler.d.ts +5 -2
  196. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  197. package/daemon/dist/domain/seat-attention-reconciler.js +18 -4
  198. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  199. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  200. package/daemon/dist/domain/seat-identity-reconciler.js +7 -2
  201. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  202. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  203. package/daemon/dist/domain/seat-status-service.d.ts +2 -1
  204. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  205. package/daemon/dist/domain/seat-status-service.js +1 -0
  206. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  207. package/daemon/dist/domain/seat-structural-activity-service.d.ts +9 -1
  208. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  209. package/daemon/dist/domain/seat-structural-activity-service.js +28 -4
  210. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  211. package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
  212. package/daemon/dist/domain/seat-switch-client-service.js +2 -1
  213. package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
  214. package/daemon/dist/domain/session-registry.d.ts +46 -0
  215. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  216. package/daemon/dist/domain/session-registry.js +86 -4
  217. package/daemon/dist/domain/session-registry.js.map +1 -1
  218. package/daemon/dist/domain/session-transport.d.ts +13 -1
  219. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  220. package/daemon/dist/domain/session-transport.js +101 -5
  221. package/daemon/dist/domain/session-transport.js.map +1 -1
  222. package/daemon/dist/domain/startup-orchestrator.d.ts +8 -0
  223. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  224. package/daemon/dist/domain/startup-orchestrator.js +37 -1
  225. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  226. package/daemon/dist/domain/terminal/terminal-service.d.ts +5 -1
  227. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  228. package/daemon/dist/domain/terminal/terminal-service.js +30 -4
  229. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  230. package/daemon/dist/domain/terminal/view-composer.d.ts +6 -0
  231. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  232. package/daemon/dist/domain/terminal/view-composer.js +2 -1
  233. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  234. package/daemon/dist/domain/transcript-store.js +1 -1
  235. package/daemon/dist/domain/transcript-store.js.map +1 -1
  236. package/daemon/dist/domain/types.d.ts +9 -0
  237. package/daemon/dist/domain/types.d.ts.map +1 -1
  238. package/daemon/dist/domain/types.js +5 -0
  239. package/daemon/dist/domain/types.js.map +1 -1
  240. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  241. package/daemon/dist/domain/usage-series.js +9 -4
  242. package/daemon/dist/domain/usage-series.js.map +1 -1
  243. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  244. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  245. package/daemon/dist/domain/user-settings/settings-store.js +13 -0
  246. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  247. package/daemon/dist/domain/view-projector.d.ts +4 -0
  248. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  249. package/daemon/dist/domain/view-projector.js +19 -4
  250. package/daemon/dist/domain/view-projector.js.map +1 -1
  251. package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
  252. package/daemon/dist/routes/activity.d.ts.map +1 -1
  253. package/daemon/dist/routes/activity.js +33 -1
  254. package/daemon/dist/routes/activity.js.map +1 -1
  255. package/daemon/dist/routes/chat.d.ts.map +1 -1
  256. package/daemon/dist/routes/chat.js +6 -2
  257. package/daemon/dist/routes/chat.js.map +1 -1
  258. package/daemon/dist/routes/projects.d.ts.map +1 -1
  259. package/daemon/dist/routes/projects.js +5 -1
  260. package/daemon/dist/routes/projects.js.map +1 -1
  261. package/daemon/dist/routes/query-limit.d.ts +19 -0
  262. package/daemon/dist/routes/query-limit.d.ts.map +1 -0
  263. package/daemon/dist/routes/query-limit.js +24 -0
  264. package/daemon/dist/routes/query-limit.js.map +1 -0
  265. package/daemon/dist/routes/queue.d.ts.map +1 -1
  266. package/daemon/dist/routes/queue.js +18 -7
  267. package/daemon/dist/routes/queue.js.map +1 -1
  268. package/daemon/dist/routes/rig-cmux.js +8 -10
  269. package/daemon/dist/routes/rig-cmux.js.map +1 -1
  270. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  271. package/daemon/dist/routes/rigs.js +6 -4
  272. package/daemon/dist/routes/rigs.js.map +1 -1
  273. package/daemon/dist/routes/stream.d.ts.map +1 -1
  274. package/daemon/dist/routes/stream.js +5 -1
  275. package/daemon/dist/routes/stream.js.map +1 -1
  276. package/daemon/dist/routes/up.d.ts.map +1 -1
  277. package/daemon/dist/routes/up.js +2 -1
  278. package/daemon/dist/routes/up.js.map +1 -1
  279. package/daemon/dist/routes/views.d.ts.map +1 -1
  280. package/daemon/dist/routes/views.js +7 -1
  281. package/daemon/dist/routes/views.js.map +1 -1
  282. package/daemon/dist/startup.d.ts.map +1 -1
  283. package/daemon/dist/startup.js +19 -0
  284. package/daemon/dist/startup.js.map +1 -1
  285. package/daemon/docs/reference/getting-started.md +10 -6
  286. package/daemon/docs/reference/slack-app-setup.md +6 -0
  287. package/daemon/docs/reference/whats-new.md +146 -70
  288. package/daemon/specs/agents/development/qa/guidance/role.md +9 -0
  289. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +2 -2
  290. package/daemon/specs/rigs/launch/factory/CULTURE.md +13 -0
  291. package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +18 -5
  292. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +20 -1
  293. package/daemon/specs/rigs/launch/starter/CULTURE.md +13 -0
  294. package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +18 -5
  295. package/dist/build-info.js +3 -3
  296. package/dist/cli-error.d.ts.map +1 -1
  297. package/dist/cli-error.js +2 -0
  298. package/dist/cli-error.js.map +1 -1
  299. package/dist/commands/add.d.ts.map +1 -1
  300. package/dist/commands/add.js +55 -4
  301. package/dist/commands/add.js.map +1 -1
  302. package/dist/commands/capture.d.ts +9 -0
  303. package/dist/commands/capture.d.ts.map +1 -1
  304. package/dist/commands/capture.js +93 -41
  305. package/dist/commands/capture.js.map +1 -1
  306. package/dist/commands/config.d.ts.map +1 -1
  307. package/dist/commands/config.js +4 -1
  308. package/dist/commands/config.js.map +1 -1
  309. package/dist/commands/daemon.d.ts.map +1 -1
  310. package/dist/commands/daemon.js +37 -3
  311. package/dist/commands/daemon.js.map +1 -1
  312. package/dist/commands/down.d.ts.map +1 -1
  313. package/dist/commands/down.js +1 -50
  314. package/dist/commands/down.js.map +1 -1
  315. package/dist/commands/env.d.ts.map +1 -1
  316. package/dist/commands/env.js +6 -0
  317. package/dist/commands/env.js.map +1 -1
  318. package/dist/commands/heartbeat.js +2 -2
  319. package/dist/commands/heartbeat.js.map +1 -1
  320. package/dist/commands/ps.d.ts +3 -0
  321. package/dist/commands/ps.d.ts.map +1 -1
  322. package/dist/commands/ps.js +8 -3
  323. package/dist/commands/ps.js.map +1 -1
  324. package/dist/commands/queue.d.ts +39 -6
  325. package/dist/commands/queue.d.ts.map +1 -1
  326. package/dist/commands/queue.js +127 -33
  327. package/dist/commands/queue.js.map +1 -1
  328. package/dist/commands/seat.d.ts.map +1 -1
  329. package/dist/commands/seat.js +6 -0
  330. package/dist/commands/seat.js.map +1 -1
  331. package/dist/commands/setup.d.ts +6 -0
  332. package/dist/commands/setup.d.ts.map +1 -1
  333. package/dist/commands/setup.js +100 -44
  334. package/dist/commands/setup.js.map +1 -1
  335. package/dist/commands/start.d.ts.map +1 -1
  336. package/dist/commands/start.js +5 -1
  337. package/dist/commands/start.js.map +1 -1
  338. package/dist/commands/usage.d.ts.map +1 -1
  339. package/dist/commands/usage.js +10 -5
  340. package/dist/commands/usage.js.map +1 -1
  341. package/dist/commands/workflow.d.ts.map +1 -1
  342. package/dist/commands/workflow.js +8 -8
  343. package/dist/commands/workflow.js.map +1 -1
  344. package/dist/config-store.d.ts +2 -1
  345. package/dist/config-store.d.ts.map +1 -1
  346. package/dist/config-store.js +14 -0
  347. package/dist/config-store.js.map +1 -1
  348. package/dist/daemon-lifecycle.d.ts +4 -0
  349. package/dist/daemon-lifecycle.d.ts.map +1 -1
  350. package/dist/daemon-lifecycle.js +16 -4
  351. package/dist/daemon-lifecycle.js.map +1 -1
  352. package/dist/lib/scope/capability-delta.d.ts.map +1 -1
  353. package/dist/lib/scope/capability-delta.js +8 -0
  354. package/dist/lib/scope/capability-delta.js.map +1 -1
  355. package/dist/lib/scope/progress-edit.js +1 -1
  356. package/dist/lib/scope/progress-edit.js.map +1 -1
  357. package/dist/lib/scope/scope-fs.js +3 -3
  358. package/dist/lib/scope/scope-fs.js.map +1 -1
  359. package/dist/rig-handle.d.ts +45 -0
  360. package/dist/rig-handle.d.ts.map +1 -0
  361. package/dist/rig-handle.js +51 -0
  362. package/dist/rig-handle.js.map +1 -0
  363. package/dist/system-preflight.d.ts +5 -0
  364. package/dist/system-preflight.d.ts.map +1 -1
  365. package/dist/system-preflight.js +8 -0
  366. package/dist/system-preflight.js.map +1 -1
  367. package/dist/terminal-window.d.ts.map +1 -1
  368. package/dist/terminal-window.js +3 -1
  369. package/dist/terminal-window.js.map +1 -1
  370. package/package.json +1 -1
  371. package/tui/dist/config/config-model.d.ts.map +1 -1
  372. package/tui/dist/config/config-model.js +1 -0
  373. package/tui/dist/config/config-model.js.map +1 -1
  374. package/tui/dist/daemon-client.d.ts +3 -0
  375. package/tui/dist/daemon-client.d.ts.map +1 -1
  376. package/tui/dist/daemon-client.js +4 -1
  377. package/tui/dist/daemon-client.js.map +1 -1
  378. package/tui/dist/detail.d.ts.map +1 -1
  379. package/tui/dist/detail.js +6 -1
  380. package/tui/dist/detail.js.map +1 -1
  381. package/tui/dist/hydrate.d.ts.map +1 -1
  382. package/tui/dist/hydrate.js +19 -17
  383. package/tui/dist/hydrate.js.map +1 -1
  384. package/tui/dist/input.d.ts.map +1 -1
  385. package/tui/dist/input.js +15 -4
  386. package/tui/dist/input.js.map +1 -1
  387. package/tui/dist/local-reading.js +2 -2
  388. package/tui/dist/local-reading.js.map +1 -1
  389. package/tui/dist/reading.d.ts.map +1 -1
  390. package/tui/dist/reading.js +14 -3
  391. package/tui/dist/reading.js.map +1 -1
package/README.md CHANGED
@@ -42,7 +42,7 @@ To install with Bun instead, run `bun add -g @openrig/cli`. OpenRig still runs o
42
42
 
43
43
  npm 11 and later can skip that postinstall script and print `npm warn install-scripts` naming `@openrig/cli`. That's expected: the CLI still works, and only the Node.js and SQLite check was skipped. To run it yourself, use `node "$(npm root -g)/@openrig/cli/scripts/check-abi.mjs"`; `rig doctor` checks the Node.js version only.
44
44
 
45
- Choose the working account you already have: **Claude Code, Codex, or both**. Reuse an explicit choice; no second subscription is required. `rig setup --dry-run` previews the broader setup; applying `rig setup` checks both harnesses and installs a missing one, plus Herdr unless declined with `--no-herdr`. On macOS, the installing agent offers Ghostty once. Setup leaves an existing cmux installation alone. It is optional for the [selected-provider path](docs/reference/getting-started.md#choose-your-providers).
45
+ Choose the working account you already have: **Claude Code, Codex, or both**. Reuse an explicit choice; no second subscription is required. `rig setup --dry-run` previews the broader setup; applying `rig setup` checks both harnesses and installs a missing one, plus Herdr unless declined with `--no-herdr`. Pass the choice with `--providers claude` or `--providers codex` so the other reads not selected instead of failed. The one-command install above doesn't know the choice, so it installs and checks both; for one provider, go step by step and run `rig setup --providers <choice>`. On macOS, the installing agent offers Ghostty once. Setup leaves an existing cmux installation alone. It is optional for the [selected-provider path](docs/reference/getting-started.md#choose-your-providers).
46
46
 
47
47
  A team seat with no permission policy, per-seat choice or (for Codex) named profile launches with OpenRig's [team default](docs/reference/rig-spec.md#team-launch-defaults): Claude runs ordinary `rig` commands, project reads and common tests without prompting, while lifecycle commands such as `rig up` and `rig down` still ask; Codex also gets the OpenRig workspace and its pod's state directory as writable directories. Before launching, your agent recommends keeping that default, and offers to remember selected OpenRig commands in your native settings only if you want that, at personal project scope unless you explicitly choose user-wide sessions. It is not global YOLO or permission to invent work. On Yes, the agent [adds and verifies native rules](docs/reference/getting-started.md#have-your-agent-configure-permissions); No or no answer keeps the team default and leaves settings unchanged. An existing explicit choice is reused. Say “Undo the OpenRig command allowances added by this setup” to remove only its additions.
48
48
 
@@ -447,7 +447,7 @@ Before setup or managed launch, review [what OpenRig changes on your machine](#w
447
447
 
448
448
  Already-running adopted sessions may need restart before they pick up newly written runtime config.
449
449
 
450
- **For agents:** First ask which available provider(s) the user wants, reusing an explicit choice. Recommend the working account they already have and follow the selected-provider guide above. Offer core setup (`rig setup`) or the fuller workstation path (`rig setup --full`) only when they want those additional tools. Inspect the result with `--json` and use `rig doctor` to finish any remaining machine-specific issues. Then start the daemon if it is stopped, open the OpenRig TUI and operator for them (say so, then run `rig terminal open saved:kernel --window --json`; no commands for the person to copy), and hand the person's goal and project folder to the kernel operator ([installing-agent handoff](docs/reference/getting-started.md#installing-agent-handoff)). Installation is finished when the person is talking to the operator; don't implement the project yourself. When OpenRig itself misbehaves, read [docs/reference/help.md](docs/reference/help.md) (installed agents can run `rig context get help`; the same text is at [openrig.dev/help/agents](https://www.openrig.dev/help/agents)): it covers the next step, known problems, and how to reach the team if you're still stuck.
450
+ **For agents:** First ask which available provider(s) the user wants, reusing an explicit choice, and pass it to setup (`rig setup --providers claude`, `codex` or `both`). Recommend the working account they already have and follow the selected-provider guide above. Offer core setup (`rig setup`) or the fuller workstation path (`rig setup --full`) only when they want those additional tools. Inspect the result with `--json` and use `rig doctor` to finish any remaining machine-specific issues. Starting OpenRig and opening its view are the last steps of installing, not extras, so do them without stopping to ask whether to go on: start the daemon if it is stopped, open the OpenRig TUI and operator for them (say so, then run `rig terminal open saved:kernel --window --json`; no commands for the person to copy), and hand the person's goal and project folder to the kernel operator ([installing-agent handoff](docs/reference/getting-started.md#installing-agent-handoff)). Installation is finished when the person is talking to the operator; don't implement the project yourself. When OpenRig itself misbehaves, read [docs/reference/help.md](docs/reference/help.md) (installed agents can run `rig context get help`; the same text is at [openrig.dev/help/agents](https://www.openrig.dev/help/agents)): it covers the next step, known problems, and how to reach the team if you're still stuck.
451
451
 
452
452
  ## Comparison with Claude Managed Agents
453
453
 
@@ -67,9 +67,10 @@ conversation. Explain the failure and help with the chosen fallback; do not atta
67
67
  Over headless SSH, explain that no visible terminal opened; tell the person to open a new terminal window or
68
68
  tab and give one complete connection and attachment command using the current Herdr endpoint, as in the guide.
69
69
  No, SSH and headless use are valid background outcomes. If the person chooses a manual operator attachment after
70
- a failure, find the `operator.agent` row with `rig ps --nodes --rig kernel --json`. Give the exact
71
- `env -u TMUX tmux attach-session -t '=<canonicalSessionName>'` with the observed name filled in for a new terminal
72
- on the same host and user (over SSH, connect there first). Ctrl-b, then d detaches without stopping it.
70
+ a failure, find the `operator.agent` row with
71
+ `rig ps --nodes --rig kernel --json --fields logicalId,canonicalSessionName,tmuxAttachCommand`. Give `env -u TMUX` followed by
72
+ that row's `tmuxAttachCommand`, exactly as listed (it names the daemon's tmux server when that isn't the default
73
+ one), for a new terminal on the same host and user (over SSH, connect there first). Ctrl-b, then d detaches without stopping it.
73
74
  Ask the person's goal and project folder, then hand them to the ready operator; do not implement the project yourself.
74
75
  Find the `operator.agent` row with `rig ps --nodes --rig kernel --json` and use its `canonicalSessionName` with
75
76
  `rig send <canonicalSessionName> 'This is the agent that installed OpenRig. The person will answer in your pane. Goal: <goal>. Project folder: <absolute path>.'`,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openrig-core",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "OpenRig canonical skills and hooks for cross-runtime agent topology coordination, continuity, and operating discipline.",
5
5
  "author": {
6
6
  "name": "Mike Schwarz",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openrig-core",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "OpenRig canonical skills and hooks for cross-runtime agent topology coordination, continuity, and operating discipline.",
5
5
  "author": {
6
6
  "name": "Mike Schwarz",
@@ -1,6 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
3
 
4
+ const crypto = require("node:crypto");
5
+ const fs = require("node:fs");
6
+ const os = require("node:os");
7
+ const path = require("node:path");
8
+
4
9
  // OpenRig activity-relay hook script.
5
10
  // Reads a hook event payload from stdin, normalizes it, and POSTs to the
6
11
  // OpenRig daemon's /api/activity/hooks endpoint for real-time UI seat-status.
@@ -154,6 +159,13 @@ function buildSessionIdentityPayload(providerPayload, env = process.env, now = (
154
159
  const sessionName = firstString(env.OPENRIG_SESSION_NAME, env.RIGGED_SESSION_NAME);
155
160
  const nodeId = firstString(env.OPENRIG_NODE_ID, env.RIGGED_NODE_ID);
156
161
  const runtime = firstString(env.OPENRIG_RUNTIME, env.RIGGED_RUNTIME);
162
+ const generation = firstString(env.OPENRIG_OCCUPANT_GENERATION, env.RIGGED_OCCUPANT_GENERATION);
163
+ // How this session began (startup, resume, clear or compact). The daemon tells a resumed
164
+ // conversation's new id from a /clear by it; it is absent from runtimes that do not report it.
165
+ const source = firstString(providerPayload.source);
166
+ // Set only on the command OpenRig sends to resume this seat, so the daemon can tell the process
167
+ // it launched from another Claude sharing the seat's environment.
168
+ const resumeLaunch = firstString(env.OPENRIG_RESUME_LAUNCH);
157
169
 
158
170
  if ((!sessionName && !nodeId) || !runtime) return null;
159
171
 
@@ -162,18 +174,45 @@ function buildSessionIdentityPayload(providerPayload, env = process.env, now = (
162
174
  sessionName,
163
175
  nodeId,
164
176
  runtime,
177
+ generation,
165
178
  hookEvent,
179
+ source,
180
+ resumeLaunch,
181
+ // The daemon finds the Claude that ran this hook from its parent chain.
182
+ hookPid: process.pid,
166
183
  sessionId,
167
184
  occurredAt: now().toISOString(),
168
185
  };
169
186
  }
170
187
 
188
+ // #1077 — whether this is the first SessionStart of the launch OpenRig armed (OPENRIG_RESUME_LAUNCH
189
+ // for this occupant generation). Recorded on local disk before anything is posted, so a first hook
190
+ // whose post never reaches the daemon still makes every later one (an in-process /resume, a child
191
+ // sharing the environment) report false. Any error reports false.
192
+ function claimFirstLaunchHook(resumeLaunch, generation, dir = path.join(os.tmpdir(), `openrig-resume-launch-${uid()}`)) {
193
+ if (!resumeLaunch || !generation) return false;
194
+ try {
195
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
196
+ const key = crypto.createHash("sha256").update(`${generation}\0${resumeLaunch}`).digest("hex");
197
+ fs.closeSync(fs.openSync(path.join(dir, key), "wx", 0o600));
198
+ return true;
199
+ } catch {
200
+ return false;
201
+ }
202
+ }
203
+
204
+ function uid() {
205
+ try { return typeof process.getuid === "function" ? String(process.getuid()) : "user"; } catch { return "user"; }
206
+ }
207
+
171
208
  async function main() {
172
209
  const providerPayload = parseJson(await readStdin());
173
210
  const payload = buildOpenRigPayload(providerPayload);
174
- await postHookPayload(payload);
175
-
176
211
  const identityPayload = buildSessionIdentityPayload(providerPayload, process.env);
212
+ if (identityPayload && identityPayload.resumeLaunch) {
213
+ identityPayload.resumeLaunchFirst = claimFirstLaunchHook(identityPayload.resumeLaunch, identityPayload.generation);
214
+ }
215
+ await postHookPayload(payload);
177
216
  if (identityPayload) {
178
217
  await postHookPayload(identityPayload);
179
218
  }
@@ -185,6 +224,7 @@ if (require.main === module) {
185
224
 
186
225
  module.exports = {
187
226
  buildOpenRigPayload,
227
+ claimFirstLaunchHook,
188
228
  buildSessionIdentityPayload,
189
229
  parseJson,
190
230
  postHookPayload,
@@ -1302,7 +1302,7 @@ Node-granular managed partial restore (v0.3.4+):
1302
1302
  ### Add a member to an existing pod — v0.3.3+
1303
1303
 
1304
1304
  ```bash
1305
- rig add <rig-id> <pod-namespace> <member-fragment-path> [--json]
1305
+ rig add <rig> <pod-namespace> <member-fragment-path> [--json]
1306
1306
  ```
1307
1307
 
1308
1308
  `rig add` is the top-level verb for the `add_member` converge op. It adds a
@@ -1310,6 +1310,12 @@ single member to an existing pod from a YAML/JSON member fragment file. The
1310
1310
  daemon resolves the named pod, validates the member, runs preflight, and
1311
1311
  launches the member in place.
1312
1312
 
1313
+ `<rig>` is the rig id or its exact name (the `rigName` that `rig whoami --json`
1314
+ reports). A name shared by more than one rig is refused before anything is
1315
+ added, with the matching ids listed (`rig_ambiguous` under `--json`). `rig add`
1316
+ always targets the local daemon: while a remote host is selected it refuses to
1317
+ resolve a name (`remote_host_selected`); an exact local id still works.
1318
+
1313
1319
  HTTP outcomes:
1314
1320
  - `201` — member added; per-node launch state included in the response.
1315
1321
  - `400` — `validation_failed` or `preflight_failed` (the fragment or its launch posture is rejected before any state change).
@@ -68,9 +68,10 @@ guidance in `AGENTS.md` or `CLAUDE.md` plus the team's skills and plugins. Say s
68
68
  and ends with `run:` and a command (the `error` field with `--json`). That command already names the installed
69
69
  herdr binary and the daemon's socket, or the conversation to attach. Relay it exactly rather than composing one.
70
70
  If a note asks you to place the view once Herdr starts, run that `rig terminal open` yourself after they start it.
71
- - **If it printed no command:** find `operator.agent` in `rig ps --nodes --rig kernel --json`, take its
72
- `canonicalSessionName` (never a guessed name) and give
73
- `env -u TMUX tmux attach-session -t '=<canonicalSessionName>'` for the operator's conversation.
71
+ - **If it printed no command:** find `operator.agent` in
72
+ `rig ps --nodes --rig kernel --json --fields logicalId,canonicalSessionName,tmuxAttachCommand` and give
73
+ `env -u TMUX` followed by its `tmuxAttachCommand`, exactly as listed (never a guessed name), for the operator's
74
+ conversation. That command names the daemon's tmux server when it isn't the default one.
74
75
 
75
76
  For any other failure, the table under "What can interrupt installation and the OpenRig view" in
76
77
  `rig context get reference/getting-started.md#open-the-kernel-conversations` says why and what to do next.
@@ -80,7 +81,8 @@ guidance in `AGENTS.md` or `CLAUDE.md` plus the team's skills and plugins. Say s
80
81
  `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>.'`
81
82
  Or the person types the goal and folder in the operator's pane. If they give you a goal later, forward it the same
82
83
  way. The operator helps them pick a team that fits their logins, starts it on their yes and gives the goal to the
83
- team's lead. Show them where the operator answers, and don't build the project yourself.
84
+ team's lead. Before that yes, it says what launching into their folder changes for their own agent there; relay
85
+ that with the question. Show them where the operator answers, and don't build the project yourself.
84
86
  - **Relay the operator's questions:** the operator asks in its own pane, and the person may not be looking there.
85
87
  After each step you hand it, read its screen with `rig capture <canonicalSessionName>`. When it asks the person
86
88
  something (start this team? which folder? which option?), ask them here in the operator's words and send their
@@ -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.9"
3
+ version: "0.6.10"
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.9"
3
+ version: "0.6.10"
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-seven top-level verbs ship (capability canon refreshed through
14
- `capability-delta-v0.6.9`). This marker describes the pack's teaching, not publication or live
14
+ `capability-delta-v0.6.10`). 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).
@@ -28,8 +28,9 @@ one command away. Your memory of the fleet is a claim about the past.
28
28
  - **`rig ps`** — what rigs exist. **`rig ps --nodes -A`** — the state of every seat everywhere,
29
29
  *including the broken ones*. **The bare form is the question you usually want:** `--active`
30
30
  filters to running and **hides detached, exited and attention states** — which are exactly the
31
- cells you were scanning for. **`rig ps --resources`** shows this host's load and transcript
32
- capture cost.
31
+ cells you were scanning for. A seat whose tmux session is confirmed gone reads `detached`
32
+ (activity reason `session_missing`), and `rig ps --nodes` says to restore or relaunch it.
33
+ **`rig ps --resources`** shows this host's load and transcript capture cost.
33
34
  - **`rig ps --all-hosts --nodes -A`** — the same across every registered machine. Rollup-only
34
35
  unless you ask for nodes.
35
36
  - **`rig discover`** — what is running on this box that OpenRig is *not* managing.
@@ -100,7 +101,9 @@ unseen — which makes messages the one delivery channel that never gets skipped
100
101
  the wording wrong on the fourth. **Blast radius is real** — on a large rig this lands in every
101
102
  seat's turn.
102
103
  - **`rig capture <seat>`** — read what is on their screen right now. **`--rig` / `--pod`** captures
103
- every seat in one call.
104
+ every seat in one call. `--lines N` is the last N lines (stderr says how many earlier lines were
105
+ cut); `--history-plus-pane` gives the older N history lines plus the whole pane. A short capture
106
+ doesn't prove a seat is idle.
104
107
  - **`rig transcript <seat>`** — what has been *said* in a seat, and **seat-scoped rather than
105
108
  session-scoped**: one file spanning every agent generation that has occupied it, so it reaches
106
109
  back through handovers. Capped (`transcripts.lines`, default 1000 — raise it for depth), and
@@ -131,7 +134,9 @@ unseen — which makes messages the one delivery channel that never gets skipped
131
134
  window, and only then say that clicking macOS's Allow is fine. Herdr is visible only in a
132
135
  terminal the person can see; switching the shared TUI to `:terminals` does not open one. Over
133
136
  SSH, in CI or with no display, the command returns a definite no-window result with the reason
134
- and an attach command: relay that command exactly. Inspect the result and visible content, or
137
+ and an attach command: relay that command exactly. When the daemon runs on a non-default tmux
138
+ server, attach commands carry `-L <name>` or `-S <path>`; from inside tmux run them as
139
+ `env -u TMUX <tmuxAttachCommand>`. Inspect the result and visible content, or
135
140
  say what cannot be verified. On a desktop, do not finish by printing a command for the person to
136
141
  type. Only if the window cannot open, `rig tui --shared` is the dashboard-only fallback; explain
137
142
  the failure. `--provider herdr` or `--provider cmux` adds tiles inside a workspace that is
@@ -177,7 +182,11 @@ your context, your compaction and your replacement — and it is the only thing
177
182
 
178
183
  - **`rig queue create`** — a row with an owner, a body and a transition history. Its reply, like
179
184
  `handoff`'s, confirms the row was saved; the owner is woken after that. Before you say they were
180
- told, read the row's transitions (or use `--verify` for a person's request).
185
+ told, read the row's transitions, or use `--verify`. For a seat it reports the wake's terminal
186
+ receipt and any claim separately: an unconfirmed receipt is not a failed handoff, and a claim is
187
+ pickup, not proof the body was read. For a row the seat already claimed, `outcome` can read
188
+ `indeterminate` while `claim` is accurate: read `claim`. It isn't a failed handoff, so don't
189
+ re-run the create.
181
190
  - **`rig queue show`** — what a row *actually says*. The header is not the body.
182
191
  - **`rig queue claim` / `unclaim`** — is this mine and running, or still pending where two agents
183
192
  might double-work it. Put it down honestly when it is not yours.
@@ -199,6 +208,11 @@ your context, your compaction and your replacement — and it is the only thing
199
208
  delivery, the row's transitions are the receipt ledger; `undelivered` does not answer whether a
200
209
  person received the escalation. **`overdue` and `undelivered` are the two halves of "is anything
201
210
  silently stuck", and a rig can be clean on one and rotten on the other.**
211
+ - **`queue.wake_human_rung`** — when a seat can't be woken, the last escalation step posts to a
212
+ person. `rig config set queue.wake_human_rung explicit-only` (default `always`) keeps that post
213
+ for rows addressed to a person (an `@external` address or a registered human); the rest stop at
214
+ `rig view show escalations`. A seat stuck at a prompt only a person can clear still reaches one,
215
+ and an unreadable human registry posts everything.
202
216
  - **`rig queue inbox-drop` / `inbox-pending` / `inbox-absorb` / `inbox-deny`** — put something in
203
217
  front of a seat that it can *refuse*. Mail, not assignment.
204
218
  - **`rig queue outbox-record` / `outbox-list`** — what you dispatched, in a record that survives
@@ -343,6 +357,9 @@ not have to tear one down to change it, and you rarely have to start from nothin
343
357
  by name, a bundle someone handed you, a GitHub folder link (pinned to one commit), or a stopped
344
358
  rig. `rig up` with a pod-aware spec on a stopped team's name replaces that team (the earlier one
345
359
  is archived), so check `rig ps --nodes` first. Launch-created `AGENTS.md` or `CLAUDE` files now show in `git status`.
360
+ `rig up <rig> --existing` puts back the OpenRig guidance blocks `rig down` removed before a
361
+ resumed seat starts. A seat still missing one makes the rig `partially_restored` (its node lists
362
+ `guidanceGaps`) and `rig up` exits 1.
346
363
  - **`rig down`** — stop a rig's seats and take it out of the running set. It ends the agents'
347
364
  sessions and any work in progress; don't run it on a live team unless the person asked. In
348
365
  human mode it first prints one line with each agent's last known activity, or “unknown”: a
@@ -350,12 +367,15 @@ not have to tear one down to change it, and you rarely have to start from nothin
350
367
  that reports errors exits 2.
351
368
  - **`rig launch <rigId> [seat]`** — one seat is down; start just that one, without disturbing the
352
369
  rest. It takes the rig ID from `rig ps --json`; a rig name gives `rig_not_found`. Add `--plan` to preview it first, locally or with `--host`; a plan is never sent to a
353
- daemon older than 0.5.9, which would ignore it and launch.
370
+ daemon older than 0.5.9, which would ignore it and launch. A seat whose agent exited to a shell in
371
+ its kept pane reads `attention_required` (exit 1), not already running: resume it, or
372
+ `rig seat launch <session> --fresh --stop`.
354
373
  - **`rig seat launch <seat> --fresh --reason <why>`** — deliberately create a blank occupant for
355
374
  exactly one existing seat. It uses no resume, fork, rebuild, snapshot, or restore packet;
356
375
  siblings and durable work stay put, and unmanaged ambiguity refuses.
357
376
  - **`rig add`** / **`rig expand`** — graft one more member, or a whole new pod, onto a rig that is
358
- already running. `rig grow --new-pod` and `rig expand` are one ingress; choose by input shape.
377
+ already running. `rig add` takes the rig's name or ID; a name two active rigs share is refused
378
+ with `rig_ambiguous` and the candidates. `rig grow --new-pod` and `rig expand` are one ingress; choose by input shape.
359
379
  - **`rig remove`** / **`rig shrink`** — take a seat, or an entire pod, out of a running topology.
360
380
  If it holds active work, pass `--fallback <live-seat>` to reroute before mutation; without a
361
381
  valid fallback the command refuses rather than strand the rows.
@@ -774,7 +794,9 @@ your circumstances is configuration, and the ones that are not, another agent ca
774
794
  - **`rig provider accounts` / `bindings` / `signals` / `switch`** — which seats are bound to which
775
795
  accounts, what the usage signals say, and whether a seat can be moved without stranding the
776
796
  conversation it is in the middle of. **`provider signals` reports anomalies rather than a
777
- listing** — unbound seats, accounts shared across several seats.
797
+ listing** — unbound seats, accounts shared across several seats. A Codex seat showing its
798
+ usage-limit banner reads activity `unknown` with reason `usage_limit`, and `provider signals` can
799
+ show a provider-event signal for that seat's account that allows a switch decision.
778
800
  - **Codex configuration fragments** — a `codex_config_fragment` must open with a table header and
779
801
  never overrides a user-declared table; see `docs/reference/agent-spec.md`.
780
802
  - **`rig env`** — the real services behind a rig: are they up, what are they saying, how do you
@@ -782,7 +804,8 @@ your circumstances is configuration, and the ones that are not, another agent ca
782
804
  - **`rig setup`** — what OpenRig would change about this machine, shown before it touches anything.
783
805
  It installs herdr by default on macOS and Linux (`--no-herdr` declines; if the install fails,
784
806
  views fall back to plain tmux) and on a Mac offers Ghostty once (`--ghostty` / `--no-ghostty`).
785
- It no longer installs cmux; an existing cmux still works.
807
+ It no longer installs cmux; an existing cmux still works. `--providers claude`, `codex` or
808
+ `both` sets which harnesses it installs and checks; one not chosen reads `skipped`, never failed.
786
809
  - **`rig usage series`** — what a seat's token curve has looked like over time: climbing steadily,
787
810
  reset, or stopped reporting entirely. The last one is a signal, not a gap.
788
811
  - **`rig tui`** — the interactive view over rigs, pods, seats and specs. `rig` and `rig tui` open
@@ -868,6 +891,8 @@ database. It is one more set of primitives on a machine full of them.
868
891
  - **"Did that actually land?"** — `rig queue show <qitemId>` gives a bounded preview,
869
892
  original byte size and the exact expansion command. Read the complete original record with
870
893
  `rig queue show <qitemId> --full --json`; a preview or a compact list is not the whole body.
894
+ Compact `rig queue list` rows carry `summary`; the fields they leave out are absent, not empty,
895
+ and `fieldsElided` names them.
871
896
  Delivery status is separate from content: inspect its receipt before claiming it was consumed.
872
897
  - **"What am I waiting on?"** — the queue row's `waiting` view derives its owner, exact blocker
873
898
  and blocker owner, last meaningful change, activity confidence and next backstop from live
@@ -137,7 +137,9 @@ The other provider's CLI/login is optional. Herdr is installed by default unless
137
137
  you decline it; cmux remains optional. Do not copy credentials
138
138
  or start repeated sign-in attempts. Recheck the selected login after the user
139
139
  completes it. `rig setup --dry-run` previews the broader setup; applying
140
- `rig setup` checks **both** harnesses and installs a missing one with npm; on
140
+ `rig setup` checks **both** harnesses and installs a missing one with npm, unless
141
+ you pass the person's choice: `rig setup --providers claude` (or `codex`) leaves
142
+ the other out, so it reads not selected instead of failed. On
141
143
  macOS it uses an existing Homebrew (it does not install Homebrew) to install a
142
144
  missing tmux (elsewhere tmux is checked, not installed). Herdr installs on
143
145
  macOS and Linux; pass `--no-herdr` to decline it. Setup also
@@ -198,7 +200,7 @@ leaves existing cmux settings alone and does not open a view during setup.
198
200
 
199
201
  On a Mac, the installing agent also asks once, "Install Ghostty for the OpenRig
200
202
  view?" On Yes it reruns setup with `--ghostty`, preserving earlier choices such
201
- as `--no-herdr`. This installs the
203
+ as `--no-herdr` and `--providers`. This installs the
202
204
  [documented Homebrew cask](https://ghostty.org/docs/install/binary) and checks for
203
205
  the app. On No it uses `--no-ghostty`; Terminal.app remains available. Plain setup
204
206
  reports this offer without installing Ghostty or waiting for input. The person
@@ -331,17 +333,19 @@ For the first desktop handoff, use `--window`. Only if the window cannot open,
331
333
  For an explicitly requested manual attachment, inspect the current bindings:
332
334
 
333
335
  ```sh
334
- rig ps --nodes --rig kernel --json
336
+ rig ps --nodes --rig kernel --json --fields logicalId,canonicalSessionName,tmuxAttachCommand
335
337
  ```
336
338
 
337
- Find `logicalId: operator.agent` and use its `canonicalSessionName` in a new
339
+ Find `logicalId: operator.agent` and run its `tmuxAttachCommand`, after `env -u TMUX`, in a new
338
340
  terminal on the same host and account:
339
341
 
340
342
  ```sh
341
- env -u TMUX tmux attach-session -t '=<canonicalSessionName>'
343
+ env -u TMUX <tmuxAttachCommand>
342
344
  ```
343
345
 
344
- The installing agent fills in the actual session name. This optional manual route
346
+ When the daemon was started inside tmux on a non-default socket, its sessions live on that
347
+ server, and `tmuxAttachCommand` names it (`tmux -L <name> …` or `tmux -S <path> …`). The installing
348
+ agent fills in the actual command. This optional manual route
345
349
  is separate from the first-install desktop action above.
346
350
 
347
351
  ### Plain terminal: a new viewing session
@@ -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.9"
4
+ version: "0.6.10"
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: