@openrig/cli 0.4.4 → 0.4.7

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 (678) hide show
  1. package/daemon/assets/guidance/CULTURE-default.md +19 -0
  2. package/daemon/assets/guidance/openrig-start.md +20 -5
  3. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  4. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -6
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +11 -72
  6. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +34 -22
  7. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +108 -0
  8. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +11 -16
  9. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +95 -0
  10. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +819 -101
  11. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +26 -9
  12. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +11 -9
  13. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +162 -0
  14. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +165 -0
  15. package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
  16. package/daemon/dist/adapters/cmux-transport.js +8 -1
  17. package/daemon/dist/adapters/cmux-transport.js.map +1 -1
  18. package/daemon/dist/adapters/cmux.d.ts +9 -0
  19. package/daemon/dist/adapters/cmux.d.ts.map +1 -1
  20. package/daemon/dist/adapters/cmux.js +21 -0
  21. package/daemon/dist/adapters/cmux.js.map +1 -1
  22. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
  23. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  24. package/daemon/dist/adapters/codex-runtime-adapter.js +32 -12
  25. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  26. package/daemon/dist/adapters/pi-resume.d.ts +32 -0
  27. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -0
  28. package/daemon/dist/adapters/pi-resume.js +125 -0
  29. package/daemon/dist/adapters/pi-resume.js.map +1 -0
  30. package/daemon/dist/adapters/pi-runner-protocol.d.ts +88 -0
  31. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -0
  32. package/daemon/dist/adapters/pi-runner-protocol.js +153 -0
  33. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -0
  34. package/daemon/dist/adapters/pi-runner.d.ts +99 -0
  35. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -0
  36. package/daemon/dist/adapters/pi-runner.js +519 -0
  37. package/daemon/dist/adapters/pi-runner.js.map +1 -0
  38. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +61 -0
  39. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -0
  40. package/daemon/dist/adapters/pi-runtime-adapter.js +356 -0
  41. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -0
  42. package/daemon/dist/adapters/tmux.d.ts +22 -1
  43. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  44. package/daemon/dist/adapters/tmux.js +40 -1
  45. package/daemon/dist/adapters/tmux.js.map +1 -1
  46. package/daemon/dist/build-info.js +3 -3
  47. package/daemon/dist/builtins/workflow-specs/branched-remediation.yaml +31 -0
  48. package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +152 -0
  49. package/daemon/dist/builtins/workflow-specs/gated-release.yaml +26 -0
  50. package/daemon/dist/builtins/workflow-specs/linear-build.yaml +21 -0
  51. package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts +20 -0
  52. package/daemon/dist/db/migrations/049_workflow_instance_version.d.ts.map +1 -0
  53. package/daemon/dist/db/migrations/049_workflow_instance_version.js +24 -0
  54. package/daemon/dist/db/migrations/049_workflow_instance_version.js.map +1 -0
  55. package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts +22 -0
  56. package/daemon/dist/db/migrations/050_workflow_spec_json.d.ts.map +1 -0
  57. package/daemon/dist/db/migrations/050_workflow_spec_json.js +26 -0
  58. package/daemon/dist/db/migrations/050_workflow_spec_json.js.map +1 -0
  59. package/daemon/dist/db/migrations/051_workflow_resume.d.ts +22 -0
  60. package/daemon/dist/db/migrations/051_workflow_resume.d.ts.map +1 -0
  61. package/daemon/dist/db/migrations/051_workflow_resume.js +27 -0
  62. package/daemon/dist/db/migrations/051_workflow_resume.js.map +1 -0
  63. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts +26 -0
  64. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.d.ts.map +1 -0
  65. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js +30 -0
  66. package/daemon/dist/db/migrations/052_workflow_instance_bound_rig.js.map +1 -0
  67. package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts +48 -0
  68. package/daemon/dist/db/migrations/053_sessions_node_id_index.d.ts.map +1 -0
  69. package/daemon/dist/db/migrations/053_sessions_node_id_index.js +53 -0
  70. package/daemon/dist/db/migrations/053_sessions_node_id_index.js.map +1 -0
  71. package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts +34 -0
  72. package/daemon/dist/db/migrations/054_queue_transitions_archive.d.ts.map +1 -0
  73. package/daemon/dist/db/migrations/054_queue_transitions_archive.js +49 -0
  74. package/daemon/dist/db/migrations/054_queue_transitions_archive.js.map +1 -0
  75. package/daemon/dist/domain/claim-service.d.ts +11 -0
  76. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  77. package/daemon/dist/domain/claim-service.js +3 -1
  78. package/daemon/dist/domain/claim-service.js.map +1 -1
  79. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -0
  80. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  81. package/daemon/dist/domain/claude-compaction-enforcer.js +19 -3
  82. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  83. package/daemon/dist/domain/cmux-layout-service.d.ts +36 -0
  84. package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
  85. package/daemon/dist/domain/cmux-layout-service.js +100 -28
  86. package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
  87. package/daemon/dist/domain/context-monitor.d.ts +2 -0
  88. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  89. package/daemon/dist/domain/context-monitor.js +14 -0
  90. package/daemon/dist/domain/context-monitor.js.map +1 -1
  91. package/daemon/dist/domain/discovery-types.d.ts +1 -1
  92. package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
  93. package/daemon/dist/domain/feed/attention-aggregator.js +1 -1
  94. package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -1
  95. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +1 -0
  96. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  97. package/daemon/dist/domain/hosts/hosts-registry-reader.js +31 -10
  98. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  99. package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts +11 -0
  100. package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -0
  101. package/daemon/dist/domain/hosts/hosts-registry-writer.js +55 -0
  102. package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -0
  103. package/daemon/dist/domain/hosts/read-through.d.ts +28 -0
  104. package/daemon/dist/domain/hosts/read-through.d.ts.map +1 -0
  105. package/daemon/dist/domain/hosts/read-through.js +139 -0
  106. package/daemon/dist/domain/hosts/read-through.js.map +1 -0
  107. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +21 -0
  108. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  109. package/daemon/dist/domain/hosts/remote-daemon-http.js +56 -4
  110. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  111. package/daemon/dist/domain/node-inventory.d.ts +10 -1
  112. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  113. package/daemon/dist/domain/node-inventory.js +250 -97
  114. package/daemon/dist/domain/node-inventory.js.map +1 -1
  115. package/daemon/dist/domain/node-launcher.d.ts +11 -0
  116. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  117. package/daemon/dist/domain/node-launcher.js +10 -0
  118. package/daemon/dist/domain/node-launcher.js.map +1 -1
  119. package/daemon/dist/domain/plugin-vendor-service.d.ts +2 -0
  120. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  121. package/daemon/dist/domain/plugin-vendor-service.js +23 -0
  122. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  123. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +7 -0
  124. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  125. package/daemon/dist/domain/policies/workflow-keepalive.js +93 -13
  126. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  127. package/daemon/dist/domain/projection-lane.d.ts +7 -0
  128. package/daemon/dist/domain/projection-lane.d.ts.map +1 -0
  129. package/daemon/dist/domain/projection-lane.js +28 -0
  130. package/daemon/dist/domain/projection-lane.js.map +1 -0
  131. package/daemon/dist/domain/ps-projection.d.ts +19 -0
  132. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  133. package/daemon/dist/domain/ps-projection.js +81 -30
  134. package/daemon/dist/domain/ps-projection.js.map +1 -1
  135. package/daemon/dist/domain/queue-repository.d.ts +116 -7
  136. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  137. package/daemon/dist/domain/queue-repository.js +226 -16
  138. package/daemon/dist/domain/queue-repository.js.map +1 -1
  139. package/daemon/dist/domain/queue-retention.d.ts +130 -0
  140. package/daemon/dist/domain/queue-retention.d.ts.map +1 -0
  141. package/daemon/dist/domain/queue-retention.js +224 -0
  142. package/daemon/dist/domain/queue-retention.js.map +1 -0
  143. package/daemon/dist/domain/restore-orchestrator.d.ts +5 -0
  144. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  145. package/daemon/dist/domain/restore-orchestrator.js +29 -2
  146. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  147. package/daemon/dist/domain/resume-token-capture.d.ts +13 -0
  148. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  149. package/daemon/dist/domain/resume-token-capture.js +14 -1
  150. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  151. package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
  152. package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
  153. package/daemon/dist/domain/resume-token-validation.js +58 -10
  154. package/daemon/dist/domain/resume-token-validation.js.map +1 -1
  155. package/daemon/dist/domain/review/compose.d.ts +127 -5
  156. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  157. package/daemon/dist/domain/review/compose.js +244 -19
  158. package/daemon/dist/domain/review/compose.js.map +1 -1
  159. package/daemon/dist/domain/review/fleet-compose.d.ts +52 -0
  160. package/daemon/dist/domain/review/fleet-compose.d.ts.map +1 -0
  161. package/daemon/dist/domain/review/fleet-compose.js +294 -0
  162. package/daemon/dist/domain/review/fleet-compose.js.map +1 -0
  163. package/daemon/dist/domain/review/gather.d.ts +17 -2
  164. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  165. package/daemon/dist/domain/review/gather.js +269 -108
  166. package/daemon/dist/domain/review/gather.js.map +1 -1
  167. package/daemon/dist/domain/review/proof-io.d.ts +2 -0
  168. package/daemon/dist/domain/review/proof-io.d.ts.map +1 -0
  169. package/daemon/dist/domain/review/proof-io.js +38 -0
  170. package/daemon/dist/domain/review/proof-io.js.map +1 -0
  171. package/daemon/dist/domain/review/types.d.ts +104 -1
  172. package/daemon/dist/domain/review/types.d.ts.map +1 -1
  173. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  174. package/daemon/dist/domain/rig-expansion-service.js +3 -0
  175. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  176. package/daemon/dist/domain/rig-repository.d.ts +7 -6
  177. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  178. package/daemon/dist/domain/rig-repository.js +33 -11
  179. package/daemon/dist/domain/rig-repository.js.map +1 -1
  180. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  181. package/daemon/dist/domain/rigspec-codec.js +3 -0
  182. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  183. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  184. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  185. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  186. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  187. package/daemon/dist/domain/rigspec-instantiator.js +26 -2
  188. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  189. package/daemon/dist/domain/rigspec-preflight.d.ts +6 -0
  190. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  191. package/daemon/dist/domain/rigspec-preflight.js +26 -1
  192. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  193. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  194. package/daemon/dist/domain/rigspec-schema.js +20 -1
  195. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  196. package/daemon/dist/domain/runtime-verifier.d.ts +7 -1
  197. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  198. package/daemon/dist/domain/runtime-verifier.js +39 -1
  199. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  200. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +8 -0
  201. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -0
  202. package/daemon/dist/domain/scope/plan-lock-artifacts.js +57 -0
  203. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -0
  204. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +38 -0
  205. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -0
  206. package/daemon/dist/domain/scope/scaffold-placeholder.js +98 -0
  207. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -0
  208. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  209. package/daemon/dist/domain/scope/scope-approve.js +22 -1
  210. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  211. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  212. package/daemon/dist/domain/scope/scope-audit.js +57 -20
  213. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  214. package/daemon/dist/domain/seat-handover-service.d.ts +9 -0
  215. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  216. package/daemon/dist/domain/seat-handover-service.js +2 -0
  217. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  218. package/daemon/dist/domain/seat-identity-store.d.ts +7 -0
  219. package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
  220. package/daemon/dist/domain/seat-identity-store.js +27 -0
  221. package/daemon/dist/domain/seat-identity-store.js.map +1 -1
  222. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  223. package/daemon/dist/domain/seat-status-service.js +6 -4
  224. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  225. package/daemon/dist/domain/session-name.d.ts +22 -0
  226. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  227. package/daemon/dist/domain/session-name.js +29 -0
  228. package/daemon/dist/domain/session-name.js.map +1 -1
  229. package/daemon/dist/domain/session-transport.d.ts +17 -0
  230. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  231. package/daemon/dist/domain/session-transport.js +44 -0
  232. package/daemon/dist/domain/session-transport.js.map +1 -1
  233. package/daemon/dist/domain/slices/qitem-membership.d.ts +17 -0
  234. package/daemon/dist/domain/slices/qitem-membership.d.ts.map +1 -0
  235. package/daemon/dist/domain/slices/qitem-membership.js +60 -0
  236. package/daemon/dist/domain/slices/qitem-membership.js.map +1 -0
  237. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +5 -0
  238. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  239. package/daemon/dist/domain/slices/slice-detail-projector.js +161 -16
  240. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  241. package/daemon/dist/domain/slices/slice-indexer.d.ts +86 -0
  242. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  243. package/daemon/dist/domain/slices/slice-indexer.js +422 -45
  244. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  245. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +18 -2
  246. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  247. package/daemon/dist/domain/spec-library-workflow-scanner.js +23 -1
  248. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  249. package/daemon/dist/domain/startup-orchestrator.d.ts +9 -0
  250. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  251. package/daemon/dist/domain/startup-orchestrator.js +71 -3
  252. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  253. package/daemon/dist/domain/startup-proof.d.ts +10 -6
  254. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  255. package/daemon/dist/domain/startup-proof.js +35 -7
  256. package/daemon/dist/domain/startup-proof.js.map +1 -1
  257. package/daemon/dist/domain/successor-session-launcher.d.ts +16 -0
  258. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  259. package/daemon/dist/domain/successor-session-launcher.js +13 -0
  260. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  261. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +28 -0
  262. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -0
  263. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +100 -0
  264. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -0
  265. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +94 -0
  266. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -0
  267. package/daemon/dist/domain/terminal/herdr-adapter.js +307 -0
  268. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -0
  269. package/daemon/dist/domain/terminal/herdr-transport.d.ts +50 -0
  270. package/daemon/dist/domain/terminal/herdr-transport.d.ts.map +1 -0
  271. package/daemon/dist/domain/terminal/herdr-transport.js +145 -0
  272. package/daemon/dist/domain/terminal/herdr-transport.js.map +1 -0
  273. package/daemon/dist/domain/terminal/terminal-provider.d.ts +88 -0
  274. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -0
  275. package/daemon/dist/domain/terminal/terminal-provider.js +17 -0
  276. package/daemon/dist/domain/terminal/terminal-provider.js.map +1 -0
  277. package/daemon/dist/domain/terminal/terminal-service.d.ts +60 -0
  278. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -0
  279. package/daemon/dist/domain/terminal/terminal-service.js +174 -0
  280. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -0
  281. package/daemon/dist/domain/terminal/terminal-views-store.d.ts +77 -0
  282. package/daemon/dist/domain/terminal/terminal-views-store.d.ts.map +1 -0
  283. package/daemon/dist/domain/terminal/terminal-views-store.js +146 -0
  284. package/daemon/dist/domain/terminal/terminal-views-store.js.map +1 -0
  285. package/daemon/dist/domain/terminal/view-composer.d.ts +42 -0
  286. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -0
  287. package/daemon/dist/domain/terminal/view-composer.js +137 -0
  288. package/daemon/dist/domain/terminal/view-composer.js.map +1 -0
  289. package/daemon/dist/domain/tmux-option-defaults.d.ts +89 -0
  290. package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -0
  291. package/daemon/dist/domain/tmux-option-defaults.js +132 -0
  292. package/daemon/dist/domain/tmux-option-defaults.js.map +1 -0
  293. package/daemon/dist/domain/transcript-capture.d.ts +3 -0
  294. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  295. package/daemon/dist/domain/transcript-capture.js +28 -0
  296. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  297. package/daemon/dist/domain/transcript-store.d.ts +10 -0
  298. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  299. package/daemon/dist/domain/transcript-store.js +26 -0
  300. package/daemon/dist/domain/transcript-store.js.map +1 -1
  301. package/daemon/dist/domain/types.d.ts +38 -1
  302. package/daemon/dist/domain/types.d.ts.map +1 -1
  303. package/daemon/dist/domain/types.js.map +1 -1
  304. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  305. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  306. package/daemon/dist/domain/user-settings/settings-store.js +92 -0
  307. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  308. package/daemon/dist/domain/workflow/slice-workflow-projection.d.ts.map +1 -1
  309. package/daemon/dist/domain/workflow/slice-workflow-projection.js +6 -2
  310. package/daemon/dist/domain/workflow/slice-workflow-projection.js.map +1 -1
  311. package/daemon/dist/domain/workflow-boot-sweep.d.ts +28 -0
  312. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -0
  313. package/daemon/dist/domain/workflow-boot-sweep.js +102 -0
  314. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -0
  315. package/daemon/dist/domain/workflow-deadline.d.ts +74 -0
  316. package/daemon/dist/domain/workflow-deadline.d.ts.map +1 -0
  317. package/daemon/dist/domain/workflow-deadline.js +165 -0
  318. package/daemon/dist/domain/workflow-deadline.js.map +1 -0
  319. package/daemon/dist/domain/workflow-exception-escalation.d.ts +33 -0
  320. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -0
  321. package/daemon/dist/domain/workflow-exception-escalation.js +104 -0
  322. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -0
  323. package/daemon/dist/domain/workflow-exception-router.d.ts +33 -0
  324. package/daemon/dist/domain/workflow-exception-router.d.ts.map +1 -0
  325. package/daemon/dist/domain/workflow-exception-router.js +96 -0
  326. package/daemon/dist/domain/workflow-exception-router.js.map +1 -0
  327. package/daemon/dist/domain/workflow-exception.d.ts +90 -0
  328. package/daemon/dist/domain/workflow-exception.d.ts.map +1 -0
  329. package/daemon/dist/domain/workflow-exception.js +122 -0
  330. package/daemon/dist/domain/workflow-exception.js.map +1 -0
  331. package/daemon/dist/domain/workflow-frontier-guard.d.ts +24 -0
  332. package/daemon/dist/domain/workflow-frontier-guard.d.ts.map +1 -0
  333. package/daemon/dist/domain/workflow-frontier-guard.js +30 -0
  334. package/daemon/dist/domain/workflow-frontier-guard.js.map +1 -0
  335. package/daemon/dist/domain/workflow-instance-store.d.ts +28 -0
  336. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  337. package/daemon/dist/domain/workflow-instance-store.js +66 -10
  338. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  339. package/daemon/dist/domain/workflow-keepalive-arming.d.ts +35 -0
  340. package/daemon/dist/domain/workflow-keepalive-arming.d.ts.map +1 -0
  341. package/daemon/dist/domain/workflow-keepalive-arming.js +87 -0
  342. package/daemon/dist/domain/workflow-keepalive-arming.js.map +1 -0
  343. package/daemon/dist/domain/workflow-projector.d.ts +117 -2
  344. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  345. package/daemon/dist/domain/workflow-projector.js +672 -41
  346. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  347. package/daemon/dist/domain/workflow-role-context.d.ts +57 -0
  348. package/daemon/dist/domain/workflow-role-context.d.ts.map +1 -0
  349. package/daemon/dist/domain/workflow-role-context.js +120 -0
  350. package/daemon/dist/domain/workflow-role-context.js.map +1 -0
  351. package/daemon/dist/domain/workflow-role-resolver.d.ts +65 -0
  352. package/daemon/dist/domain/workflow-role-resolver.d.ts.map +1 -0
  353. package/daemon/dist/domain/workflow-role-resolver.js +108 -0
  354. package/daemon/dist/domain/workflow-role-resolver.js.map +1 -0
  355. package/daemon/dist/domain/workflow-runtime.d.ts +157 -1
  356. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  357. package/daemon/dist/domain/workflow-runtime.js +718 -11
  358. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  359. package/daemon/dist/domain/workflow-spec-cache.d.ts +26 -1
  360. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  361. package/daemon/dist/domain/workflow-spec-cache.js +327 -13
  362. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  363. package/daemon/dist/domain/workflow-types.d.ts +143 -8
  364. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  365. package/daemon/dist/domain/workflow-types.js +14 -1
  366. package/daemon/dist/domain/workflow-types.js.map +1 -1
  367. package/daemon/dist/domain/workflow-validator.d.ts +11 -1
  368. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  369. package/daemon/dist/domain/workflow-validator.js +246 -1
  370. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  371. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  372. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +9 -4
  373. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  374. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  375. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  376. package/daemon/dist/index.d.ts +17 -0
  377. package/daemon/dist/index.d.ts.map +1 -1
  378. package/daemon/dist/index.js +44 -0
  379. package/daemon/dist/index.js.map +1 -1
  380. package/daemon/dist/routes/activity.js +22 -0
  381. package/daemon/dist/routes/activity.js.map +1 -1
  382. package/daemon/dist/routes/hosts.d.ts +5 -0
  383. package/daemon/dist/routes/hosts.d.ts.map +1 -0
  384. package/daemon/dist/routes/hosts.js +346 -0
  385. package/daemon/dist/routes/hosts.js.map +1 -0
  386. package/daemon/dist/routes/mission-control.js +1 -1
  387. package/daemon/dist/routes/mission-control.js.map +1 -1
  388. package/daemon/dist/routes/missions.d.ts +7 -0
  389. package/daemon/dist/routes/missions.d.ts.map +1 -1
  390. package/daemon/dist/routes/missions.js +6 -1
  391. package/daemon/dist/routes/missions.js.map +1 -1
  392. package/daemon/dist/routes/ps.d.ts.map +1 -1
  393. package/daemon/dist/routes/ps.js +5 -1
  394. package/daemon/dist/routes/ps.js.map +1 -1
  395. package/daemon/dist/routes/queue.d.ts +2 -7
  396. package/daemon/dist/routes/queue.d.ts.map +1 -1
  397. package/daemon/dist/routes/queue.js +272 -10
  398. package/daemon/dist/routes/queue.js.map +1 -1
  399. package/daemon/dist/routes/review.d.ts.map +1 -1
  400. package/daemon/dist/routes/review.js +26 -0
  401. package/daemon/dist/routes/review.js.map +1 -1
  402. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  403. package/daemon/dist/routes/rigs.js +21 -10
  404. package/daemon/dist/routes/rigs.js.map +1 -1
  405. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  406. package/daemon/dist/routes/scope-audit.js +141 -135
  407. package/daemon/dist/routes/scope-audit.js.map +1 -1
  408. package/daemon/dist/routes/seat.js +13 -0
  409. package/daemon/dist/routes/seat.js.map +1 -1
  410. package/daemon/dist/routes/sessions.js +2 -1
  411. package/daemon/dist/routes/sessions.js.map +1 -1
  412. package/daemon/dist/routes/slices.d.ts.map +1 -1
  413. package/daemon/dist/routes/slices.js +48 -38
  414. package/daemon/dist/routes/slices.js.map +1 -1
  415. package/daemon/dist/routes/terminal.d.ts +11 -0
  416. package/daemon/dist/routes/terminal.d.ts.map +1 -0
  417. package/daemon/dist/routes/terminal.js +104 -0
  418. package/daemon/dist/routes/terminal.js.map +1 -0
  419. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  420. package/daemon/dist/routes/transcripts.js +62 -33
  421. package/daemon/dist/routes/transcripts.js.map +1 -1
  422. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  423. package/daemon/dist/routes/workflow.js +102 -10
  424. package/daemon/dist/routes/workflow.js.map +1 -1
  425. package/daemon/dist/server.d.ts +5 -0
  426. package/daemon/dist/server.d.ts.map +1 -1
  427. package/daemon/dist/server.js +22 -0
  428. package/daemon/dist/server.js.map +1 -1
  429. package/daemon/dist/startup.d.ts.map +1 -1
  430. package/daemon/dist/startup.js +235 -12
  431. package/daemon/dist/startup.js.map +1 -1
  432. package/daemon/docs/reference/agent-startup-guide.md +1 -0
  433. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -1
  434. package/daemon/specs/agents/conveyor/builder/agent.yaml +2 -1
  435. package/daemon/specs/agents/conveyor/lead/agent.yaml +2 -1
  436. package/daemon/specs/agents/conveyor/planner/agent.yaml +2 -1
  437. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +2 -1
  438. package/daemon/specs/agents/design/product-designer/agent.yaml +12 -2
  439. package/daemon/specs/agents/development/implementer/agent.yaml +12 -2
  440. package/daemon/specs/agents/development/qa/agent.yaml +12 -2
  441. package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
  442. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +30 -0
  443. package/daemon/specs/agents/factory-rsi/dogfood/guidance/role.md +37 -0
  444. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +30 -0
  445. package/daemon/specs/agents/factory-rsi/release-manager/guidance/role.md +40 -0
  446. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +12 -2
  447. package/daemon/specs/agents/product-management/pm/agent.yaml +1 -2
  448. package/daemon/specs/agents/research/analyst/agent.yaml +2 -1
  449. package/daemon/specs/agents/research/synthesizer/agent.yaml +2 -1
  450. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +12 -2
  451. package/daemon/specs/agents/shared/agent.yaml +5 -8
  452. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +13 -1
  453. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +132 -0
  454. package/daemon/{assets/plugins/openrig-core/skills → specs/agents/shared/skills/core}/agent-startup-and-context-ingestion/SKILL.md +27 -19
  455. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +264 -0
  456. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +190 -0
  457. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +104 -0
  458. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +25 -8
  459. package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +81 -0
  460. package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +153 -0
  461. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +460 -0
  462. package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  463. package/daemon/specs/agents/shared/skills/core/rig-lifecycle/SKILL.md +22 -11
  464. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +160 -0
  465. package/daemon/specs/agents/shared/skills/core/specification-system/SKILL.md +103 -0
  466. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  467. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +125 -0
  468. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +4 -4
  469. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +3 -0
  470. package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +3 -3
  471. package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +1 -1
  472. package/daemon/specs/agents/shared/skills/process/frontend-design/SKILL.md +6 -3
  473. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +1 -1
  474. package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +1 -1
  475. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +12 -2
  476. package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +1 -1
  477. package/daemon/specs/rigs/focused/pm-team/CULTURE.md +1 -1
  478. package/daemon/specs/rigs/launch/factory-rsi/CULTURE.md +47 -0
  479. package/daemon/specs/rigs/launch/factory-rsi/rig.yaml +115 -0
  480. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -2
  481. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +5 -4
  482. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -2
  483. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -5
  484. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -2
  485. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +3 -4
  486. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  487. package/dist/bin-wrapper.d.ts.map +1 -1
  488. package/dist/bin-wrapper.js +3 -1
  489. package/dist/bin-wrapper.js.map +1 -1
  490. package/dist/build-info.js +3 -3
  491. package/dist/cli-error.d.ts +33 -0
  492. package/dist/cli-error.d.ts.map +1 -0
  493. package/dist/cli-error.js +94 -0
  494. package/dist/cli-error.js.map +1 -0
  495. package/dist/commands/broadcast.d.ts +6 -1
  496. package/dist/commands/broadcast.d.ts.map +1 -1
  497. package/dist/commands/broadcast.js +101 -15
  498. package/dist/commands/broadcast.js.map +1 -1
  499. package/dist/commands/capture.d.ts.map +1 -1
  500. package/dist/commands/capture.js +99 -8
  501. package/dist/commands/capture.js.map +1 -1
  502. package/dist/commands/config-init-workspace.js +1 -1
  503. package/dist/commands/config.d.ts.map +1 -1
  504. package/dist/commands/config.js +4 -0
  505. package/dist/commands/config.js.map +1 -1
  506. package/dist/commands/doctor.d.ts +1 -1
  507. package/dist/commands/doctor.d.ts.map +1 -1
  508. package/dist/commands/doctor.js +17 -11
  509. package/dist/commands/doctor.js.map +1 -1
  510. package/dist/commands/down.d.ts.map +1 -1
  511. package/dist/commands/down.js +5 -0
  512. package/dist/commands/down.js.map +1 -1
  513. package/dist/commands/host.d.ts +14 -0
  514. package/dist/commands/host.d.ts.map +1 -1
  515. package/dist/commands/host.js +361 -23
  516. package/dist/commands/host.js.map +1 -1
  517. package/dist/commands/launch.d.ts.map +1 -1
  518. package/dist/commands/launch.js +5 -0
  519. package/dist/commands/launch.js.map +1 -1
  520. package/dist/commands/proof.js +1 -1
  521. package/dist/commands/proof.js.map +1 -1
  522. package/dist/commands/ps.d.ts.map +1 -1
  523. package/dist/commands/ps.js +26 -6
  524. package/dist/commands/ps.js.map +1 -1
  525. package/dist/commands/queue.d.ts +36 -0
  526. package/dist/commands/queue.d.ts.map +1 -1
  527. package/dist/commands/queue.js +176 -31
  528. package/dist/commands/queue.js.map +1 -1
  529. package/dist/commands/restore-packet.d.ts.map +1 -1
  530. package/dist/commands/restore-packet.js +13 -2
  531. package/dist/commands/restore-packet.js.map +1 -1
  532. package/dist/commands/rig.d.ts.map +1 -1
  533. package/dist/commands/rig.js +122 -0
  534. package/dist/commands/rig.js.map +1 -1
  535. package/dist/commands/scope.js +2 -2
  536. package/dist/commands/scope.js.map +1 -1
  537. package/dist/commands/send.d.ts.map +1 -1
  538. package/dist/commands/send.js +229 -30
  539. package/dist/commands/send.js.map +1 -1
  540. package/dist/commands/slack.d.ts +37 -0
  541. package/dist/commands/slack.d.ts.map +1 -0
  542. package/dist/commands/slack.js +274 -0
  543. package/dist/commands/slack.js.map +1 -0
  544. package/dist/commands/terminal.d.ts +6 -0
  545. package/dist/commands/terminal.d.ts.map +1 -0
  546. package/dist/commands/terminal.js +116 -0
  547. package/dist/commands/terminal.js.map +1 -0
  548. package/dist/commands/transcript.d.ts +6 -1
  549. package/dist/commands/transcript.d.ts.map +1 -1
  550. package/dist/commands/transcript.js +113 -30
  551. package/dist/commands/transcript.js.map +1 -1
  552. package/dist/commands/ui.d.ts +1 -0
  553. package/dist/commands/ui.d.ts.map +1 -1
  554. package/dist/commands/ui.js +2 -0
  555. package/dist/commands/ui.js.map +1 -1
  556. package/dist/commands/up.d.ts.map +1 -1
  557. package/dist/commands/up.js +10 -1
  558. package/dist/commands/up.js.map +1 -1
  559. package/dist/commands/whoami.d.ts.map +1 -1
  560. package/dist/commands/whoami.js +14 -3
  561. package/dist/commands/whoami.js.map +1 -1
  562. package/dist/commands/workflow-errors.d.ts +23 -0
  563. package/dist/commands/workflow-errors.d.ts.map +1 -0
  564. package/dist/commands/workflow-errors.js +100 -0
  565. package/dist/commands/workflow-errors.js.map +1 -0
  566. package/dist/commands/workflow-follow.d.ts +71 -0
  567. package/dist/commands/workflow-follow.d.ts.map +1 -0
  568. package/dist/commands/workflow-follow.js +259 -0
  569. package/dist/commands/workflow-follow.js.map +1 -0
  570. package/dist/commands/workflow-render.d.ts +114 -0
  571. package/dist/commands/workflow-render.d.ts.map +1 -0
  572. package/dist/commands/workflow-render.js +223 -0
  573. package/dist/commands/workflow-render.js.map +1 -0
  574. package/dist/commands/workflow.d.ts +1 -0
  575. package/dist/commands/workflow.d.ts.map +1 -1
  576. package/dist/commands/workflow.js +278 -14
  577. package/dist/commands/workflow.js.map +1 -1
  578. package/dist/config-store.d.ts +15 -1
  579. package/dist/config-store.d.ts.map +1 -1
  580. package/dist/config-store.js +103 -0
  581. package/dist/config-store.js.map +1 -1
  582. package/dist/cross-host-cli-helpers.d.ts +13 -0
  583. package/dist/cross-host-cli-helpers.d.ts.map +1 -1
  584. package/dist/cross-host-cli-helpers.js +27 -0
  585. package/dist/cross-host-cli-helpers.js.map +1 -1
  586. package/dist/cross-host-target.d.ts +49 -0
  587. package/dist/cross-host-target.d.ts.map +1 -0
  588. package/dist/cross-host-target.js +35 -0
  589. package/dist/cross-host-target.js.map +1 -0
  590. package/dist/daemon-lifecycle.d.ts.map +1 -1
  591. package/dist/daemon-lifecycle.js +45 -14
  592. package/dist/daemon-lifecycle.js.map +1 -1
  593. package/dist/host-registry.d.ts +14 -1
  594. package/dist/host-registry.d.ts.map +1 -1
  595. package/dist/host-registry.js +47 -6
  596. package/dist/host-registry.js.map +1 -1
  597. package/dist/host-selection.d.ts +13 -0
  598. package/dist/host-selection.d.ts.map +1 -0
  599. package/dist/host-selection.js +54 -0
  600. package/dist/host-selection.js.map +1 -0
  601. package/dist/index.d.ts +5 -0
  602. package/dist/index.d.ts.map +1 -1
  603. package/dist/index.js +8 -1
  604. package/dist/index.js.map +1 -1
  605. package/dist/lib/scope/scaffold-placeholder.d.ts +38 -0
  606. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -0
  607. package/dist/lib/scope/scaffold-placeholder.js +98 -0
  608. package/dist/lib/scope/scaffold-placeholder.js.map +1 -0
  609. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  610. package/dist/lib/scope/scope-audit.js +57 -20
  611. package/dist/lib/scope/scope-audit.js.map +1 -1
  612. package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
  613. package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
  614. package/dist/lib/scope-templates/bug-fix.md +1 -1
  615. package/dist/lib/scope-templates/implementation-prd.md +1 -1
  616. package/dist/lib/scope-templates/mission-notes.md +7 -2
  617. package/dist/lib/scope-templates/mission-placeholder.md +1 -1
  618. package/dist/lib/scope-templates/mission-progress.md +1 -1
  619. package/dist/lib/scope-templates/mission-release.md +1 -1
  620. package/dist/lib/scope-templates/placeholder.md +1 -1
  621. package/dist/lib/scope-templates/proof.md +1 -1
  622. package/dist/lib/scope-templates/release-feature.md +1 -1
  623. package/dist/lib/scope-templates/research.md +1 -1
  624. package/dist/lib/scope-templates/slice-progress.md +1 -1
  625. package/dist/remote-host-ops.d.ts +1 -0
  626. package/dist/remote-host-ops.d.ts.map +1 -1
  627. package/dist/remote-host-ops.js +13 -6
  628. package/dist/remote-host-ops.js.map +1 -1
  629. package/dist/session-name.d.ts +23 -0
  630. package/dist/session-name.d.ts.map +1 -0
  631. package/dist/session-name.js +61 -0
  632. package/dist/session-name.js.map +1 -0
  633. package/dist/slack/config.d.ts +41 -0
  634. package/dist/slack/config.d.ts.map +1 -0
  635. package/dist/slack/config.js +60 -0
  636. package/dist/slack/config.js.map +1 -0
  637. package/dist/slack/inbound.d.ts +75 -0
  638. package/dist/slack/inbound.d.ts.map +1 -0
  639. package/dist/slack/inbound.js +133 -0
  640. package/dist/slack/inbound.js.map +1 -0
  641. package/dist/slack/message.d.ts +26 -0
  642. package/dist/slack/message.d.ts.map +1 -0
  643. package/dist/slack/message.js +60 -0
  644. package/dist/slack/message.js.map +1 -0
  645. package/dist/slack/outbound.d.ts +39 -0
  646. package/dist/slack/outbound.d.ts.map +1 -0
  647. package/dist/slack/outbound.js +52 -0
  648. package/dist/slack/outbound.js.map +1 -0
  649. package/dist/slack/queue-bridge.d.ts +56 -0
  650. package/dist/slack/queue-bridge.d.ts.map +1 -0
  651. package/dist/slack/queue-bridge.js +114 -0
  652. package/dist/slack/queue-bridge.js.map +1 -0
  653. package/dist/slack/secrets.d.ts +21 -0
  654. package/dist/slack/secrets.d.ts.map +1 -0
  655. package/dist/slack/secrets.js +73 -0
  656. package/dist/slack/secrets.js.map +1 -0
  657. package/dist/slack/slack-api.d.ts +49 -0
  658. package/dist/slack/slack-api.d.ts.map +1 -0
  659. package/dist/slack/slack-api.js +110 -0
  660. package/dist/slack/slack-api.js.map +1 -0
  661. package/dist/slack/state-store.d.ts +62 -0
  662. package/dist/slack/state-store.d.ts.map +1 -0
  663. package/dist/slack/state-store.js +132 -0
  664. package/dist/slack/state-store.js.map +1 -0
  665. package/package.json +1 -1
  666. package/ui/dist/assets/index-DkNi0RT8.js +623 -0
  667. package/ui/dist/assets/index-N-SdPj-I.css +32 -0
  668. package/ui/dist/index.html +2 -2
  669. package/daemon/assets/plugins/openrig-core/skills/openrig-architect/SKILL.md +0 -361
  670. package/daemon/assets/plugins/openrig-core/skills/openrig-operator/SKILL.md +0 -222
  671. package/daemon/docs/reference/product-factory-vps-runbook.md +0 -132
  672. package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +0 -115
  673. package/daemon/specs/agents/shared/skills/core/openrig-installer/SKILL.md +0 -142
  674. package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +0 -110
  675. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +0 -1245
  676. package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +0 -153
  677. package/ui/dist/assets/index-D69ZhNIr.js +0 -598
  678. package/ui/dist/assets/index-DJYun-8d.css +0 -32
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: cross-host-rig-commands
3
+ description: Use when issuing `rig` commands against a remote host via `--host <id>` flag (single-hop SSH to a host declared in `~/.openrig/hosts.yaml`). Covers the 4 structured failure modes (ssh-unreachable / permission-gate / remote-daemon-unreachable / remote-command-failed), the `--verify` honest pass-through (SSH success is NOT verify success), and the host-registry shape. v0 supports `rig send / capture / ps / whoami --host <id>`.
4
+ metadata:
5
+ cli_surfaces_referenced:
6
+ - capture
7
+ - daemon start
8
+ - host list
9
+ - host show
10
+ - ps
11
+ - send
12
+ - whoami
13
+ openrig:
14
+ stage: factory-approved
15
+ sibling_skills:
16
+ - rig-lifecycle
17
+ - topology-mutation-and-seat-management
18
+ - seat-scaling-and-specialization
19
+ - sidecar-operator
20
+ - rig-bundles-and-shareable-artifacts
21
+ - specification-system
22
+ - extension-and-user-workspace
23
+ ---
24
+
25
+ # Cross-Host Rig Commands
26
+
27
+ A first-class OpenRig surface for issuing `rig` commands against a
28
+ remote host via single-hop SSH. v0 productizes the existing SSH-envelope
29
+ operator pattern (`ssh <host> rig <cmd>`) with declared host identity,
30
+ explicit cross-host invocation path, preserved `--verify` semantics, and
31
+ 4 named failure modes.
32
+
33
+ **Current-host note (2026-07-14):** this skill still preserves the original
34
+ SSH-v0 doctrine below, but the live host registry may also contain HTTP
35
+ read-through/tunnel entries such as `your-vm` and `your-other-vm`. Use the
36
+ host registry entry as ground truth for transport shape, and use
37
+ `conventions/multi-host-naming/README.md` for host-id naming. HTTP entries
38
+ require `url` plus exactly one of `bearer_file` or `bearer_env`.
39
+
40
+ **v0 is CLI-side shell-out only — `packages/daemon/` is NOT touched.**
41
+ The remote host has its own managed `rig` available on `$PATH`.
42
+
43
+ ## Use this when
44
+
45
+ - Driving a Tart VM from the host (the immediate cross-host consumer)
46
+ - Operating Mac host A against Mac host B
47
+ - Reading remote state via `rig ps --host` / `rig whoami --host`
48
+ - Sending or capturing on a remote rig session (`rig send/capture --host <id>`)
49
+ - Authoring a `~/.openrig/hosts.yaml` registry entry
50
+
51
+ ## Don't use this when
52
+
53
+ - The target is local. Don't pass `--host` for local commands.
54
+ - You need multi-hop SSH (host A → host B → host C). v0 is single-hop only.
55
+ - You want reverse direction (remote initiates back to local). v0 is originator-pull only.
56
+ - Cross-host **seat handover** (moving a durable owned seat across hosts) — deferred to higher-level primitives. (Cross-host **queue writes**, by contrast, now ship — see "Cross-host queue writes" below.)
57
+ - The transport isn't SSH. v0 supports `transport: ssh` only.
58
+
59
+ ## Cross-host queue writes (updated 2026-07-21 vs main d37a08ad)
60
+
61
+ Cross-host **queue writes** are no longer deferred — they ship — but the rule
62
+ differs from the interactive verbs (`send`/`capture`/`ps`/`whoami`):
63
+
64
+ - **Queue writes are EXPLICIT-only.** Address the target host explicitly with
65
+ `--host <id>` or the `member@rig@<host>` form. A queue write **never** follows a
66
+ persisted host selection.
67
+ - **`host select` stickiness does NOT apply to queue.** `host select` affects the
68
+ `resolveEffectiveHost` verbs (`send`/`capture`/`ps`/`whoami`) — those follow the
69
+ selected host — but a queue write ignores it and requires explicit addressing.
70
+ - **Host address parsing differs** between the interactive verbs and the queue
71
+ verbs; do not assume the interactive form carries over. When unsure, address the
72
+ host explicitly.
73
+
74
+ ## Host registry shape (`~/.openrig/hosts.yaml`)
75
+
76
+ Host ids should follow the OpenRig-work multi-host naming convention:
77
+ `conventions/multi-host-naming/README.md`. In this environment that means
78
+ physical hosts such as `your-vm`, local OpenRig development VMs such as
79
+ `your-vm`, persistent product VMs such as `your-other-vm`, and VPS hosts such
80
+ as `your-vps`. Keep old aliases during migration until no live routing
81
+ depends on them.
82
+
83
+ ```yaml
84
+ hosts:
85
+ - id: a-test-vm
86
+ transport: ssh # v0 supports "ssh" only
87
+ target: a-test-vm.local # DNS name, SSH config alias, or IP
88
+ user: wrandom # optional
89
+ notes: "Tart VM" # optional
90
+ - id: laptop-b
91
+ transport: ssh
92
+ target: laptop-b.tail-scale-net
93
+ user: wrandom
94
+ ```
95
+
96
+ Validation rules:
97
+
98
+ - `hosts` required, non-null array
99
+ - Each entry: `id` required (non-empty, unique), `transport` required (`ssh` only), `target` required
100
+ - `user` and `notes` optional
101
+ - Operator-managed file; v0 does NOT include any sub-command to add/remove/list hosts (operators edit YAML directly)
102
+ - Missing or invalid file returns a clear error pointing at the canonical path
103
+
104
+ ## CLI surface (v0 shipped)
105
+
106
+ ```bash
107
+ rig send <session> "msg" --host <id> --verify
108
+ rig capture <session> --host <id>
109
+ rig ps --host <id> [--nodes] [...]
110
+ rig whoami --host <id>
111
+ ```
112
+
113
+ Forwards every shaping flag (`--nodes`, `--full`, `--limit`, `--fields`,
114
+ `--summary`, `--filter`, `--json`) to the remote `rig` invocation. The
115
+ remote rig's output is verbatim passthrough on success.
116
+
117
+ ## The 4 structured failure modes (load-bearing API contract)
118
+
119
+ The CLI distinguishes 4 failure modes; operators get an actionable error
120
+ per mode; JSON output preserves the `failedStep` enum:
121
+
122
+ | Mode | Cause | Action |
123
+ |---|---|---|
124
+ | `ssh-unreachable` | SSH itself failed (connection refused, host key mismatch, DNS failure, timeout) | Verify SSH access and the registry entry |
125
+ | `permission-gate` | SSH hit auth/permission gate (Permission denied, Keychain) | Error includes hint to keychain-over-SSH field note (L4-3 D6) |
126
+ | `remote-daemon-unreachable` | SSH succeeded but remote `rig` reported the remote daemon was not reachable | `ssh <target> rig daemon start` |
127
+ | `remote-command-failed` | SSH succeeded but remote `rig` exited non-zero for some other reason; remote stderr is surfaced | Read remote stderr; debug remote command |
128
+
129
+ Each is distinct and routable. Don't conflate them.
130
+
131
+ ## `--verify` honest pass-through (load-bearing)
132
+
133
+ `--verify` against a remote target must:
134
+
135
+ - **Propagate** the verification request to the remote daemon (or remote `rig` invocation that talks to it)
136
+ - **Bring back a structured verification result** (true/false + reason if false), NOT just SSH exit code 0
137
+ - **Distinguish "SSH succeeded but verify returned false" from "SSH itself failed"** — these are different operator actions
138
+
139
+ **SSH success is NOT verify success.** The remote rig is authoritative
140
+ on `--verify`; its `Verified: yes/no` line is surfaced verbatim. Verified
141
+ at 3 layers (executor unit, command integration, source impl).
142
+
143
+ ## Hard boundaries (do-not list)
144
+
145
+ - **Do NOT collapse `--verify` honest result into SSH exit code.** Operators and agents rely on the distinction.
146
+ - **Do NOT silently retry SSH failures inside the primitive.** Surface them; let the caller decide.
147
+ - **Do NOT introduce non-SSH transports in v0.** Goal is productizing the existing shipped pattern, not replacing it.
148
+ - **Do NOT touch host-side daemon code as part of v0.** Cross-host shape is on the originator side.
149
+
150
+ ## Cross-host annotation
151
+
152
+ Every cross-host invocation is observable as cross-host:
153
+
154
+ - **Operator output**: `[via host=<id> (<target>)]` annotation
155
+ - **JSON output**: `cross_host: { host, target }` field
156
+
157
+ Annotation is PRESENT when `--host` is set and ABSENT otherwise
158
+ (compat regression).
159
+
160
+ ## Currently shipped (v0) vs deferred
161
+
162
+ Shipped at openrig `cdce3a6` (2026-04-30):
163
+ - `--host <id>` flag on `rig send / capture / ps / whoami` (initial 2 commands; promoted to 4 at `6b7043a` same day)
164
+ - Read-only host registry validation
165
+ - Single-hop SSH executor with 4-mode `failedStep` enum
166
+ - `--verify` honest pass-through
167
+ - Cross-host annotation (operator + JSON)
168
+ - Daemon untouched
169
+
170
+ Deferred:
171
+ - Tier 2 real-runtime cross-host proof (disposable Tart VM cycle)
172
+ - `rig host list / show` read-only sub-namespace (only if host count grows past comfortable manual editing)
173
+ - Non-SSH transports
174
+ - Multi-hop SSH
175
+ - Reverse direction (remote initiates)
176
+ - Connection pooling/caching
177
+
178
+ ## See also
179
+
180
+ - `seat-continuity-and-handover` skill — host-aware seat-binding semantics for cross-host handover (deferred to v1 on top of this v0 baseline)
181
+ - `openrig-user` skill — the local CLI surface that cross-host commands wrap
182
+
183
+ ## Sender identity is ASYMMETRIC (verified vs current main, 2026-07-25)
184
+
185
+ The `@host` sugar is **target-addressing only**, not sender-identity. A cross-host
186
+ message's **From:** is `member@rig` — the sender carries **NO `@host` suffix**. The target
187
+ supports `member@rig@<host>` for addressing; the sender does not reflect its own host in
188
+ `From:`. **Do NOT teach or expect a host-qualified `from`** (in openrig-user / operator send
189
+ docs or anywhere) until that core gap is fixed. (pm@your-rig verified this against
190
+ current main, 2026-07-25 — a known asymmetry, not a doc error to paper over.)
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: human-in-the-loop
3
+ description: Use when classifying a slice closeout (auto-continue / human gate / park), routing a real decision to a human, or designing a human queue/dashboard surface. Treats humans as durable network participants with attention surfaces, queues, and decision records — escalation lands as a durable attention item, not a chat message. Approval is NOT required for every clean closeout; the default RSI conveyor continues unless an explicit human gate is reached.
4
+ metadata:
5
+ openrig:
6
+ stage: factory-approved
7
+ sibling_skills:
8
+ - queue-handoff
9
+ - workflow-runtime
10
+ - watchdog
11
+ - alignment-trace
12
+ - looping-workflows
13
+ - intake-routing
14
+ - attention-queue
15
+ - dispatching-parallel-agents
16
+ - subagent-driven-development
17
+ - control-plane-capabilities
18
+ - status-not-chat-orchestrator
19
+ - control-plane-queue
20
+ - control-plane-watchdog
21
+ - control-plane-workflows
22
+ - control-plane-delivery-loop
23
+ - control-plane-rollout-manager
24
+ ---
25
+
26
+ # Human In The Loop
27
+
28
+ The primitive that treats humans as **durable network participants** —
29
+ attention surfaces, queues, decision records, routing semantics — not
30
+ as ad-hoc chat receivers.
31
+
32
+ **Autonomy is not the absence of humans; it is knowing when human
33
+ judgment is needed and making that handoff crisp.**
34
+
35
+ ## Use this when
36
+
37
+ - A slice closeout needs classifying: auto-continue, human gate, or park
38
+ - A real decision needs to land in front of a human (usage limits, provider auth, roadmap tradeoff, product-intent ambiguity)
39
+ - Designing a human queue/dashboard surface
40
+ - Returning a hot potato to orchestration after human approval
41
+
42
+ ## Don't use this when
43
+
44
+ - The slice closeout is clean and `PROGRESS.md` already names the next safe slice. **Default RSI conveyor continues; do NOT manufacture a human gate.**
45
+ - The escalation is just a status update. Humans are participants for *decisions*, not narration.
46
+ - The next owner is another agent. Use queue-handoff, not human-in-the-loop.
47
+
48
+ ## The 3-class closeout classification
49
+
50
+ In a productized daemon-backed version, closeout classifies the next
51
+ step BEFORE touching the human queue:
52
+
53
+ | Class | When | Action |
54
+ |---|---|---|
55
+ | **auto-continue** | Slice closes cleanly, next named slice in workstream plan | Mark closed; create next-owner qitem from plan |
56
+ | **human gate** | Genuine decision needed (usage limits, provider auth, product-intent ambiguity, roadmap tradeoff) | Create human queue item with proof + decision text + recommended default + action outcomes |
57
+ | **park** | Intentionally stop the conveyor (e.g., waiting on external) | Stop with reason + resumption path |
58
+
59
+ ## Failure modes (5)
60
+
61
+ 1. **Human decision needed, but the rig only mentions it in chat.** Decisions belong as durable attention items, not chat messages.
62
+ 2. **Human queue item lacks enough plain-English context for a decision.** Include proof + decision text + recommended default + action outcomes.
63
+ 3. **Human response updates a file but does not wake the next owner.** Approval should return the hot potato; feedback should create the next durable qitem.
64
+ 4. **The dashboard shows too much raw rig state and hides the actual decision queue.** Decision queue is the primary surface; rig state is secondary.
65
+ 5. **A clean closeout is parked on the human even though `PROGRESS.md` already names the next safe slice.** Don't manufacture human gates.
66
+
67
+ ## Proof standard (both paths)
68
+
69
+ A trustworthy human-in-the-loop system proves both directions:
70
+
71
+ - **Blocking gate path**: real item routed to human → human decision recorded through UI → resulting hot-potato handoff wakes correct next owner
72
+ - **Non-blocking closeout path**: proof inspectable by human, but orchestrator continues to next named slice without manufacturing a human gate
73
+
74
+ A primitive that only wakes humans is not trustworthy. It must also know when NOT to.
75
+
76
+ ## Product shape (SHIPPED — Mission Control, PL-005)
77
+
78
+ This surface has shipped as **Mission Control** (product UI, `/mission-control`
79
+ route; actions via `POST /api/mission-control/action`). The seven verbs the
80
+ human acts with:
81
+ - **approve** (returns the hot potato to orchestration or the chosen owner)
82
+ - **deny** (reject the item)
83
+ - **route** (send to a different owner)
84
+ - **annotate** (add context without action)
85
+ - **hold** (intentional pause with reason)
86
+ - **drop** (mark not-actionable)
87
+ - **handoff** (hand to a specific next owner — creates the next durable qitem)
88
+
89
+ **Approval returns the hot potato to orchestration or the chosen owner;
90
+ feedback creates the next durable qitem rather than only mutating the source
91
+ queue file** — enforced by the shipped verbs (handoff/route create qitems).
92
+ See `docs/as-built/architecture/mission-control.md`.
93
+
94
+ ## Long-term shape
95
+
96
+ Likely needs **multiple humans with different scopes**, not a singleton
97
+ human attention feed. Different humans own different decision
98
+ domains; queue items route by scope.
99
+
100
+ ## See also
101
+
102
+ - `queue-handoff` skill — durable handoff via queue items; human-in-the-loop is the human-side complement
103
+ - `watchdog` skill — when to wake (humans included) vs no-op
104
+ - `looping-workflows` (convention) — the looping-workflows convention covers loop closeouts; human-in-the-loop is the escape hatch
@@ -1,18 +1,28 @@
1
1
  ---
2
2
  name: openrig-architect
3
- description: Use when designing multi-agent topologies that run ON OpenRig — authoring RigSpec and AgentSpec files for new rigs, creating agent startup content (guidance / skills / culture), or diagnosing why a launched rig's agents aren't behaving as intended. NOT for changing OpenRig itself (work in the openrig product repo); NOT for ordinary CLI operation of an existing rig (use openrig-user). Covers the full authoring lifecycle from user intent to validated, launchable rig.
3
+ description: Use when designing multi-agent topologies that run ON OpenRig — authoring RigSpec and AgentSpec files for new rigs, creating agent startup content (guidance / skills / culture), or diagnosing why a launched rig's agents aren't behaving as intended. NOT for changing OpenRig itself (use openrig-builder); NOT for ordinary CLI operation of an existing rig (use openrig-user). Covers the full authoring lifecycle from user intent to validated, launchable rig.
4
4
  metadata:
5
+ cli_surfaces_referenced:
6
+ - agent validate
7
+ - capture
8
+ - daemon start
9
+ - ps
10
+ - send
11
+ - spec validate
12
+ - specs ls
13
+ - up
14
+ - whoami
5
15
  openrig:
6
16
  stage: factory-approved
7
- last_verified: "2026-05-04"
8
- distribution_scope: product-bound
9
- source_evidence: |
10
- Bootstrap skill — NPM install lands this in personal homes (~/.claude/skills/, ~/.agents/skills/) for users authoring their own rigs.
11
17
  sibling_skills:
12
18
  - openrig-user
13
19
  - openrig-operator
20
+ - openrig-builder
21
+ - openrig-upgrade
14
22
  - forming-an-openrig-mental-model
15
- transfer_test: pending
23
+ - ai-dev-workflows
24
+ notes: |
25
+ Description was already correct (starts with "Use when..."; lists specific authoring triggers including the diagnose-bad-rig case). Final sentence ("Covers the full authoring lifecycle from user intent to validated, launchable rig.") is workflow-summary-adjacent; on next iteration, consider trimming. For factory-adoption cycle, kept as-is to match product source-of-truth.
16
26
  ---
17
27
 
18
28
  # OpenRig Architect
@@ -47,8 +57,13 @@ Load these before starting any design work. The quality of your output depends o
47
57
 
48
58
  **Read if present on this host:**
49
59
 
50
- 4. **Host-level doctrine file** (if your team maintains one — e.g., a HOST-TOPOLOGY doc that defines canonical rig classes, context-sharing patterns, and authoring SOPs for high-stakes rigs). If present, it supersedes the baseline process below for complex or high-stakes rigs (≥4 members, HA, managed-app, or shared/copied). Solo operators and small/focused rigs use the baseline below directly.
51
- 5. **Agent-facing software design principles** if your rig ships a new CLI, service, or managed app that agents will operate. Treat the operating surface as a context-engineering problem: every error message and help text gives the agent information to act on.
60
+ 4. **Host-level doctrine** in your host's topology doc, if it keeps one. If this file exists, it supersedes the baseline process below for complex or high-stakes rigs. Specifically:
61
+ - §3 defines the canonical rig classes (kernel, project, ephemeral, infra-build, managed-app). Classify before designing.
62
+ - §4 defines context-sharing patterns (pods as context domains, pair pattern, HA via mental-model-ha skill + substrate session logs, terminal nodes as common-room, chatroom/substrate/transcripts/Corpus).
63
+ - **§7 is the canonical 12-step rig-spec authoring SOP for high-stakes rigs — use it instead of the baseline "Design Process" below when the rig is ≥4 members, uses HA, is a managed-app, or will be shared/copied.** The baseline below still applies to small/focused rigs.
64
+ - §10 contains the host's bootstrap sequence so you know where your new rig fits.
65
+ - §12 has the naming canon and vocabulary mapping to shipped terms.
66
+ 5. **`building-agent-software` skill** if available in your skill catalog. Design principles for agent-facing tools and surfaces. Relevant when your rig ships a new CLI, service, or managed app.
52
67
 
53
68
  **Load as needed:**
54
69
  - Domain-specific skills when designing specialist agents — find shipped skills inside the OpenRig installation under the `specs/agents/` tree
@@ -231,6 +246,8 @@ rig spec validate rig.yaml
231
246
  rig agent validate agents/my-agent/agent.yaml
232
247
  ```
233
248
 
249
+ Then run `rig spec audit rig.yaml` for advisory checks such as stale seat references and other cross-file drift that schema validation cannot detect.
250
+
234
251
  If validation fails, fix the errors. Do not try to launch an invalid spec — it will fail with a less helpful error.
235
252
 
236
253
  ## Diagnosis: When Things Go Wrong
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: openrig-cmux
3
+ description: >
4
+ Use when opening OpenRig fleet terminals into cmux — turning a rig, pod, mission, slice, or saved
5
+ view into live agent tiles via `rig terminal --provider cmux`, or driving cmux on an agent's
6
+ request. Same OpenRig view semantics as openrig-herdr (the verbs, honest-partial/degrade, read-only
7
+ cross-rig, scroll/copy, same-size-only duplicates); cmux is the **best-effort** provider (herdr is
8
+ the default and the proof-gated one). Prefer openrig-herdr unless cmux is specifically wanted.
9
+ metadata:
10
+ openrig:
11
+ stage: candidate
12
+ sibling_skills:
13
+ - openrig-herdr
14
+ - openrig-user
15
+ ---
16
+
17
+ # openrig-cmux
18
+
19
+ cmux is a **provider** for OpenRig views — the same `rig terminal` surface as herdr, rendering the
20
+ tiles into cmux instead. It is the provider OpenRig already shipped (the existing "Launch in cmux"
21
+ affordance generalizes onto `rig terminal <provider>`), kept working. The OpenRig-semantic half is
22
+ identical to openrig-herdr: OpenRig decides **which** agents form a view; the provider renders the
23
+ pixels. **Read openrig-herdr first for the full model** — this skill only calls out what differs for
24
+ cmux.
25
+
26
+ ## Provider status — cmux is best-effort
27
+
28
+ - **herdr is the default and the proof-gated provider**; **cmux is best-effort** — it ships on the
29
+ same `rig terminal <provider>` + web-launcher neighborhood, but a cmux miss is not a slice failure.
30
+ Reach for cmux when it is specifically wanted; otherwise default to herdr (`rig terminal open <view>`
31
+ with no `--provider`).
32
+ - Views are **provider-agnostic**: the same view + the same agents + the same semantics carry across
33
+ herdr and cmux. A saved view opens in either.
34
+
35
+ ## The surface (same three verbs, `--provider cmux`)
36
+
37
+ ```bash
38
+ rig terminal open <view> --provider cmux [--json] # open a view into cmux (herdr is the no-flag default)
39
+ rig terminal views [--json] # the same view library, provider-agnostic
40
+ rig terminal status --provider cmux [--json] # cmux liveness / health
41
+ ```
42
+
43
+ `<view>` resolves exactly as with herdr: a **rig name** · **`pod:<rig>/<podNamespace>`** ·
44
+ **`mission:<id>`** · **`slice:<id>`** (derived live) · a **saved-view name**.
45
+
46
+ ## What carries over unchanged from openrig-herdr
47
+
48
+ All of these behave identically — see openrig-herdr for the detail:
49
+
50
+ - **Honest-partial / honest-degrade** — opened / absent / degraded, each named; partial opens exit 0,
51
+ zero-pane exits non-zero; an http-registered host's agents degrade with the reason ("host `<id>` is
52
+ http-registered; tiles need ssh"), never silently dropped.
53
+ - **Read-only policy** — a rig or `pod:` view is interactive; `mission:` / `slice:` views are
54
+ read-only by construction; a saved view is per-member (`readOnly`). A read-only pane is
55
+ `tmux attach -r` (client `readonly=1`, keystrokes physically cannot reach the agent). See openrig-herdr.
56
+ - **Safety rails (the fleet-safety rail)** — a tile is a *view* (nested `tmux attach`) of a
57
+ daemon-owned session; never move/join/kill/re-parent a daemon-owned pane; closing a tile detaches
58
+ one client and leaves the session untouched; never live-flip tmux options on a running seat in
59
+ production (prove it in an isolated environment first).
60
+ - **Scroll + copy out of the box** — the daemon's terminal defaults (per-session scroll at launch +
61
+ the server's clipboard defaults); running seats pick up wheel-scroll at their next relaunch.
62
+ - **Limits** — tile chrome v1 = a plain label; same-size panes for duplicate/multi-view membership
63
+ (the different-size resize mismatch is an inherent tmux multi-client limit, documented not fixed).
64
+
65
+ ## cmux-specific notes
66
+
67
+ - **Open-or-focus per agent** — cmux's shipped integration opens a node or focuses it if already open;
68
+ expect focus (not a duplicate) when a seat is already tiled in cmux.
69
+ - **The shipped "Launch in cmux" affordance is preserved** (byte-compatible) and generalizes into the
70
+ provider + view picker; opening cmux from the web launcher still works.
71
+ - **No AGPL arm's-length concern** — unlike herdr, cmux is OpenRig's shipped provider integration; the
72
+ clean-room/never-embed rail that applies to herdr is not a cmux constraint. (This skill itself is
73
+ still authored clean-room.)
74
+
75
+ ## Saved views — provider-agnostic
76
+
77
+ Saved views are **hand-authored** in `terminal-views.yaml` (v1 has no save/write verb) and are
78
+ **provider-agnostic** — see **openrig-herdr** for the exact schema, the store facts (atomic tmp+rename,
79
+ byte-stable, at the OpenRig home root), and the derived-views-never-persisted rule. Reopen any saved
80
+ view in cmux with `rig terminal open <id> --provider cmux`. Derived views (a rig, `pod:<rig>/<pod>`,
81
+ `mission:<id>`, `slice:<id>`) are computed live and never written to the file.
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: openrig-herdr
3
+ description: >
4
+ Use when opening OpenRig fleet terminals as a herdr wall — turning a rig, pod, mission, slice, or
5
+ saved view into live interactive agent tiles via `rig terminal`, watching another rig read-only,
6
+ or driving herdr on an agent's request ("open all my rigs + a mission as views"). Covers the
7
+ `rig terminal open|views|status` verbs, the honest-partial/degrade reading of the result, the
8
+ read-only-by-construction rail for cross-rig views, scroll/copy out of the box, and the
9
+ same-size-only duplicate-pane limit. herdr is the default, proof-gated provider.
10
+ metadata:
11
+ openrig:
12
+ stage: candidate
13
+ sibling_skills:
14
+ - openrig-cmux
15
+ - openrig-user
16
+ ---
17
+
18
+ # openrig-herdr
19
+
20
+ OpenRig decides **which** agents make up a view (a rig, a pod, a mission, a slice, or a saved
21
+ group); **herdr** renders the pixels. A view opens as live, interactive terminal tiles — each tile
22
+ is a nested `tmux attach` to a daemon-owned agent session, so you get the real session, not a
23
+ snapshot. OpenRig owns the semantics; herdr owns the surface. You drive it entirely through the
24
+ `rig terminal` CLI, which rides the installed herdr binary at arm's length — never link, embed, or
25
+ plugin it.
26
+
27
+ ## The whole surface — three verbs
28
+
29
+ ```bash
30
+ rig terminal open <view> [--provider herdr|cmux] [--json] # herdr is the default provider
31
+ rig terminal views [--json] # list openable views (saved + derived)
32
+ rig terminal status [--provider] [--json] # provider liveness / health
33
+ ```
34
+
35
+ `<view>` resolves, in order, to one of:
36
+ - a **rig name** — every live agent in that rig, auto-laid-out;
37
+ - **`pod:<rig>/<podNamespace>`** — every live agent in one pod of a rig (the rig's inventory filtered by pod);
38
+ - **`mission:<id>`** — the agents working that mission (derived live from topology);
39
+ - **`slice:<id>`** — the agents working that slice (derived live);
40
+ - a **saved-view name** — a user-defined group (see Saved views).
41
+
42
+ ## Compose a view from a sentence
43
+
44
+ An agent asked "open all my rigs plus a mission as views" runs one `open` per target:
45
+
46
+ ```bash
47
+ rig terminal open acme-web # a whole rig, live agents as tiles
48
+ rig terminal open mission:site-relaunch # exactly the agents working the mission
49
+ rig terminal open slice:search-filters # the agents working one slice
50
+ ```
51
+
52
+ No hand-listing of seats: the mission/slice membership is derived from live topology at open time.
53
+
54
+ ## Read the result honestly — partial and degrade
55
+
56
+ The result is a partition — every seat lands in exactly one bucket, each **named**:
57
+
58
+ - **opened** — the live agents now showing as tiles.
59
+ - **absent** — seats in the view that aren't currently live: **named and skipped, never silently
60
+ dropped.** A view that opens *some* of its seats is a success (the partial is disclosed) and exits
61
+ **0**. Only a view where **no** pane opens exits **non-zero**.
62
+ - **degraded** — an agent that structurally cannot tile, named **with the reason**. The v1 case:
63
+ an agent on a host registered over HTTP has no ssh path, so its tile can't be composed — it reads
64
+ as **"host `<id>` is http-registered; tiles need ssh"** and is skipped, never dropped. (ssh-reachable
65
+ hosts tile via an ssh-wrapped attach; full http-host tiling is deferred to the cross-host transport
66
+ seam.)
67
+
68
+ Read `--json` to branch on the partition programmatically; the exit code alone tells you opened-something
69
+ (0) vs opened-nothing (non-zero).
70
+
71
+ ## Read-only — who's interactive, who's watch-only
72
+
73
+ Read-only is composed into the pane at open time — a read-only tile is a `tmux attach -r`, the client
74
+ reports `readonly=1`, and it **physically cannot send input**. The current policy, by view kind:
75
+
76
+ - **A rig view or a `pod:` view is interactive** — you asked for that rig (or pod) directly, so you
77
+ can drive its agents.
78
+ - **`mission:` and `slice:` views are read-only by construction** — these derived views cut across
79
+ rigs; you watch and scroll, you don't keystroke into them.
80
+ - **A saved view is per-member** — each member carries its own `readOnly` (omit = interactive;
81
+ `true` = `attach -r`).
82
+
83
+ So you don't have to remember to be careful: the view kind (and, for a saved view, the per-member
84
+ flag) sets it at open time.
85
+
86
+ ## Safety rails (hard — the fleet-safety rail)
87
+
88
+ - A tile is a **view** (a nested `tmux attach`) of a daemon-owned session. **Never** move, join, kill,
89
+ or re-parent a daemon-owned pane. Closing a tile detaches one tmux client — the daemon's session is
90
+ untouched and its addressing (send/capture/nudge) is unaffected.
91
+ - Host-local read-only viewing mutates nothing. Anything that would change a **live** daemon session's
92
+ shared state (e.g. flipping a tmux option on a running seat) is a config/design change — prove it in
93
+ an isolated environment, never live-flip in production.
94
+
95
+ ## Scroll + copy work out of the box
96
+
97
+ On a freshly-launched agent tile the mouse wheel scrolls the pane's history and a drag-select copies
98
+ to your **system** clipboard — with no tmux commands typed. This rides the daemon's terminal defaults
99
+ (a per-session scroll option set at launch, plus the daemon tmux server's clipboard defaults). Honest
100
+ timing: agents that were already running before this shipped pick up wheel-scroll at their **next
101
+ natural relaunch** (the scroll default is per-session and running seats are never retro-flipped);
102
+ system-clipboard copy works immediately (it's server-wide).
103
+
104
+ ## Limits — state them, don't paper over them
105
+
106
+ - **Tile chrome v1 = a plain label** (agent + slice). Rich per-tile status is roadmap.
107
+ - **Duplicate / multi-view membership** (the same agent live in two views at once) works — put the
108
+ duplicates in **same-size panes**. Different-sized duplicate panes have an inherent tmux
109
+ multi-client resize mismatch (tmux clamps to the smallest client); it is **documented, not fixed** —
110
+ don't expect a setting to remove it.
111
+ - **Inner tmux status bar** is hidden by default (herdr provides the chrome); one config key
112
+ (`terminal.status_bar`) flips it back on for raw-tmux / no-provider surfaces, and the flip applies
113
+ to **future launches only**.
114
+
115
+ ## Saved views — the library (`terminal-views.yaml`)
116
+
117
+ In v1 you **create** a saved view by **hand-authoring** `terminal-views.yaml` — there is no save/write
118
+ verb (`open` / `views` / `status` are the whole surface; a `rig terminal save <id>` verb is a named
119
+ stretch/follow-up). You **reopen** it like any other view: `rig terminal open <id>`.
120
+
121
+ The file lives at the OpenRig home root (resolved via `getDefaultOpenRigPath()`), is written
122
+ atomically (tmp + rename), and is byte-stable. **Only hand-authored saved views live here — derived
123
+ views (a rig, `pod:<rig>/<pod>`, `mission:<id>`, `slice:<id>`) are computed live and never written to
124
+ this file.**
125
+
126
+ Schema — use these field names **exactly**, in this order; **omit** optional fields when absent
127
+ (never write `null`):
128
+
129
+ ```yaml
130
+ version: 1
131
+ views:
132
+ - id: my-view-id # required — the id `rig terminal open <id>` takes
133
+ name: Human Name # required
134
+ members:
135
+ - seat: pod-member@rig # required — the canonical session name
136
+ label: agent . slice # optional — pane label
137
+ host: some-host-id # optional — STRUCTURED host id (NEVER a `member@rig@host` string);
138
+ # omit for local. ssh-registered hosts tile;
139
+ # http-registered hosts honest-degrade (named + skipped, with reason)
140
+ tmuxSession: sessname # optional — defaults to `seat`
141
+ readOnly: true # optional — omit = interactive; true = `tmux attach -r`
142
+ ```
143
+
144
+ An agent composing a saved view on request **writes this YAML** and then opens the id:
145
+ `rig terminal open my-view-id` (add `--provider cmux` for cmux). The library is provider-agnostic —
146
+ the same saved view opens in herdr or cmux.
147
+
148
+ ## AGPL / clean-room
149
+
150
+ Driving herdr through the `rig terminal` CLI (which talks to the installed herdr binary over its
151
+ CLI/socket) is arm's-length and fine. Do **not** link herdr's source, embed it in-process, or ship a
152
+ herdr plugin — a plugin needs legal review. This skill and its docs are clean-room: patterns only,
153
+ never herdr source text.