@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,518 @@
1
+ import { detailPage, listItem, sectionRule } from "../detail.js";
2
+ const MAX_ROWS_PER_WAVE = 5;
3
+ const INDETERMINATE = "INDETERMINATE";
4
+ const RUNGS = ["locked", "built", "reviewed", "folded", "adopted"];
5
+ /** Ordinary words for the ladder rungs. */
6
+ const RUNG_WORD = { locked: "spec locked", built: "built", reviewed: "reviewed", folded: "merged", adopted: "live" };
7
+ function record(value) {
8
+ return value != null && typeof value === "object" && !Array.isArray(value)
9
+ ? value
10
+ : {};
11
+ }
12
+ function str(value, fallback = "?") {
13
+ return typeof value === "string" && value !== "" ? value : value == null ? fallback : String(value);
14
+ }
15
+ function shortSha(value) {
16
+ return typeof value === "string" ? value.slice(0, 9) : "?";
17
+ }
18
+ function clock(iso) {
19
+ return typeof iso === "string" && iso.length >= 19 ? `${iso.slice(11, 19)}Z` : "";
20
+ }
21
+ function clip(text, room) {
22
+ return text.length > room ? `${text.slice(0, Math.max(room - 1, 0))}…` : text;
23
+ }
24
+ function open(key) {
25
+ return { type: "execution-open", key };
26
+ }
27
+ /** A drillable row. The text is clamped so the open affordance always survives the pane
28
+ * width; the full facts live one drill away. */
29
+ function actionRow(text, action, width = Number.MAX_SAFE_INTEGER) {
30
+ return { text: ` ${clip(text, Math.max(width - 13, 24))} (open ▸)`, action };
31
+ }
32
+ function row(text, key, width = Number.MAX_SAFE_INTEGER) {
33
+ return actionRow(text, open(key), width);
34
+ }
35
+ function rungCell(ladder, rung) {
36
+ const cell = record(ladder[rung]);
37
+ const basis = str(cell["basis"], "basis unavailable");
38
+ if (rung === "built") {
39
+ const sha = cell["candidate_sha"];
40
+ return { value: sha, basis, state: typeof sha === "string" && sha !== INDETERMINATE ? "yes" : "undetermined" };
41
+ }
42
+ const value = cell["value"];
43
+ return { value, basis, state: value === true ? "yes" : value === false ? "no" : "undetermined" };
44
+ }
45
+ /** Highest rung actually confirmed (true / built sha), 0 = nothing confirmed. */
46
+ function reachedRank(cells) {
47
+ for (let i = RUNGS.length - 1; i >= 0; i--)
48
+ if (cells[RUNGS[i]].state === "yes")
49
+ return i + 1;
50
+ return 0;
51
+ }
52
+ /** The evidence fact in words: the highest confirmed rung, or the reason nothing is. */
53
+ function evidenceText(cells, rank) {
54
+ if (rank === 0)
55
+ return cells.built.state === "undetermined" ? "no candidate recorded" : "nothing confirmed";
56
+ const rung = RUNGS[rank - 1];
57
+ return rung === "built" ? `built ${shortSha(cells.built.value)}` : RUNG_WORD[rung];
58
+ }
59
+ function sliceName(scope, dir) {
60
+ const raw = scope?.displayName ?? dir;
61
+ // the id column already says which slice; "Slice 04 — " in front of the name is noise
62
+ return raw.replace(/^slice\s+\d+\s*[—–-]\s*/i, "").trim() || dir;
63
+ }
64
+ function sliceFacts(execution, scopes) {
65
+ const missionScopes = scopes?.find((item) => item.mission === execution.mission);
66
+ const seq = execution.q2_sequencing ?? [];
67
+ const care = execution.q3_care ?? [];
68
+ const lanes = execution.q1_lanes ?? [];
69
+ const parks = execution.q5_park ?? [];
70
+ return (execution.q4_ladder ?? []).map((ladder, index) => {
71
+ const id = str(ladder["slice_id"] ?? ladder["dir"]);
72
+ const dir = str(ladder["dir"], id);
73
+ const cells = Object.fromEntries(RUNGS.map((rung) => [rung, rungCell(ladder, rung)]));
74
+ const seqIndex = seq.findIndex((item) => item["slice_id"] === id || item["dir"] === dir);
75
+ const scope = missionScopes?.slices.find((slice) => slice.id === id || slice.dirName === dir) ?? null;
76
+ const lane = lanes.find((candidate) => candidate["slice"] === id) ?? null;
77
+ return {
78
+ id,
79
+ dir,
80
+ name: sliceName(scope, dir),
81
+ order: seqIndex >= 0 ? seqIndex : seq.length + index,
82
+ ladder,
83
+ cells,
84
+ rank: reachedRank(cells),
85
+ sequencing: seqIndex >= 0 ? seq[seqIndex] : null,
86
+ care: care.find((item) => item["slice_id"] === id) ?? null,
87
+ scope,
88
+ lane,
89
+ park: lane ? parks.find((item) => item["qitem_id"] === lane["qitem_id"]) ?? null : null,
90
+ };
91
+ }).sort((a, b) => a.order - b.order);
92
+ }
93
+ /** blocked_on_rows entries are `{ qitem_id, blocked_on }` — the slice's own row and the row it
94
+ * waits on. Render the relation, never the object. */
95
+ function blockerText(rows, lead = "row") {
96
+ if (!Array.isArray(rows) || rows.length === 0)
97
+ return "";
98
+ return rows
99
+ .map((entry) => {
100
+ if (typeof entry === "string")
101
+ return entry;
102
+ const r = record(entry);
103
+ const own = str(r["qitem_id"], "?");
104
+ const blocker = str(r["blocked_on"], "?");
105
+ return lead === "blocker" ? `waits on ${blocker} · own row ${own}` : `${own} waits on ${blocker}`;
106
+ })
107
+ .join("; ");
108
+ }
109
+ /** Declared work state — the slice file's own status word, verbatim. */
110
+ function declaredText(slice) {
111
+ return slice.scope?.status?.trim().toLowerCase() || "no declared status";
112
+ }
113
+ function seatShort(seat) {
114
+ const full = str(seat, "");
115
+ return full.includes("@") ? full.slice(0, full.indexOf("@")) : full;
116
+ }
117
+ /** A live problem on the slice, in words, or null. Elapsed time alone is never a verdict. */
118
+ function problemText(slice) {
119
+ const activity = record(slice.lane?.["activity"]);
120
+ const needs = record(activity["needs_input"]);
121
+ if (Number(needs["count"] ?? 0) > 0)
122
+ return `needs input: ${str(needs["reason"], String(needs["count"]))}`;
123
+ const blocked = blockerText(slice.sequencing?.["blocked_on_rows"], "blocker");
124
+ if (blocked)
125
+ return blocked.split(" · own row ")[0];
126
+ const pickup = slice.park?.["pickup_state"];
127
+ if (slice.park && pickup !== "working") {
128
+ const age = slice.park["age_minutes"] != null ? ` ${String(slice.park["age_minutes"])} min` : "";
129
+ return `${str(pickup, INDETERMINATE)}${age}`;
130
+ }
131
+ return null;
132
+ }
133
+ /** The one state word a person scans: a live problem, live activity, else the declared status. */
134
+ function stateWord(slice) {
135
+ const problem = problemText(slice);
136
+ if (problem)
137
+ return problem.startsWith("needs input") ? "needs input" : problem.startsWith("waits on") ? "blocked" : problem.split(" ")[0];
138
+ if (slice.lane)
139
+ return str(record(slice.lane["activity"])["activity"], "claimed");
140
+ return declaredText(slice);
141
+ }
142
+ function proofText(scope) {
143
+ if (!scope)
144
+ return null;
145
+ if (scope.proof.total === 0)
146
+ return "no proof contract";
147
+ return `proof ${scope.proof.paired} of ${scope.proof.total}`;
148
+ }
149
+ function assigneeText(slice) {
150
+ if (!slice.lane)
151
+ return null;
152
+ const activity = record(slice.lane["activity"]);
153
+ const by = str(activity["decided_by"], "");
154
+ return `${seatShort(slice.lane["seat"])}${by ? ` (${by})` : ""}`;
155
+ }
156
+ /** What unlocks next, only when the projection actually says so. */
157
+ function nextText(slice) {
158
+ const seq = slice.sequencing;
159
+ if (!seq)
160
+ return null;
161
+ if (seq["next_up"] === true)
162
+ return "ready to start";
163
+ if (blockerText(seq["blocked_on_rows"]))
164
+ return null; // the problem column carries it
165
+ if (slice.lane || slice.rank >= 4 || declaredText(slice) === "done")
166
+ return null;
167
+ const deps = seq["depends_on"];
168
+ if (Array.isArray(deps) && deps.length > 0)
169
+ return `after ${deps.map(String).join(", ")}`;
170
+ return null;
171
+ }
172
+ function waveOf(slice) {
173
+ const wave = slice.care?.["build_wave"];
174
+ return typeof wave === "string" && wave !== INDETERMINATE ? wave : "no wave declared";
175
+ }
176
+ // ---- rows ----------------------------------------------------------------------
177
+ function sliceAction(execution, slice) {
178
+ return slice.scope
179
+ ? { type: "scopes-open", mission: execution.mission, slice: slice.scope.dirName }
180
+ : open(`slice:${slice.id}`);
181
+ }
182
+ function sliceRow(execution, slice, width, stateWidth, idWidth) {
183
+ // facts in priority order; a narrow pane drops from the END (proof, evidence, next…) and
184
+ // the assignee's decider before it ever clips a fact mid-word
185
+ const facts = [
186
+ assigneeText(slice),
187
+ problemText(slice),
188
+ slice.lane ? null : nextText(slice),
189
+ evidenceText(slice.cells, slice.rank),
190
+ proofText(slice.scope),
191
+ ].filter((fact) => !!fact);
192
+ const prefix = `${stateWord(slice).padEnd(stateWidth)} ${slice.id.padEnd(idWidth)} `;
193
+ const budget = Math.max(width - 13, 24) - prefix.length;
194
+ let shown = facts;
195
+ while (shown.join(" · ").length > budget && shown.length > 1) {
196
+ const decider = shown.findIndex((fact) => / \(.+\)$/.test(fact) && fact === assigneeText(slice));
197
+ shown = decider >= 0 ? shown.map((fact, i) => (i === decider ? fact.replace(/ \(.+\)$/, "") : fact)) : shown.slice(0, -1);
198
+ }
199
+ const factsText = shown.join(" · ");
200
+ const room = budget - factsText.length - 3;
201
+ // the name gets whatever room the facts leave; below twelve cells it is dropped, not stubbed
202
+ const name = room >= 12 ? `${clip(slice.name, room)} · ` : "";
203
+ return actionRow(`${prefix}${name}${factsText}`, sliceAction(execution, slice), width);
204
+ }
205
+ function countWords(slices) {
206
+ const counts = new Map();
207
+ for (const slice of slices)
208
+ counts.set(stateWord(slice), (counts.get(stateWord(slice)) ?? 0) + 1);
209
+ return [...counts.entries()].sort((a, b) => b[1] - a[1]).map(([word, n]) => `${n} ${word}`).join(", ");
210
+ }
211
+ function waveTitle(wave, members) {
212
+ return `wave ${wave} · ${members.length} slice${members.length === 1 ? "" : "s"} · ${countWords(members)}`;
213
+ }
214
+ function waveRows(execution, wave, members, width, stateWidth, idWidth, capped) {
215
+ const shown = capped ? members.slice(0, MAX_ROWS_PER_WAVE) : members;
216
+ const overflow = members.length - shown.length;
217
+ return [
218
+ { text: "" },
219
+ sectionRule(waveTitle(wave, members), width),
220
+ ...shown.map((slice) => sliceRow(execution, slice, width, stateWidth, idWidth)),
221
+ ...(overflow > 0 ? [row(`+${overflow} more — open all ${members.length} rows in wave ${wave}`, `group:wave:${wave}`, width)] : []),
222
+ ];
223
+ }
224
+ function collectIndeterminate(execution, slices) {
225
+ const groups = new Map();
226
+ const add = (where, member, basis) => {
227
+ if (typeof basis !== "string")
228
+ return;
229
+ const key = `${where}|${basis}`;
230
+ const existing = groups.get(key) ?? { basis, where, members: [] };
231
+ if (!existing.members.includes(member))
232
+ existing.members.push(member);
233
+ groups.set(key, existing);
234
+ };
235
+ // Only the FIRST undetermined rung is a blind spot; every rung above it is undetermined
236
+ // as a consequence and would repeat the same fact.
237
+ for (const slice of slices) {
238
+ const first = RUNGS.find((rung) => slice.cells[rung].state === "undetermined");
239
+ if (first)
240
+ add(RUNG_WORD[first], slice.id, slice.cells[first].basis);
241
+ }
242
+ for (const lane of execution.q1_lanes ?? []) {
243
+ const activity = record(lane["activity"]);
244
+ if (activity["activity"] === INDETERMINATE)
245
+ add("activity", str(lane["slice"] ?? lane["qitem_id"], "lane"), activity["basis"]);
246
+ }
247
+ return [...groups.values()].sort((a, b) => b.members.length - a.members.length);
248
+ }
249
+ /** The mission-level gap, stated once as two short lines (the first is the drill), or
250
+ * nothing when every rung is determined for every slice. */
251
+ function evidenceGapLines(execution, slices, width) {
252
+ const undetermined = slices.filter((slice) => RUNGS.some((rung) => slice.cells[rung].state === "undetermined"));
253
+ if (undetermined.length === 0)
254
+ return [];
255
+ const gitBasis = str(record(execution.sources?.["git"])["basis"], "");
256
+ const noRepo = /no reachable repo|no repo/i.test(gitBasis);
257
+ const cause = noRepo ? "no repository reachable" : gitBasis || "evidence sources missing";
258
+ return [
259
+ row(`evidence gap — ${cause}; declared state shown`, "evidence", width),
260
+ { text: ` evidence unconfirmed for ${undetermined.length} of ${slices.length} slices (unknown, not waiting)` },
261
+ ];
262
+ }
263
+ function evidenceDetail(execution, slices, width) {
264
+ const gitBasis = str(record(execution.sources?.["git"])["basis"], "(no git source cell)");
265
+ const lines = [
266
+ { text: `${execution.mission} · evidence gap · derived ${clock(execution.derived_at) || "?"}` },
267
+ { text: "" },
268
+ { text: " Declared state comes from each slice file. Evidence rungs come from the daemon's" },
269
+ { text: " execution projection, which needs a reachable repository to confirm reviewed, merged" },
270
+ { text: " and live. Unconfirmed is not waiting work and not done; it is unknown." },
271
+ { text: "" },
272
+ sectionRule("repository source", width),
273
+ { text: ` git: ${gitBasis}` },
274
+ ];
275
+ for (const item of collectIndeterminate(execution, slices)) {
276
+ lines.push({ text: "" }, sectionRule(`${item.where} unconfirmed for ${item.members.length} slice${item.members.length === 1 ? "" : "s"}`, width));
277
+ lines.push({ text: ` basis: ${item.basis}` });
278
+ for (const member of item.members)
279
+ lines.push(listItem(member, open(`slice:${member}`)));
280
+ }
281
+ lines.push({ text: "" }, row("projection sources and derivation bases", "sources", width), { text: "" }, back());
282
+ return lines;
283
+ }
284
+ // ---- overview ----------------------------------------------------------------------
285
+ function overviewLines(execution, scopes, width) {
286
+ const slices = sliceFacts(execution, scopes);
287
+ const declared = new Map();
288
+ for (const slice of slices)
289
+ declared.set(declaredText(slice), (declared.get(declaredText(slice)) ?? 0) + 1);
290
+ const declaredText_ = [...declared.entries()].sort((a, b) => b[1] - a[1]).map(([word, n]) => `${n} ${word}`).join(", ");
291
+ const live = slices.filter((slice) => stateWord(slice) === "working").length;
292
+ const problems = slices.filter((slice) => problemText(slice)).length;
293
+ const build = shortSha(record(execution.sources?.["build_info"])["commit"]);
294
+ const lines = [
295
+ { text: ` ${execution.mission} EXECUTION · ${slices.length} slice${slices.length === 1 ? "" : "s"}` },
296
+ { text: ` declared in slice files: ${declaredText_ || "none"} · live now: ${live} working${problems ? `, ${problems} with a problem` : ""}` },
297
+ row(`sources · derived ${clock(execution.derived_at) || "?"} · daemon build ${build}`, "sources", width),
298
+ ...evidenceGapLines(execution, slices, width),
299
+ ];
300
+ const waves = new Map();
301
+ for (const slice of slices)
302
+ waves.set(waveOf(slice), [...(waves.get(waveOf(slice)) ?? []), slice]);
303
+ const stateWidth = Math.max(...slices.map((slice) => stateWord(slice).length), 4);
304
+ const idWidth = Math.max(...slices.map((slice) => slice.id.length), 1);
305
+ for (const [wave, members] of waves)
306
+ lines.push(...waveRows(execution, wave, members, width, stateWidth, idWidth, true));
307
+ if (slices.length === 0)
308
+ lines.push({ text: " (no slices on this mission)" });
309
+ return lines;
310
+ }
311
+ function waveDetail(execution, scopes, width, key) {
312
+ const wave = key.slice("group:wave:".length);
313
+ const slices = sliceFacts(execution, scopes);
314
+ const members = slices.filter((slice) => waveOf(slice) === wave);
315
+ if (members.length === 0)
316
+ return null;
317
+ const stateWidth = Math.max(...members.map((slice) => stateWord(slice).length), 4);
318
+ const idWidth = Math.max(...members.map((slice) => slice.id.length), 1);
319
+ return [
320
+ { text: `${execution.mission} · wave ${wave} · all ${members.length} rows` },
321
+ ...waveRows(execution, wave, members, width, stateWidth, idWidth, false),
322
+ { text: "" },
323
+ back(),
324
+ ];
325
+ }
326
+ // ---- drill pages -------------------------------------------------------------
327
+ function back() {
328
+ return { text: " esc back · ⏎ open · : command bar" };
329
+ }
330
+ function laneKey(lane) {
331
+ return `lane:${str(lane["qitem_id"], "unknown")}`;
332
+ }
333
+ function sliceDetail(execution, slices, id) {
334
+ const slice = slices.find((item) => item.id === id);
335
+ if (!slice)
336
+ return null;
337
+ const sections = [];
338
+ const ladderLines = [];
339
+ for (const rung of RUNGS) {
340
+ const cell = slice.cells[rung];
341
+ const value = rung === "built" ? (cell.state === "yes" ? shortSha(cell.value) : "undetermined") : cell.state;
342
+ ladderLines.push({ text: ` ${RUNG_WORD[rung].padEnd(12)} ${value}` });
343
+ ladderLines.push({ text: ` basis: ${cell.basis}` });
344
+ }
345
+ const legs = record(slice.ladder["reviewed"])["legs"];
346
+ if (Array.isArray(legs))
347
+ for (const leg of legs) {
348
+ const l = record(leg);
349
+ ladderLines.push(listItem(`review leg ${str(l["verdict"], "?")} · ${str(l["artifact_type"], "?")} · ${str(l["path"])}`, undefined, 12));
350
+ }
351
+ sections.push({
352
+ title: `declared ${declaredText(slice)} · evidence ${evidenceText(slice.cells, slice.rank)}`,
353
+ lines: ladderLines,
354
+ });
355
+ const seq = slice.sequencing;
356
+ if (seq) {
357
+ const deps = Array.isArray(seq["depends_on"]) ? seq["depends_on"].map(String) : [];
358
+ const blocked = blockerText(seq["blocked_on_rows"]);
359
+ sections.push({
360
+ title: "sequencing",
361
+ fields: [
362
+ { label: "depends on", value: deps.join(", ") || "(none)" },
363
+ { label: "next up", value: `${str(seq["next_up"], INDETERMINATE)} — ${str(seq["next_up_basis"], "no basis given")}` },
364
+ { label: "rank", value: str(seq["next_up_rank"], "—") },
365
+ { label: "blocked on", value: blocked || "(no rows)" },
366
+ { label: "wave", value: waveOf(slice) },
367
+ ],
368
+ });
369
+ }
370
+ if (slice.scope) {
371
+ const drops = slice.scope.proofContract.flatMap((contract) => contract.drops.map((drop) => `${drop.artifactType ?? "?"} ${drop.verdict ?? ""} · ${drop.file}`));
372
+ sections.push({
373
+ title: `proof ${slice.scope.proof.paired} of ${slice.scope.proof.total} paired`,
374
+ lines: drops.length ? drops.map((drop) => listItem(drop)) : [{ text: " (no proof drops recorded)" }],
375
+ });
376
+ }
377
+ if (slice.lane) {
378
+ const activity = record(slice.lane["activity"]);
379
+ sections.push({
380
+ title: "lane",
381
+ fields: [
382
+ { label: "seat", value: str(slice.lane["seat"]) },
383
+ { label: "activity", value: `${str(activity["activity"], INDETERMINATE)} · by ${str(activity["decided_by"], "?")} ${clock(activity["changed_at"])}`.trim(), link: open(laneKey(slice.lane)) },
384
+ ],
385
+ });
386
+ }
387
+ const source = record(seq?.["source"]);
388
+ sections.push({
389
+ title: "sources",
390
+ fields: [
391
+ { label: "spec", value: str(source["spec_path"], "(not named)") },
392
+ { label: "arrangement", value: str(source["arrangement_path"], "(not named)") },
393
+ { label: "wave map", value: str(source["wave_map_row"], "(not named)") },
394
+ ],
395
+ });
396
+ return [...detailPage({ text: `${slice.id} — ${slice.name}` }, sections), { text: "" }, back()];
397
+ }
398
+ function laneDetail(execution, key) {
399
+ const lane = (execution.q1_lanes ?? []).find((item) => laneKey(item) === key);
400
+ const park = (execution.q5_park ?? []).find((item) => `lane:${str(item["qitem_id"])}` === key || `park:${str(item["qitem_id"])}` === key);
401
+ if (!lane && !park)
402
+ return null;
403
+ const activity = record(lane?.["activity"]);
404
+ const needs = record(activity["needs_input"]);
405
+ const sections = [];
406
+ if (lane) {
407
+ sections.push({
408
+ title: "lane",
409
+ fields: [
410
+ { label: "qitem", value: str(lane["qitem_id"]) },
411
+ { label: "slice", value: str(lane["slice"]), link: open(`slice:${str(lane["slice"])}`) },
412
+ { label: "seat", value: str(lane["seat"]) },
413
+ { label: "activity", value: str(activity["activity"], INDETERMINATE) },
414
+ { label: "decided by", value: str(activity["decided_by"] ?? activity["basis"], "basis unavailable") },
415
+ { label: "changed", value: str(activity["changed_at"], "—") },
416
+ { label: "needs input", value: Number(needs["count"] ?? 0) > 0 ? `${str(needs["count"])} · ${str(needs["reason"], "input")}` : "none" },
417
+ { label: "pickup", value: str(record(lane["pickup"])["state"], INDETERMINATE) },
418
+ { label: "oracle", value: str(activity["source"], "(not named)") },
419
+ ],
420
+ });
421
+ sections.push({
422
+ title: `repo join${lane["fragile_join"] === true ? " · FRAGILE" : ""}`,
423
+ fields: [
424
+ { label: "worktree", value: str(lane["worktree_path"], INDETERMINATE) },
425
+ { label: "branch", value: str(lane["branch"], INDETERMINATE) },
426
+ { label: "head", value: str(lane["head_sha"], INDETERMINATE) },
427
+ { label: "join basis", value: str(lane["join_basis"], "(not named)") },
428
+ ],
429
+ });
430
+ }
431
+ if (park) {
432
+ sections.push({
433
+ title: "pickup · park row",
434
+ fields: [
435
+ { label: "qitem", value: str(park["qitem_id"]) },
436
+ { label: "pickup", value: str(park["pickup_state"], INDETERMINATE) },
437
+ { label: "kind", value: str(park["park_kind"], "indeterminate") },
438
+ { label: "basis", value: str(park["park_kind_basis"], "(not named)") },
439
+ { label: "wake", value: str(park["wake_target"], "none armed") },
440
+ { label: "age", value: park["age_minutes"] != null ? `${String(park["age_minutes"])} min since claim` : "—" },
441
+ ...(park["pickup_evidence"] ? [{ label: "evidence", value: str(park["pickup_evidence"]) }] : []),
442
+ ],
443
+ });
444
+ }
445
+ const heading = lane ? `lane ${str(lane["slice"])} · ${str(lane["seat"])}` : `row ${str(park?.["qitem_id"])}`;
446
+ return [...detailPage({ text: heading }, sections), { text: "" }, back()];
447
+ }
448
+ function sourcesDetail(execution) {
449
+ const lines = [{ text: `sources behind ${execution.mission} · derived ${clock(execution.derived_at) || "?"}` }];
450
+ for (const [name, raw] of Object.entries(execution.sources ?? {})) {
451
+ const cell = record(raw);
452
+ lines.push({ text: "" });
453
+ lines.push(sectionRule(name));
454
+ for (const [field, value] of Object.entries(cell))
455
+ lines.push({ text: ` ${`${field}:`.padEnd(12)} ${str(value, "—")}` });
456
+ if (Object.keys(cell).length === 0)
457
+ lines.push({ text: ` ${str(raw, "—")}` });
458
+ }
459
+ lines.push({ text: "" });
460
+ lines.push(back());
461
+ return lines;
462
+ }
463
+ export function executionContentLines(execution, scopes, readErrors, opened, width = 96, pending = false) {
464
+ if (!execution) {
465
+ const failure = readErrors.find((entry) => entry.startsWith("execution:"));
466
+ // three different truths, never one message: the read failed (named), the read has
467
+ // not answered yet (pending), or it answered with no execution row at all.
468
+ if (failure)
469
+ return [sectionRule("ATTENTION 1", width), { text: ` execution projection unavailable — ${failure}` }];
470
+ if (pending)
471
+ return [{ text: " execution projection: read pending — the first daemon read has not answered yet (honest-empty, not fabricated)" }];
472
+ return [sectionRule("ATTENTION 1", width), { text: " execution projection served no row — no active mission resolved on the daemon" }];
473
+ }
474
+ if (opened) {
475
+ const slices = sliceFacts(execution, scopes);
476
+ const page = opened === "sources"
477
+ ? sourcesDetail(execution)
478
+ : opened === "evidence"
479
+ ? evidenceDetail(execution, slices, width)
480
+ : opened.startsWith("group:wave:")
481
+ ? waveDetail(execution, scopes, width, opened)
482
+ : opened.startsWith("slice:")
483
+ ? sliceDetail(execution, slices, opened.slice("slice:".length))
484
+ : opened.startsWith("lane:") || opened.startsWith("park:")
485
+ ? laneDetail(execution, opened)
486
+ : null;
487
+ return page ?? [{ text: ` ${opened} is not in the current snapshot (it may have closed or been re-derived)` }, { text: "" }, back()];
488
+ }
489
+ return overviewLines(execution, scopes, width);
490
+ }
491
+ /** Compact source-grounded execution strip embedded in the existing rich SCOPES
492
+ * slice detail. Missing projection/slice data stays explicit instead of being inferred. */
493
+ export function executionSliceStripLines(execution, sliceId, sliceDir, width = 96, declared) {
494
+ if (!execution)
495
+ return [{ text: "" }, sectionRule("EXECUTION · not loaded", width), { text: " mission execution projection not loaded for this selection" }];
496
+ const slice = sliceFacts(execution, undefined).find((item) => item.id === sliceId || item.dir === sliceDir);
497
+ if (!slice)
498
+ return [{ text: "" }, sectionRule("EXECUTION · not in projection", width), { text: " slice absent from the mission execution projection" }];
499
+ const activity = record(slice.lane?.["activity"]);
500
+ const problem = problemText(slice);
501
+ const unconfirmed = RUNGS.filter((rung) => slice.cells[rung].state === "undetermined").map((rung) => RUNG_WORD[rung]);
502
+ const evidence = `${evidenceText(slice.cells, slice.rank)}${unconfirmed.length ? ` · ${unconfirmed.join(" / ")} unconfirmed (${slice.cells[RUNGS.find((rung) => slice.cells[rung].state === "undetermined")].basis})` : ""}`;
503
+ const liveWord = slice.lane ? str(activity["activity"], "claimed") : "no claimed lane";
504
+ const declaredWord = declared?.trim().toLowerCase() || "no declared status";
505
+ const next = declaredWord === "done" && !slice.lane
506
+ ? "none — declared done"
507
+ : nextText(slice) ?? (slice.lane ? "in progress on the lane above" : "nothing the projection can sequence");
508
+ return [
509
+ { text: "" },
510
+ sectionRule(`EXECUTION · ${problem ? stateWord(slice) : liveWord} · wave ${waveOf(slice)}`, width),
511
+ { text: ` declared ${declaredWord} (slice file)` },
512
+ actionRow(`evidence ${evidence}`, open("evidence"), width),
513
+ { text: ` assignment ${slice.lane ? `${str(slice.lane["seat"])} · ${str(activity["activity"], INDETERMINATE)} (${str(activity["decided_by"], "?")})` : "none — no claimed lane"}`, ...(slice.lane ? { action: open(laneKey(slice.lane)) } : {}) },
514
+ { text: ` next ${next}` },
515
+ { text: ` problem ${problem ?? "none on the projection's current surfaces"}` },
516
+ ];
517
+ }
518
+ //# sourceMappingURL=execution-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-model.js","sourceRoot":"","sources":["../../src/execution/execution-model.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,6 @@ type SpecLibraryReviewRead = AgentSpecReviewRead | RigSpecReviewRead;
73
73
  * avoids re-reading every spec every refresh; the key rolls when the library
74
74
  * entry's updatedAt changes. Owned by the caller (instance-scoped, no module state). */
75
75
  export type SpecReviewCache = Map<string, SpecLibraryReviewRead>;
76
- export declare function hydrateSnapshot(client: DaemonClient, reviewCache?: SpecReviewCache): Promise<FleetSnapshot>;
76
+ export declare function hydrateSnapshot(client: DaemonClient, reviewCache?: SpecReviewCache, executionMission?: string | null): Promise<FleetSnapshot>;
77
77
  export {};
78
78
  //# sourceMappingURL=hydrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydrate.d.ts","sourceRoot":"","sources":["../src/hydrate.ts"],"names":[],"mappings":"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"}
@@ -124,7 +124,7 @@ function agentSpecTruth(raw) {
124
124
  return { skills: [] };
125
125
  }
126
126
  }
127
- export async function hydrateSnapshot(client, reviewCache) {
127
+ export async function hydrateSnapshot(client, reviewCache, executionMission) {
128
128
  const readErrors = [];
129
129
  async function safe(label, fn) {
130
130
  try {
@@ -135,7 +135,7 @@ export async function hydrateSnapshot(client, reviewCache) {
135
135
  return null;
136
136
  }
137
137
  }
138
- const [agg, summaries, library, review, streamItems, attention, blocked, inProgress, pending, recentlyFinished, scopesRead] = await Promise.all([
138
+ const [agg, summaries, library, review, streamItems, attention, blocked, inProgress, pending, recentlyFinished, scopesRead, executionRead] = await Promise.all([
139
139
  safe("attention-aggregate", () => client.attentionAggregate()),
140
140
  safe("rigs-summary", () => client.rigsSummary()),
141
141
  safe("specs-library", () => client.specsLibrary()),
@@ -149,6 +149,7 @@ export async function hydrateSnapshot(client, reviewCache) {
149
149
  safe("queue-pending", () => client.queuePending()),
150
150
  safe("queue-recently-finished", () => client.queueRecentlyFinished()),
151
151
  safe("scopes", () => client.scopesDetailed()),
152
+ safe("execution", () => client.execution(executionMission ?? undefined)),
152
153
  ]);
153
154
  const agentSpecNames = new Set((library ?? []).filter((entry) => entry.kind === "agent").map((entry) => entry.name));
154
155
  if (review?.registryError)
@@ -346,6 +347,7 @@ export async function hydrateSnapshot(client, reviewCache) {
346
347
  .map((h) => ({ hostId: h.hostId, status: h.status, ...(h.error ? { error: h.error } : {}) })),
347
348
  ...rigsDown,
348
349
  ];
350
+ const execution = (executionRead?.rows?.[0] ?? null);
349
351
  return {
350
352
  hosts: [localHost, ...remoteHosts],
351
353
  specs,
@@ -353,6 +355,8 @@ export async function hydrateSnapshot(client, reviewCache) {
353
355
  humanQueueProbed: review != null && !review.registryError && Array.isArray(review.hosts) && review.hosts.length > 0
354
356
  && review.hosts.every((host) => host.status.status === "ok"),
355
357
  scopes: (scopesRead?.missions ?? []),
358
+ execution,
359
+ executionMission: executionMission ?? execution?.mission ?? null,
356
360
  attention: (attention ?? []).map(toQueueRead),
357
361
  blocked: blockedResolved,
358
362
  inProgress: (inProgress ?? []).map(toQueueRead),