@openrig/cli 0.4.6 → 0.4.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 (472) hide show
  1. package/daemon/assets/guidance/CULTURE-default.md +19 -0
  2. package/daemon/assets/guidance/openrig-start.md +20 -5
  3. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  4. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +120 -0
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -6
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +11 -72
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
  8. package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +43 -0
  9. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +36 -22
  10. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +108 -0
  11. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +7 -13
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +88 -0
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +189 -105
  14. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +26 -9
  15. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +11 -9
  16. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +162 -0
  17. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +165 -0
  18. package/daemon/dist/adapters/claude-code-adapter.d.ts +0 -9
  19. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  20. package/daemon/dist/adapters/claude-code-adapter.js +13 -46
  21. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  22. package/daemon/dist/adapters/claude-resume.d.ts +1 -1
  23. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  24. package/daemon/dist/adapters/claude-resume.js +8 -2
  25. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  26. package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
  27. package/daemon/dist/adapters/cmux-transport.js +8 -1
  28. package/daemon/dist/adapters/cmux-transport.js.map +1 -1
  29. package/daemon/dist/adapters/cmux.d.ts +9 -0
  30. package/daemon/dist/adapters/cmux.d.ts.map +1 -1
  31. package/daemon/dist/adapters/cmux.js +21 -0
  32. package/daemon/dist/adapters/cmux.js.map +1 -1
  33. package/daemon/dist/adapters/codex-resume.d.ts +1 -1
  34. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  35. package/daemon/dist/adapters/codex-resume.js +4 -2
  36. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  37. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
  38. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  39. package/daemon/dist/adapters/codex-runtime-adapter.js +30 -9
  40. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  41. package/daemon/dist/adapters/pi-resume.d.ts +1 -1
  42. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  43. package/daemon/dist/adapters/pi-resume.js +7 -2
  44. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  45. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  46. package/daemon/dist/adapters/pi-runtime-adapter.js +4 -1
  47. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  48. package/daemon/dist/adapters/yolo-mode.d.ts +23 -0
  49. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -0
  50. package/daemon/dist/adapters/yolo-mode.js +49 -0
  51. package/daemon/dist/adapters/yolo-mode.js.map +1 -0
  52. package/daemon/dist/build-info.js +3 -3
  53. package/daemon/dist/db/migrations/055_node_permission_policy.d.ts +13 -0
  54. package/daemon/dist/db/migrations/055_node_permission_policy.d.ts.map +1 -0
  55. package/daemon/dist/db/migrations/055_node_permission_policy.js +17 -0
  56. package/daemon/dist/db/migrations/055_node_permission_policy.js.map +1 -0
  57. package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts +13 -0
  58. package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts.map +1 -0
  59. package/daemon/dist/db/migrations/056_rig_permission_policy.js +17 -0
  60. package/daemon/dist/db/migrations/056_rig_permission_policy.js.map +1 -0
  61. package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts +19 -0
  62. package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts.map +1 -0
  63. package/daemon/dist/db/migrations/057_node_policy_provenance.js +26 -0
  64. package/daemon/dist/db/migrations/057_node_policy_provenance.js.map +1 -0
  65. package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts +15 -0
  66. package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts.map +1 -0
  67. package/daemon/dist/db/migrations/058_rig_policy_provenance.js +22 -0
  68. package/daemon/dist/db/migrations/058_rig_policy_provenance.js.map +1 -0
  69. package/daemon/dist/domain/builtin-policy-reference.d.ts +13 -0
  70. package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -0
  71. package/daemon/dist/domain/builtin-policy-reference.js +58 -0
  72. package/daemon/dist/domain/builtin-policy-reference.js.map +1 -0
  73. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -0
  74. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  75. package/daemon/dist/domain/claude-compaction-enforcer.js +19 -3
  76. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  77. package/daemon/dist/domain/cmux-layout-service.d.ts +36 -0
  78. package/daemon/dist/domain/cmux-layout-service.d.ts.map +1 -1
  79. package/daemon/dist/domain/cmux-layout-service.js +100 -28
  80. package/daemon/dist/domain/cmux-layout-service.js.map +1 -1
  81. package/daemon/dist/domain/context-monitor.d.ts +2 -0
  82. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  83. package/daemon/dist/domain/context-monitor.js +14 -0
  84. package/daemon/dist/domain/context-monitor.js.map +1 -1
  85. package/daemon/dist/domain/feed/attention-aggregator.js +1 -1
  86. package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -1
  87. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  88. package/daemon/dist/domain/hosts/hosts-registry-reader.js +12 -10
  89. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  90. package/daemon/dist/domain/hosts/hosts-registry-writer.d.ts.map +1 -1
  91. package/daemon/dist/domain/hosts/hosts-registry-writer.js +3 -2
  92. package/daemon/dist/domain/hosts/hosts-registry-writer.js.map +1 -1
  93. package/daemon/dist/domain/hosts/read-through.js +1 -1
  94. package/daemon/dist/domain/hosts/read-through.js.map +1 -1
  95. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  96. package/daemon/dist/domain/hosts/remote-daemon-http.js +8 -5
  97. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  98. package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
  99. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  100. package/daemon/dist/domain/native-resume-probe.js +11 -4
  101. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  102. package/daemon/dist/domain/node-inventory.d.ts +3 -12
  103. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  104. package/daemon/dist/domain/node-inventory.js +57 -15
  105. package/daemon/dist/domain/node-inventory.js.map +1 -1
  106. package/daemon/dist/domain/permission-policy/policy-ref.d.ts +89 -0
  107. package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -0
  108. package/daemon/dist/domain/permission-policy/policy-ref.js +171 -0
  109. package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -0
  110. package/daemon/dist/domain/permission-policy/policy-spec.d.ts +34 -0
  111. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -0
  112. package/daemon/dist/domain/permission-policy/policy-spec.js +106 -0
  113. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -0
  114. package/daemon/dist/domain/plugin-vendor-service.d.ts +2 -0
  115. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  116. package/daemon/dist/domain/plugin-vendor-service.js +23 -0
  117. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  118. package/daemon/dist/domain/projection-lane.d.ts +7 -0
  119. package/daemon/dist/domain/projection-lane.d.ts.map +1 -0
  120. package/daemon/dist/domain/projection-lane.js +28 -0
  121. package/daemon/dist/domain/projection-lane.js.map +1 -0
  122. package/daemon/dist/domain/ps-projection.d.ts +19 -0
  123. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  124. package/daemon/dist/domain/ps-projection.js +46 -6
  125. package/daemon/dist/domain/ps-projection.js.map +1 -1
  126. package/daemon/dist/domain/queue-repository.d.ts +14 -10
  127. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  128. package/daemon/dist/domain/queue-repository.js +33 -12
  129. package/daemon/dist/domain/queue-repository.js.map +1 -1
  130. package/daemon/dist/domain/restore-orchestrator.d.ts +14 -0
  131. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  132. package/daemon/dist/domain/restore-orchestrator.js +90 -6
  133. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  134. package/daemon/dist/domain/review/compose.d.ts +77 -4
  135. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  136. package/daemon/dist/domain/review/compose.js +152 -16
  137. package/daemon/dist/domain/review/compose.js.map +1 -1
  138. package/daemon/dist/domain/review/fleet-compose.js +1 -1
  139. package/daemon/dist/domain/review/fleet-compose.js.map +1 -1
  140. package/daemon/dist/domain/review/gather.d.ts +1 -1
  141. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  142. package/daemon/dist/domain/review/gather.js +92 -67
  143. package/daemon/dist/domain/review/gather.js.map +1 -1
  144. package/daemon/dist/domain/review/proof-io.d.ts +2 -0
  145. package/daemon/dist/domain/review/proof-io.d.ts.map +1 -0
  146. package/daemon/dist/domain/review/proof-io.js +38 -0
  147. package/daemon/dist/domain/review/proof-io.js.map +1 -0
  148. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
  149. package/daemon/dist/domain/rig-expansion-service.js +10 -1
  150. package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
  151. package/daemon/dist/domain/rig-repository.d.ts +45 -0
  152. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  153. package/daemon/dist/domain/rig-repository.js +75 -1
  154. package/daemon/dist/domain/rig-repository.js.map +1 -1
  155. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  156. package/daemon/dist/domain/rigspec-codec.js +6 -0
  157. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  158. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  159. package/daemon/dist/domain/rigspec-exporter.js +8 -0
  160. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  161. package/daemon/dist/domain/rigspec-instantiator.d.ts +18 -1
  162. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  163. package/daemon/dist/domain/rigspec-instantiator.js +202 -10
  164. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  165. package/daemon/dist/domain/rigspec-preflight.d.ts +11 -0
  166. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  167. package/daemon/dist/domain/rigspec-preflight.js +35 -1
  168. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  169. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  170. package/daemon/dist/domain/rigspec-schema.js +25 -0
  171. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  172. package/daemon/dist/domain/runtime-adapter.d.ts +5 -0
  173. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  174. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  175. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +8 -0
  176. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -0
  177. package/daemon/dist/domain/scope/plan-lock-artifacts.js +57 -0
  178. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -0
  179. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +38 -0
  180. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -0
  181. package/daemon/dist/domain/scope/scaffold-placeholder.js +98 -0
  182. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -0
  183. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  184. package/daemon/dist/domain/scope/scope-approve.js +22 -1
  185. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  186. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  187. package/daemon/dist/domain/scope/scope-audit.js +57 -20
  188. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  189. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  190. package/daemon/dist/domain/seat-handover-service.js +7 -1
  191. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  192. package/daemon/dist/domain/session-transport.d.ts +17 -0
  193. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  194. package/daemon/dist/domain/session-transport.js +44 -0
  195. package/daemon/dist/domain/session-transport.js.map +1 -1
  196. package/daemon/dist/domain/slices/qitem-membership.d.ts +17 -0
  197. package/daemon/dist/domain/slices/qitem-membership.d.ts.map +1 -0
  198. package/daemon/dist/domain/slices/qitem-membership.js +60 -0
  199. package/daemon/dist/domain/slices/qitem-membership.js.map +1 -0
  200. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +5 -0
  201. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  202. package/daemon/dist/domain/slices/slice-detail-projector.js +157 -11
  203. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  204. package/daemon/dist/domain/slices/slice-indexer.d.ts +86 -0
  205. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  206. package/daemon/dist/domain/slices/slice-indexer.js +422 -45
  207. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  208. package/daemon/dist/domain/startup-orchestrator.d.ts +9 -0
  209. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  210. package/daemon/dist/domain/startup-orchestrator.js +71 -3
  211. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  212. package/daemon/dist/domain/successor-session-launcher.d.ts +4 -0
  213. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  214. package/daemon/dist/domain/successor-session-launcher.js +2 -0
  215. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  216. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts +12 -11
  217. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
  218. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +61 -28
  219. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
  220. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +27 -10
  221. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  222. package/daemon/dist/domain/terminal/herdr-adapter.js +74 -33
  223. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  224. package/daemon/dist/domain/transcript-capture.d.ts +3 -0
  225. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  226. package/daemon/dist/domain/transcript-capture.js +28 -0
  227. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  228. package/daemon/dist/domain/transcript-store.d.ts +10 -0
  229. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  230. package/daemon/dist/domain/transcript-store.js +26 -0
  231. package/daemon/dist/domain/transcript-store.js.map +1 -1
  232. package/daemon/dist/domain/types.d.ts +21 -0
  233. package/daemon/dist/domain/types.d.ts.map +1 -1
  234. package/daemon/dist/domain/types.js.map +1 -1
  235. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  236. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +9 -4
  237. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  238. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  239. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  240. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  241. package/daemon/dist/routes/agent-images.js +2 -0
  242. package/daemon/dist/routes/agent-images.js.map +1 -1
  243. package/daemon/dist/routes/mission-control.js +1 -1
  244. package/daemon/dist/routes/mission-control.js.map +1 -1
  245. package/daemon/dist/routes/missions.d.ts +7 -0
  246. package/daemon/dist/routes/missions.d.ts.map +1 -1
  247. package/daemon/dist/routes/missions.js +6 -1
  248. package/daemon/dist/routes/missions.js.map +1 -1
  249. package/daemon/dist/routes/ps.d.ts.map +1 -1
  250. package/daemon/dist/routes/ps.js +5 -1
  251. package/daemon/dist/routes/ps.js.map +1 -1
  252. package/daemon/dist/routes/queue.d.ts.map +1 -1
  253. package/daemon/dist/routes/queue.js +9 -2
  254. package/daemon/dist/routes/queue.js.map +1 -1
  255. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  256. package/daemon/dist/routes/rigs.js +29 -10
  257. package/daemon/dist/routes/rigs.js.map +1 -1
  258. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  259. package/daemon/dist/routes/scope-audit.js +141 -135
  260. package/daemon/dist/routes/scope-audit.js.map +1 -1
  261. package/daemon/dist/routes/sessions.js +2 -1
  262. package/daemon/dist/routes/sessions.js.map +1 -1
  263. package/daemon/dist/routes/slices.d.ts.map +1 -1
  264. package/daemon/dist/routes/slices.js +48 -38
  265. package/daemon/dist/routes/slices.js.map +1 -1
  266. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  267. package/daemon/dist/routes/transcripts.js +62 -33
  268. package/daemon/dist/routes/transcripts.js.map +1 -1
  269. package/daemon/dist/startup.d.ts.map +1 -1
  270. package/daemon/dist/startup.js +42 -12
  271. package/daemon/dist/startup.js.map +1 -1
  272. package/daemon/docs/reference/agent-startup-guide.md +1 -0
  273. package/daemon/docs/reference/rig-spec.md +19 -0
  274. package/daemon/policies/builtin/locked.policy.md +24 -0
  275. package/daemon/policies/builtin/open.policy.md +24 -0
  276. package/daemon/policies/builtin/standard.policy.md +25 -0
  277. package/daemon/policies/builtin/yolo.policy.md +20 -0
  278. package/daemon/policies/examples/my-cautious-dev.policy.md +40 -0
  279. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +2 -1
  280. package/daemon/specs/agents/conveyor/builder/agent.yaml +2 -1
  281. package/daemon/specs/agents/conveyor/lead/agent.yaml +2 -1
  282. package/daemon/specs/agents/conveyor/planner/agent.yaml +2 -1
  283. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +2 -1
  284. package/daemon/specs/agents/design/product-designer/agent.yaml +12 -2
  285. package/daemon/specs/agents/development/implementer/agent.yaml +12 -2
  286. package/daemon/specs/agents/development/qa/agent.yaml +12 -2
  287. package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
  288. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +2 -1
  289. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +2 -1
  290. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +12 -2
  291. package/daemon/specs/agents/product-management/pm/agent.yaml +1 -2
  292. package/daemon/specs/agents/research/analyst/agent.yaml +2 -1
  293. package/daemon/specs/agents/research/synthesizer/agent.yaml +2 -1
  294. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +12 -2
  295. package/daemon/specs/agents/shared/agent.yaml +5 -8
  296. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +1 -8
  297. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +132 -0
  298. package/daemon/{assets/plugins/openrig-core/skills → specs/agents/shared/skills/core}/agent-startup-and-context-ingestion/SKILL.md +27 -19
  299. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +264 -0
  300. package/daemon/specs/agents/shared/skills/core/cross-host-rig-commands/SKILL.md +190 -0
  301. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +104 -0
  302. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +23 -8
  303. package/daemon/specs/agents/shared/skills/core/openrig-cmux/SKILL.md +0 -5
  304. package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +1 -6
  305. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +460 -0
  306. package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  307. package/daemon/specs/agents/shared/skills/core/rig-lifecycle/SKILL.md +22 -11
  308. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +160 -0
  309. package/daemon/specs/agents/shared/skills/core/specification-system/SKILL.md +103 -0
  310. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  311. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +125 -0
  312. package/daemon/specs/agents/shared/skills/process/brainstorming/OPENRIG.md +3 -3
  313. package/daemon/specs/agents/shared/skills/process/executing-plans/OPENRIG.md +1 -1
  314. package/daemon/specs/agents/shared/skills/process/frontend-design/SKILL.md +6 -3
  315. package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
  316. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +1 -1
  317. package/daemon/specs/agents/shared/skills/process/using-superpowers/OPENRIG.md +1 -1
  318. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +13 -2
  319. package/daemon/specs/agents/shared/skills/process/writing-plans/OPENRIG.md +1 -1
  320. package/daemon/specs/rigs/focused/pm-team/CULTURE.md +1 -1
  321. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -2
  322. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +5 -4
  323. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -2
  324. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +3 -5
  325. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -2
  326. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +3 -4
  327. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  328. package/dist/bin-wrapper.d.ts.map +1 -1
  329. package/dist/bin-wrapper.js +3 -1
  330. package/dist/bin-wrapper.js.map +1 -1
  331. package/dist/build-info.js +3 -3
  332. package/dist/cli-error.d.ts +33 -0
  333. package/dist/cli-error.d.ts.map +1 -0
  334. package/dist/cli-error.js +94 -0
  335. package/dist/cli-error.js.map +1 -0
  336. package/dist/commands/config-init-workspace.js +1 -1
  337. package/dist/commands/doctor.d.ts +1 -1
  338. package/dist/commands/doctor.d.ts.map +1 -1
  339. package/dist/commands/doctor.js +17 -11
  340. package/dist/commands/doctor.js.map +1 -1
  341. package/dist/commands/host.d.ts.map +1 -1
  342. package/dist/commands/host.js +24 -10
  343. package/dist/commands/host.js.map +1 -1
  344. package/dist/commands/proof.js +1 -1
  345. package/dist/commands/proof.js.map +1 -1
  346. package/dist/commands/ps.d.ts.map +1 -1
  347. package/dist/commands/ps.js +16 -2
  348. package/dist/commands/ps.js.map +1 -1
  349. package/dist/commands/queue.d.ts.map +1 -1
  350. package/dist/commands/queue.js +103 -24
  351. package/dist/commands/queue.js.map +1 -1
  352. package/dist/commands/rig.d.ts.map +1 -1
  353. package/dist/commands/rig.js +122 -0
  354. package/dist/commands/rig.js.map +1 -1
  355. package/dist/commands/scope.js +2 -2
  356. package/dist/commands/scope.js.map +1 -1
  357. package/dist/commands/send.d.ts.map +1 -1
  358. package/dist/commands/send.js +118 -24
  359. package/dist/commands/send.js.map +1 -1
  360. package/dist/commands/setup.d.ts +14 -0
  361. package/dist/commands/setup.d.ts.map +1 -1
  362. package/dist/commands/setup.js +131 -8
  363. package/dist/commands/setup.js.map +1 -1
  364. package/dist/commands/slack.d.ts +37 -0
  365. package/dist/commands/slack.d.ts.map +1 -0
  366. package/dist/commands/slack.js +274 -0
  367. package/dist/commands/slack.js.map +1 -0
  368. package/dist/commands/ui.d.ts +1 -0
  369. package/dist/commands/ui.d.ts.map +1 -1
  370. package/dist/commands/ui.js +2 -0
  371. package/dist/commands/ui.js.map +1 -1
  372. package/dist/commands/up.js +1 -1
  373. package/dist/commands/up.js.map +1 -1
  374. package/dist/commands/whoami.d.ts.map +1 -1
  375. package/dist/commands/whoami.js +3 -3
  376. package/dist/commands/whoami.js.map +1 -1
  377. package/dist/daemon-lifecycle.d.ts.map +1 -1
  378. package/dist/daemon-lifecycle.js +45 -14
  379. package/dist/daemon-lifecycle.js.map +1 -1
  380. package/dist/host-registry.d.ts +6 -1
  381. package/dist/host-registry.d.ts.map +1 -1
  382. package/dist/host-registry.js +15 -6
  383. package/dist/host-registry.js.map +1 -1
  384. package/dist/index.d.ts +3 -0
  385. package/dist/index.d.ts.map +1 -1
  386. package/dist/index.js +6 -1
  387. package/dist/index.js.map +1 -1
  388. package/dist/lib/scope/scaffold-placeholder.d.ts +38 -0
  389. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -0
  390. package/dist/lib/scope/scaffold-placeholder.js +98 -0
  391. package/dist/lib/scope/scaffold-placeholder.js.map +1 -0
  392. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  393. package/dist/lib/scope/scope-audit.js +57 -20
  394. package/dist/lib/scope/scope-audit.js.map +1 -1
  395. package/dist/lib/scope-templates/backlog-deprecation.md +1 -1
  396. package/dist/lib/scope-templates/backlog-tech-debt.md +1 -1
  397. package/dist/lib/scope-templates/bug-fix.md +1 -1
  398. package/dist/lib/scope-templates/implementation-prd.md +1 -1
  399. package/dist/lib/scope-templates/mission-notes.md +7 -2
  400. package/dist/lib/scope-templates/mission-placeholder.md +1 -1
  401. package/dist/lib/scope-templates/mission-progress.md +1 -1
  402. package/dist/lib/scope-templates/mission-release.md +1 -1
  403. package/dist/lib/scope-templates/placeholder.md +1 -1
  404. package/dist/lib/scope-templates/proof.md +1 -1
  405. package/dist/lib/scope-templates/release-feature.md +1 -1
  406. package/dist/lib/scope-templates/research.md +1 -1
  407. package/dist/lib/scope-templates/slice-progress.md +1 -1
  408. package/dist/remote-host-ops.d.ts.map +1 -1
  409. package/dist/remote-host-ops.js +2 -2
  410. package/dist/remote-host-ops.js.map +1 -1
  411. package/dist/slack/config.d.ts +41 -0
  412. package/dist/slack/config.d.ts.map +1 -0
  413. package/dist/slack/config.js +60 -0
  414. package/dist/slack/config.js.map +1 -0
  415. package/dist/slack/inbound.d.ts +75 -0
  416. package/dist/slack/inbound.d.ts.map +1 -0
  417. package/dist/slack/inbound.js +133 -0
  418. package/dist/slack/inbound.js.map +1 -0
  419. package/dist/slack/message.d.ts +26 -0
  420. package/dist/slack/message.d.ts.map +1 -0
  421. package/dist/slack/message.js +60 -0
  422. package/dist/slack/message.js.map +1 -0
  423. package/dist/slack/outbound.d.ts +39 -0
  424. package/dist/slack/outbound.d.ts.map +1 -0
  425. package/dist/slack/outbound.js +52 -0
  426. package/dist/slack/outbound.js.map +1 -0
  427. package/dist/slack/queue-bridge.d.ts +56 -0
  428. package/dist/slack/queue-bridge.d.ts.map +1 -0
  429. package/dist/slack/queue-bridge.js +114 -0
  430. package/dist/slack/queue-bridge.js.map +1 -0
  431. package/dist/slack/secrets.d.ts +21 -0
  432. package/dist/slack/secrets.d.ts.map +1 -0
  433. package/dist/slack/secrets.js +73 -0
  434. package/dist/slack/secrets.js.map +1 -0
  435. package/dist/slack/slack-api.d.ts +49 -0
  436. package/dist/slack/slack-api.d.ts.map +1 -0
  437. package/dist/slack/slack-api.js +110 -0
  438. package/dist/slack/slack-api.js.map +1 -0
  439. package/dist/slack/state-store.d.ts +62 -0
  440. package/dist/slack/state-store.d.ts.map +1 -0
  441. package/dist/slack/state-store.js +132 -0
  442. package/dist/slack/state-store.js.map +1 -0
  443. package/package.json +1 -1
  444. package/ui/dist/assets/{index-zrFqS7gL.js → index-DkNi0RT8.js} +184 -184
  445. package/ui/dist/assets/index-N-SdPj-I.css +32 -0
  446. package/ui/dist/index.html +2 -2
  447. package/daemon/assets/plugins/openrig-core/skills/openrig-architect/SKILL.md +0 -361
  448. package/daemon/assets/plugins/openrig-core/skills/openrig-cmux/SKILL.md +0 -86
  449. package/daemon/assets/plugins/openrig-core/skills/openrig-herdr/SKILL.md +0 -158
  450. package/daemon/assets/plugins/openrig-core/skills/openrig-operator/SKILL.md +0 -222
  451. package/daemon/docs/reference/product-factory-vps-runbook.md +0 -132
  452. package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +0 -113
  453. package/daemon/specs/agents/shared/skills/core/openrig-installer/SKILL.md +0 -142
  454. package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +0 -110
  455. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +0 -1245
  456. package/daemon/specs/agents/shared/skills/core/openrig-user-settings/SKILL.md +0 -153
  457. package/daemon/specs/agents/shared/skills/pm/backlog-capture/SKILL.md +0 -43
  458. package/daemon/specs/agents/shared/skills/pm/context-builder/SKILL.md +0 -87
  459. package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +0 -84
  460. package/daemon/specs/agents/shared/skills/pm/office-hours/SKILL.md +0 -129
  461. package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +0 -98
  462. package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +0 -113
  463. package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +0 -76
  464. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +0 -148
  465. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +0 -266
  466. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +0 -210
  467. package/daemon/specs/agents/shared/skills/process/systematic-debugging/CREATION-LOG.md +0 -119
  468. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-academic.md +0 -14
  469. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-1.md +0 -58
  470. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-2.md +0 -68
  471. package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-3.md +0 -69
  472. package/ui/dist/assets/index-CFqxa0zW.css +0 -32
@@ -16,19 +16,35 @@ export interface HerdrSplitNode {
16
16
  }
17
17
  export type HerdrLayoutNode = HerdrPaneNode | HerdrSplitNode;
18
18
  /**
19
- * Build the balanced BSP layout tree for one page of panes. PURE. Splits
20
- * alternate right/down by depth at ratio 0.5 same-size tiles (the documented
21
- * v1 layout; asymmetric layouts are out of scope). Each leaf runs the
22
- * composer's shell `paneCommand` via `["sh","-c",…]` so the composed quoting
23
- * (read-only `-r`, ssh-wrap) is preserved untouched.
19
+ * Combine N nodes into an equal N-way strip along one direction. PURE.
20
+ * Equal N-way BSP is first-vs-rest at ratio 1/N, recursively 1/(N-1)
21
+ * NOT midpoint 0.5 (the VM-reproduced defect: alternating 0.5 splits gave
22
+ * N=7 a 4×2 layout with one double-width cell instead of the promised 3×3).
24
23
  */
25
- export declare function buildBspRoot(panes: ComposedPane[], depth?: number): HerdrLayoutNode;
24
+ export declare function equalStrip(nodes: HerdrLayoutNode[], direction: "right" | "down"): HerdrLayoutNode;
25
+ /**
26
+ * Build the EQUAL auto-grid layout tree for one page of panes. PURE. The grid
27
+ * shape matches the UI TerminalLauncher `suggestLayout` exactly —
28
+ * cols = ceil(sqrt(N)), rows = ceil(N/cols): N=2 → 2×1, N=5 → 3×2, N=7 → 3×3
29
+ * (cols×rows). An incomplete rectangle is padded with inert blank panes so
30
+ * every cell is the same size; blanks are layout filler only — they are never
31
+ * reported as opened seats. Each real leaf runs the composer's shell
32
+ * `paneCommand` via `["sh","-c",…]` so the composed quoting (read-only `-r`,
33
+ * ssh-wrap) is preserved untouched. Rows are built as equal `right` strips,
34
+ * then combined with equal `down` strips.
35
+ */
36
+ export declare function buildGridRoot(panes: ComposedPane[]): {
37
+ root: HerdrLayoutNode;
38
+ blanks: number;
39
+ };
26
40
  /** The per-page socket request plan — pure, so it is asserted directly in tests. */
27
41
  export interface HerdrPagePlan {
28
42
  /** Fresh tab label for this page (embeds the launch token → fresh-on-relaunch). */
29
43
  tabLabel: string;
30
44
  /** The whole page's layout tree — ONE atomic layout.apply request body. */
31
45
  root: HerdrLayoutNode;
46
+ /** Inert blank leaves padding the grid rectangle (never reported as opened). */
47
+ blanks: number;
32
48
  }
33
49
  export interface HerdrLayoutPlan {
34
50
  /** The label for the fresh per-open workspace (same token discipline as tabs). */
@@ -44,10 +60,11 @@ export interface HerdrLayoutPlan {
44
60
  export declare function planHerdrLayout(view: ComposedView, launchToken: string, tabPrefix?: string): HerdrLayoutPlan;
45
61
  /**
46
62
  * Extract the created workspace's id from a `workspace.create` result body.
47
- * DEFENSIVE this envelope was not captured verbatim, so the known plausible
48
- * homes are tried in order: a top-level `workspace_id`, then a nested
49
- * `workspace`/`layout` object's `workspace_id`/`id`, then a top-level string
50
- * `id`. Returns null when nothing string-shaped is found (the caller degrades
63
+ * The live envelope is VM-confirmed (OPR.0.4.7.1): `result.workspace.
64
+ * workspace_id` + `result.tab.tab_id` + `result.root_pane` covered by the
65
+ * nested-`workspace` home below. The other defensive homes are retained
66
+ * (top-level `workspace_id`, nested `layout`, bare `id`) for older builds.
67
+ * Returns null when nothing string-shaped is found (the caller degrades
51
68
  * honestly rather than guessing).
52
69
  */
53
70
  export declare function extractWorkspaceId(result: HerdrResult): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"herdr-adapter.d.ts","sourceRoot":"","sources":["../../../src/domain/terminal/herdr-adapter.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAEV,YAAY,EACZ,YAAY,EAEZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,WAAW,EAEX,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAK9B,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,cAAc,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,SAAI,GAAG,eAAe,CAa9E;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAkB,GAC5B,eAAe,CAOjB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAcrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,qBAAqB,CAAC;IACxC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAa,YAAW,gBAAgB;IAOvC,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,aAAa,CAAK;gBAEG,IAAI,EAAE,gBAAgB;IAO7C,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAkBjC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAYrC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;CAyH5D"}
1
+ {"version":3,"file":"herdr-adapter.d.ts","sourceRoot":"","sources":["../../../src/domain/terminal/herdr-adapter.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAEV,YAAY,EACZ,YAAY,EAEZ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,WAAW,EAEX,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAM9B,qFAAqF;AACrF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,cAAc,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,CASjG;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAe9F;AAED,oFAAoF;AACpF,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,IAAI,EAAE,eAAe,CAAC;IACtB,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAkB,GAC5B,eAAe,CAWjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI,CAcrE;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,qBAAqB,CAAC;IACxC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,MAAM,CAAC;IAC9B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAa,YAAW,gBAAgB;IAOvC,OAAO,CAAC,QAAQ,CAAC,IAAI;IANjC,QAAQ,CAAC,IAAI,WAAW;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,aAAa,CAAK;gBAEG,IAAI,EAAE,gBAAgB;IAO7C,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAkBjC,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAYrC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;CAwH5D"}
@@ -34,37 +34,74 @@
34
34
  // control socket answering — NOT a daemon server ping; HERDR-FINDINGS #3's
35
35
  // intent, carried to the socket transport). No "layout command" probe: the
36
36
  // CLI help surface is irrelevant to the socket API.
37
- // - SAME-SIZE panes only. The BSP tree below splits 0.5/0.5 alternating
38
- // right/down; asymmetric pane layouts are a DOCUMENTED limitation, not
39
- // faked here (the inherent tmux multi-client resize limit).
37
+ // - EQUAL auto-grid cells (OPR.0.4.7.1). The layout tree matches the UI
38
+ // TerminalLauncher suggestLayout shape exactly cols=ceil(sqrt(N)),
39
+ // rows=ceil(N/cols): N=2 2×1, N=5 3×2, N=7 → 3×3 (cols×rows) — built
40
+ // as equal right-strips per row combined by equal down-strips, using
41
+ // first-vs-rest ratios (1/N, then 1/(N-1), …; VM pane.layout-verified).
42
+ // The prior alternating-0.5 BSP is retired: it rendered N=7 as 4×2 with
43
+ // one double-width cell. Incomplete rectangles are padded with inert
44
+ // blank panes (cmux's blank-surface precedent); blanks are never
45
+ // reported as opened seats.
40
46
  //
41
- // The `workspace.create` response envelope was NOT captured verbatim (only
42
- // layout.apply/ping were); the workspace id is therefore extracted
43
- // DEFENSIVELY (see extractWorkspaceId) to be confirmed by the fresh VM
44
- // re-proof (unproven until that proof artifact lands).
47
+ // The `workspace.create` response envelope is VM-confirmed (OPR.0.4.7.1):
48
+ // `result.workspace.workspace_id` + `result.tab.tab_id` + `result.root_pane`.
49
+ // Extraction stays null-safe/defensive for older builds (extractWorkspaceId).
50
+ // The create's default tab (a blank pane) is deliberately LEFT ALONE — PM
51
+ // ruling: no tab.close unless live evidence shows a user visibly landing on
52
+ // the blank tab (current evidence shows the populated view tab focused).
53
+ import { autoGridCols } from "../cmux-layout-service.js";
45
54
  /** Sentinel host for herdr-surface degrades (a pane herdr itself failed to render). */
46
55
  const HERDR_SURFACE_HOST = "herdr";
47
56
  /**
48
- * Build the balanced BSP layout tree for one page of panes. PURE. Splits
49
- * alternate right/down by depth at ratio 0.5 same-size tiles (the documented
50
- * v1 layout; asymmetric layouts are out of scope). Each leaf runs the
51
- * composer's shell `paneCommand` via `["sh","-c",…]` so the composed quoting
52
- * (read-only `-r`, ssh-wrap) is preserved untouched.
57
+ * Combine N nodes into an equal N-way strip along one direction. PURE.
58
+ * Equal N-way BSP is first-vs-rest at ratio 1/N, recursively 1/(N-1)
59
+ * NOT midpoint 0.5 (the VM-reproduced defect: alternating 0.5 splits gave
60
+ * N=7 a 4×2 layout with one double-width cell instead of the promised 3×3).
53
61
  */
54
- export function buildBspRoot(panes, depth = 0) {
55
- if (panes.length === 1) {
56
- const pane = panes[0];
57
- return { type: "pane", label: pane.label, command: ["sh", "-c", pane.paneCommand] };
58
- }
59
- const mid = Math.ceil(panes.length / 2);
62
+ export function equalStrip(nodes, direction) {
63
+ if (nodes.length === 1)
64
+ return nodes[0];
60
65
  return {
61
66
  type: "split",
62
- direction: depth % 2 === 0 ? "right" : "down",
63
- ratio: 0.5,
64
- first: buildBspRoot(panes.slice(0, mid), depth + 1),
65
- second: buildBspRoot(panes.slice(mid), depth + 1),
67
+ direction,
68
+ ratio: 1 / nodes.length,
69
+ first: nodes[0],
70
+ second: equalStrip(nodes.slice(1), direction),
66
71
  };
67
72
  }
73
+ /** An inert blank pane — pads an incomplete grid rectangle (cmux's blank-surface precedent). */
74
+ function blankPane() {
75
+ return { type: "pane", label: "", command: ["sh"] };
76
+ }
77
+ /**
78
+ * Build the EQUAL auto-grid layout tree for one page of panes. PURE. The grid
79
+ * shape matches the UI TerminalLauncher `suggestLayout` exactly —
80
+ * cols = ceil(sqrt(N)), rows = ceil(N/cols): N=2 → 2×1, N=5 → 3×2, N=7 → 3×3
81
+ * (cols×rows). An incomplete rectangle is padded with inert blank panes so
82
+ * every cell is the same size; blanks are layout filler only — they are never
83
+ * reported as opened seats. Each real leaf runs the composer's shell
84
+ * `paneCommand` via `["sh","-c",…]` so the composed quoting (read-only `-r`,
85
+ * ssh-wrap) is preserved untouched. Rows are built as equal `right` strips,
86
+ * then combined with equal `down` strips.
87
+ */
88
+ export function buildGridRoot(panes) {
89
+ const cols = autoGridCols(panes.length);
90
+ const rows = Math.ceil(panes.length / cols);
91
+ const blanks = rows * cols - panes.length;
92
+ const leaves = panes.map((pane) => ({
93
+ type: "pane",
94
+ label: pane.label,
95
+ command: ["sh", "-c", pane.paneCommand],
96
+ }));
97
+ for (let i = 0; i < blanks; i++)
98
+ leaves.push(blankPane());
99
+ const rowStrips = [];
100
+ for (let r = 0; r < rows; r++) {
101
+ rowStrips.push(equalStrip(leaves.slice(r * cols, (r + 1) * cols), "right"));
102
+ }
103
+ return { root: equalStrip(rowStrips, "down"), blanks };
104
+ }
68
105
  /**
69
106
  * Build the herdr socket plan for a composed view. PURE — no I/O. Each page
70
107
  * gets a fresh tab labeled `${tabPrefix}:${view.id}#${launchToken}/<pageIndex>`;
@@ -73,18 +110,23 @@ export function buildBspRoot(panes, depth = 0) {
73
110
  */
74
111
  export function planHerdrLayout(view, launchToken, tabPrefix = "openrig") {
75
112
  const base = `${tabPrefix}:${view.id}#${launchToken}`;
76
- const pages = view.pages.map((page, pageIndex) => ({
77
- tabLabel: view.pages.length > 1 ? `${base}/${pageIndex + 1}` : base,
78
- root: buildBspRoot(page),
79
- }));
113
+ const pages = view.pages.map((page, pageIndex) => {
114
+ const grid = buildGridRoot(page);
115
+ return {
116
+ tabLabel: view.pages.length > 1 ? `${base}/${pageIndex + 1}` : base,
117
+ root: grid.root,
118
+ blanks: grid.blanks,
119
+ };
120
+ });
80
121
  return { workspaceLabel: base, pages };
81
122
  }
82
123
  /**
83
124
  * Extract the created workspace's id from a `workspace.create` result body.
84
- * DEFENSIVE this envelope was not captured verbatim, so the known plausible
85
- * homes are tried in order: a top-level `workspace_id`, then a nested
86
- * `workspace`/`layout` object's `workspace_id`/`id`, then a top-level string
87
- * `id`. Returns null when nothing string-shaped is found (the caller degrades
125
+ * The live envelope is VM-confirmed (OPR.0.4.7.1): `result.workspace.
126
+ * workspace_id` + `result.tab.tab_id` + `result.root_pane` covered by the
127
+ * nested-`workspace` home below. The other defensive homes are retained
128
+ * (top-level `workspace_id`, nested `layout`, bare `id`) for older builds.
129
+ * Returns null when nothing string-shaped is found (the caller degrades
88
130
  * honestly rather than guessing).
89
131
  */
90
132
  export function extractWorkspaceId(result) {
@@ -182,9 +224,8 @@ export class HerdrAdapter {
182
224
  };
183
225
  }
184
226
  // A fresh workspace per open (BR-5 fresh-on-relaunch, strongest form).
185
- // The labeled create is tried first; because the label param is an
186
- // uncaptured assumption, a failure falls back ONCE to a bare create
187
- // before degrading (defensive; to be confirmed by the fresh VM re-proof).
227
+ // The labeled create is tried first; a failure falls back ONCE to a bare
228
+ // create before degrading.
188
229
  let workspaceId = null;
189
230
  let createErr = null;
190
231
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"herdr-adapter.js","sourceRoot":"","sources":["../../../src/domain/terminal/herdr-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"herdr-adapter.js","sourceRoot":"","sources":["../../../src/domain/terminal/herdr-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
+ import type Database from "better-sqlite3";
1
2
  import type { TmuxAdapter } from "../adapters/tmux.js";
2
3
  import type { TranscriptStore } from "./transcript-store.js";
3
4
  export declare function startTmuxTranscriptCapture(tmuxAdapter: TmuxAdapter | null | undefined, transcriptStore: TranscriptStore | null | undefined, rigName: string, sessionName: string): Promise<{
4
5
  started: boolean;
5
6
  reason?: string;
6
7
  }>;
8
+ /** Restore process-local rotation timers after daemon restart. */
9
+ export declare function resumeRunningTranscriptCaptures(db: Database.Database, tmuxAdapter: TmuxAdapter | null | undefined, transcriptStore: TranscriptStore | null | undefined): Promise<number>;
7
10
  //# sourceMappingURL=transcript-capture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transcript-capture.d.ts","sourceRoot":"","sources":["../../src/domain/transcript-capture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM7D,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EAC3C,eAAe,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACnD,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBhD"}
1
+ {"version":3,"file":"transcript-capture.d.ts","sourceRoot":"","sources":["../../src/domain/transcript-capture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAM7D,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EAC3C,eAAe,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EACnD,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBhD;AAOD,kEAAkE;AAClE,wBAAsB,+BAA+B,CACnD,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,WAAW,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EAC3C,eAAe,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAClD,OAAO,CAAC,MAAM,CAAC,CA8BjB"}
@@ -15,4 +15,32 @@ export async function startTmuxTranscriptCapture(tmuxAdapter, transcriptStore, r
15
15
  startTranscriptRotation(tmuxAdapter, sessionName, transcriptPath, getTranscriptRotationOptionsFromEnv());
16
16
  return { started: true };
17
17
  }
18
+ /** Restore process-local rotation timers after daemon restart. */
19
+ export async function resumeRunningTranscriptCaptures(db, tmuxAdapter, transcriptStore) {
20
+ if (!tmuxAdapter || !transcriptStore?.enabled)
21
+ return 0;
22
+ const rows = db.prepare(`
23
+ SELECT r.name AS rig_name, s.session_name
24
+ FROM sessions s
25
+ JOIN nodes n ON n.id = s.node_id
26
+ JOIN rigs r ON r.id = n.rig_id
27
+ JOIN bindings b ON b.node_id = n.id
28
+ WHERE s.status = 'running'
29
+ AND s.id = (
30
+ SELECT s2.id FROM sessions s2
31
+ WHERE s2.node_id = n.id
32
+ ORDER BY s2.id DESC
33
+ LIMIT 1
34
+ )
35
+ AND COALESCE(b.attachment_type, 'tmux') = 'tmux'
36
+ AND b.tmux_session = s.session_name
37
+ `).all();
38
+ let resumed = 0;
39
+ for (const row of rows) {
40
+ const result = await startTmuxTranscriptCapture(tmuxAdapter, transcriptStore, row.rig_name, row.session_name);
41
+ if (result.started)
42
+ resumed += 1;
43
+ }
44
+ return resumed;
45
+ }
18
46
  //# sourceMappingURL=transcript-capture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transcript-capture.js","sourceRoot":"","sources":["../../src/domain/transcript-capture.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,uBAAuB,EACvB,mCAAmC,GACpC,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,WAA2C,EAC3C,eAAmD,EACnD,OAAe,EACf,WAAmB;IAEnB,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/E,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,6DAA6D;IAC7D,uBAAuB,CACrB,WAAW,EACX,WAAW,EACX,cAAc,EACd,mCAAmC,EAAE,CACtC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"transcript-capture.js","sourceRoot":"","sources":["../../src/domain/transcript-capture.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,uBAAuB,EACvB,mCAAmC,GACpC,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,WAA2C,EAC3C,eAAmD,EACnD,OAAe,EACf,WAAmB;IAEnB,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,EAAE,CAAC;IACtE,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,4BAA4B,EAAE,CAAC;IAClE,CAAC;IAED,MAAM,cAAc,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/E,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,oEAAoE;IACpE,6DAA6D;IAC7D,uBAAuB,CACrB,WAAW,EACX,WAAW,EACX,cAAc,EACd,mCAAmC,EAAE,CACtC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC;AAOD,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,EAAqB,EACrB,WAA2C,EAC3C,eAAmD;IAEnD,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,EAAE,OAAO;QAAE,OAAO,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;GAevB,CAAC,CAAC,GAAG,EAAgC,CAAC;IAEvC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAC7C,WAAW,EACX,eAAe,EACf,GAAG,CAAC,QAAQ,EACZ,GAAG,CAAC,YAAY,CACjB,CAAC;QACF,IAAI,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,13 +1,23 @@
1
1
  export interface TranscriptStoreOpts {
2
2
  transcriptsRoot?: string;
3
3
  enabled?: boolean;
4
+ staleAfterMs?: number;
4
5
  }
6
+ export type TranscriptIngestState = "live" | "degraded" | "unavailable";
7
+ export interface TranscriptIngestHealth {
8
+ state: TranscriptIngestState;
9
+ reason: "capture_fresh" | "capture_stale" | "capture_empty" | "capture_missing" | "capture_disabled" | "capture_unreadable";
10
+ lastCapturedAt: string | null;
11
+ }
12
+ export declare const DEFAULT_TRANSCRIPT_STALE_AFTER_MS = 10000;
5
13
  export declare class TranscriptStore {
6
14
  private readonly root;
7
15
  private readonly _enabled;
16
+ private readonly staleAfterMs;
8
17
  constructor(opts?: TranscriptStoreOpts);
9
18
  get enabled(): boolean;
10
19
  getTranscriptPath(rigName: string, sessionName: string): string;
20
+ getIngestHealth(rigName: string, sessionName: string): TranscriptIngestHealth;
11
21
  ensureTranscriptDir(rigName: string): boolean;
12
22
  writeBoundaryMarker(rigName: string, sessionName: string, reason: string): boolean;
13
23
  stripAnsi(text: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"transcript-store.d.ts","sourceRoot":"","sources":["../../src/domain/transcript-store.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiKD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;gBAEvB,IAAI,CAAC,EAAE,mBAAmB;IAKtC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAS/D,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAe7C,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAkBlF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAqB/B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA+B5E,OAAO,CAAC,gBAAgB;IAkBxB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAU7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAU5E,OAAO,CAAC,QAAQ;CA+CjB"}
1
+ {"version":3,"file":"transcript-store.d.ts","sourceRoot":"","sources":["../../src/domain/transcript-store.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;AAExE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,oBAAoB,CAAC;IAC5H,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAGD,eAAO,MAAM,iCAAiC,QAAS,CAAC;AA+JxD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,IAAI,CAAC,EAAE,mBAAmB;IAMtC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAS/D,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,sBAAsB;IAuB7E,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAe7C,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAkBlF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAqB/B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA+B5E,OAAO,CAAC,gBAAgB;IAkBxB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAU7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;IAU5E,OAAO,CAAC,QAAQ;CA+CjB"}
@@ -3,6 +3,7 @@ import { join, dirname } from "node:path";
3
3
  import { StringDecoder } from "node:string_decoder";
4
4
  import { getCompatibleOpenRigPath } from "../openrig-compat.js";
5
5
  const DEFAULT_ROOT = getCompatibleOpenRigPath("transcripts");
6
+ export const DEFAULT_TRANSCRIPT_STALE_AFTER_MS = 10_000;
6
7
  function applyBackspaces(text) {
7
8
  const chars = [];
8
9
  for (const ch of text) {
@@ -161,9 +162,11 @@ function countNewlines(s) {
161
162
  export class TranscriptStore {
162
163
  root;
163
164
  _enabled;
165
+ staleAfterMs;
164
166
  constructor(opts) {
165
167
  this.root = opts?.transcriptsRoot ?? DEFAULT_ROOT;
166
168
  this._enabled = opts?.enabled ?? true;
169
+ this.staleAfterMs = opts?.staleAfterMs ?? DEFAULT_TRANSCRIPT_STALE_AFTER_MS;
167
170
  }
168
171
  get enabled() {
169
172
  return this._enabled;
@@ -176,6 +179,29 @@ export class TranscriptStore {
176
179
  }
177
180
  return resolved;
178
181
  }
182
+ getIngestHealth(rigName, sessionName) {
183
+ if (!this._enabled) {
184
+ return { state: "unavailable", reason: "capture_disabled", lastCapturedAt: null };
185
+ }
186
+ try {
187
+ const filePath = this.getTranscriptPath(rigName, sessionName);
188
+ if (!existsSync(filePath)) {
189
+ return { state: "unavailable", reason: "capture_missing", lastCapturedAt: null };
190
+ }
191
+ const stat = statSync(filePath);
192
+ const lastCapturedAt = stat.mtime.toISOString();
193
+ if (stat.size === 0) {
194
+ return { state: "degraded", reason: "capture_empty", lastCapturedAt };
195
+ }
196
+ if (Date.now() - stat.mtimeMs > this.staleAfterMs) {
197
+ return { state: "degraded", reason: "capture_stale", lastCapturedAt };
198
+ }
199
+ return { state: "live", reason: "capture_fresh", lastCapturedAt };
200
+ }
201
+ catch {
202
+ return { state: "degraded", reason: "capture_unreadable", lastCapturedAt: null };
203
+ }
204
+ }
179
205
  ensureTranscriptDir(rigName) {
180
206
  if (!this._enabled)
181
207
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"transcript-store.js","sourceRoot":"","sources":["../../src/domain/transcript-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcript-store.js","sourceRoot":"","sources":["../../src/domain/transcript-store.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,9 @@ export interface Node {
29
29
  runtime: string | null;
30
30
  model: string | null;
31
31
  codexConfigProfile?: string | null;
32
+ /** OPR.0.4.8.3 Seam B: attached permission_policy REF (builtin:<name> or spec-relative custom
33
+ * path), or null when none is attached (= the floor). */
34
+ permissionPolicy?: string | null;
32
35
  cwd: string | null;
33
36
  surfaceHint: string | null;
34
37
  workspace: string | null;
@@ -841,6 +844,8 @@ export interface NodeInventoryEntry {
841
844
  agentRef: string | null;
842
845
  profile: string | null;
843
846
  codexConfigProfile?: string | null;
847
+ /** OPR.0.4.8.3 Seam B: attached permission_policy REF, or null when none is attached. */
848
+ permissionPolicy?: string | null;
844
849
  resolvedSpecName: string | null;
845
850
  resolvedSpecVersion: string | null;
846
851
  resolvedSpecHash: string | null;
@@ -851,6 +856,10 @@ export interface NodeInventoryEntry {
851
856
  startupCompletedAt: string | null;
852
857
  agentActivity?: AgentActivity;
853
858
  contextUsage?: ContextUsage;
859
+ /** Health of the daemon-owned transcript capture for this seat. */
860
+ transcriptIngest?: import("./transcript-store.js").TranscriptIngestHealth & {
861
+ runtime: string | null;
862
+ };
854
863
  /**
855
864
  * Slice 15 — `terminal-active` primitive (tmux byte-stream).
856
865
  *
@@ -1217,6 +1226,9 @@ export interface RigSpecPodMember {
1217
1226
  * stays reachable only via explicit preferred_targets.
1218
1227
  */
1219
1228
  role?: string;
1229
+ /** OPR.0.4.8.3 Seam B: optional per-seat permission_policy REF (builtin:<name> or a spec-relative
1230
+ * custom path). Absent = the floor. Overrides the rig-level ref. */
1231
+ permissionPolicy?: string;
1220
1232
  cwd: string;
1221
1233
  restorePolicy?: string;
1222
1234
  startup?: StartupBlock;
@@ -1289,6 +1301,9 @@ export interface RigSpec {
1289
1301
  name: string;
1290
1302
  summary?: string;
1291
1303
  cultureFile?: string;
1304
+ /** OPR.0.4.8.3 Seam B: optional rig-level permission_policy REF (builtin:<name> or a
1305
+ * spec-relative custom path). Absent = the floor. A per-member ref overrides this. */
1306
+ permissionPolicy?: string;
1292
1307
  docs?: RigSpecDoc[];
1293
1308
  startup?: StartupBlock;
1294
1309
  services?: RigServicesSpec;
@@ -1441,6 +1456,12 @@ export interface ExpansionPodFragment {
1441
1456
  cwd?: string;
1442
1457
  model?: string;
1443
1458
  codexConfigProfile?: string;
1459
+ /** OPR.0.4.8.3 Seam B: per-seat permission_policy REF — threaded through the
1460
+ * expansion ingress exactly like role (never silently dropped). Typed UNKNOWN
1461
+ * (R2 at 4ac243c3): the ingress preserves RAW presence — including null and other
1462
+ * invalid shapes — so the ONE canonical RigSpec validator rejects present-invalid
1463
+ * values; the normalizer must never erase presence into absence/floor. */
1464
+ permissionPolicy?: unknown;
1444
1465
  restorePolicy?: string;
1445
1466
  label?: string;
1446
1467
  /**