@openrig/cli 0.5.6 → 0.5.8

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 (562) hide show
  1. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  2. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +25 -2
  3. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +95 -8
  4. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +9 -1
  5. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/SKILL.md +34 -0
  6. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +170 -0
  7. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +1 -4
  8. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +3 -3
  9. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +4 -9
  10. package/daemon/assets/vm-preview-fixtures/workflows/sample-basic-loop.yaml +3 -3
  11. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  12. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +40 -15
  13. package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +120 -0
  14. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +10 -0
  15. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +166 -0
  16. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +18 -0
  17. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +261 -0
  18. package/daemon/context-packs/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +495 -0
  19. package/daemon/context-packs/skills/claude-compaction-restore/templates/compact-instruction.md +1 -0
  20. package/daemon/context-packs/skills/claude-compaction-restore/templates/post-compact-restore-instruction.md +1 -0
  21. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
  23. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +1 -4
  31. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +120 -355
  33. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -3
  34. package/daemon/context-packs/skills/core/openrig-upgrade/scripts/backup-sqlite.mjs +62 -0
  35. package/daemon/context-packs/skills/core/openrig-upgrade/scripts/inspect-upgrade.mjs +40 -0
  36. package/daemon/context-packs/skills/core/openrig-upgrade/scripts/refresh-managed-plugin.mjs +151 -0
  37. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/delegating-work/SKILL.md +43 -0
  44. package/daemon/context-packs/skills/delegating-work/manifest.yaml +10 -0
  45. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +318 -0
  46. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +10 -0
  47. package/daemon/context-packs/skills/loading-addressable-markdown/SKILL.md +34 -0
  48. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +12 -0
  49. package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +170 -0
  50. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +94 -0
  51. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +10 -0
  52. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +397 -0
  53. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +30 -0
  54. package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +572 -0
  55. package/daemon/context-packs/skills/openrig-operating-model/scripts/scaffold.sh +34 -0
  56. package/daemon/context-packs/skills/openrig-operating-model/scripts/trace-due.sh +32 -0
  57. package/daemon/context-packs/skills/openrig-operating-model/scripts/trace-stamp.sh +5 -0
  58. package/daemon/context-packs/skills/openrig-operating-model/scripts/trunk-diff.sh +18 -0
  59. package/daemon/context-packs/skills/openrig-operating-model/templates/LEARNED.md +40 -0
  60. package/daemon/context-packs/skills/openrig-operating-model/templates/NOTES.md +9 -0
  61. package/daemon/context-packs/skills/openrig-operating-model/templates/PLAYBOOK.md +5 -0
  62. package/daemon/context-packs/skills/openrig-operating-model/templates/SOP.md +24 -0
  63. package/daemon/context-packs/skills/openrig-operating-model/templates/SPEC.md +54 -0
  64. package/daemon/context-packs/skills/openrig-user/SKILL.md +1374 -0
  65. package/daemon/context-packs/skills/openrig-user/manifest.yaml +10 -0
  66. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
  67. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +250 -0
  68. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +12 -0
  69. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +21 -15
  75. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +3 -3
  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/SKILL.md +1 -1
  79. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pods/review-team/SKILL.md +1 -1
  82. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/queue-handoff/SKILL.md +192 -0
  91. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +10 -0
  92. package/daemon/context-packs/skills/refocusing/SKILL.md +31 -0
  93. package/daemon/context-packs/skills/refocusing/manifest.yaml +14 -0
  94. package/daemon/context-packs/skills/refocusing/references/refocus.md +22 -0
  95. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +264 -0
  96. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
  97. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +231 -0
  98. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +12 -0
  99. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +151 -0
  100. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +16 -0
  101. package/daemon/context-packs/skills/seat-continuity-and-handover/references/apprentice-evidence-toolkit.md +32 -0
  102. package/daemon/context-packs/skills/seat-continuity-and-handover/references/apprentice-successor-seat-cutover.md +256 -0
  103. package/daemon/context-packs/skills/seat-continuity-and-handover/references/orchestrator-role.md +40 -0
  104. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +163 -0
  105. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +10 -0
  106. package/daemon/context-packs/skills/software-for-agents/SKILL.md +187 -0
  107. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +10 -0
  108. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  109. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  110. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  111. package/daemon/dist/adapters/codex-runtime-adapter.js +249 -2
  112. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  113. package/daemon/dist/adapters/tmux.d.ts +6 -5
  114. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  115. package/daemon/dist/adapters/tmux.js +29 -12
  116. package/daemon/dist/adapters/tmux.js.map +1 -1
  117. package/daemon/dist/build-info.js +3 -3
  118. package/daemon/dist/builtins/workflow-specs/basic-loop.yaml +3 -3
  119. package/daemon/dist/builtins/workflow-specs/conveyor.yaml +1 -1
  120. package/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +1 -1
  121. package/daemon/dist/db/all-migrations.d.ts +1 -1
  122. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  123. package/daemon/dist/db/all-migrations.js +6 -2
  124. package/daemon/dist/db/all-migrations.js.map +1 -1
  125. package/daemon/dist/db/migrations/077_node_session_source.d.ts +4 -0
  126. package/daemon/dist/db/migrations/077_node_session_source.d.ts.map +1 -0
  127. package/daemon/dist/db/migrations/077_node_session_source.js +6 -0
  128. package/daemon/dist/db/migrations/077_node_session_source.js.map +1 -0
  129. package/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts +17 -0
  130. package/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts.map +1 -0
  131. package/daemon/dist/db/migrations/078_idle_gate_fired_condition.js +21 -0
  132. package/daemon/dist/db/migrations/078_idle_gate_fired_condition.js.map +1 -0
  133. package/daemon/dist/domain/active-occupant.d.ts +6 -0
  134. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  135. package/daemon/dist/domain/active-occupant.js +14 -0
  136. package/daemon/dist/domain/active-occupant.js.map +1 -1
  137. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  138. package/daemon/dist/domain/context-packs/manifest-parser.js +5 -6
  139. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  140. package/daemon/dist/domain/context-packs/profile-composer.d.ts +1 -1
  141. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  142. package/daemon/dist/domain/context-packs/profile-composer.js +2 -2
  143. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  144. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +3 -1
  145. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  146. package/daemon/dist/domain/context-packs/profile-source-resolver.js +3 -2
  147. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  148. package/daemon/dist/domain/current-work.d.ts +73 -0
  149. package/daemon/dist/domain/current-work.d.ts.map +1 -0
  150. package/daemon/dist/domain/current-work.js +225 -0
  151. package/daemon/dist/domain/current-work.js.map +1 -0
  152. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  153. package/daemon/dist/domain/execution-view.js +215 -13
  154. package/daemon/dist/domain/execution-view.js.map +1 -1
  155. package/daemon/dist/domain/gateway/human-registry.d.ts +3 -2
  156. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  157. package/daemon/dist/domain/gateway/human-registry.js +113 -18
  158. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  159. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +3 -2
  160. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
  161. package/daemon/dist/domain/model-divergence/effective-model-readers.js +7 -5
  162. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
  163. package/daemon/dist/domain/policies/idle-gate-qitem.d.ts +5 -5
  164. package/daemon/dist/domain/policies/idle-gate-qitem.d.ts.map +1 -1
  165. package/daemon/dist/domain/policies/idle-gate-qitem.js +130 -22
  166. package/daemon/dist/domain/policies/idle-gate-qitem.js.map +1 -1
  167. package/daemon/dist/domain/policies/types.d.ts +12 -0
  168. package/daemon/dist/domain/policies/types.d.ts.map +1 -1
  169. package/daemon/dist/domain/queue-repository.d.ts +37 -2
  170. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  171. package/daemon/dist/domain/queue-repository.js +171 -16
  172. package/daemon/dist/domain/queue-repository.js.map +1 -1
  173. package/daemon/dist/domain/queue-wake-repository.d.ts +19 -0
  174. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  175. package/daemon/dist/domain/queue-wake-repository.js +33 -0
  176. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  177. package/daemon/dist/domain/reconciler.d.ts.map +1 -1
  178. package/daemon/dist/domain/reconciler.js +4 -1
  179. package/daemon/dist/domain/reconciler.js.map +1 -1
  180. package/daemon/dist/domain/rehydrate-eligibility.d.ts +11 -1
  181. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  182. package/daemon/dist/domain/rehydrate-eligibility.js +34 -0
  183. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  184. package/daemon/dist/domain/restore-orchestrator.d.ts +9 -0
  185. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  186. package/daemon/dist/domain/restore-orchestrator.js +32 -0
  187. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  188. package/daemon/dist/domain/restore-plan-preview.js +2 -2
  189. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  190. package/daemon/dist/domain/rig-lifecycle-service.d.ts +24 -4
  191. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  192. package/daemon/dist/domain/rig-lifecycle-service.js +116 -6
  193. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  194. package/daemon/dist/domain/rig-repository.d.ts +2 -1
  195. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  196. package/daemon/dist/domain/rig-repository.js +7 -0
  197. package/daemon/dist/domain/rig-repository.js.map +1 -1
  198. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  199. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  200. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  201. package/daemon/dist/domain/rigspec-instantiator.d.ts +15 -9
  202. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  203. package/daemon/dist/domain/rigspec-instantiator.js +68 -83
  204. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  205. package/daemon/dist/domain/rigspec-schema.d.ts +5 -1
  206. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  207. package/daemon/dist/domain/rigspec-schema.js +41 -2
  208. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  209. package/daemon/dist/domain/seat-attention-reconciler.d.ts +32 -1
  210. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  211. package/daemon/dist/domain/seat-attention-reconciler.js +183 -4
  212. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  213. package/daemon/dist/domain/session-transport.d.ts +5 -0
  214. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  215. package/daemon/dist/domain/session-transport.js +33 -7
  216. package/daemon/dist/domain/session-transport.js.map +1 -1
  217. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  218. package/daemon/dist/domain/snapshot-capture.js +4 -2
  219. package/daemon/dist/domain/snapshot-capture.js.map +1 -1
  220. package/daemon/dist/domain/topology-defaults-installer.d.ts +4 -2
  221. package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -1
  222. package/daemon/dist/domain/topology-defaults-installer.js +27 -0
  223. package/daemon/dist/domain/topology-defaults-installer.js.map +1 -1
  224. package/daemon/dist/domain/types.d.ts +3 -1
  225. package/daemon/dist/domain/types.d.ts.map +1 -1
  226. package/daemon/dist/domain/types.js.map +1 -1
  227. package/daemon/dist/domain/up-command-router.d.ts.map +1 -1
  228. package/daemon/dist/domain/up-command-router.js +19 -0
  229. package/daemon/dist/domain/up-command-router.js.map +1 -1
  230. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +9 -0
  231. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  232. package/daemon/dist/domain/watchdog-jobs-repository.js +15 -2
  233. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  234. package/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -0
  235. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  236. package/daemon/dist/domain/watchdog-policy-engine.js +47 -0
  237. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  238. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  239. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +37 -2
  240. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  241. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  242. package/daemon/dist/routes/context-packs.js +146 -6
  243. package/daemon/dist/routes/context-packs.js.map +1 -1
  244. package/daemon/dist/routes/queue.d.ts.map +1 -1
  245. package/daemon/dist/routes/queue.js +31 -10
  246. package/daemon/dist/routes/queue.js.map +1 -1
  247. package/daemon/dist/routes/rigs.js +17 -6
  248. package/daemon/dist/routes/rigs.js.map +1 -1
  249. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  250. package/daemon/dist/routes/rigspec.js +37 -0
  251. package/daemon/dist/routes/rigspec.js.map +1 -1
  252. package/daemon/dist/routes/sessions.js +7 -3
  253. package/daemon/dist/routes/sessions.js.map +1 -1
  254. package/daemon/dist/routes/up.js +10 -3
  255. package/daemon/dist/routes/up.js.map +1 -1
  256. package/daemon/dist/startup.d.ts.map +1 -1
  257. package/daemon/dist/startup.js +19 -7
  258. package/daemon/dist/startup.js.map +1 -1
  259. package/daemon/docs/reference/agent-spec.md +34 -1
  260. package/daemon/docs/reference/chain-file-convention.md +17 -12
  261. package/daemon/docs/reference/mission-install.md +23 -2
  262. package/daemon/docs/reference/product-journey-sdlc.md +305 -0
  263. package/daemon/docs/reference/release-boundary.md +29 -5
  264. package/daemon/docs/reference/sdlc-conventions.md +15 -2
  265. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -1
  266. package/daemon/specs/agents/apps/vault-specialist/guidance/role.md +0 -1
  267. package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
  268. package/daemon/specs/agents/conveyor/builder/guidance/role.md +0 -1
  269. package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
  270. package/daemon/specs/agents/conveyor/lead/guidance/role.md +0 -3
  271. package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
  272. package/daemon/specs/agents/conveyor/planner/guidance/role.md +0 -1
  273. package/daemon/specs/agents/design/product-designer/agent.yaml +3 -4
  274. package/daemon/specs/agents/design/product-designer/guidance/role.md +0 -3
  275. package/daemon/specs/agents/development/implementer/agent.yaml +3 -4
  276. package/daemon/specs/agents/development/implementer/guidance/role.md +0 -3
  277. package/daemon/specs/agents/development/qa/agent.yaml +4 -4
  278. package/daemon/specs/agents/development/qa/guidance/role.md +1 -4
  279. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -1
  280. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -1
  281. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +3 -4
  282. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +0 -4
  283. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +3 -4
  284. package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +0 -3
  285. package/daemon/specs/agents/shared/agent.yaml +2 -10
  286. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -1
  287. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -4
  288. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +120 -355
  289. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/backup-sqlite.mjs +62 -0
  290. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/inspect-upgrade.mjs +40 -0
  291. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/scripts/refresh-managed-plugin.mjs +151 -0
  292. package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +21 -15
  293. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
  294. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +1 -1
  295. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +1 -1
  296. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +2 -3
  297. package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +4 -4
  298. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +3 -3
  299. package/dist/build-info.js +3 -3
  300. package/dist/commands/config-init-workspace.d.ts.map +1 -1
  301. package/dist/commands/config-init-workspace.js +38 -3
  302. package/dist/commands/config-init-workspace.js.map +1 -1
  303. package/dist/commands/context.d.ts.map +1 -1
  304. package/dist/commands/context.js +90 -7
  305. package/dist/commands/context.js.map +1 -1
  306. package/dist/commands/create.d.ts +4 -0
  307. package/dist/commands/create.d.ts.map +1 -0
  308. package/dist/commands/create.js +84 -0
  309. package/dist/commands/create.js.map +1 -0
  310. package/dist/commands/grow.d.ts +4 -0
  311. package/dist/commands/grow.d.ts.map +1 -0
  312. package/dist/commands/grow.js +182 -0
  313. package/dist/commands/grow.js.map +1 -0
  314. package/dist/commands/import.d.ts.map +1 -1
  315. package/dist/commands/import.js +27 -1
  316. package/dist/commands/import.js.map +1 -1
  317. package/dist/commands/remove.d.ts.map +1 -1
  318. package/dist/commands/remove.js +9 -1
  319. package/dist/commands/remove.js.map +1 -1
  320. package/dist/commands/rig.d.ts.map +1 -1
  321. package/dist/commands/rig.js +48 -1
  322. package/dist/commands/rig.js.map +1 -1
  323. package/dist/commands/scope.d.ts.map +1 -1
  324. package/dist/commands/scope.js +21 -2
  325. package/dist/commands/scope.js.map +1 -1
  326. package/dist/commands/shrink.d.ts.map +1 -1
  327. package/dist/commands/shrink.js +6 -1
  328. package/dist/commands/shrink.js.map +1 -1
  329. package/dist/commands/topology-default-agent.d.ts +4 -0
  330. package/dist/commands/topology-default-agent.d.ts.map +1 -0
  331. package/dist/commands/topology-default-agent.js +13 -0
  332. package/dist/commands/topology-default-agent.js.map +1 -0
  333. package/dist/commands/walk.d.ts.map +1 -1
  334. package/dist/commands/walk.js +3 -0
  335. package/dist/commands/walk.js.map +1 -1
  336. package/dist/commands/watchdog.d.ts.map +1 -1
  337. package/dist/commands/watchdog.js +51 -3
  338. package/dist/commands/watchdog.js.map +1 -1
  339. package/dist/front-door.d.ts.map +1 -1
  340. package/dist/front-door.js +16 -4
  341. package/dist/front-door.js.map +1 -1
  342. package/dist/index.d.ts +2 -0
  343. package/dist/index.d.ts.map +1 -1
  344. package/dist/index.js +4 -0
  345. package/dist/index.js.map +1 -1
  346. package/dist/lib/topology-trace.d.ts +3 -2
  347. package/dist/lib/topology-trace.d.ts.map +1 -1
  348. package/dist/lib/topology-trace.js +12 -2
  349. package/dist/lib/topology-trace.js.map +1 -1
  350. package/dist/lib/work-install.d.ts +39 -0
  351. package/dist/lib/work-install.d.ts.map +1 -0
  352. package/dist/lib/work-install.js +312 -0
  353. package/dist/lib/work-install.js.map +1 -0
  354. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  355. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js +249 -2
  356. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  357. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +6 -5
  358. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  359. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +29 -12
  360. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  361. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  362. package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/basic-loop.yaml +3 -3
  363. package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/conveyor.yaml +1 -1
  364. package/node_modules/@openrig/daemon/dist/builtins/workflow-specs/factory-rsi.yaml +1 -1
  365. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts +1 -1
  366. package/node_modules/@openrig/daemon/dist/db/all-migrations.d.ts.map +1 -1
  367. package/node_modules/@openrig/daemon/dist/db/all-migrations.js +6 -2
  368. package/node_modules/@openrig/daemon/dist/db/all-migrations.js.map +1 -1
  369. package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.d.ts +4 -0
  370. package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.d.ts.map +1 -0
  371. package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.js +6 -0
  372. package/node_modules/@openrig/daemon/dist/db/migrations/077_node_session_source.js.map +1 -0
  373. package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts +17 -0
  374. package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.d.ts.map +1 -0
  375. package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.js +21 -0
  376. package/node_modules/@openrig/daemon/dist/db/migrations/078_idle_gate_fired_condition.js.map +1 -0
  377. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts +6 -0
  378. package/node_modules/@openrig/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  379. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js +14 -0
  380. package/node_modules/@openrig/daemon/dist/domain/active-occupant.js.map +1 -1
  381. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  382. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +5 -6
  383. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  384. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +1 -1
  385. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  386. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +2 -2
  387. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  388. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +3 -1
  389. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  390. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +3 -2
  391. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  392. package/node_modules/@openrig/daemon/dist/domain/current-work.d.ts +73 -0
  393. package/node_modules/@openrig/daemon/dist/domain/current-work.d.ts.map +1 -0
  394. package/node_modules/@openrig/daemon/dist/domain/current-work.js +225 -0
  395. package/node_modules/@openrig/daemon/dist/domain/current-work.js.map +1 -0
  396. package/node_modules/@openrig/daemon/dist/domain/execution-view.d.ts.map +1 -1
  397. package/node_modules/@openrig/daemon/dist/domain/execution-view.js +215 -13
  398. package/node_modules/@openrig/daemon/dist/domain/execution-view.js.map +1 -1
  399. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts +3 -2
  400. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  401. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js +113 -18
  402. package/node_modules/@openrig/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  403. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +3 -2
  404. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
  405. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js +7 -5
  406. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
  407. package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.d.ts +5 -5
  408. package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.d.ts.map +1 -1
  409. package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.js +130 -22
  410. package/node_modules/@openrig/daemon/dist/domain/policies/idle-gate-qitem.js.map +1 -1
  411. package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts +12 -0
  412. package/node_modules/@openrig/daemon/dist/domain/policies/types.d.ts.map +1 -1
  413. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +37 -2
  414. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  415. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +171 -16
  416. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  417. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts +19 -0
  418. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  419. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js +33 -0
  420. package/node_modules/@openrig/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  421. package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +1 -1
  422. package/node_modules/@openrig/daemon/dist/domain/reconciler.js +4 -1
  423. package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +1 -1
  424. package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.d.ts +11 -1
  425. package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  426. package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.js +34 -0
  427. package/node_modules/@openrig/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  428. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts +9 -0
  429. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  430. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js +32 -0
  431. package/node_modules/@openrig/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  432. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js +2 -2
  433. package/node_modules/@openrig/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  434. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts +24 -4
  435. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  436. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js +116 -6
  437. package/node_modules/@openrig/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  438. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +2 -1
  439. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  440. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +7 -0
  441. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
  442. package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  443. package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.js +4 -0
  444. package/node_modules/@openrig/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  445. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +15 -9
  446. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  447. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +68 -83
  448. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  449. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts +5 -1
  450. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  451. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +41 -2
  452. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  453. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts +32 -1
  454. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  455. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js +183 -4
  456. package/node_modules/@openrig/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  457. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +5 -0
  458. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
  459. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +33 -7
  460. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  461. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  462. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js +4 -2
  463. package/node_modules/@openrig/daemon/dist/domain/snapshot-capture.js.map +1 -1
  464. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +4 -2
  465. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -1
  466. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +27 -0
  467. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -1
  468. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +3 -1
  469. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  470. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  471. package/node_modules/@openrig/daemon/dist/domain/up-command-router.d.ts.map +1 -1
  472. package/node_modules/@openrig/daemon/dist/domain/up-command-router.js +19 -0
  473. package/node_modules/@openrig/daemon/dist/domain/up-command-router.js.map +1 -1
  474. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts +9 -0
  475. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  476. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js +15 -2
  477. package/node_modules/@openrig/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  478. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts +7 -0
  479. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  480. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js +47 -0
  481. package/node_modules/@openrig/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  482. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  483. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js +37 -2
  484. package/node_modules/@openrig/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  485. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  486. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +146 -6
  487. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  488. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  489. package/node_modules/@openrig/daemon/dist/routes/queue.js +31 -10
  490. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  491. package/node_modules/@openrig/daemon/dist/routes/rigs.js +17 -6
  492. package/node_modules/@openrig/daemon/dist/routes/rigs.js.map +1 -1
  493. package/node_modules/@openrig/daemon/dist/routes/rigspec.d.ts.map +1 -1
  494. package/node_modules/@openrig/daemon/dist/routes/rigspec.js +37 -0
  495. package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
  496. package/node_modules/@openrig/daemon/dist/routes/sessions.js +7 -3
  497. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  498. package/node_modules/@openrig/daemon/dist/routes/up.js +10 -3
  499. package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
  500. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  501. package/node_modules/@openrig/daemon/dist/startup.js +19 -7
  502. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  503. package/node_modules/@openrig/daemon/package.json +1 -1
  504. package/package.json +2 -1
  505. package/tui/dist/daemon-client.d.ts +2 -0
  506. package/tui/dist/daemon-client.d.ts.map +1 -1
  507. package/tui/dist/daemon-client.js +4 -0
  508. package/tui/dist/daemon-client.js.map +1 -1
  509. package/tui/dist/execution/execution-model.d.ts +19 -0
  510. package/tui/dist/execution/execution-model.d.ts.map +1 -0
  511. package/tui/dist/execution/execution-model.js +518 -0
  512. package/tui/dist/execution/execution-model.js.map +1 -0
  513. package/tui/dist/hydrate.d.ts +1 -1
  514. package/tui/dist/hydrate.d.ts.map +1 -1
  515. package/tui/dist/hydrate.js +6 -2
  516. package/tui/dist/hydrate.js.map +1 -1
  517. package/tui/dist/input.d.ts +7 -0
  518. package/tui/dist/input.d.ts.map +1 -1
  519. package/tui/dist/input.js +13 -0
  520. package/tui/dist/input.js.map +1 -1
  521. package/tui/dist/live.d.ts +10 -0
  522. package/tui/dist/live.d.ts.map +1 -1
  523. package/tui/dist/live.js +34 -1
  524. package/tui/dist/live.js.map +1 -1
  525. package/tui/dist/main.js +22 -3
  526. package/tui/dist/main.js.map +1 -1
  527. package/tui/dist/render.d.ts.map +1 -1
  528. package/tui/dist/render.js +13 -2
  529. package/tui/dist/render.js.map +1 -1
  530. package/tui/dist/scopes/scopes-model.d.ts +1 -0
  531. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  532. package/tui/dist/scopes/scopes-model.js +4 -2
  533. package/tui/dist/scopes/scopes-model.js.map +1 -1
  534. package/tui/dist/sections.js +2 -2
  535. package/tui/dist/sections.js.map +1 -1
  536. package/tui/dist/state.d.ts.map +1 -1
  537. package/tui/dist/state.js +15 -2
  538. package/tui/dist/state.js.map +1 -1
  539. package/tui/dist/stylize.js +2 -2
  540. package/tui/dist/stylize.js.map +1 -1
  541. package/tui/dist/types.d.ts +20 -0
  542. package/tui/dist/types.d.ts.map +1 -1
  543. package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +0 -48
  544. package/daemon/context-packs/skills/process/brainstorming/SKILL.md +0 -107
  545. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +0 -12
  546. package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +0 -56
  547. package/daemon/context-packs/skills/process/executing-plans/SKILL.md +0 -94
  548. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +0 -12
  549. package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +0 -48
  550. package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +0 -106
  551. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +0 -12
  552. package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +0 -52
  553. package/daemon/context-packs/skills/process/writing-plans/SKILL.md +0 -126
  554. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +0 -12
  555. package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +0 -48
  556. package/daemon/specs/agents/shared/skills/process/brainstorming/SKILL.md +0 -107
  557. package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +0 -56
  558. package/daemon/specs/agents/shared/skills/process/executing-plans/SKILL.md +0 -94
  559. package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +0 -48
  560. package/daemon/specs/agents/shared/skills/process/using-superpowers/SKILL.md +0 -106
  561. package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +0 -52
  562. package/daemon/specs/agents/shared/skills/process/writing-plans/SKILL.md +0 -126
@@ -0,0 +1,261 @@
1
+ #!/usr/bin/env node
2
+ import fs from "node:fs";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ import { spawnSync } from "node:child_process";
6
+
7
+ const skillRoot = path.resolve(new URL("..", import.meta.url).pathname);
8
+ const restoreScript = path.join(skillRoot, "scripts", "restore-from-jsonl.mjs");
9
+ // P6(C) injectable output-root: the packet base defaults to the shared
10
+ // /tmp/claude-compaction-restore (production), but becomes per-run isolated when the
11
+ // hermetic env-var OPENRIG_COMPACTION_OUT_ROOT is set — so concurrent writers with the
12
+ // same injected clock + sessionId no longer collide on the same `${sessionId}-${stamp}`
13
+ // dir. Mirrors the injectable-clock seam (OPENRIG_TEST_CLOCK_NOW). Empty/absent = /tmp.
14
+ const outRoot = process.env.OPENRIG_COMPACTION_OUT_ROOT || "/tmp/claude-compaction-restore";
15
+ const defaultRestoreInstruction =
16
+ "Read the claude-compaction-restore skill and follow its \"If You Just Compacted\" protocol.";
17
+
18
+ function emit(payload) {
19
+ process.stdout.write(`${JSON.stringify(payload)}\n`);
20
+ }
21
+
22
+ function readHookInput() {
23
+ const raw = fs.readFileSync(0, "utf8").trim();
24
+ if (!raw) return {};
25
+ return JSON.parse(raw);
26
+ }
27
+
28
+ function getOpenRigHome() {
29
+ return process.env.OPENRIG_HOME || process.env.RIGGED_HOME || path.join(os.homedir(), ".openrig");
30
+ }
31
+
32
+ // A3-R3 injectable clock (slice 51-01): marker.createdAt defaults to real wall-clock,
33
+ // but becomes deterministic when the shared hermetic env-var OPENRIG_TEST_CLOCK_NOW is
34
+ // set (an ISO instant). Empty/absent = production real-time.
35
+ function nowIso() {
36
+ const injected = process.env.OPENRIG_TEST_CLOCK_NOW;
37
+ return typeof injected === "string" && injected.trim().length > 0 ? injected : new Date().toISOString();
38
+ }
39
+
40
+ function expandInstructionPath(filePath) {
41
+ if (filePath.startsWith("~/")) return path.join(os.homedir(), filePath.slice(2));
42
+ if (filePath.startsWith("${OPENRIG_HOME}/")) {
43
+ return path.join(getOpenRigHome(), filePath.slice("${OPENRIG_HOME}/".length));
44
+ }
45
+ if (filePath.startsWith("$OPENRIG_HOME/")) {
46
+ return path.join(getOpenRigHome(), filePath.slice("$OPENRIG_HOME/".length));
47
+ }
48
+ return filePath;
49
+ }
50
+
51
+ function readInstructionFile(filePath) {
52
+ const expanded = expandInstructionPath(filePath);
53
+ if (!fs.existsSync(expanded)) return "";
54
+ return fs.readFileSync(expanded, "utf8");
55
+ }
56
+
57
+ // OPR.0.4.1.09 / R5 marker-lifecycle (foreign-content-in-marker face): the hook
58
+ // path must apply the SAME seat-check the daemon enforcer's resolvePostCompactExtra
59
+ // applies (rev1-r2 dcd95bd9), or a FOREIGN seat's global messageFilePath leaks into
60
+ // THIS seat's marker. Parse a WELL-FORMED leading `---` frontmatter for a declared
61
+ // seat (target_seat / seat / session); body text is never scanned; a broken/absent
62
+ // fence is GENERIC (valid for any seat). Byte-mirrors the enforcer regexes.
63
+ function declaredSeatOf(content) {
64
+ const fm = /^\s*---\s*\n([\s\S]*?)\n---/.exec(content);
65
+ if (!fm) return null;
66
+ const m = /^[ \t]*(?:target[_-]?seat|seat|session(?:[_-]?name)?)[ \t]*:[ \t]*["']?([^"'\n#]+?)["']?[ \t]*$/im.exec(fm[1]);
67
+ return m ? m[1].trim() : null;
68
+ }
69
+
70
+ function sanitizeSeat(value) {
71
+ return value.replace(/[^a-zA-Z0-9_.@-]/g, "_");
72
+ }
73
+
74
+ // Resolve the post-compaction extra FOR THIS SEAT (mirror of the enforcer): (1) prefer
75
+ // a per-seat compaction/post-compact-extra/<seat>.md — no cross-seat contamination
76
+ // possible; (2) fall back to the global ONLY when it does not declare a DIFFERENT seat
77
+ // (a wrong-seat global is REFUSED). Generic/undeclared/configured-but-absent stay
78
+ // allowed. Returns the path to read, or null when nothing valid for this seat.
79
+ function resolveSeatSafeExtraPath(globalFilePathRaw) {
80
+ const rawSeat = process.env.OPENRIG_SESSION_NAME || process.env.RIGGED_SESSION_NAME || "";
81
+ const seatKey = rawSeat ? sanitizeSeat(rawSeat) : "";
82
+ if (seatKey) {
83
+ const perSeatPath = path.join(getOpenRigHome(), "compaction", "post-compact-extra", `${seatKey}.md`);
84
+ if (fs.existsSync(perSeatPath)) {
85
+ const declared = declaredSeatOf(fs.readFileSync(perSeatPath, "utf8"));
86
+ if (declared && sanitizeSeat(declared) !== seatKey) return null; // wrong-seat per-seat file
87
+ return perSeatPath;
88
+ }
89
+ }
90
+ const trimmed = (globalFilePathRaw || "").trim();
91
+ if (!trimmed) return null;
92
+ const expanded = expandInstructionPath(trimmed);
93
+ // configured-but-absent: keep the path (an absent file cannot be a wrong-seat leak;
94
+ // readInstructionFile returns "" so nothing is appended).
95
+ if (!fs.existsSync(expanded)) return trimmed;
96
+ const declared = declaredSeatOf(fs.readFileSync(expanded, "utf8"));
97
+ if (declared && sanitizeSeat(declared) !== seatKey) return null; // foreign-seat global REFUSED
98
+ return trimmed;
99
+ }
100
+
101
+ function sessionKey(input) {
102
+ const raw = [
103
+ process.env.OPENRIG_SESSION_NAME,
104
+ process.env.RIGGED_SESSION_NAME,
105
+ input.session_id,
106
+ input.sessionId,
107
+ input.session_name,
108
+ input.sessionName,
109
+ input.transcript_path ? path.basename(input.transcript_path, ".jsonl") : "",
110
+ ].find((value) => typeof value === "string" && value.trim().length > 0) || "unknown-session";
111
+ return raw.replace(/[^a-zA-Z0-9_.@-]/g, "_");
112
+ }
113
+
114
+ function pendingMarkerPath(input) {
115
+ return path.join(getOpenRigHome(), "compaction", "restore-pending", `${sessionKey(input)}.json`);
116
+ }
117
+
118
+ // R5 absent-when-needed: drop a lightweight EXPECTED sentinel FIRST (before the packet is
119
+ // generated + the marker is written), carrying the SAME identity binding the marker gets.
120
+ // Its presence-without-a-marker is what lets the bridge be LOUD about a missing packet
121
+ // (hook died partway / write failed); policy off = no hook = no sentinel = silent.
122
+ function writeExpectedSentinel(input) {
123
+ const p = path.join(getOpenRigHome(), "compaction", "restore-pending", `${sessionKey(input)}.expected.json`);
124
+ fs.mkdirSync(path.dirname(p), { recursive: true });
125
+ fs.writeFileSync(p, `${JSON.stringify({
126
+ version: 1,
127
+ sessionName: process.env.OPENRIG_SESSION_NAME || process.env.RIGGED_SESSION_NAME || null,
128
+ sessionId: input.session_id || input.sessionId || null,
129
+ transcriptPath: input.transcript_path || null,
130
+ createdAt: nowIso(),
131
+ }, null, 2)}\n`, "utf8");
132
+ }
133
+
134
+ function writePendingRestoreMarker(input, parsed, restoreInstruction, customMessage) {
135
+ const markerPath = pendingMarkerPath(input);
136
+ fs.mkdirSync(path.dirname(markerPath), { recursive: true });
137
+ const payload = {
138
+ version: 1,
139
+ createdAt: nowIso(),
140
+ sessionName: process.env.OPENRIG_SESSION_NAME || process.env.RIGGED_SESSION_NAME || null,
141
+ sessionId: input.session_id || input.sessionId || null,
142
+ transcriptPath: input.transcript_path || null,
143
+ cwd: input.cwd || null,
144
+ outputDir: parsed.outputDir,
145
+ restoreInstruction,
146
+ postCompactInstruction: customMessage || "",
147
+ expectedAck: "restored from packet at <path>; resumed at step <X>",
148
+ deliveredAt: null,
149
+ deliveryCount: 0,
150
+ };
151
+ fs.writeFileSync(markerPath, `${JSON.stringify(payload, null, 2)}\n`, "utf8");
152
+ return markerPath;
153
+ }
154
+
155
+ // Slice 27 — read the OpenRig config directly (no daemon HTTP dependency
156
+ // so the hook still works when the daemon isn't running or isn't
157
+ // reachable from this process). Returns "" for either field when the
158
+ // config is missing, malformed, or the policy isn't set. If the policy is
159
+ // enabled but restore text has not been written yet, use OpenRig's default
160
+ // instruction to load the canonical restore skill. Inline instructions and
161
+ // file-path content are both included when both are configured.
162
+ function readClaudeCompactionMessage() {
163
+ const configPath = path.join(getOpenRigHome(), "config.json");
164
+ let inline = "";
165
+ let filePath = "";
166
+ let inlineConfigured = false;
167
+ let filePathConfigured = false;
168
+ let policyEnabled = false;
169
+ try {
170
+ if (!fs.existsSync(configPath)) return "";
171
+ const raw = fs.readFileSync(configPath, "utf8");
172
+ const parsed = JSON.parse(raw);
173
+ const policy = parsed?.policies?.claudeCompaction;
174
+ if (policy && typeof policy === "object") {
175
+ policyEnabled = policy.enabled === true;
176
+ if (typeof policy.messageInline === "string") {
177
+ inlineConfigured = true;
178
+ inline = policy.messageInline;
179
+ }
180
+ if (typeof policy.messageFilePath === "string") {
181
+ filePathConfigured = true;
182
+ filePath = policy.messageFilePath;
183
+ }
184
+ }
185
+ } catch {
186
+ return "";
187
+ }
188
+
189
+ const parts = [];
190
+ if (inline && inline.length > 0) {
191
+ parts.push(`Inline restore instruction:\n${inline}`);
192
+ }
193
+ if (filePath && filePath.length > 0) {
194
+ // R5 seat-check: resolve to the per-seat extra or a seat-safe global; a
195
+ // foreign-seat global resolves to null and is never injected into this marker.
196
+ const resolved = resolveSeatSafeExtraPath(filePath);
197
+ if (resolved) {
198
+ try {
199
+ const fileText = readInstructionFile(resolved);
200
+ if (fileText) {
201
+ parts.push(`Additional restore instruction file (${resolved}):\n${fileText}`);
202
+ }
203
+ } catch {
204
+ // Keep any inline instruction; unreadable extra files degrade quietly.
205
+ }
206
+ }
207
+ }
208
+ if (parts.length > 0) return parts.join("\n\n");
209
+ if (policyEnabled && !inlineConfigured && !filePathConfigured) {
210
+ return defaultRestoreInstruction;
211
+ }
212
+ return "";
213
+ }
214
+
215
+ function buildSystemMessage(restoreInstruction, customMessage) {
216
+ if (!customMessage) return restoreInstruction;
217
+ return `${restoreInstruction}\n\n--- Operator-configured post-compaction restore instruction ---\n${customMessage}`;
218
+ }
219
+
220
+ try {
221
+ // Slice 51-01 RIDER (leak-visibility, review-r1 escalation): OPENRIG_TEST_CLOCK_NOW is
222
+ // read by nowIso() to make createdAt deterministic in tests — but a LEAKED var in a
223
+ // real seat would silently FREEZE production createdAt. Announce loudly on stderr when
224
+ // active so any leak is visible in seat logs; absence stays silent (production path).
225
+ // MUST stay byte-identical to STUB_CLOCK_ANNOUNCEMENT in stub-runner.ts.
226
+ if (typeof process.env.OPENRIG_TEST_CLOCK_NOW === "string" && process.env.OPENRIG_TEST_CLOCK_NOW.trim().length > 0) {
227
+ process.stderr.write("OPENRIG_TEST_CLOCK_NOW active — timestamps are injected\n");
228
+ }
229
+ const input = readHookInput();
230
+ writeExpectedSentinel(input); // R5: sentinel FIRST, before the packet + marker (catches hook-died-partway)
231
+ const args = [restoreScript, "--out", outRoot, "--json"];
232
+ if (input.cwd) args.push("--cwd", input.cwd);
233
+ if (input.transcript_path && input.transcript_path.endsWith(".jsonl") && fs.existsSync(input.transcript_path)) {
234
+ args.push(input.transcript_path);
235
+ }
236
+
237
+ const customMessage = readClaudeCompactionMessage();
238
+
239
+ const result = spawnSync("node", args, { encoding: "utf8" });
240
+ if (result.status !== 0) {
241
+ const baseFailure = `Claude compaction restore packet generation failed: ${(result.stderr || result.stdout || "unknown error").trim()}. After compaction, load the claude-compaction-restore skill and run restore-from-jsonl manually.`;
242
+ emit({
243
+ continue: true,
244
+ systemMessage: buildSystemMessage(baseFailure, customMessage),
245
+ });
246
+ process.exit(0);
247
+ }
248
+
249
+ const parsed = JSON.parse(result.stdout);
250
+ const baseRestore = `Pre-compaction restore seed packet prepared at ${parsed.outputDir}. This hook output is informational. After compaction, OpenRig may send a later normal user message asking you to restore from this packet; treat that later normal user message as the action request. The restore protocol is: load/read the claude-compaction-restore skill, run "node ~/.claude/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs --out /tmp/claude-compaction-restore --json" yourself when needed, read the generated restore-instructions.md, read the generated touched-files.md, identify remembered important files, read those files in full, read root/as-built/codemap docs before real work, then reply with "restored from packet at <path>; resumed at step <X>" with the files you read in full. If any step fails, report the failure explicitly.`;
251
+ const markerPath = writePendingRestoreMarker(input, parsed, baseRestore, customMessage);
252
+ emit({
253
+ continue: true,
254
+ systemMessage: buildSystemMessage(`${baseRestore} OpenRig also wrote a pending restore marker at ${markerPath}.`, customMessage),
255
+ });
256
+ } catch (error) {
257
+ emit({
258
+ continue: true,
259
+ systemMessage: `Claude compaction restore hook errored: ${error.message}. After compaction, load the claude-compaction-restore skill and run restore-from-jsonl manually.`,
260
+ });
261
+ }