@openrig/cli 0.6.4-rc.1 → 0.6.5

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 (986) hide show
  1. package/README.md +384 -0
  2. package/daemon/assets/onboarding/02-self-and-competent-action.md +5 -0
  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/refocus.cjs +100 -20
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +201 -132
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  8. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +11 -11
  9. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  10. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
  11. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +6 -0
  15. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +45 -19
  16. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  17. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
  18. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
  19. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
  20. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
  21. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
  22. package/daemon/context-packs/help/help.md +9 -4
  23. package/daemon/context-packs/help/manifest.yaml +1 -1
  24. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  25. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +25 -12
  26. package/daemon/context-packs/reference/getting-started.md +7 -2
  27. package/daemon/context-packs/reference/instance-layout.md +11 -0
  28. package/daemon/context-packs/reference/manifest.yaml +1 -1
  29. package/daemon/context-packs/reference/rig-spec.md +32 -5
  30. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +201 -132
  34. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
  35. package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  36. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
  41. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +6 -0
  46. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  54. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
  55. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +11 -11
  58. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  61. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
  62. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
  64. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
  66. package/daemon/context-packs/skills/openrig-user/SKILL.md +45 -19
  67. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  69. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/queue-handoff/SKILL.md +1 -19
  89. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
  91. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
  93. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  94. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +0 -5
  95. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  96. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +5 -6
  97. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  99. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  100. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  101. package/daemon/dist/adapters/claude-code-adapter.d.ts +17 -3
  102. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  103. package/daemon/dist/adapters/claude-code-adapter.js +157 -53
  104. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  105. package/daemon/dist/adapters/claude-resume.d.ts +7 -1
  106. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  107. package/daemon/dist/adapters/claude-resume.js +39 -8
  108. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  109. package/daemon/dist/adapters/codex-resume.d.ts +7 -1
  110. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  111. package/daemon/dist/adapters/codex-resume.js +14 -6
  112. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  113. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +8 -0
  114. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  115. package/daemon/dist/adapters/codex-runtime-adapter.js +34 -12
  116. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  117. package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
  118. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  119. package/daemon/dist/adapters/compose-services-adapter.js +5 -2
  120. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  121. package/daemon/dist/adapters/daemon-url.d.ts +7 -0
  122. package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
  123. package/daemon/dist/adapters/daemon-url.js +12 -0
  124. package/daemon/dist/adapters/daemon-url.js.map +1 -0
  125. package/daemon/dist/adapters/omp-resume.d.ts +6 -0
  126. package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
  127. package/daemon/dist/adapters/omp-resume.js +6 -0
  128. package/daemon/dist/adapters/omp-resume.js.map +1 -0
  129. package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
  130. package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
  131. package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
  132. package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
  133. package/daemon/dist/adapters/pi-resume.d.ts +4 -0
  134. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  135. package/daemon/dist/adapters/pi-resume.js +20 -18
  136. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  137. package/daemon/dist/adapters/pi-runner-protocol.d.ts +14 -2
  138. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  139. package/daemon/dist/adapters/pi-runner-protocol.js +62 -5
  140. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  141. package/daemon/dist/adapters/pi-runner.d.ts +49 -5
  142. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  143. package/daemon/dist/adapters/pi-runner.js +362 -67
  144. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  145. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +3 -2
  146. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  147. package/daemon/dist/adapters/pi-runtime-adapter.js +49 -32
  148. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  149. package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
  150. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
  151. package/daemon/dist/adapters/preflight-exec.js +52 -0
  152. package/daemon/dist/adapters/preflight-exec.js.map +1 -0
  153. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  154. package/daemon/dist/adapters/stub-runner.js +3 -1
  155. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  156. package/daemon/dist/adapters/stub-runtime-adapter.js +1 -1
  157. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  158. package/daemon/dist/adapters/tmux.d.ts +47 -5
  159. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  160. package/daemon/dist/adapters/tmux.js +305 -54
  161. package/daemon/dist/adapters/tmux.js.map +1 -1
  162. package/daemon/dist/build-info.js +3 -3
  163. package/daemon/dist/daemon-shutdown.d.ts +19 -0
  164. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  165. package/daemon/dist/daemon-shutdown.js +81 -0
  166. package/daemon/dist/daemon-shutdown.js.map +1 -1
  167. package/daemon/dist/db/all-migrations.d.ts +1 -1
  168. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  169. package/daemon/dist/db/all-migrations.js +10 -2
  170. package/daemon/dist/db/all-migrations.js.map +1 -1
  171. package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
  172. package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
  173. package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
  174. package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
  175. package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
  176. package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
  177. package/daemon/dist/db/migrations/091_human_questions.js +9 -0
  178. package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
  179. package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
  180. package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
  181. package/daemon/dist/db/migrations/092_node_effort.js +8 -0
  182. package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
  183. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
  184. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
  185. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
  186. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
  187. package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
  188. package/daemon/dist/domain/activity-endpoint.js +3 -1
  189. package/daemon/dist/domain/activity-endpoint.js.map +1 -1
  190. package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
  191. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  192. package/daemon/dist/domain/agent-activity-store.js +13 -3
  193. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  194. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
  195. package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
  196. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  197. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  198. package/daemon/dist/domain/agent-manifest.js +24 -3
  199. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  200. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  201. package/daemon/dist/domain/bootstrap-orchestrator.js +3 -2
  202. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  203. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  204. package/daemon/dist/domain/bundle-archive.js +25 -5
  205. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  206. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  207. package/daemon/dist/domain/chat-repository.js +3 -1
  208. package/daemon/dist/domain/chat-repository.js.map +1 -1
  209. package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
  210. package/daemon/dist/domain/checkpoint-store.js +2 -2
  211. package/daemon/dist/domain/checkpoint-store.js.map +1 -1
  212. package/daemon/dist/domain/claim-service.d.ts +7 -0
  213. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  214. package/daemon/dist/domain/claim-service.js +6 -2
  215. package/daemon/dist/domain/claim-service.js.map +1 -1
  216. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +35 -12
  217. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  218. package/daemon/dist/domain/claude-compaction-enforcer.js +256 -128
  219. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  220. package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
  221. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  222. package/daemon/dist/domain/claude-managed-launch.js +31 -4
  223. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  224. package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
  225. package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
  226. package/daemon/dist/domain/codex-daemon-support.js +2 -2
  227. package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
  228. package/daemon/dist/domain/codex-network-default.d.ts +42 -0
  229. package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
  230. package/daemon/dist/domain/codex-network-default.js +230 -0
  231. package/daemon/dist/domain/codex-network-default.js.map +1 -0
  232. package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
  233. package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
  234. package/daemon/dist/domain/codex-profile-preflight.js +3 -3
  235. package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
  236. package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
  237. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  238. package/daemon/dist/domain/codex-thread-id.js +10 -6
  239. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  240. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  241. package/daemon/dist/domain/context-monitor.js +2 -1
  242. package/daemon/dist/domain/context-monitor.js.map +1 -1
  243. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  244. package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
  245. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  246. package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
  247. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  248. package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
  249. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  250. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
  251. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  252. package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
  253. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  254. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
  255. package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
  256. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
  257. package/daemon/dist/domain/context-usage-store.d.ts +3 -0
  258. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  259. package/daemon/dist/domain/context-usage-store.js +4 -2
  260. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  261. package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
  262. package/daemon/dist/domain/crash-cart-detect.js +2 -1
  263. package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
  264. package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
  265. package/daemon/dist/domain/crash-cart-discovery.js +4 -2
  266. package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
  267. package/daemon/dist/domain/current-work.d.ts +17 -0
  268. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  269. package/daemon/dist/domain/current-work.js +46 -0
  270. package/daemon/dist/domain/current-work.js.map +1 -1
  271. package/daemon/dist/domain/cwd-resolution.js +1 -1
  272. package/daemon/dist/domain/cwd-resolution.js.map +1 -1
  273. package/daemon/dist/domain/daemon-url.d.ts +7 -0
  274. package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
  275. package/daemon/dist/domain/daemon-url.js +12 -0
  276. package/daemon/dist/domain/daemon-url.js.map +1 -0
  277. package/daemon/dist/domain/discovery-types.d.ts +1 -1
  278. package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
  279. package/daemon/dist/domain/event-bus.d.ts +1 -0
  280. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  281. package/daemon/dist/domain/event-bus.js +18 -7
  282. package/daemon/dist/domain/event-bus.js.map +1 -1
  283. package/daemon/dist/domain/execution-view.d.ts +3 -3
  284. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  285. package/daemon/dist/domain/execution-view.js +116 -93
  286. package/daemon/dist/domain/execution-view.js.map +1 -1
  287. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
  288. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  289. package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
  290. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  291. package/daemon/dist/domain/gateway/slack/inbound.d.ts +71 -3
  292. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  293. package/daemon/dist/domain/gateway/slack/inbound.js +145 -11
  294. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  295. package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
  296. package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
  297. package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
  298. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  299. package/daemon/dist/domain/gateway/slack/message.js +77 -3
  300. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  301. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  302. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  303. package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
  304. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  305. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
  306. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  307. package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
  308. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  309. package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
  310. package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
  311. package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
  312. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +16 -10
  313. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  314. package/daemon/dist/domain/gateway/slack/slack-api.js +91 -23
  315. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  316. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
  317. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  318. package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
  319. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  320. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
  321. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  322. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +114 -27
  323. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  324. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  325. package/daemon/dist/domain/gateway/slack/socket-inbound.js +3 -0
  326. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  327. package/daemon/dist/domain/gateway/slack/state-store.d.ts +3 -0
  328. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  329. package/daemon/dist/domain/gateway/slack/state-store.js +18 -0
  330. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  331. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  332. package/daemon/dist/domain/gateway/slack/thread-routing.js +7 -2
  333. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  334. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -0
  335. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  336. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +14 -2
  337. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  338. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  339. package/daemon/dist/domain/graph-projection.js +1 -0
  340. package/daemon/dist/domain/graph-projection.js.map +1 -1
  341. package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
  342. package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
  343. package/daemon/dist/domain/health-checkpoints.js +2 -0
  344. package/daemon/dist/domain/health-checkpoints.js.map +1 -1
  345. package/daemon/dist/domain/health-detectors.d.ts +32 -1
  346. package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
  347. package/daemon/dist/domain/health-detectors.js +40 -9
  348. package/daemon/dist/domain/health-detectors.js.map +1 -1
  349. package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
  350. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  351. package/daemon/dist/domain/health-diagnosis.js +6 -3
  352. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  353. package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
  354. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  355. package/daemon/dist/domain/health-passive-ceremony.js +20 -4
  356. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  357. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
  358. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  359. package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
  360. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  361. package/daemon/dist/domain/human-questions.d.ts +41 -0
  362. package/daemon/dist/domain/human-questions.d.ts.map +1 -0
  363. package/daemon/dist/domain/human-questions.js +81 -0
  364. package/daemon/dist/domain/human-questions.js.map +1 -0
  365. package/daemon/dist/domain/markdown-address.js +1 -1
  366. package/daemon/dist/domain/markdown-address.js.map +1 -1
  367. package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
  368. package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
  369. package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
  370. package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
  371. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
  372. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
  373. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
  374. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
  375. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
  376. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  377. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
  378. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  379. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
  380. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
  381. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
  382. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  383. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
  384. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
  385. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
  386. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
  387. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
  388. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
  389. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
  390. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
  391. package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
  392. package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
  393. package/daemon/dist/domain/native-process-lineage.d.ts +9 -2
  394. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  395. package/daemon/dist/domain/native-process-lineage.js +104 -11
  396. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  397. package/daemon/dist/domain/native-resume-probe.d.ts +5 -1
  398. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  399. package/daemon/dist/domain/native-resume-probe.js +17 -4
  400. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  401. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  402. package/daemon/dist/domain/node-inventory.js +91 -44
  403. package/daemon/dist/domain/node-inventory.js.map +1 -1
  404. package/daemon/dist/domain/node-launcher.d.ts +4 -0
  405. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  406. package/daemon/dist/domain/node-launcher.js +4 -1
  407. package/daemon/dist/domain/node-launcher.js.map +1 -1
  408. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
  409. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  410. package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
  411. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  412. package/daemon/dist/domain/permission-drift.d.ts +1 -0
  413. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  414. package/daemon/dist/domain/permission-drift.js +13 -1
  415. package/daemon/dist/domain/permission-drift.js.map +1 -1
  416. package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
  417. package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  418. package/daemon/dist/domain/plugin-discovery-service.js +14 -8
  419. package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  420. package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
  421. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  422. package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
  423. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  424. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
  425. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  426. package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
  427. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  428. package/daemon/dist/domain/profile-resolver.d.ts +1 -0
  429. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  430. package/daemon/dist/domain/profile-resolver.js +7 -0
  431. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  432. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  433. package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
  434. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  435. package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
  436. package/daemon/dist/domain/projection-planner.js +14 -5
  437. package/daemon/dist/domain/projection-planner.js.map +1 -1
  438. package/daemon/dist/domain/proof/judgments.d.ts +3 -0
  439. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  440. package/daemon/dist/domain/proof/judgments.js +13 -8
  441. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  442. package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
  443. package/daemon/dist/domain/proof/source-watch.js +45 -27
  444. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  445. package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
  446. package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
  447. package/daemon/dist/domain/ps-projection.d.ts +22 -3
  448. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  449. package/daemon/dist/domain/ps-projection.js +50 -11
  450. package/daemon/dist/domain/ps-projection.js.map +1 -1
  451. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  452. package/daemon/dist/domain/queue-recovery.js +7 -1
  453. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  454. package/daemon/dist/domain/queue-repository.d.ts +98 -6
  455. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  456. package/daemon/dist/domain/queue-repository.js +301 -33
  457. package/daemon/dist/domain/queue-repository.js.map +1 -1
  458. package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
  459. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  460. package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
  461. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  462. package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
  463. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  464. package/daemon/dist/domain/queue-wake-ladder.js +278 -19
  465. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  466. package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
  467. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  468. package/daemon/dist/domain/queue-wake-repository.js +31 -11
  469. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  470. package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
  471. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
  472. package/daemon/dist/domain/reply-to-choice.js +45 -0
  473. package/daemon/dist/domain/reply-to-choice.js.map +1 -0
  474. package/daemon/dist/domain/restore-check-service.d.ts +27 -8
  475. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  476. package/daemon/dist/domain/restore-check-service.js +202 -126
  477. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  478. package/daemon/dist/domain/restore-orchestrator.d.ts +3 -2
  479. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  480. package/daemon/dist/domain/restore-orchestrator.js +65 -208
  481. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  482. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  483. package/daemon/dist/domain/restore-plan-preview.js +2 -6
  484. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  485. package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
  486. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
  487. package/daemon/dist/domain/restore-preconditions.js +202 -0
  488. package/daemon/dist/domain/restore-preconditions.js.map +1 -0
  489. package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
  490. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  491. package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
  492. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  493. package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
  494. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  495. package/daemon/dist/domain/resume-token-capture.js +32 -4
  496. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  497. package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
  498. package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
  499. package/daemon/dist/domain/resume-token-validation.js +24 -24
  500. package/daemon/dist/domain/resume-token-validation.js.map +1 -1
  501. package/daemon/dist/domain/rig-repository.d.ts +3 -0
  502. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  503. package/daemon/dist/domain/rig-repository.js +21 -0
  504. package/daemon/dist/domain/rig-repository.js.map +1 -1
  505. package/daemon/dist/domain/rig-teardown.d.ts +3 -0
  506. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  507. package/daemon/dist/domain/rig-teardown.js +96 -19
  508. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  509. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  510. package/daemon/dist/domain/rigspec-codec.js +6 -0
  511. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  512. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  513. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  514. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  515. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  516. package/daemon/dist/domain/rigspec-instantiator.js +37 -8
  517. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  518. package/daemon/dist/domain/rigspec-preflight.d.ts +2 -0
  519. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  520. package/daemon/dist/domain/rigspec-preflight.js +20 -5
  521. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  522. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  523. package/daemon/dist/domain/rigspec-schema.js +14 -2
  524. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  525. package/daemon/dist/domain/runtime-adapter.d.ts +7 -0
  526. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  527. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  528. package/daemon/dist/domain/runtime-verifier.d.ts +3 -1
  529. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  530. package/daemon/dist/domain/runtime-verifier.js +10 -1
  531. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  532. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
  533. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  534. package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
  535. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  536. package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
  537. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  538. package/daemon/dist/domain/seat-activity-service.js +73 -22
  539. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  540. package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
  541. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  542. package/daemon/dist/domain/seat-attention-reconciler.js +32 -9
  543. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  544. package/daemon/dist/domain/seat-handover-service.d.ts +6 -0
  545. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  546. package/daemon/dist/domain/seat-handover-service.js +8 -5
  547. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  548. package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
  549. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  550. package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
  551. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  552. package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
  553. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
  554. package/daemon/dist/domain/seat-launch-environment.js +178 -0
  555. package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
  556. package/daemon/dist/domain/seat-lifecycle-service.d.ts +7 -0
  557. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  558. package/daemon/dist/domain/seat-lifecycle-service.js +37 -2
  559. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  560. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  561. package/daemon/dist/domain/seat-status-service.js +4 -2
  562. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  563. package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
  564. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  565. package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
  566. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  567. package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
  568. package/daemon/dist/domain/seat-switch-client-service.js +3 -2
  569. package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
  570. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  571. package/daemon/dist/domain/services-readiness.js +6 -2
  572. package/daemon/dist/domain/services-readiness.js.map +1 -1
  573. package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
  574. package/daemon/dist/domain/session-fingerprinter.js +16 -1
  575. package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
  576. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  577. package/daemon/dist/domain/session-name.js +6 -0
  578. package/daemon/dist/domain/session-name.js.map +1 -1
  579. package/daemon/dist/domain/session-registry.d.ts +3 -0
  580. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  581. package/daemon/dist/domain/session-registry.js +7 -0
  582. package/daemon/dist/domain/session-registry.js.map +1 -1
  583. package/daemon/dist/domain/session-transport.d.ts +30 -1
  584. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  585. package/daemon/dist/domain/session-transport.js +290 -145
  586. package/daemon/dist/domain/session-transport.js.map +1 -1
  587. package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
  588. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  589. package/daemon/dist/domain/snapshot-repository.js +39 -15
  590. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  591. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  592. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  593. package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
  594. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  595. package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
  596. package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
  597. package/daemon/dist/domain/spec-validation-service.js +16 -1
  598. package/daemon/dist/domain/spec-validation-service.js.map +1 -1
  599. package/daemon/dist/domain/startup-orchestrator.d.ts +8 -0
  600. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  601. package/daemon/dist/domain/startup-orchestrator.js +148 -37
  602. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  603. package/daemon/dist/domain/startup-submission-evidence.d.ts +41 -0
  604. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
  605. package/daemon/dist/domain/startup-submission-evidence.js +67 -0
  606. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
  607. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  608. package/daemon/dist/domain/startup-validation.js +4 -0
  609. package/daemon/dist/domain/startup-validation.js.map +1 -1
  610. package/daemon/dist/domain/successor-session-launcher.d.ts +5 -0
  611. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  612. package/daemon/dist/domain/successor-session-launcher.js +8 -6
  613. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  614. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  615. package/daemon/dist/domain/terminal/view-composer.js +2 -1
  616. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  617. package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
  618. package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
  619. package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
  620. package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
  621. package/daemon/dist/domain/tmux-option-defaults.js +5 -0
  622. package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
  623. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  624. package/daemon/dist/domain/transcript-capture.js +1 -1
  625. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  626. package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
  627. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  628. package/daemon/dist/domain/transcript-rotation.js +176 -25
  629. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  630. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  631. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  632. package/daemon/dist/domain/transcript-store.js +11 -4
  633. package/daemon/dist/domain/transcript-store.js.map +1 -1
  634. package/daemon/dist/domain/types.d.ts +18 -5
  635. package/daemon/dist/domain/types.d.ts.map +1 -1
  636. package/daemon/dist/domain/types.js.map +1 -1
  637. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  638. package/daemon/dist/domain/usage-series.js +11 -6
  639. package/daemon/dist/domain/usage-series.js.map +1 -1
  640. package/daemon/dist/domain/user-settings/settings-store.d.ts +2 -0
  641. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  642. package/daemon/dist/domain/user-settings/settings-store.js +88 -6
  643. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  644. package/daemon/dist/domain/view-projector.d.ts +11 -6
  645. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  646. package/daemon/dist/domain/view-projector.js +2 -6
  647. package/daemon/dist/domain/view-projector.js.map +1 -1
  648. package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
  649. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  650. package/daemon/dist/domain/workflow-spec-cache.js +103 -14
  651. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  652. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  653. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  654. package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
  655. package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
  656. package/daemon/dist/health-detectors-surface.d.ts +1 -1
  657. package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
  658. package/daemon/dist/health-detectors-surface.js.map +1 -1
  659. package/daemon/dist/index.d.ts +4 -4
  660. package/daemon/dist/index.d.ts.map +1 -1
  661. package/daemon/dist/index.js +11 -7
  662. package/daemon/dist/index.js.map +1 -1
  663. package/daemon/dist/middleware/json-body-error.d.ts +17 -0
  664. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
  665. package/daemon/dist/middleware/json-body-error.js +42 -0
  666. package/daemon/dist/middleware/json-body-error.js.map +1 -0
  667. package/daemon/dist/routes/activity.d.ts.map +1 -1
  668. package/daemon/dist/routes/activity.js +85 -6
  669. package/daemon/dist/routes/activity.js.map +1 -1
  670. package/daemon/dist/routes/attention.d.ts.map +1 -1
  671. package/daemon/dist/routes/attention.js +7 -1
  672. package/daemon/dist/routes/attention.js.map +1 -1
  673. package/daemon/dist/routes/bundles.js +32 -3
  674. package/daemon/dist/routes/bundles.js.map +1 -1
  675. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  676. package/daemon/dist/routes/compaction.js +30 -2
  677. package/daemon/dist/routes/compaction.js.map +1 -1
  678. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  679. package/daemon/dist/routes/context-packs.js +10 -2
  680. package/daemon/dist/routes/context-packs.js.map +1 -1
  681. package/daemon/dist/routes/files.js +2 -2
  682. package/daemon/dist/routes/files.js.map +1 -1
  683. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  684. package/daemon/dist/routes/gateway.js +6 -1
  685. package/daemon/dist/routes/gateway.js.map +1 -1
  686. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  687. package/daemon/dist/routes/hosts.js +51 -12
  688. package/daemon/dist/routes/hosts.js.map +1 -1
  689. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  690. package/daemon/dist/routes/mission-control.js +6 -2
  691. package/daemon/dist/routes/mission-control.js.map +1 -1
  692. package/daemon/dist/routes/missions.d.ts.map +1 -1
  693. package/daemon/dist/routes/missions.js +17 -5
  694. package/daemon/dist/routes/missions.js.map +1 -1
  695. package/daemon/dist/routes/plugins.d.ts.map +1 -1
  696. package/daemon/dist/routes/plugins.js +5 -1
  697. package/daemon/dist/routes/plugins.js.map +1 -1
  698. package/daemon/dist/routes/proof.d.ts.map +1 -1
  699. package/daemon/dist/routes/proof.js +9 -2
  700. package/daemon/dist/routes/proof.js.map +1 -1
  701. package/daemon/dist/routes/ps.d.ts.map +1 -1
  702. package/daemon/dist/routes/ps.js +18 -0
  703. package/daemon/dist/routes/ps.js.map +1 -1
  704. package/daemon/dist/routes/queue.d.ts.map +1 -1
  705. package/daemon/dist/routes/queue.js +150 -67
  706. package/daemon/dist/routes/queue.js.map +1 -1
  707. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  708. package/daemon/dist/routes/restore-check.js +40 -1
  709. package/daemon/dist/routes/restore-check.js.map +1 -1
  710. package/daemon/dist/routes/rigs.js +1 -1
  711. package/daemon/dist/routes/rigs.js.map +1 -1
  712. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  713. package/daemon/dist/routes/rigspec.js +7 -10
  714. package/daemon/dist/routes/rigspec.js.map +1 -1
  715. package/daemon/dist/routes/seat.d.ts.map +1 -1
  716. package/daemon/dist/routes/seat.js +11 -0
  717. package/daemon/dist/routes/seat.js.map +1 -1
  718. package/daemon/dist/routes/sessions.js +1 -1
  719. package/daemon/dist/routes/sessions.js.map +1 -1
  720. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  721. package/daemon/dist/routes/telemetry.js +6 -1
  722. package/daemon/dist/routes/telemetry.js.map +1 -1
  723. package/daemon/dist/routes/terminal-ws.d.ts +1 -2
  724. package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
  725. package/daemon/dist/routes/terminal-ws.js +1 -2
  726. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  727. package/daemon/dist/routes/up.js +2 -1
  728. package/daemon/dist/routes/up.js.map +1 -1
  729. package/daemon/dist/routes/views.js +2 -2
  730. package/daemon/dist/routes/views.js.map +1 -1
  731. package/daemon/dist/server.d.ts +2 -0
  732. package/daemon/dist/server.d.ts.map +1 -1
  733. package/daemon/dist/server.js +7 -2
  734. package/daemon/dist/server.js.map +1 -1
  735. package/daemon/dist/spec-validation-surface.d.ts +2 -0
  736. package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
  737. package/daemon/dist/spec-validation-surface.js +2 -0
  738. package/daemon/dist/spec-validation-surface.js.map +1 -0
  739. package/daemon/dist/startup.d.ts +1 -1
  740. package/daemon/dist/startup.d.ts.map +1 -1
  741. package/daemon/dist/startup.js +137 -50
  742. package/daemon/dist/startup.js.map +1 -1
  743. package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
  744. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  745. package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
  746. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  747. package/daemon/docs/reference/agent-spec.md +36 -1
  748. package/daemon/docs/reference/agent-startup-guide.md +81 -2
  749. package/daemon/docs/reference/browser-access.md +4 -1
  750. package/daemon/docs/reference/developing.md +17 -9
  751. package/daemon/docs/reference/getting-started.md +7 -2
  752. package/daemon/docs/reference/health-diagnosis.md +10 -3
  753. package/daemon/docs/reference/help.md +9 -4
  754. package/daemon/docs/reference/host-resources.md +60 -0
  755. package/daemon/docs/reference/instance-layout.md +11 -0
  756. package/daemon/docs/reference/rig-spec.md +32 -5
  757. package/daemon/docs/reference/sdlc-conventions.md +6 -3
  758. package/daemon/docs/reference/slack-app-setup.md +6 -0
  759. package/daemon/specs/agents/shared/agent.yaml +1 -1
  760. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
  761. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +6 -0
  762. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  763. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
  764. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
  765. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
  766. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +1 -1
  767. package/dist/atomic-text-write.d.ts +3 -0
  768. package/dist/atomic-text-write.d.ts.map +1 -0
  769. package/dist/atomic-text-write.js +79 -0
  770. package/dist/atomic-text-write.js.map +1 -0
  771. package/dist/build-info.js +3 -3
  772. package/dist/cli-error.d.ts.map +1 -1
  773. package/dist/cli-error.js +15 -2
  774. package/dist/cli-error.js.map +1 -1
  775. package/dist/client.d.ts +14 -1
  776. package/dist/client.d.ts.map +1 -1
  777. package/dist/client.js +29 -4
  778. package/dist/client.js.map +1 -1
  779. package/dist/commands/agent-image.d.ts.map +1 -1
  780. package/dist/commands/agent-image.js +2 -0
  781. package/dist/commands/agent-image.js.map +1 -1
  782. package/dist/commands/ask.d.ts.map +1 -1
  783. package/dist/commands/ask.js +10 -1
  784. package/dist/commands/ask.js.map +1 -1
  785. package/dist/commands/bootstrap.d.ts.map +1 -1
  786. package/dist/commands/bootstrap.js +4 -6
  787. package/dist/commands/bootstrap.js.map +1 -1
  788. package/dist/commands/broadcast.js +1 -1
  789. package/dist/commands/broadcast.js.map +1 -1
  790. package/dist/commands/chatroom.d.ts.map +1 -1
  791. package/dist/commands/chatroom.js +22 -1
  792. package/dist/commands/chatroom.js.map +1 -1
  793. package/dist/commands/compact-plan.d.ts.map +1 -1
  794. package/dist/commands/compact-plan.js +34 -5
  795. package/dist/commands/compact-plan.js.map +1 -1
  796. package/dist/commands/compact.d.ts.map +1 -1
  797. package/dist/commands/compact.js +24 -4
  798. package/dist/commands/compact.js.map +1 -1
  799. package/dist/commands/config.d.ts.map +1 -1
  800. package/dist/commands/config.js +2 -4
  801. package/dist/commands/config.js.map +1 -1
  802. package/dist/commands/context.d.ts.map +1 -1
  803. package/dist/commands/context.js +19 -14
  804. package/dist/commands/context.js.map +1 -1
  805. package/dist/commands/crash-cart.d.ts.map +1 -1
  806. package/dist/commands/crash-cart.js +2 -1
  807. package/dist/commands/crash-cart.js.map +1 -1
  808. package/dist/commands/daemon.d.ts +13 -1
  809. package/dist/commands/daemon.d.ts.map +1 -1
  810. package/dist/commands/daemon.js +35 -17
  811. package/dist/commands/daemon.js.map +1 -1
  812. package/dist/commands/destroy.d.ts.map +1 -1
  813. package/dist/commands/destroy.js +3 -2
  814. package/dist/commands/destroy.js.map +1 -1
  815. package/dist/commands/discover.d.ts.map +1 -1
  816. package/dist/commands/discover.js +2 -4
  817. package/dist/commands/discover.js.map +1 -1
  818. package/dist/commands/doctor.d.ts.map +1 -1
  819. package/dist/commands/doctor.js +3 -2
  820. package/dist/commands/doctor.js.map +1 -1
  821. package/dist/commands/env.d.ts.map +1 -1
  822. package/dist/commands/env.js +8 -0
  823. package/dist/commands/env.js.map +1 -1
  824. package/dist/commands/export.js +2 -2
  825. package/dist/commands/export.js.map +1 -1
  826. package/dist/commands/gateway.d.ts.map +1 -1
  827. package/dist/commands/gateway.js +23 -3
  828. package/dist/commands/gateway.js.map +1 -1
  829. package/dist/commands/health.d.ts.map +1 -1
  830. package/dist/commands/health.js +9 -0
  831. package/dist/commands/health.js.map +1 -1
  832. package/dist/commands/host.d.ts.map +1 -1
  833. package/dist/commands/host.js +13 -3
  834. package/dist/commands/host.js.map +1 -1
  835. package/dist/commands/plugin.d.ts.map +1 -1
  836. package/dist/commands/plugin.js +12 -2
  837. package/dist/commands/plugin.js.map +1 -1
  838. package/dist/commands/ps.d.ts +1 -0
  839. package/dist/commands/ps.d.ts.map +1 -1
  840. package/dist/commands/ps.js +97 -35
  841. package/dist/commands/ps.js.map +1 -1
  842. package/dist/commands/queue.d.ts +2 -0
  843. package/dist/commands/queue.d.ts.map +1 -1
  844. package/dist/commands/queue.js +129 -17
  845. package/dist/commands/queue.js.map +1 -1
  846. package/dist/commands/requirements.d.ts.map +1 -1
  847. package/dist/commands/requirements.js +6 -3
  848. package/dist/commands/requirements.js.map +1 -1
  849. package/dist/commands/rig-mode.d.ts.map +1 -1
  850. package/dist/commands/rig-mode.js +6 -1
  851. package/dist/commands/rig-mode.js.map +1 -1
  852. package/dist/commands/rig.d.ts.map +1 -1
  853. package/dist/commands/rig.js +20 -20
  854. package/dist/commands/rig.js.map +1 -1
  855. package/dist/commands/scope.d.ts.map +1 -1
  856. package/dist/commands/scope.js +22 -0
  857. package/dist/commands/scope.js.map +1 -1
  858. package/dist/commands/seat.d.ts.map +1 -1
  859. package/dist/commands/seat.js +39 -9
  860. package/dist/commands/seat.js.map +1 -1
  861. package/dist/commands/setup.d.ts.map +1 -1
  862. package/dist/commands/setup.js +6 -5
  863. package/dist/commands/setup.js.map +1 -1
  864. package/dist/commands/slack.d.ts.map +1 -1
  865. package/dist/commands/slack.js +8 -1
  866. package/dist/commands/slack.js.map +1 -1
  867. package/dist/commands/specs.d.ts.map +1 -1
  868. package/dist/commands/specs.js +2 -0
  869. package/dist/commands/specs.js.map +1 -1
  870. package/dist/commands/start.js +6 -5
  871. package/dist/commands/start.js.map +1 -1
  872. package/dist/commands/startup-proof.d.ts.map +1 -1
  873. package/dist/commands/startup-proof.js +2 -1
  874. package/dist/commands/startup-proof.js.map +1 -1
  875. package/dist/commands/status.d.ts.map +1 -1
  876. package/dist/commands/status.js +7 -0
  877. package/dist/commands/status.js.map +1 -1
  878. package/dist/commands/terminal.d.ts.map +1 -1
  879. package/dist/commands/terminal.js +4 -0
  880. package/dist/commands/terminal.js.map +1 -1
  881. package/dist/commands/transcript.js +5 -3
  882. package/dist/commands/transcript.js.map +1 -1
  883. package/dist/commands/up.d.ts +8 -0
  884. package/dist/commands/up.d.ts.map +1 -1
  885. package/dist/commands/up.js +78 -4
  886. package/dist/commands/up.js.map +1 -1
  887. package/dist/commands/walk.d.ts.map +1 -1
  888. package/dist/commands/walk.js +3 -0
  889. package/dist/commands/walk.js.map +1 -1
  890. package/dist/commands/workflow-follow.d.ts +2 -0
  891. package/dist/commands/workflow-follow.d.ts.map +1 -1
  892. package/dist/commands/workflow-follow.js +6 -4
  893. package/dist/commands/workflow-follow.js.map +1 -1
  894. package/dist/commands/workflow.d.ts.map +1 -1
  895. package/dist/commands/workflow.js +2 -4
  896. package/dist/commands/workflow.js.map +1 -1
  897. package/dist/commands/workspace.d.ts.map +1 -1
  898. package/dist/commands/workspace.js +2 -4
  899. package/dist/commands/workspace.js.map +1 -1
  900. package/dist/config-store.d.ts +2 -0
  901. package/dist/config-store.d.ts.map +1 -1
  902. package/dist/config-store.js +24 -6
  903. package/dist/config-store.js.map +1 -1
  904. package/dist/daemon-lifecycle.d.ts +9 -0
  905. package/dist/daemon-lifecycle.d.ts.map +1 -1
  906. package/dist/daemon-lifecycle.js +61 -19
  907. package/dist/daemon-lifecycle.js.map +1 -1
  908. package/dist/daemon-reachability.d.ts +18 -0
  909. package/dist/daemon-reachability.d.ts.map +1 -0
  910. package/dist/daemon-reachability.js +48 -0
  911. package/dist/daemon-reachability.js.map +1 -0
  912. package/dist/lib/file-transfer.d.ts +1 -1
  913. package/dist/lib/file-transfer.d.ts.map +1 -1
  914. package/dist/lib/file-transfer.js +17 -5
  915. package/dist/lib/file-transfer.js.map +1 -1
  916. package/dist/lib/scope/mission-composition.d.ts.map +1 -1
  917. package/dist/lib/scope/mission-composition.js +11 -0
  918. package/dist/lib/scope/mission-composition.js.map +1 -1
  919. package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
  920. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  921. package/dist/lib/scope/scaffold-placeholder.js +4 -4
  922. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  923. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  924. package/dist/lib/scope/scope-fs.js +10 -16
  925. package/dist/lib/scope/scope-fs.js.map +1 -1
  926. package/dist/lib/scope-templates/slice-progress.md +11 -7
  927. package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
  928. package/dist/restore-packet/claude-transcript-parser.js +2 -0
  929. package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
  930. package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
  931. package/dist/restore-packet/codex-jsonl-parser.js +2 -0
  932. package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
  933. package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
  934. package/dist/restore-packet/runtime-detect.js +2 -0
  935. package/dist/restore-packet/runtime-detect.js.map +1 -1
  936. package/package.json +4 -3
  937. package/tui/dist/attention/source-continuity.d.ts.map +1 -1
  938. package/tui/dist/attention/source-continuity.js +5 -3
  939. package/tui/dist/attention/source-continuity.js.map +1 -1
  940. package/tui/dist/daemon-client.d.ts +2 -1
  941. package/tui/dist/daemon-client.d.ts.map +1 -1
  942. package/tui/dist/daemon-client.js +13 -4
  943. package/tui/dist/daemon-client.js.map +1 -1
  944. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  945. package/tui/dist/execution/execution-model.js +19 -7
  946. package/tui/dist/execution/execution-model.js.map +1 -1
  947. package/tui/dist/grammar.d.ts.map +1 -1
  948. package/tui/dist/grammar.js +3 -2
  949. package/tui/dist/grammar.js.map +1 -1
  950. package/tui/dist/health/health-model.d.ts.map +1 -1
  951. package/tui/dist/health/health-model.js +17 -5
  952. package/tui/dist/health/health-model.js.map +1 -1
  953. package/tui/dist/hydrate.d.ts.map +1 -1
  954. package/tui/dist/hydrate.js +1 -0
  955. package/tui/dist/hydrate.js.map +1 -1
  956. package/tui/dist/input.d.ts.map +1 -1
  957. package/tui/dist/input.js +5 -0
  958. package/tui/dist/input.js.map +1 -1
  959. package/tui/dist/live-events.d.ts +2 -2
  960. package/tui/dist/live-events.d.ts.map +1 -1
  961. package/tui/dist/live-events.js +65 -27
  962. package/tui/dist/live-events.js.map +1 -1
  963. package/tui/dist/local-reading.d.ts.map +1 -1
  964. package/tui/dist/local-reading.js +2 -0
  965. package/tui/dist/local-reading.js.map +1 -1
  966. package/tui/dist/main.js +16 -3
  967. package/tui/dist/main.js.map +1 -1
  968. package/tui/dist/page-read.d.ts.map +1 -1
  969. package/tui/dist/page-read.js +4 -1
  970. package/tui/dist/page-read.js.map +1 -1
  971. package/tui/dist/render.d.ts +2 -0
  972. package/tui/dist/render.d.ts.map +1 -1
  973. package/tui/dist/render.js +15 -4
  974. package/tui/dist/render.js.map +1 -1
  975. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  976. package/tui/dist/scopes/scopes-model.js +36 -31
  977. package/tui/dist/scopes/scopes-model.js.map +1 -1
  978. package/tui/dist/socket-server.d.ts +6 -2
  979. package/tui/dist/socket-server.d.ts.map +1 -1
  980. package/tui/dist/socket-server.js +159 -14
  981. package/tui/dist/socket-server.js.map +1 -1
  982. package/tui/dist/types.d.ts +18 -0
  983. package/tui/dist/types.d.ts.map +1 -1
  984. package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
  985. package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
  986. package/ui/dist/index.html +2 -2
@@ -250,11 +250,14 @@ OpenRig performs best-effort deterministic runtime configuration for managed ses
250
250
  installations may retain one; existing user settings are not removed.
251
251
  - Claude global state: `~/.claude.json`
252
252
  Purpose: pre-trust managed workspaces and mark onboarding complete for fresh managed sessions.
253
+ Explicit permission modes use the launch-selected `HOME/.claude.json`, or
254
+ `<CLAUDE_CONFIG_DIR>/.claude.json` when that variable is set. Classic startup
255
+ retains the daemon-home path.
253
256
  - Claude project-local config: `.claude/settings.local.json`
254
257
  Purpose: apply context collector/activity hooks and selected `claude_settings_fragment` resources inside the project without committing them to git.
255
258
  - Claude project-local MCP config: `.mcp.json`
256
259
  Purpose: apply selected `claude_mcp_fragment` resources for Claude in that project.
257
- - Codex global config: `~/.codex/config.toml`
260
+ - Codex global config: `$CODEX_HOME/config.toml`, or `~/.codex/config.toml` when unset
258
261
  Purpose: pre-trust managed workspaces and apply selected `codex_config_fragment` resources. Codex currently has no equivalent project-local MCP config path for global profile settings.
259
262
 
260
263
  Two important caveats:
@@ -266,6 +269,39 @@ can affect native configuration, but OpenRig's launch flags can override those
266
269
  values. Recording a config-surface `permission_policy` is not proof that its
267
270
  rules were translated or applied. See [permission precedence and limits](getting-started.md#custom-settings-and-precedence).
268
271
 
272
+ ### Separate Codex homes for separate installations
273
+
274
+ Set an **absolute `CODEX_HOME` in the environment that starts the daemon** when
275
+ you want a separate Codex configuration and state root. OpenRig uses that root
276
+ for its startup hook setup/removal and trust records, feature flag, workspace
277
+ trust and selected config fragments. Startup can write those files even when
278
+ the daemon has no seats.
279
+
280
+ The explicit selection also applies to future managed Codex fresh, resume and
281
+ fork launches, their capability/profile/configuration probes, native thread and
282
+ context reads, and plugin-cache discovery. Launch commands reassert it after
283
+ pane shell startup, so an rc file cannot silently switch that launch to another
284
+ Codex home. Executable and PATH selection stay the same. Existing running
285
+ sessions are not moved or restarted; a thread in another home is not searched
286
+ as a fallback for an explicitly selected home.
287
+
288
+ **With `CODEX_HOME` unset, a second install still shares `~/.codex`.** Setting only
289
+ `OPENRIG_HOME` separates OpenRig state, not provider configuration. The default
290
+ launch behavior is unchanged, including existing pane-shell overrides.
291
+
292
+ OpenRig does not copy or migrate authentication, history, rules, trust or
293
+ settings into the selected home. A separate file-backed home needs its intended
294
+ authentication provisioned if absent; OS credential stores and other config
295
+ layers can behave differently, so a new login is not universally required.
296
+ Explicit Codex auth commands resolve their **caller's** `CODEX_HOME`, otherwise
297
+ `$HOME/.codex`; contacting a daemon with `OPENRIG_URL` does not retarget auth
298
+ save/switch/registry writes to that daemon's selection. Set the intended root
299
+ on those commands as well.
300
+
301
+ This separates provider files, not OS users or accounts. Project-local resources
302
+ still use the selected project directory; shared project and system settings
303
+ remain shared.
304
+
269
305
  ### Runtime Differences
270
306
 
271
307
  **Claude Code:**
@@ -283,6 +319,14 @@ rules were translated or applied. See [permission precedence and limits](getting
283
319
  - Approval policy and sandbox access are separate controls. OpenRig's default
284
320
  `-s workspace-write` selects the sandbox; it does not force `-a`. A member's
285
321
  `codex_config_profile` selects native `-p`, distinct from the AgentSpec `profile`.
322
+ - On that plain `-s workspace-write` launch (fresh, resume, fork or restore), a
323
+ short-lived `codex app-server` first reads Codex's own configuration with the
324
+ seat's executable, home and working directory. OpenRig adds
325
+ `-c sandbox_workspace_write.network_access=true` only when no configuration
326
+ layer sets network access and no managed requirement could restrict it. A
327
+ timeout, error or unrecognized answer adds nothing. Named profiles and full
328
+ bypass are not read. The read may write Codex's own state files in
329
+ `CODEX_HOME`, read its login and fetch managed policy, as a Codex start does.
286
330
  - Can self-install dependencies from instructions but timer/recurring behavior is not reliably available
287
331
 
288
332
  When authoring startup content, note which instructions are runtime-specific. For example, an orchestrator that needs a monitoring loop should include instructions like: "If running Claude Code, use `/loop 3m` to periodically check rig health. If running Codex, check rig health at the start of each task cycle instead."
@@ -301,6 +345,41 @@ profile → uses.skills: [openrig-user]
301
345
  ```
302
346
  This is the minimum effective startup. The agent knows who it is, how the team works, and how to use the rig.
303
347
 
348
+ For seats sharing a working directory, keep each role in its own AgentSpec startup entry:
349
+
350
+ ```yaml
351
+ startup:
352
+ files:
353
+ - path: guidance/role.md
354
+ orientation: role
355
+ delivery_hint: send_text
356
+ required: true
357
+ ```
358
+
359
+ `rig queue whoami --json` reports only the calling seat's explicitly marked role
360
+ bindings, independently of its current work. The `role.state` is `no-record`,
361
+ `not-declared`, `missing`, `present`, or `unknown` when identity, storage or the
362
+ observation is unavailable. Files retain their original `path`, `absolutePath`
363
+ and `ownerRoot` plus the currently resolved `resolvedPath` and
364
+ `resolvedOwnerRoot`. Built-in packaged paths follow the running installation;
365
+ existing development-checkout paths stay where they were recorded.
366
+
367
+ `recordedAt` is the startup-context record write/attempt, which happens before
368
+ launch succeeds. Exact resume can retain an older record. `present` means the
369
+ resolved file currently exists, not that its bytes still match the spec or that
370
+ the agent read it. Unmarked startup files and startup actions are not exposed.
371
+
372
+ Refocus includes the role path and a re-read reminder with topology or both trees,
373
+ even if the trace fails. Work-only mode omits it; disabling refocus still disables
374
+ the entire hook. Custom refocus prose keeps its existing precedence. The hook
375
+ reuses its work lookup, or makes one bounded lookup when the work node is explicit;
376
+ a failed or skipped lookup reports `unknown`.
377
+
378
+ The shipped kernel seats no longer project their role into shared guidance.
379
+ Existing user files and legacy role blocks are left intact; this is not a cleanup
380
+ of already-installed shared blocks. General user-authored guidance projection is
381
+ unchanged.
382
+
304
383
  **Separate project context from role**
305
384
 
306
385
  Don't put project documentation inside the role guidance. The role is about the agent's function; project context is about what the agent is working on. Use rig-level or pod-level startup files for project context.
@@ -356,7 +435,7 @@ If your rig REQUIRES a hook to function and the hook installation fails silently
356
435
  When creating a new agent's startup experience:
357
436
 
358
437
  - [ ] Write a `guidance/role.md` — who is this agent?
359
- - [ ] Reference it in the agent spec's `resources.guidance` AND `startup.files`
438
+ - [ ] Reference it in `startup.files` with `orientation: role` and `delivery_hint: send_text`. Avoid projecting distinct seat roles into one shared `AGENTS.md` or `CLAUDE.md`.
360
439
  - [ ] Write a rig `CULTURE.md` if the rig doesn't have one
361
440
  - [ ] Choose skills from the shared pool via profile `uses`
362
441
  - [ ] Write a `startup/context.md` if the agent needs environment grounding
@@ -12,7 +12,10 @@ comes from a web page, only when that page is the OpenRig UI or a page you allow
12
12
  its own Tailscale name (for example `my-machine.your-tailnet.ts.net`, or the short `my-machine`).
13
13
  The daemon learns its own Tailscale name automatically from Tailscale on this machine.
14
14
  - The web UI, when it is turned on (`rig config set ui.enabled true`, then restart the daemon) and
15
- opened at the daemon's own address and port.
15
+ opened at the daemon's own address and port. To open it at a non-loopback name or address, such
16
+ as its Tailscale name, also list that page's exact origin in `OPENRIG_ALLOWED_ORIGINS` (for
17
+ example `http://my-machine.your-tailnet.ts.net:7433`), then restart the daemon. Without it, the
18
+ UI's terminal is refused there, and at a non-loopback IPv6 address its API requests are too.
16
19
 
17
20
  ### When you see a refusal
18
21
 
@@ -1,8 +1,13 @@
1
1
  # Developing OpenRig — gates and lanes
2
2
 
3
3
  This is the contributor-facing statement of which checks BLOCK a change and which are
4
- advisory. There is no external CI at this tip: the root `package.json` script chain IS
5
- the gate, and the release checklists invoke it.
4
+ advisory. Every pull request to `main` runs `.github/workflows/tests.yml` on a clean GitHub
5
+ runner: build and packaging, typecheck, the repository scripts (`npm run test:repo`), each
6
+ workspace's test suite (daemon, cli, tui and ui) on macOS without ambient credentials or
7
+ external network, and an installed-package scenario (`scripts/run-pr-scenarios.sh`). The root
8
+ `package.json` scripts below run the same build, typecheck, repository and test checks locally,
9
+ with one difference: `npm test` does not include the UI suite, which CI runs as
10
+ `package-tests (ui)`. Run `npm run test:ui` for it.
6
11
 
7
12
  ## Blocking gates (must pass before a candidate moves)
8
13
 
@@ -10,23 +15,26 @@ the gate, and the release checklists invoke it.
10
15
  |---|---|---|
11
16
  | Typecheck | `npm run lint` | daemon + **ui** + cli + tui tsconfigs — UI typecheck STAYS blocking |
12
17
  | Build | `npm run build` | all workspaces — the UI dist ships in the package, so its build STAYS blocking |
13
- | Repo scripts | `npm run test:repo` | script self-tests, docs guard, skill mirror check |
18
+ | Repo scripts | `npm run test:repo` | daemon build, script self-tests, docs guard, skill mirror check, context-pack generation check |
14
19
  | Unit tests | `npm run test:workspaces` | `packages/daemon` + `packages/cli` + `packages/tui` |
20
+ | UI unit tests | `npm run test:ui` | `packages/ui` vitest. NOT part of `npm test`, but every pull request runs it as `package-tests (ui)` (the `package-tests` matrix in `.github/workflows/tests.yml`) |
15
21
 
16
- `npm test` runs `test:repo` and `test:workspaces` — the blocking set is readable in the
17
- script itself.
22
+ `npm test` runs `test:repo` and `test:workspaces`; `npm run test:ui` is the separate UI
23
+ suite. Both sets are readable in the root `package.json` scripts.
18
24
 
19
25
  ## Advisory lane
20
26
 
21
27
  | Lane | Command | Meaning |
22
28
  |---|---|---|
23
- | UI unit tests | `npm run test:ui` | runs `packages/ui` vitest at will; NOT part of `npm test` |
29
+ | Portability report | `node scripts/portability-report.mjs` | lists added lines with machine-specific values; findings never fail it (`.github/workflows/portability-report.yml`) |
24
30
 
25
31
  ## The norm (web-UI freeze at 0.5.0)
26
32
 
27
- Daemon API changes no longer require UI sync or UI verification; the contract mirrors
28
- under `packages/ui/src/hooks/` are no longer proactively maintained; a new `test:ui`
29
- failure signals a moved API contract, not a broken gate.
33
+ Daemon API changes no longer require browser or interaction verification of the UI, and
34
+ the contract mirrors under `packages/ui/src/hooks/` are no longer proactively maintained. A
35
+ new `test:ui` failure usually signals a moved API contract. Because pull-request CI runs the
36
+ UI suite as `package-tests (ui)`, the change that moves the contract has to update the affected
37
+ UI test or mirror to pass that check.
30
38
 
31
39
  Browser/interaction testing of the web UI is not a contributor gate. (The packaged
32
40
  starter-rig agent skills that exercise the UI are product content for user rigs, not
@@ -15,8 +15,13 @@ supported; Node 26 and other versions are untested.
15
15
  Codex's `-s workspace-write`, with approval policy from your native configuration,
16
16
  or Claude Code's `acceptEdits`, which still leaves commands subject to native
17
17
  rules and prompts. Codex's sandbox normally blocks network access, including the
18
- local OpenRig daemon. A command allowance does not change general sandbox/network
19
- settings. The starter's `profile: default` selects OpenRig resources, not a native
18
+ local OpenRig daemon, so before that plain launch OpenRig asks Codex for its own
19
+ configuration and adds network access inside the sandbox unless a configuration
20
+ layer sets `sandbox_workspace_write.network_access` or a managed requirement could
21
+ restrict it. To keep it off, set `network_access = false` under
22
+ `[sandbox_workspace_write]` in your Codex configuration. If Codex does not answer
23
+ within a few seconds, the seat starts without it. A command allowance does not
24
+ change general sandbox/network settings. The starter's `profile: default` selects OpenRig resources, not a native
20
25
  permission profile.
21
26
  Agent-guided setup [asks once](#have-your-agent-configure-permissions): “Allow
22
27
  your agents to run OpenRig commands without repeated permission prompts?”
@@ -132,9 +132,13 @@ these boundaries. One occurrence and the existing owner cooldown apply to each
132
132
  episode; a disposition stops repeated requests.
133
133
 
134
134
  This bounded source covers explicitly linked project or mission work: at most 2,000 touched
135
- qitems, 200 roots, 1,000 members / 10,000 transitions per family, 200 workflow
135
+ qitems, 1,000 members / 10,000 transitions per family, 200 workflow
136
136
  receipts, 200 declared slices, and 100 proof files per selected slice. Overflow
137
- refuses visibly. Context files are bounded to 64 KiB. A lineage beginning before
137
+ refuses visibly. When more than 200 families (roots) were touched, it evaluates the
138
+ 200 with the most transitions in the window, then by lineage ID, and reports the
139
+ result as partial coverage with the total and omitted counts. Omitted families
140
+ were not evaluated, so having no finding for them is not a healthy verdict.
141
+ Context files are bounded to 64 KiB. A lineage beginning before
138
142
  the retained window remains indeterminate, with the missing interval named.
139
143
  Project planning does not require a successor mission: an explicit project identity
140
144
  resolves its current context, with mission and phase absent unless evidenced.
@@ -370,7 +374,10 @@ A consumer such as a later Herder plugin reads `GET /api/health` and
370
374
  `GET /api/health/:findingId`, or the identical `rig health --json` and
371
375
  `rig health explain <finding-id> --json` records. The record schema is
372
376
  `openrig.health/v0alpha1`; list metadata is `openrig.health-list/v0alpha1`.
373
- Preserve ID, status, policy version, time window, freshness, evidence and
377
+ For a source that bounds its input, list metadata also carries `coverage`
378
+ (`source`, `total`, `evaluated`, `omitted`, `limit`, `order`, `partial`), and
379
+ `rig health policy` reports the scheduled evaluation's coverage under
380
+ `engine.lastEvaluation.coverage`. Preserve ID, status, policy version, time window, freshness, evidence and
374
381
  threshold together. There is no health score or implicit remediation authority.
375
382
  The default list excludes cleared records; explicit cleared queries and exact
376
383
  ID reads retain them while the source can still project them. A recurrence after
@@ -78,12 +78,17 @@ involved before proposing changes.
78
78
  Compare the harness version and what you actually observe before attributing a failure to one of these. Check the
79
79
  issue's current status; a similar symptom alone is not a diagnosis.
80
80
 
81
- - Claude seats reported as needing attention after a restore: [#86](https://github.com/mvschwarz/openrig/issues/86).
82
- - Claude usage limits are not detected: [#98](https://github.com/mvschwarz/openrig/issues/98),
83
- [#99](https://github.com/mvschwarz/openrig/issues/99).
84
- - Codex prompt variants not recognised as ready: [#79](https://github.com/mvschwarz/openrig/issues/79).
81
+ - Claude seats reported as needing attention after a restore: [#86](https://github.com/mvschwarz/openrig/issues/86),
82
+ [#273](https://github.com/mvschwarz/openrig/issues/273).
83
+ - Claude usage limits may not be detected: [#99](https://github.com/mvschwarz/openrig/issues/99).
84
+ - Codex prompt variants not recognised as idle: [#79](https://github.com/mvschwarz/openrig/issues/79).
85
85
  - Codex asks about hook trust at first launch: [#17](https://github.com/mvschwarz/openrig/issues/17), not reproduced
86
86
  by the team.
87
+ - A Codex seat on the default `workspace-write` sandbox starts without network access, so it can't reach the local
88
+ daemon, when its Codex configuration sets network access off, a managed requirement could restrict it, or Codex
89
+ doesn't answer OpenRig's configuration read in time: [#275](https://github.com/mvschwarz/openrig/issues/275).
90
+ - Stopping the daemon can report a timeout while closing connections:
91
+ [#166](https://github.com/mvschwarz/openrig/issues/166).
87
92
 
88
93
  For everything else, search [open issues](https://github.com/mvschwarz/openrig/issues).
89
94
 
@@ -0,0 +1,60 @@
1
+ # Host load and transcript capture
2
+
3
+ Use `rig ps --resources` to inspect the serving host, or add `--host <id>`
4
+ for one registered HTTP/SSH host. `--json` returns the same measurements for
5
+ operators and monitoring tools. This view is host-scoped; rig/node filters and
6
+ multi-host fan-out do not apply. Ordinary `rig ps` output is unchanged.
7
+
8
+ The view reports available CPU count, host load averages (1/5/15 minutes),
9
+ load divided by CPU count, running seats, and transcript capture attempts,
10
+ failures, UTF8 bytes and elapsed capture time for currently rotating seats.
11
+ Load is not CPU utilization; capture elapsed time includes waiting for tmux,
12
+ and is not daemon CPU time. Load averages are unavailable on Windows, rather
13
+ than reported as zero. Counters reset when a rotation is restarted/stopped or
14
+ the daemon restarts, so they are observations rather than a durable billing log.
15
+ When no seat is capturing, the active interval, idle ceiling and line count are
16
+ unavailable (`null` in JSON), not zero.
17
+
18
+ ## Reduce idle capture cost
19
+
20
+ Transcript rotation still captures the bounded trailing buffer. When successive
21
+ captures are unchanged and tmux exposes an unchanged current-window activity
22
+ hint, capture backs off exponentially to a derived ceiling. With the default
23
+ 2-second active interval and 1-second settings timer, the effective ceiling is
24
+ 3 seconds: the 10-second freshness window minus the 1-second activity-hint
25
+ deadline, 5-second capture-result deadline and 1-second timer spacing. The
26
+ ceiling is capped at 6 seconds but never below the configured active interval.
27
+ This scheduling budget is not a CPU or child-process lifetime bound; the result
28
+ deadline does not cancel an unfinished capture. One shared tmux
29
+ activity read wakes idle rotations; a changed hint restores the active cadence.
30
+ Missing/failed hints retain the configured full-capture cadence. A hint read
31
+ that takes longer than one second becomes unknown without starting additional
32
+ metadata probes while its underlying call is still pending. Periodic full
33
+ capture reconciles output even when a hint fails to change (tmux timestamps have
34
+ one-second resolution). Longer configured active intervals retain that interval
35
+ instead of silently increasing capture frequency.
36
+
37
+ This does not change provider readiness, delivery guards, seat activity or queue
38
+ state. Capture activity is not proof an agent is healthy or finished. As before,
39
+ transcripts are bounded trailing snapshots, not lossless terminal archives: an
40
+ output burst larger than retained tmux scrollback or the configured line limit
41
+ can exceed the saved trail. Interactive terminal streaming is unchanged.
42
+
43
+ ## Change capture settings without restarting
44
+
45
+ ```bash
46
+ rig config set transcripts.poll_interval_seconds 3
47
+ rig config set transcripts.lines 2000
48
+ rig ps --resources
49
+ rig config reset transcripts.poll_interval_seconds
50
+ ```
51
+
52
+ Running rotations reread shared settings at most once per second and adopt the
53
+ next valid policy without starting overlapping captures. Intervals accept whole
54
+ seconds from 1 to 3600; trailing lines accept integers from 1 to 1000000. The
55
+ existing environment variables take precedence over file settings. Malformed
56
+ intermediate JSON retains the last usable policy, is shown in the resource view,
57
+ and is retried; normal config
58
+ writes reject invalid values. Changing `transcripts.enabled` or
59
+ `transcripts.path` still requires a daemon restart. This feature does not impose
60
+ CPU quotas or allocate build slots.
@@ -104,3 +104,14 @@ runtime reads for compatibility. Treat the two-home state as an explicit
104
104
  limitation: use the live spec-library commands to determine where a spec is
105
105
  served from, and do not infer convergence merely because the canonical
106
106
  directory exists.
107
+
108
+ Config updates publish a complete replacement file atomically where directory
109
+ permissions and the filesystem allow it. On POSIX systems, replacement preserves
110
+ the existing owner, group, and read/write/execute permission bits. If creating or
111
+ preparing the replacement, or renaming it, fails with `EACCES`, `EPERM`, or `EBUSY`,
112
+ the stores write the writable target in place, preserving compatibility with
113
+ unwritable directories and single-file bind mounts. This fallback is not atomic
114
+ and retains the previous partial-write risk. Read-only config files are refused.
115
+ Other errors, including `ENOSPC`, leave the original file intact on the atomic
116
+ path. Atomic replacement does not carry extended ACLs or other inode metadata;
117
+ a hard-linked second name continues to refer to the previous file.
@@ -247,7 +247,7 @@ directory's `CLAUDE.md`, including blocks written by other rigs.
247
247
 
248
248
  | Field | Type | Required | Default | Description |
249
249
  |-------|------|----------|---------|-------------|
250
- | `id` | string | yes | — | Pod identifier. Must not contain dots. Must be unique within the rig. Used as the first segment of session names and logical IDs. |
250
+ | `id` | string | yes | — | Pod identifier. Must not contain dots or `@`. Must be unique within the rig. Used as the first segment of session names and logical IDs. |
251
251
  | `label` | string | yes | — | Human-readable pod name. Shown in UI explorer, graph groupings, and detail surfaces. |
252
252
  | `summary` | string | no | — | Pod description. |
253
253
  | `continuity_policy` | ContinuityPolicy | no | — | Pod-level continuity/restore policy. Controls compaction recovery, artifact management, and peer-driven restoration. |
@@ -258,6 +258,7 @@ directory's `CLAUDE.md`, including blocks written by other rigs.
258
258
  ### Pod ID Rules
259
259
 
260
260
  - Must not contain dots (`.`)
261
+ - Must not contain `@`, which separates the pod/member portion from the rig name in session addresses
261
262
  - Must be unique across all pods in the rig
262
263
  - Becomes the first segment of the qualified logical ID: `{podId}.{memberId}`
263
264
  - Becomes the first segment of the canonical session name: `{podId}-{memberId}@{rigName}`
@@ -268,17 +269,35 @@ directory's `CLAUDE.md`, including blocks written by other rigs.
268
269
 
269
270
  | Field | Type | Required | Default | Description |
270
271
  |-------|------|----------|---------|-------------|
271
- | `id` | string | yes | — | Member identifier. Must not contain dots. Must be unique within the pod. |
272
+ | `id` | string | yes | — | Member identifier. Must not contain dots or `@`. Must be unique within the pod. |
272
273
  | `agent_ref` | string | yes | — | Reference to an AgentSpec. Must start with `local:` (relative) or `path:` (absolute). Exception: `builtin:terminal` for infrastructure nodes. |
273
274
  | `profile` | string | yes | — | Profile name from the referenced AgentSpec. Use `default` for the default profile. Exception: `none` for terminal nodes. |
274
275
  | `codex_config_profile` | string | no | — | Codex-only native profile passed as `-p <name>`; letters, numbers, `_`, `.`, `-`. Separate from the AgentSpec `profile`. With the normal launch mode, this replaces OpenRig's explicit workspace-write sandbox flag. A full-bypass policy instead emits danger-full-access and omits this profile argument. |
275
- | `runtime` | string | yes | — | Agent runtime. Current supported values: `claude-code`, `codex`, `terminal`. |
276
+ | `runtime` | string | yes | — | Agent runtime. Current supported values: `claude-code`, `codex`, `pi`, `omp`, `terminal`, `stub`. `stub` is a deterministic test harness, not an agent: a Node runner in the seat's tmux pane goes through the normal launch, skill projection, startup-file and readiness path, follows `<cwd>/.openrig/stub/script.json` when present, and calls no model. See "What a stub can and cannot prove" in `docs/as-built/test-layers.md`. |
276
277
  | `cwd` | string | yes | — | Working directory for the agent. Resolved relative to the rig root (the directory containing the rig spec). Use `"."` for the rig root itself. Can be overridden at launch time with `rig up --cwd`. |
277
278
  | `label` | string | no | — | Human-readable member name. Shown in UI when present. |
278
279
  | `model` | string | no | — | Model override. Runtime-specific (e.g., `claude-opus-4-6` for Claude Code). |
279
280
  | `restore_policy` | string | no | `resume_if_possible` | Restore behavior. One of: `resume_if_possible`, `relaunch_fresh`, `checkpoint_only`. |
280
281
  | `startup` | StartupBlock | no | — | Member-level startup files and actions. Applied only to this member. |
281
282
 
283
+ ### Pi (`runtime: pi`)
284
+
285
+ `runtime: pi` launches the Pi coding agent (`pi --mode rpc`) through OpenRig's RPC runner.
286
+
287
+ - **State:** Each seat uses `$OPENRIG_HOME/state/pi/<session>/agent` as its Pi agent directory, with `sessions/` beside it, instead of your default `~/.pi/agent`. The runner sets `PI_CODING_AGENT_DIR` to that directory. `<session>` is the seat's session name, unchanged; for a pod member it is `{podId}-{memberId}@{rigName}`. `$OPENRIG_HOME` defaults to `~/.openrig`. OpenRig creates these directories at launch and does not copy anything from `~/.pi/agent`.
288
+ - **Custom models:** Pi reads `models.json` from its agent directory, so a seat reads `$OPENRIG_HOME/state/pi/<session>/agent/models.json`, not `~/.pi/agent/models.json`. Custom provider and model definitions for a seat go in that file. A seat that uses only providers Pi already includes does not need one. OpenRig does not create or write `models.json`.
289
+ - **Credentials:** The Pi process receives only `PATH`, `HOME`, `TERM`, `LANG`, `LC_ALL`, `SHELL`, `TMPDIR`, a fixed set of OpenRig seat and instance variables, `PI_CODING_AGENT_DIR`, `PI_CODING_AGENT_SESSION_DIR`, and at most one provider key. That key is `OPENROUTER_API_KEY`, `ZAI_API_KEY` or `KIMI_API_KEY`, passed only when it is set in the seat's environment and the seat's `model` is written as `openrouter/<id>`, `zai/<id>` or `kimi-coding/<id>`. Naming that variable in `recovery.provider_auth_env_allowlist` (empty by default) makes the daemon add it, when set in the daemon's environment, to the seat's launch environment. No other variable reaches Pi, including other providers' keys and a custom provider's own key variable.
290
+
291
+ ### Oh My Pi (`runtime: omp`)
292
+
293
+ `runtime: omp` launches Oh My Pi through OpenRig's RPC runner. It is separate from `runtime: pi`; OMP does not use Pi's `--name` or `--approve` flags.
294
+
295
+ - **State:** Each seat uses `$OPENRIG_HOME/state/omp/<seat>/agent` and `sessions/` instead of your default `~/.omp` profile, and runs with that seat directory as `HOME`. OpenRig does not copy OMP credentials. The runner finds the real `omp` binary before switching `HOME`, so a version-manager shim such as mise on the daemon's `PATH` still works.
296
+ - **Credentials:** Provision each seat separately, or put the provider's key variable in `recovery.provider_auth_env_allowlist` (for example `ANTHROPIC_API_KEY` or `MISTRAL_API_KEY`). The allowlist accepts the key variable of every provider in OpenRig's OMP provider map, from `anthropic` through `litellm`. A seat receives a key only when its `model` is written as `provider/id`, such as `anthropic/claude-sonnet-4-5`. Short names such as `opus` pass no key. OMP also reads the launch directory's `.env`, so use a trusted working directory.
297
+ - **Approval posture:** The default floor is `--approval-mode always-ask`. Because the runner is headless, OMP approval requests are cancelled and the seat stays in needing-attention after the turn ends, until the next agent run starts. A `full_bypass` permission policy selects `--approval-mode yolo`.
298
+ - **Model errors:** A rejected prompt, a provider or authentication error during a turn, or exhausted automatic retries is printed in the pane and keeps the seat in needing-attention until the next agent run starts.
299
+ - **Restore:** OMP creates its session file after the first persisted turn. A new seat with no persisted turn has no resume token; restoring it requires `rig up --existing <rig> --fresh <seat>`. After that file exists, OpenRig restores that exact session file. If a full rig restore leaves an OMP seat in `attention_required` or `failed`, `rig seat clear-attention` cannot yet reconcile it to `operator_recovered`, even with `--reason`, because restore reconciliation only verifies Claude Code and Codex processes ([#41](https://github.com/mvschwarz/openrig/issues/41)). Relaunch that seat with `rig up --existing <rig> --fresh <seat>`, or restore it manually.
300
+
282
301
  ### Terminal Nodes
283
302
 
284
303
  Terminal nodes are infrastructure processes (servers, log tails, build watchers) that are not agent runtimes. They require an exact triple:
@@ -309,6 +328,9 @@ The canonical session name is derived from the pod ID, member ID, and rig name:
309
328
 
310
329
  Example: pod `dev`, member `impl`, rig `my-team` → session `dev-impl@my-team`
311
330
 
331
+ Pod and member IDs cannot contain `@` because the first `@` separates their portion
332
+ of the session address from the rig name. Rig names may still contain `@`.
333
+
312
334
  This is human-authored (you choose the pod/member IDs) and system-validated (the system enforces the format).
313
335
 
314
336
  ---
@@ -369,6 +391,7 @@ Startup blocks can appear at three levels: rig, pod, and member. They are merged
369
391
  | Field | Type | Required | Default | Description |
370
392
  |-------|------|----------|---------|-------------|
371
393
  | `path` | string | yes | — | Relative path to the file. Must be a safe relative path. |
394
+ | `orientation` | string | no | — | Set to `role` to identify a per-seat role file for `rig queue whoami --json` and refocus. Does not change delivery or replay startup. |
372
395
  | `delivery_hint` | string | no | `auto` | How the file is delivered. One of: `auto`, `guidance_merge`, `skill_install`, `send_text`. |
373
396
  | `required` | boolean | no | `true` | Whether startup fails if this file cannot be delivered. |
374
397
  | `applies_on` | string[] | no | `[fresh_start, restore]` | When this file is delivered. Subset of: `fresh_start`, `restore`. |
@@ -454,7 +477,8 @@ Each target must define exactly one of `service`, `url`, or `tcp`:
454
477
 
455
478
  ```yaml
456
479
  wait_for:
457
- # HTTP probe — hits the URL, expects 2xx
480
+ # HTTP probe — any 2xx or 3xx response passes the HTTP wait target; redirects are not followed.
481
+ # This proves the server answered, not application readiness.
458
482
  - url: http://127.0.0.1:8200/v1/sys/health
459
483
 
460
484
  # TCP probe — connects to host:port
@@ -536,7 +560,10 @@ continuity_policy:
536
560
 
537
561
  ## Validation Rules Summary
538
562
 
539
- These rules are enforced by the validator. A spec that violates any of these will be rejected by `rig spec validate` and `rig up`.
563
+ Schema validation checks the structural rules below. Pod and member IDs containing
564
+ `@` are additionally rejected during preflight and member creation or launch; a
565
+ spec can pass `rig spec validate` and then fail at preflight or import. Run
566
+ `rig spec preflight` before creation or import.
540
567
 
541
568
  1. `version` and `name` are required non-empty strings.
542
569
  2. `pods` must be a non-empty array.
@@ -100,9 +100,12 @@ Each slice directory carries:
100
100
  approval starts here.
101
101
  - **`## Proof contract`** — a checkbox list of promised deliverables (see
102
102
  §3). The UI's DELIVERED section pairs each item with its proof.
103
- - **`PROGRESS.md`** — the slice's acceptance checklist: the durable
104
- mission/slice-level to-do checked at acceptance. In-process steps stay in
105
- the working agent's own todo tool.
103
+ - **`PROGRESS.md`** — the slice's current delivery state and retained outcome
104
+ log. Record material changes with links to proof; historical checkboxes are
105
+ testimony, not current acceptance authority. For a selected proof policy,
106
+ `rig proof show <slice>` derives current readiness from the proof contract
107
+ and attributed judgments. In-process steps stay in the working agent's
108
+ own todo tool.
106
109
  - **`PROOF.md`** — the retained proof summary, explicitly paired to the
107
110
  `SPEC.md` proof contract.
108
111
  - **`proof/`** — the proof-artifact directory. Curated canonical evidence
@@ -76,6 +76,12 @@ So after installing, compare the granted scopes Slack shows for the app with all
76
76
  The app subscribes to messages in public channels it is a member of (`message.channels`) and to
77
77
  mentions of the app (`app_mention`). It does not request direct-message or private-channel access.
78
78
 
79
+ The manifest also turns on **Interactivity**, so the human can answer a decision's structured
80
+ questions by clicking a button (`rig queue create --human-questions-file`). In Socket Mode the
81
+ clicks arrive over the same socket, so no request URL is needed. An app created from an older
82
+ manifest has Interactivity off: turn it on under **Interactivity & Shortcuts**, or the buttons
83
+ will do nothing. A typed reply in the thread still answers the decision either way.
84
+
79
85
  ## What the connector does with the tokens
80
86
 
81
87
  The tokens stay in the env file you created. The connector reads them from that file and uses them
@@ -47,7 +47,7 @@ resources:
47
47
  - id: openrig-core
48
48
  source:
49
49
  kind: local
50
- path: ~/.openrig/plugins/openrig-core
50
+ path: openrig-home:plugins/openrig-core
51
51
  runtime_resources:
52
52
  - id: claude-default-settings
53
53
  path: runtime/claude-settings.fragment.json
@@ -79,6 +79,30 @@ never silently clipped. Shorten the brief or related detail as directed. Inspect
79
79
  the failed row, then deliberately cancel/replace the authored request if its
80
80
  content needs correction; a timeout alone is never a reason to replace it.
81
81
 
82
+ A follow-up **update** about earlier work ("the change you approved is merged")
83
+ can post into that item's thread with `--reply-to <earlier-qitem-id>`. It is
84
+ accepted only with `--human-intent update`. Name the item whose thread the
85
+ human saw, such as the parked row, and create the update on the same host as
86
+ that item. Send the update from the seat that owns that thread: the seat that
87
+ parked the row, or the author of the earlier item. A human reply in a thread
88
+ reaches its owning seat, so an update from any other seat posts as a new
89
+ message. It also posts as a new message, rather than being refused, if the
90
+ earlier thread is missing or closed, or while the earlier item still waits on
91
+ the human (a pending human decision, or a row parked on the human), since a
92
+ reply in that thread would answer the decision. In every such case the
93
+ `--verify` result says `threaded: false` with the reason.
94
+
95
+ A **decision** with a few clear choices can carry `--human-questions-file <path>`:
96
+ a JSON array of 1–4 questions, each
97
+ `{"id", "question", "options": [{"id", "label", "recommended"?}]}` with 2–4
98
+ options (labels up to 75 characters, at most one recommended). Slack shows each
99
+ question as a row of buttons. Each click records that answer on the item, and
100
+ the decision resolves once every question has one. You then receive one reply
101
+ row listing the answers, and the item's `humanAnswers` holds the option ids. The
102
+ human may instead type a reply in the thread; that resolves the decision as
103
+ usual, so read the reply rather than assuming an option was picked. Keep the
104
+ brief complete: the questions add buttons, they do not replace the explanation.
105
+
82
106
  If an existing agent-owned row must wait for a **decision**, block it on the **new live qitem ID**
83
107
  (`rig queue block <work-id> --on <human-qitem-id> ...`), not on the human address.
84
108
  Completion of the human qitem resumes its dependants. Blocking on the human as
@@ -120,6 +120,12 @@ and a useful report to the OpenRig team if you are still stuck. If `rig` won't r
120
120
  `daemon/docs/reference/help.md` inside the installed `@openrig/cli` package, or https://www.openrig.dev/help/agents
121
121
  (the same text).
122
122
 
123
+ ## Developing OpenRig itself
124
+
125
+ If you're changing OpenRig's own source in a clone of the openrig repository, use that repository's
126
+ `developing-openrig` skill (in the checkout's `.claude/skills/` or `.agents/skills/`). It maps the architecture, the
127
+ areas where a small change has a large effect, and which tests to run before a pull request.
128
+
123
129
  ## Need more than what ships here?
124
130
 
125
131
  This index covers the **shipped** surface. Your project, rig or machine may add its own skills and routers. Check the
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: topology-mutation-and-seat-management
3
- description: Use when changing a rig while it is alive — `rig expand` / `rig shrink` / `rig launch` / `rig remove` / `rig discover` / `rig bind` / `rig adopt` / `rig attach`. Covers the 4 failure modes (newly created seat lacks queue/startup/role; edges and permissions not updated; adopt/bind succeeds at tmux but not OpenRig identity; shrink/remove leaves stale topology references) and the rule that mutation must work while the rig is active, not just in clean fixtures.
3
+ description: Use when changing a rig while it is alive — `rig grow` / `rig expand` / `rig shrink` / `rig launch` / `rig remove` / `rig discover` / `rig bind` / `rig adopt` / `rig attach`. Covers the 4 failure modes (newly created seat lacks queue/startup/role; edges and permissions not updated; adopt/bind succeeds at tmux but not OpenRig identity; shrink/remove leaves stale topology references) and the rule that mutation must work while the rig is active, not just in clean fixtures.
4
4
  metadata:
5
5
  cli_surfaces_referenced:
6
6
  - adopt
@@ -8,6 +8,7 @@ metadata:
8
8
  - bind
9
9
  - discover
10
10
  - expand
11
+ - grow
11
12
  - launch
12
13
  - ps
13
14
  - release
@@ -43,13 +44,32 @@ static launch scripts.
43
44
 
44
45
  ## Use this when
45
46
 
46
- - Adding capacity to a running rig (`rig expand <rig> <pod-fragment-path>`)
47
+ - Adding seats to a running rig (`rig grow <rig-id> <member...>` for the simple case, a fragment with `rig expand` or `rig add` otherwise; see below)
47
48
  - Removing capacity (`rig shrink` / `rig remove`)
48
49
  - Launching/relaunching a node in a running rig (`rig launch`)
49
50
  - Binding a discovered session into an existing logical node (`rig bind`)
50
51
  - Adopting a topology + binding live sessions (`rig adopt`)
51
52
  - Attaching a shell or agent into a rig node (`rig attach --self`)
52
53
 
54
+ ## Adding seats: `rig grow` first, a fragment when you need more
55
+
56
+ `rig grow <rig-id> <member...>` adds one or more seats to a running rig without
57
+ writing YAML. Each seat gets the default agent spec and its `default` profile.
58
+ Check `rig grow --help` on your installed version; at the time of writing:
59
+
60
+ - `--pod <pod>`: the target pod; inferred when the rig has one pod
61
+ - `--new-pod <pod>`: create a new pod for the seats (not together with `--pod`)
62
+ - `--runtime <runtime>`: one runtime for every named seat (default `claude-code`)
63
+ - `--cwd <path>`: one working directory for every named seat (default: the current directory)
64
+ - `--json`: output for agents
65
+
66
+ Write a fragment instead when a seat needs something `rig grow` does not set: an
67
+ explicit model, a permission policy, a different agent spec or role profile, a
68
+ per-seat runtime or working directory, or startup files. Use
69
+ `rig expand <rig-id> <pod-fragment-path>` to add a pod, or
70
+ `rig add <rig-id> <pod-namespace> <member-fragment-path>` to add one member to an
71
+ existing pod.
72
+
53
73
  ## Don't use this when
54
74
 
55
75
  - The rig is being created fresh from scratch — use `rig up` (lifecycle, not mutation)
@@ -89,6 +109,7 @@ adding or removing a seat from replacing its occupant; use
89
109
 
90
110
  Per `cli-reference.md` v0.2.0:
91
111
 
112
+ - `rig grow <rig-id> <member...> [--pod <pod> | --new-pod <pod>] [--runtime <runtime>] [--cwd <path>]` (added after v0.2.0; check `rig grow --help`)
92
113
  - `rig expand <rig-id> <pod-fragment-path>` (with optional `session_source`)
93
114
  - `rig shrink <rigId> <podRef>`
94
115
  - `rig launch <rigId> <nodeRef>`
@@ -114,7 +135,7 @@ unfinished proof obligation is implied by loading this skill.
114
135
 
115
136
  ## See also
116
137
 
117
- - `openrig-user` skill — CLI surface for `rig expand / shrink / launch / remove / bind / adopt / attach`
138
+ - `openrig-user` skill — CLI surface for `rig grow / expand / shrink / launch / remove / bind / adopt / attach`
118
139
  - `seat-scaling-and-specialization` skill — when to add specialized capacity vs generic
119
140
  - `seat-continuity-and-handover` skill — replacing an occupant on a stable seat (different shape than topology mutation)
120
141
  - `cross-host-rig-commands` skill — cross-host topology mutation (deferred)
@@ -12,21 +12,15 @@ profiles:
12
12
  default:
13
13
  uses:
14
14
  skills: [openrig-architect, requirements-writer]
15
- guidance: [role]
15
+ guidance: []
16
16
  subagents: []
17
17
  plugins: [shared:openrig-core]
18
18
  runtime_resources: [shared:claude-default-settings, shared:claude-default-mcp, shared:codex-default-config, shared:claude-activity-hooks]
19
19
 
20
- resources:
21
- guidance:
22
- - id: role
23
- path: guidance/role.md
24
- target: CLAUDE.md
25
- merge: managed_block
26
-
27
20
  startup:
28
21
  files:
29
22
  - path: guidance/role.md
23
+ orientation: role
30
24
  delivery_hint: send_text
31
25
  required: true
32
26
  - path: startup/context.md