@openrig/cli 0.5.17 → 0.6.0

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 (399) hide show
  1. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  2. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  3. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  4. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  5. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  6. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  7. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  8. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  9. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  10. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  11. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  12. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  13. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  14. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  15. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  16. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  17. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  19. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  24. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  54. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  55. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  56. package/daemon/dist/adapters/claude-code-adapter.d.ts +3 -0
  57. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  58. package/daemon/dist/adapters/claude-code-adapter.js +36 -14
  59. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  60. package/daemon/dist/adapters/claude-resume.d.ts +3 -1
  61. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  62. package/daemon/dist/adapters/claude-resume.js +20 -6
  63. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  64. package/daemon/dist/adapters/codex-resume.d.ts +4 -1
  65. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  66. package/daemon/dist/adapters/codex-resume.js +8 -2
  67. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  68. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +3 -0
  69. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  70. package/daemon/dist/adapters/codex-runtime-adapter.js +16 -3
  71. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  72. package/daemon/dist/adapters/pi-runner.d.ts +1 -0
  73. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  74. package/daemon/dist/adapters/pi-runner.js +7 -1
  75. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  76. package/daemon/dist/adapters/tmux.d.ts +21 -1
  77. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  78. package/daemon/dist/adapters/tmux.js +141 -3
  79. package/daemon/dist/adapters/tmux.js.map +1 -1
  80. package/daemon/dist/adapters/yolo-mode.d.ts +3 -2
  81. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  82. package/daemon/dist/adapters/yolo-mode.js +10 -2
  83. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  84. package/daemon/dist/build-info.js +3 -3
  85. package/daemon/dist/db/all-migrations.d.ts +1 -1
  86. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  87. package/daemon/dist/db/all-migrations.js +10 -2
  88. package/daemon/dist/db/all-migrations.js.map +1 -1
  89. package/daemon/dist/db/migrations/086_classification_fields_and_attempts.d.ts +26 -0
  90. package/daemon/dist/db/migrations/086_classification_fields_and_attempts.d.ts.map +1 -0
  91. package/daemon/dist/db/migrations/086_classification_fields_and_attempts.js +66 -0
  92. package/daemon/dist/db/migrations/086_classification_fields_and_attempts.js.map +1 -0
  93. package/daemon/dist/db/migrations/087_seat_delivery_guard.d.ts +3 -0
  94. package/daemon/dist/db/migrations/087_seat_delivery_guard.d.ts.map +1 -0
  95. package/daemon/dist/db/migrations/087_seat_delivery_guard.js +31 -0
  96. package/daemon/dist/db/migrations/087_seat_delivery_guard.js.map +1 -0
  97. package/daemon/dist/db/migrations/088_node_permission_selections.d.ts +3 -0
  98. package/daemon/dist/db/migrations/088_node_permission_selections.d.ts.map +1 -0
  99. package/daemon/dist/db/migrations/088_node_permission_selections.js +16 -0
  100. package/daemon/dist/db/migrations/088_node_permission_selections.js.map +1 -0
  101. package/daemon/dist/db/migrations/089_classification_identity_provenance.d.ts +3 -0
  102. package/daemon/dist/db/migrations/089_classification_identity_provenance.d.ts.map +1 -0
  103. package/daemon/dist/db/migrations/089_classification_identity_provenance.js +6 -0
  104. package/daemon/dist/db/migrations/089_classification_identity_provenance.js.map +1 -0
  105. package/daemon/dist/domain/applied-launch-observation-store.d.ts +1 -1
  106. package/daemon/dist/domain/applied-launch-observation-store.d.ts.map +1 -1
  107. package/daemon/dist/domain/applied-launch-observation-store.js +6 -4
  108. package/daemon/dist/domain/applied-launch-observation-store.js.map +1 -1
  109. package/daemon/dist/domain/capture-observer.d.ts +130 -0
  110. package/daemon/dist/domain/capture-observer.d.ts.map +1 -0
  111. package/daemon/dist/domain/capture-observer.js +113 -0
  112. package/daemon/dist/domain/capture-observer.js.map +1 -0
  113. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  114. package/daemon/dist/domain/claim-service.js +24 -3
  115. package/daemon/dist/domain/claim-service.js.map +1 -1
  116. package/daemon/dist/domain/classification-attempts.d.ts +143 -0
  117. package/daemon/dist/domain/classification-attempts.d.ts.map +1 -0
  118. package/daemon/dist/domain/classification-attempts.js +316 -0
  119. package/daemon/dist/domain/classification-attempts.js.map +1 -0
  120. package/daemon/dist/domain/classification-sources.d.ts +44 -0
  121. package/daemon/dist/domain/classification-sources.d.ts.map +1 -0
  122. package/daemon/dist/domain/classification-sources.js +102 -0
  123. package/daemon/dist/domain/classification-sources.js.map +1 -0
  124. package/daemon/dist/domain/classifier-lease-manager.d.ts +15 -4
  125. package/daemon/dist/domain/classifier-lease-manager.d.ts.map +1 -1
  126. package/daemon/dist/domain/classifier-lease-manager.js +63 -21
  127. package/daemon/dist/domain/classifier-lease-manager.js.map +1 -1
  128. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -1
  129. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  130. package/daemon/dist/domain/claude-compaction-enforcer.js +36 -7
  131. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  132. package/daemon/dist/domain/claude-managed-launch.d.ts +28 -0
  133. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -0
  134. package/daemon/dist/domain/claude-managed-launch.js +111 -0
  135. package/daemon/dist/domain/claude-managed-launch.js.map +1 -0
  136. package/daemon/dist/domain/codex-daemon-support.d.ts +16 -0
  137. package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -0
  138. package/daemon/dist/domain/codex-daemon-support.js +52 -0
  139. package/daemon/dist/domain/codex-daemon-support.js.map +1 -0
  140. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  141. package/daemon/dist/domain/gateway/connections-projection.js +6 -3
  142. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  143. package/daemon/dist/domain/gateway/slack/capabilities.d.ts +19 -0
  144. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -0
  145. package/daemon/dist/domain/gateway/slack/capabilities.js +24 -0
  146. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -0
  147. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  148. package/daemon/dist/domain/gateway/slack/config.js +2 -1
  149. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  150. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  151. package/daemon/dist/domain/gateway/slack/inbound.js +2 -1
  152. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  153. package/daemon/dist/domain/gateway/slack/manifest.d.ts +54 -0
  154. package/daemon/dist/domain/gateway/slack/manifest.d.ts.map +1 -0
  155. package/daemon/dist/domain/gateway/slack/manifest.js +55 -0
  156. package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -0
  157. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +3 -2
  158. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  159. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +9 -5
  160. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  161. package/daemon/dist/domain/native-permission-selection.d.ts +13 -0
  162. package/daemon/dist/domain/native-permission-selection.d.ts.map +1 -0
  163. package/daemon/dist/domain/native-permission-selection.js +30 -0
  164. package/daemon/dist/domain/native-permission-selection.js.map +1 -0
  165. package/daemon/dist/domain/native-permission-store.d.ts +17 -0
  166. package/daemon/dist/domain/native-permission-store.d.ts.map +1 -0
  167. package/daemon/dist/domain/native-permission-store.js +36 -0
  168. package/daemon/dist/domain/native-permission-store.js.map +1 -0
  169. package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
  170. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  171. package/daemon/dist/domain/native-resume-probe.js +5 -2
  172. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  173. package/daemon/dist/domain/node-inventory.d.ts +3 -0
  174. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  175. package/daemon/dist/domain/node-inventory.js +2 -0
  176. package/daemon/dist/domain/node-inventory.js.map +1 -1
  177. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  178. package/daemon/dist/domain/node-launcher.js +6 -0
  179. package/daemon/dist/domain/node-launcher.js.map +1 -1
  180. package/daemon/dist/domain/outbox-handler.d.ts +25 -2
  181. package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
  182. package/daemon/dist/domain/outbox-handler.js +70 -1
  183. package/daemon/dist/domain/outbox-handler.js.map +1 -1
  184. package/daemon/dist/domain/permission-drift-observer.d.ts +1 -0
  185. package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  186. package/daemon/dist/domain/permission-drift-observer.js +1 -1
  187. package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  188. package/daemon/dist/domain/permission-drift.d.ts +10 -0
  189. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  190. package/daemon/dist/domain/permission-drift.js +29 -18
  191. package/daemon/dist/domain/permission-drift.js.map +1 -1
  192. package/daemon/dist/domain/project-classifier.d.ts +43 -0
  193. package/daemon/dist/domain/project-classifier.d.ts.map +1 -1
  194. package/daemon/dist/domain/project-classifier.js +141 -25
  195. package/daemon/dist/domain/project-classifier.js.map +1 -1
  196. package/daemon/dist/domain/proof/judgments.d.ts +16 -0
  197. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  198. package/daemon/dist/domain/proof/judgments.js +17 -1
  199. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  200. package/daemon/dist/domain/queue-repository.d.ts +8 -0
  201. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  202. package/daemon/dist/domain/queue-repository.js +41 -14
  203. package/daemon/dist/domain/queue-repository.js.map +1 -1
  204. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  205. package/daemon/dist/domain/restore-orchestrator.js +28 -1
  206. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  207. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  208. package/daemon/dist/domain/resume-metadata-refresher.js +3 -1
  209. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  210. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  211. package/daemon/dist/domain/rig-lifecycle-service.js +7 -0
  212. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  213. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  214. package/daemon/dist/domain/rig-teardown.js +4 -0
  215. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  216. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  217. package/daemon/dist/domain/rigspec-instantiator.js +36 -22
  218. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  219. package/daemon/dist/domain/runtime-adapter.d.ts +6 -0
  220. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  221. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  222. package/daemon/dist/domain/seat-delivery-guard.d.ts +64 -0
  223. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -0
  224. package/daemon/dist/domain/seat-delivery-guard.js +224 -0
  225. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -0
  226. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  227. package/daemon/dist/domain/seat-handover-service.js +19 -1
  228. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  229. package/daemon/dist/domain/seat-lifecycle-service.d.ts +16 -2
  230. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  231. package/daemon/dist/domain/seat-lifecycle-service.js +70 -0
  232. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  233. package/daemon/dist/domain/seat-status-service.d.ts +10 -0
  234. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  235. package/daemon/dist/domain/seat-status-service.js +13 -0
  236. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  237. package/daemon/dist/domain/session-transport.d.ts +19 -1
  238. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  239. package/daemon/dist/domain/session-transport.js +221 -23
  240. package/daemon/dist/domain/session-transport.js.map +1 -1
  241. package/daemon/dist/domain/shadow-capture.d.ts +97 -0
  242. package/daemon/dist/domain/shadow-capture.d.ts.map +1 -0
  243. package/daemon/dist/domain/shadow-capture.js +147 -0
  244. package/daemon/dist/domain/shadow-capture.js.map +1 -0
  245. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  246. package/daemon/dist/domain/startup-orchestrator.js +11 -0
  247. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  248. package/daemon/dist/domain/stream-classification-worker.d.ts +106 -0
  249. package/daemon/dist/domain/stream-classification-worker.d.ts.map +1 -0
  250. package/daemon/dist/domain/stream-classification-worker.js +265 -0
  251. package/daemon/dist/domain/stream-classification-worker.js.map +1 -0
  252. package/daemon/dist/domain/successor-session-launcher.d.ts +1 -0
  253. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  254. package/daemon/dist/domain/successor-session-launcher.js +4 -2
  255. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  256. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +7 -0
  257. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  258. package/daemon/dist/domain/terminal/herdr-adapter.js +119 -12
  259. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  260. package/daemon/dist/domain/terminal/terminal-provider.d.ts +5 -0
  261. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  262. package/daemon/dist/domain/terminal/terminal-service.js +6 -6
  263. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  264. package/daemon/dist/domain/terminal/view-composer.d.ts +6 -4
  265. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  266. package/daemon/dist/domain/terminal/view-composer.js +5 -5
  267. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  268. package/daemon/dist/domain/types.d.ts +10 -0
  269. package/daemon/dist/domain/types.d.ts.map +1 -1
  270. package/daemon/dist/domain/types.js.map +1 -1
  271. package/daemon/dist/domain/watchdog-policy-engine.d.ts +3 -1
  272. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  273. package/daemon/dist/domain/watchdog-policy-engine.js +5 -3
  274. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  275. package/daemon/dist/gateway-slack-surface.d.ts +2 -0
  276. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  277. package/daemon/dist/gateway-slack-surface.js +2 -0
  278. package/daemon/dist/gateway-slack-surface.js.map +1 -1
  279. package/daemon/dist/routes/activity.d.ts.map +1 -1
  280. package/daemon/dist/routes/activity.js +28 -2
  281. package/daemon/dist/routes/activity.js.map +1 -1
  282. package/daemon/dist/routes/down.d.ts.map +1 -1
  283. package/daemon/dist/routes/down.js +3 -0
  284. package/daemon/dist/routes/down.js.map +1 -1
  285. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  286. package/daemon/dist/routes/gateway.js +3 -0
  287. package/daemon/dist/routes/gateway.js.map +1 -1
  288. package/daemon/dist/routes/projects.d.ts.map +1 -1
  289. package/daemon/dist/routes/projects.js +205 -18
  290. package/daemon/dist/routes/projects.js.map +1 -1
  291. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  292. package/daemon/dist/routes/rigs.js +13 -5
  293. package/daemon/dist/routes/rigs.js.map +1 -1
  294. package/daemon/dist/routes/seat.d.ts.map +1 -1
  295. package/daemon/dist/routes/seat.js +78 -1
  296. package/daemon/dist/routes/seat.js.map +1 -1
  297. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  298. package/daemon/dist/routes/sessions.js +4 -1
  299. package/daemon/dist/routes/sessions.js.map +1 -1
  300. package/daemon/dist/routes/transport.d.ts.map +1 -1
  301. package/daemon/dist/routes/transport.js +9 -1
  302. package/daemon/dist/routes/transport.js.map +1 -1
  303. package/daemon/dist/server.d.ts +5 -0
  304. package/daemon/dist/server.d.ts.map +1 -1
  305. package/daemon/dist/server.js +3 -0
  306. package/daemon/dist/server.js.map +1 -1
  307. package/daemon/dist/startup.d.ts.map +1 -1
  308. package/daemon/dist/startup.js +32 -8
  309. package/daemon/dist/startup.js.map +1 -1
  310. package/daemon/dist/stream-classifier-surface.d.ts +6 -0
  311. package/daemon/dist/stream-classifier-surface.d.ts.map +1 -0
  312. package/daemon/dist/stream-classifier-surface.js +6 -0
  313. package/daemon/dist/stream-classifier-surface.js.map +1 -0
  314. package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
  315. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  316. package/daemon/dist/terminal/TerminalSessionBroker.js +10 -6
  317. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  318. package/daemon/docs/reference/getting-started.md +63 -5
  319. package/daemon/docs/reference/rig-spec.md +6 -1
  320. package/daemon/docs/reference/slack-app-setup.md +90 -0
  321. package/daemon/docs/reference/stream-classifier-worker.md +244 -0
  322. package/daemon/policies/builtin/yolo.policy.md +5 -5
  323. package/daemon/specs/rigs/launch/kernel/rig.yaml +4 -0
  324. package/dist/build-info.js +3 -3
  325. package/dist/commands/doctor.d.ts.map +1 -1
  326. package/dist/commands/doctor.js +9 -6
  327. package/dist/commands/doctor.js.map +1 -1
  328. package/dist/commands/policy.d.ts.map +1 -1
  329. package/dist/commands/policy.js +8 -1
  330. package/dist/commands/policy.js.map +1 -1
  331. package/dist/commands/preflight.d.ts.map +1 -1
  332. package/dist/commands/preflight.js +2 -0
  333. package/dist/commands/preflight.js.map +1 -1
  334. package/dist/commands/project-jev.d.ts +115 -0
  335. package/dist/commands/project-jev.d.ts.map +1 -0
  336. package/dist/commands/project-jev.js +239 -0
  337. package/dist/commands/project-jev.js.map +1 -0
  338. package/dist/commands/project-worker.d.ts +96 -0
  339. package/dist/commands/project-worker.d.ts.map +1 -0
  340. package/dist/commands/project-worker.js +125 -0
  341. package/dist/commands/project-worker.js.map +1 -0
  342. package/dist/commands/project.d.ts +5 -1
  343. package/dist/commands/project.d.ts.map +1 -1
  344. package/dist/commands/project.js +161 -0
  345. package/dist/commands/project.js.map +1 -1
  346. package/dist/commands/seat.d.ts.map +1 -1
  347. package/dist/commands/seat.js +79 -0
  348. package/dist/commands/seat.js.map +1 -1
  349. package/dist/commands/send.d.ts.map +1 -1
  350. package/dist/commands/send.js +18 -5
  351. package/dist/commands/send.js.map +1 -1
  352. package/dist/commands/slack.d.ts +4 -1
  353. package/dist/commands/slack.d.ts.map +1 -1
  354. package/dist/commands/slack.js +41 -2
  355. package/dist/commands/slack.js.map +1 -1
  356. package/dist/commands/terminal.d.ts.map +1 -1
  357. package/dist/commands/terminal.js +2 -0
  358. package/dist/commands/terminal.js.map +1 -1
  359. package/dist/commands/walk.d.ts.map +1 -1
  360. package/dist/commands/walk.js +6 -0
  361. package/dist/commands/walk.js.map +1 -1
  362. package/dist/node-support.d.ts +12 -0
  363. package/dist/node-support.d.ts.map +1 -0
  364. package/dist/node-support.js +37 -0
  365. package/dist/node-support.js.map +1 -0
  366. package/dist/system-preflight.d.ts +2 -0
  367. package/dist/system-preflight.d.ts.map +1 -1
  368. package/dist/system-preflight.js +9 -10
  369. package/dist/system-preflight.js.map +1 -1
  370. package/package.json +3 -3
  371. package/scripts/check-abi.mjs +119 -65
  372. package/tui/dist/commands/registry.d.ts.map +1 -1
  373. package/tui/dist/commands/registry.js +3 -0
  374. package/tui/dist/commands/registry.js.map +1 -1
  375. package/tui/dist/connections/connections-model.d.ts +11 -1
  376. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  377. package/tui/dist/connections/connections-model.js +28 -1
  378. package/tui/dist/connections/connections-model.js.map +1 -1
  379. package/tui/dist/daemon-client.d.ts +2 -0
  380. package/tui/dist/daemon-client.d.ts.map +1 -1
  381. package/tui/dist/daemon-client.js +1 -0
  382. package/tui/dist/daemon-client.js.map +1 -1
  383. package/tui/dist/hydrate.d.ts.map +1 -1
  384. package/tui/dist/hydrate.js +5 -0
  385. package/tui/dist/hydrate.js.map +1 -1
  386. package/tui/dist/main.js +16 -2
  387. package/tui/dist/main.js.map +1 -1
  388. package/tui/dist/print-for-copy.d.ts +36 -0
  389. package/tui/dist/print-for-copy.d.ts.map +1 -0
  390. package/tui/dist/print-for-copy.js +92 -0
  391. package/tui/dist/print-for-copy.js.map +1 -0
  392. package/tui/dist/render.d.ts.map +1 -1
  393. package/tui/dist/render.js +4 -1
  394. package/tui/dist/render.js.map +1 -1
  395. package/tui/dist/state.d.ts.map +1 -1
  396. package/tui/dist/state.js +2 -0
  397. package/tui/dist/state.js.map +1 -1
  398. package/tui/dist/types.d.ts +8 -0
  399. package/tui/dist/types.d.ts.map +1 -1
@@ -0,0 +1,265 @@
1
+ import { ClassifierLeaseError } from "./classifier-lease-manager.js";
2
+ import { ClassificationAttemptError, MAX_ELIGIBLE_PAGE } from "./classification-attempts.js";
3
+ import { ProjectClassifierError } from "./project-classifier.js";
4
+ export const LABEL_FIELDS = ["classificationType", "classificationUrgency", "classificationMaturity", "classificationConfidence",
5
+ "classificationDestination", "area", "scopeRef"];
6
+ /**
7
+ * Offline/agent-owned worker core. It is NOT instantiated by daemon startup.
8
+ * A selected occupant calls wake() from the existing watchdog/wake cadence.
9
+ * There is no polling loop, scheduler registration, provider or per-item queue here.
10
+ * Notification loss/overflow is harmless: each wake reads one bounded eligible page
11
+ * from its beginning. The durable ledger, not a high-water cursor, excludes done work.
12
+ */
13
+ export class StreamClassificationWorker {
14
+ options;
15
+ now;
16
+ pageSize;
17
+ timeoutMs;
18
+ backoffMs;
19
+ lease = null;
20
+ heartbeatAt = 0;
21
+ acquireAfter = 0;
22
+ busy = false;
23
+ // One coalesced hint, no buffer of item IDs or automatic per-item work.
24
+ hinted = false;
25
+ // A deadline bounds wake(), not the injected operation. Never pile up calls when
26
+ // a classifier ignores AbortSignal. A late settlement is discarded and clears this slot.
27
+ pending = false;
28
+ constructor(options) {
29
+ for (const key of ["session", "classifierVersion", "taxonomyVersion", "evidenceEpoch"])
30
+ nonblank(options[key], key);
31
+ nonblank(options.candidates.version, "candidateSetVersion");
32
+ for (const field of LABEL_FIELDS) {
33
+ if (!Array.isArray(options.candidates.values[field]))
34
+ throw Error(`missing candidate list: ${field}`);
35
+ for (const value of options.candidates.values[field])
36
+ nonblank(value, field);
37
+ }
38
+ if (!Array.isArray(options.candidates.duplicateCandidates) || !Array.isArray(options.candidates.relatedRefs))
39
+ throw Error("candidate evidence lists must be arrays");
40
+ for (const c of options.candidates.duplicateCandidates) {
41
+ nonblank(c.streamItemId, "duplicate candidate");
42
+ nonblank(c.evidenceRef, "duplicate evidence");
43
+ }
44
+ for (const ref of options.candidates.relatedRefs)
45
+ nonblank(ref, "relatedRef");
46
+ this.options = { ...options, candidates: freeze(structuredClone(options.candidates)) };
47
+ this.now = options.now ?? (() => new Date());
48
+ this.pageSize = bounded(options.pageSize ?? 20, 1, MAX_ELIGIBLE_PAGE, "pageSize");
49
+ this.timeoutMs = bounded(options.requestTimeoutMs ?? 30_000, 1, 60_000, "requestTimeoutMs");
50
+ this.backoffMs = bounded(options.leaseBackoffMs ?? 60_000, 1_000, 300_000, "leaseBackoffMs");
51
+ }
52
+ /** Optional live/reconnect hint. Calling it a million times stores one boolean. */
53
+ notify() { this.hinted = true; }
54
+ /** Subscribe before the first catch-up; events only coalesce a hint, never start work. */
55
+ subscribe(bus) {
56
+ const unsubscribe = bus.subscribe(event => { if (event.type === "stream.emitted")
57
+ this.notify(); });
58
+ this.notify(); // reconnect needs durable catch-up even if no new event arrives.
59
+ return unsubscribe;
60
+ }
61
+ /** A descriptor for the EXISTING policy; returning it does not register anything. */
62
+ wakeRegistration(registeredBySession, targetGenerationUuid) {
63
+ nonblank(registeredBySession, "registeredBySession");
64
+ if (!this.lease)
65
+ throw Error("acquire a lease before selecting the wake cadence");
66
+ const intervalSeconds = Math.floor(this.leasePeriod() / 1000);
67
+ if (intervalSeconds < 1)
68
+ throw Error("lease TTL is too short for the existing seconds-based scheduler");
69
+ return {
70
+ policy: "periodic-reminder", targetSession: this.options.session, registeredBySession, targetGenerationUuid,
71
+ intervalSeconds,
72
+ specYaml: JSON.stringify({ target: { session: this.options.session }, message: "Run one bounded stream-classification wake; preserve lease and execution fences." }),
73
+ };
74
+ }
75
+ async wake() {
76
+ const result = { state: "processed", nextWakeAt: this.now().toISOString(), moreEligible: false, outcomes: [] };
77
+ if (this.busy)
78
+ return { ...result, state: "busy" };
79
+ if (this.pending)
80
+ return { ...result, state: "classifier_pending", nextWakeAt: new Date(this.now().getTime() + this.backoffMs).toISOString() };
81
+ if (this.now().getTime() < this.acquireAfter)
82
+ return { ...result, state: "lease_backoff", nextWakeAt: new Date(this.acquireAfter).toISOString() };
83
+ this.busy = true;
84
+ this.hinted = false;
85
+ const o = this.options;
86
+ try {
87
+ if (this.stopped())
88
+ return { ...result, state: "stopped" };
89
+ if (!this.lease) {
90
+ await o.leases.evaluateDeadness();
91
+ this.lease = await o.leases.acquire(o.session);
92
+ this.heartbeatAt = Date.parse(this.lease.lastHeartbeat) + this.leasePeriod();
93
+ }
94
+ await this.maintainLease();
95
+ const page = await o.attempts.eligible({ classifierVersion: o.classifierVersion, taxonomyVersion: o.taxonomyVersion,
96
+ evidenceEpoch: o.evidenceEpoch, limit: this.pageSize });
97
+ result.moreEligible = page.nextAfterSortKey !== null;
98
+ for (const item of page.items) {
99
+ if (this.stopped()) {
100
+ result.state = "stopped";
101
+ result.moreEligible = true;
102
+ break;
103
+ }
104
+ await this.maintainLease();
105
+ let attempt;
106
+ try {
107
+ attempt = await o.attempts.begin({ streamItemId: item.streamItemId, classifierVersion: o.classifierVersion,
108
+ taxonomyVersion: o.taxonomyVersion, evidenceEpoch: o.evidenceEpoch, leaseId: this.lease.leaseId, classifierSession: o.session });
109
+ }
110
+ catch (error) {
111
+ if (!(error instanceof ClassificationAttemptError))
112
+ throw error;
113
+ result.outcomes.push({ streamItemId: item.streamItemId, status: error.code });
114
+ continue;
115
+ }
116
+ // Never let the injected classifier rewrite the finishing execution identity.
117
+ const finish = Object.freeze({ attemptId: attempt.attemptId, executionId: attempt.executionId,
118
+ leaseId: attempt.leaseId, classifierSession: o.session });
119
+ try {
120
+ const source = await o.stream.getById(item.streamItemId);
121
+ if (!source)
122
+ throw Error("stream item unavailable");
123
+ const decision = await this.decide(freeze({ item: structuredClone(source), attempt: { ...attempt }, candidates: o.candidates }));
124
+ await this.maintainLease(); // refuses expiry/replacement before heartbeat; transaction checks again.
125
+ if (this.stopped()) {
126
+ await o.attempts.abstain({ ...finish, reason: "experiment stopped; result not applied" });
127
+ result.outcomes.push({ streamItemId: item.streamItemId, status: "abstained", reason: "stopped" });
128
+ result.state = "stopped";
129
+ result.moreEligible = true;
130
+ break;
131
+ }
132
+ if (decision.kind === "abstain") {
133
+ nonblank(decision.reason, "abstention reason");
134
+ await o.attempts.abstain({ ...finish, reason: decision.reason });
135
+ result.outcomes.push({ streamItemId: item.streamItemId, status: "abstained" });
136
+ }
137
+ else if (decision.kind === "classify") {
138
+ const labels = this.labels(decision.labels);
139
+ await o.classifier.classify({ ...labels, ...finish, streamItemId: item.streamItemId,
140
+ classifierVersion: o.classifierVersion, taxonomyVersion: o.taxonomyVersion, candidateSetVersion: o.candidates.version,
141
+ identityProvenance: "claimed:v1" }); // direct offline caller; no transport claim invented.
142
+ result.outcomes.push({ streamItemId: item.streamItemId, status: "written" });
143
+ }
144
+ else
145
+ throw Error("unknown classifier decision");
146
+ }
147
+ catch (error) {
148
+ if (error instanceof ClassifierLeaseError)
149
+ throw error;
150
+ const code = error instanceof ProjectClassifierError || error instanceof ClassificationAttemptError ? error.code : null;
151
+ if (code === "idempotency_violation" || code === "already_classified" || code === "attempt_superseded" || code === "attempt_mismatch") {
152
+ result.outcomes.push({ streamItemId: item.streamItemId, status: code });
153
+ }
154
+ else {
155
+ try {
156
+ const failed = await o.attempts.fail({ ...finish, reason: error instanceof Error ? error.message : "classifier failed" });
157
+ result.outcomes.push({ streamItemId: item.streamItemId, status: failed.status, reason: failed.reason ?? undefined });
158
+ }
159
+ catch (finishError) {
160
+ if (finishError instanceof ClassifierLeaseError)
161
+ throw finishError;
162
+ if (!(finishError instanceof ClassificationAttemptError))
163
+ throw finishError;
164
+ result.outcomes.push({ streamItemId: item.streamItemId, status: finishError.code });
165
+ }
166
+ }
167
+ }
168
+ if (this.pending) {
169
+ result.moreEligible = true;
170
+ break;
171
+ } // cancellation unconfirmed; no second operation.
172
+ }
173
+ result.moreEligible ||= this.hinted;
174
+ result.nextWakeAt = new Date(this.heartbeatAt).toISOString();
175
+ return result;
176
+ }
177
+ catch (error) {
178
+ if (!(error instanceof ClassifierLeaseError)) {
179
+ this.acquireAfter = this.now().getTime() + this.backoffMs;
180
+ return { ...result, state: "unavailable", reason: error instanceof Error ? error.message : "worker source unavailable", nextWakeAt: new Date(this.acquireAfter).toISOString() };
181
+ }
182
+ this.lease = null;
183
+ this.acquireAfter = this.now().getTime() + this.backoffMs;
184
+ return { ...result, state: "lease_lost", reason: error.code, nextWakeAt: new Date(this.acquireAfter).toISOString() };
185
+ }
186
+ finally {
187
+ this.busy = false;
188
+ }
189
+ }
190
+ leasePeriod() {
191
+ return Math.max(1, Math.floor((Date.parse(this.lease.expiresAt) - Date.parse(this.lease.lastHeartbeat)) / 3));
192
+ }
193
+ async maintainLease() {
194
+ const o = this.options;
195
+ await o.leases.requireActiveHolder(o.session, this.lease.leaseId);
196
+ if (this.now().getTime() >= this.heartbeatAt) {
197
+ this.lease = await o.leases.heartbeat(this.lease.leaseId, o.session);
198
+ this.heartbeatAt = Date.parse(this.lease.lastHeartbeat) + this.leasePeriod();
199
+ }
200
+ }
201
+ async decide(request) {
202
+ const controller = new AbortController();
203
+ const abort = () => controller.abort();
204
+ this.options.signal?.addEventListener("abort", abort, { once: true });
205
+ if (this.options.signal?.aborted)
206
+ abort();
207
+ this.pending = true;
208
+ let timer;
209
+ // Only this caller consumes the promise; the settled handler never writes a result.
210
+ const operation = Promise.resolve().then(() => this.options.classify(request, controller.signal))
211
+ .finally(() => { this.pending = false; });
212
+ try {
213
+ return await Promise.race([operation, new Promise((_, reject) => {
214
+ timer = setTimeout(() => { reject(Error("classifier deadline exceeded")); controller.abort(); }, Math.max(1, Math.min(this.timeoutMs, this.heartbeatAt - this.now().getTime())));
215
+ })]);
216
+ }
217
+ finally {
218
+ if (timer)
219
+ clearTimeout(timer);
220
+ this.options.signal?.removeEventListener("abort", abort);
221
+ }
222
+ }
223
+ stopped() { return !!this.options.signal?.aborted || !!this.options.shouldStop?.(); }
224
+ labels(labels) {
225
+ if (!labels || typeof labels !== "object")
226
+ throw Error("classification labels must be an object");
227
+ const out = {};
228
+ for (const field of LABEL_FIELDS) {
229
+ const value = labels[field];
230
+ if (value === undefined || value === null)
231
+ continue;
232
+ if (typeof value !== "string" || !this.options.candidates.values[field].includes(value))
233
+ throw Error(`unavailable candidate: ${field}`);
234
+ out[field] = value;
235
+ }
236
+ if (labels.needsHuman != null && typeof labels.needsHuman !== "boolean")
237
+ throw Error("needsHuman must be boolean or unknown");
238
+ out.needsHuman = labels.needsHuman ?? null;
239
+ if (labels.duplicateOfStreamItemId != null) {
240
+ if (!this.options.candidates.duplicateCandidates.some(c => c.streamItemId === labels.duplicateOfStreamItemId && c.evidenceRef === labels.duplicateEvidenceRef && c.evidenceRef.trim())) {
241
+ throw Error("duplicate requires a positive supplied candidate and evidence reference");
242
+ }
243
+ out.duplicateOfStreamItemId = labels.duplicateOfStreamItemId;
244
+ }
245
+ return out;
246
+ }
247
+ }
248
+ function nonblank(value, name) {
249
+ if (typeof value !== "string" || !value.trim())
250
+ throw Error(`${name} must be a non-empty string`);
251
+ }
252
+ function bounded(value, min, max, name) {
253
+ if (!Number.isInteger(value) || value < min || value > max)
254
+ throw Error(`${name} must be an integer in ${min}..${max}`);
255
+ return value;
256
+ }
257
+ function freeze(value) {
258
+ if (value && typeof value === "object" && !Object.isFrozen(value)) {
259
+ for (const child of Object.values(value))
260
+ freeze(child);
261
+ Object.freeze(value);
262
+ }
263
+ return value;
264
+ }
265
+ //# sourceMappingURL=stream-classification-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-classification-worker.js","sourceRoot":"","sources":["../../src/domain/stream-classification-worker.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ export interface SuccessorNode {
39
39
  * the successor is a CONTINUITY edge of the same seat, so its policy posture
40
40
  * carries (populated by the caller from node provenance; absent = env decision). */
41
41
  launchPosture?: "floor" | "full_bypass";
42
+ permissionMode?: string;
42
43
  /** 0.5.2-07 model fidelity: the seat's SPEC-pinned model (nodes.model). The successor is a continuity
43
44
  * edge of the same seat, so its launch must READ THE SPEC — a launch path that drops it makes the
44
45
  * running topology drift from the founder-designed one. Populated by the caller from node provenance;
@@ -1 +1 @@
1
- {"version":3,"file":"successor-session-launcher.d.ts","sourceRoot":"","sources":["../../src/domain/successor-session-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"successor-session-launcher.d.ts","sourceRoot":"","sources":["../../src/domain/successor-session-launcher.ts"],"names":[],"mappings":"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"}
@@ -124,7 +124,7 @@ export class SuccessorSessionLauncher {
124
124
  // on ANY launch/readiness failure we do NOT killSession the preserved seat — that would destroy
125
125
  // the retiree's recoverable state. We return the structured failure and leave the re-wakeable
126
126
  // shell in the pane; commit never runs, so the binding is not repointed.
127
- const started = await this.startAgent(input.node, departingSession, pane.id, cwd, input.forkSource);
127
+ const started = await this.startAgent(input.node, departingSession, pane.id, cwd, input.forkSource, input.occupantGeneration);
128
128
  if (!started.ok) {
129
129
  return { ok: false, code: started.code, step: "start_agent", message: started.message, replacementStarted: true };
130
130
  }
@@ -154,7 +154,7 @@ export class SuccessorSessionLauncher {
154
154
  * registered — the successor stays unmanaged until commit. The token is NEVER
155
155
  * logged or placed in a returned message.
156
156
  */
157
- async startAgent(node, tmuxSession, tmuxPane, cwd, forkSource) {
157
+ async startAgent(node, tmuxSession, tmuxPane, cwd, forkSource, launchGeneration) {
158
158
  const adapter = node.runtime ? this.runtimeAdapters[node.runtime] : undefined;
159
159
  if (!adapter) {
160
160
  return {
@@ -181,8 +181,10 @@ export class SuccessorSessionLauncher {
181
181
  cmuxSurface: null,
182
182
  updatedAt: "",
183
183
  cwd: cwd ?? "",
184
+ launchGeneration: launchGeneration ?? undefined,
184
185
  // Seam B: continuity — the successor launches at the departing seat's posture.
185
186
  ...(node.launchPosture ? { launchPosture: node.launchPosture } : {}),
187
+ ...(node.permissionMode ? { permissionMode: node.permissionMode } : {}),
186
188
  // 0.5.2-07: the successor reads the seat's SPEC-pinned model (adapter emits -m/--model).
187
189
  model: node.model ?? undefined,
188
190
  // 0.5.2-07 A4-profile: the successor reads the seat's SPEC-pinned codex config profile (adapter emits -p).
@@ -1 +1 @@
1
- {"version":3,"file":"successor-session-launcher.js","sourceRoot":"","sources":["../../src/domain/successor-session-launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"successor-session-launcher.js","sourceRoot":"","sources":["../../src/domain/successor-session-launcher.ts"],"names":[],"mappings":"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"}
@@ -81,9 +81,16 @@ export interface HerdrAdapterDeps {
81
81
  /** Tab-name prefix (default `openrig`). */
82
82
  tabPrefix?: string;
83
83
  }
84
+ /** Herdr lays out 4×4 per tab (OPR.0.6.0.8); cmux keeps the composer default. */
85
+ export declare const HERDR_PANES_PER_PAGE = 16;
86
+ /** A `tab_id` from a herdr result body (`result.tab.tab_id`, `result.layout.tab_id`, or top-level). */
87
+ export declare function extractTabId(result: HerdrResult | null | undefined): string | null;
88
+ /** Workspace labels from a `workspace.list` result body; [] when the shape is unknown. */
89
+ export declare function extractWorkspaceLabels(result: HerdrResult | null | undefined): string[];
84
90
  export declare class HerdrAdapter implements TerminalProvider {
85
91
  private readonly deps;
86
92
  readonly name = "herdr";
93
+ readonly panesPerPage = 16;
87
94
  private readonly transport;
88
95
  private readonly newLaunchToken;
89
96
  private readonly tabPrefix;
@@ -1 +1 @@
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,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAe7H;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"}
1
+ {"version":3,"file":"herdr-adapter.d.ts","sourceRoot":"","sources":["../../../src/domain/terminal/herdr-adapter.ts"],"names":[],"mappings":"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"}
@@ -47,9 +47,13 @@
47
47
  // The `workspace.create` response envelope is VM-confirmed (OPR.0.4.7.1):
48
48
  // `result.workspace.workspace_id` + `result.tab.tab_id` + `result.root_pane`.
49
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).
50
+ // OPR.0.6.0.8: issue #26 is the live evidence the earlier ruling waited for — users
51
+ // landed on the create's blank default tab. After layout the adapter focuses the
52
+ // first populated tab it knows (tab.focus) and then closes the starting tab (tab.close)
53
+ // only when it is known blank: every page applied and reported a tab id, and none is
54
+ // the starting tab. Otherwise the starting tab is kept and the result says so. Both methods are in
55
+ // herdr 0.7.1's socket API (`herdr tab focus|close <tab_id>`); a refusal of either
56
+ // is reported as a note, never as a failed seat.
53
57
  import { autoGridCols } from "../cmux-layout-service.js";
54
58
  /** Sentinel host for herdr-surface degrades (a pane herdr itself failed to render). */
55
59
  const HERDR_SURFACE_HOST = "herdr";
@@ -110,6 +114,9 @@ export function buildGridRoot(panes) {
110
114
  */
111
115
  export function planHerdrLayout(view, launchToken, tabPrefix = "openrig") {
112
116
  const base = `${tabPrefix}:${view.id}#${launchToken}`;
117
+ // The workspace is named for people: the rig name for a rig view, else the view id.
118
+ // Tab labels keep the launch token, so every open is still a fresh, distinct space.
119
+ const workspaceLabel = view.id.startsWith("rig:") ? view.id.slice("rig:".length) : view.id;
113
120
  const pages = view.pages.map((page, pageIndex) => {
114
121
  const grid = buildGridRoot(page);
115
122
  return {
@@ -118,7 +125,7 @@ export function planHerdrLayout(view, launchToken, tabPrefix = "openrig") {
118
125
  blanks: grid.blanks,
119
126
  };
120
127
  });
121
- return { workspaceLabel: base, pages };
128
+ return { workspaceLabel, pages };
122
129
  }
123
130
  /**
124
131
  * Extract the created workspace's id from a `workspace.create` result body.
@@ -147,9 +154,36 @@ export function extractWorkspaceId(result) {
147
154
  return bare;
148
155
  return null;
149
156
  }
157
+ /** Herdr lays out 4×4 per tab (OPR.0.6.0.8); cmux keeps the composer default. */
158
+ export const HERDR_PANES_PER_PAGE = 16;
159
+ /** A `tab_id` from a herdr result body (`result.tab.tab_id`, `result.layout.tab_id`, or top-level). */
160
+ export function extractTabId(result) {
161
+ if (!result)
162
+ return null;
163
+ if (typeof result["tab_id"] === "string" && result["tab_id"])
164
+ return result["tab_id"];
165
+ for (const key of ["tab", "layout"]) {
166
+ const nested = result[key];
167
+ if (nested && typeof nested === "object") {
168
+ const id = nested["tab_id"];
169
+ if (typeof id === "string" && id)
170
+ return id;
171
+ }
172
+ }
173
+ return null;
174
+ }
175
+ /** Workspace labels from a `workspace.list` result body; [] when the shape is unknown. */
176
+ export function extractWorkspaceLabels(result) {
177
+ const list = result?.["workspaces"];
178
+ if (!Array.isArray(list))
179
+ return [];
180
+ return list.map((w) => (w && typeof w === "object" ? w["label"] : null))
181
+ .filter((l) => typeof l === "string");
182
+ }
150
183
  export class HerdrAdapter {
151
184
  deps;
152
185
  name = "herdr";
186
+ panesPerPage = HERDR_PANES_PER_PAGE;
153
187
  transport;
154
188
  newLaunchToken;
155
189
  tabPrefix;
@@ -224,22 +258,53 @@ export class HerdrAdapter {
224
258
  };
225
259
  }
226
260
  // A fresh workspace per open (BR-5 fresh-on-relaunch, strongest form).
227
- // The labeled create is tried first; a failure falls back ONCE to a bare
228
- // create before degrading.
261
+ // The labeled create is tried first. If herdr refuses it and a workspace with
262
+ // that label already exists, retry once with a numbered suffix and say so;
263
+ // otherwise fall back ONCE to a bare create before degrading.
264
+ const notes = [];
229
265
  let workspaceId = null;
266
+ let defaultTabId = null;
230
267
  let createErr = null;
231
268
  try {
232
- workspaceId = extractWorkspaceId(await this.transport.request("workspace.create", {
233
- focus: false,
234
- label: plan.workspaceLabel,
235
- }));
269
+ const created = await this.transport.request("workspace.create", { focus: false, label: plan.workspaceLabel });
270
+ workspaceId = extractWorkspaceId(created);
271
+ defaultTabId = extractTabId(created);
236
272
  }
237
273
  catch (err) {
238
274
  createErr = err;
239
275
  }
240
276
  if (workspaceId == null) {
277
+ let existing = [];
241
278
  try {
242
- workspaceId = extractWorkspaceId(await this.transport.request("workspace.create", { focus: false }));
279
+ existing = extractWorkspaceLabels(await this.transport.request("workspace.list", {}));
280
+ }
281
+ catch { /* unknown → bare fallback */ }
282
+ if (existing.includes(plan.workspaceLabel)) {
283
+ let n = 2;
284
+ while (existing.includes(`${plan.workspaceLabel} (${n})`))
285
+ n++;
286
+ const suffixed = `${plan.workspaceLabel} (${n})`;
287
+ try {
288
+ const created = await this.transport.request("workspace.create", { focus: false, label: suffixed });
289
+ workspaceId = extractWorkspaceId(created);
290
+ defaultTabId = extractTabId(created);
291
+ if (workspaceId != null) {
292
+ createErr = null;
293
+ notes.push(`A workspace named "${plan.workspaceLabel}" already exists, so this one is "${suffixed}".`);
294
+ }
295
+ }
296
+ catch (err) {
297
+ createErr = createErr ?? err;
298
+ }
299
+ }
300
+ }
301
+ if (workspaceId == null) {
302
+ try {
303
+ const created = await this.transport.request("workspace.create", { focus: false });
304
+ workspaceId = extractWorkspaceId(created);
305
+ defaultTabId = extractTabId(created);
306
+ if (workspaceId != null)
307
+ notes.push(`herdr refused the workspace name "${plan.workspaceLabel}"; the workspace is unnamed.`);
243
308
  createErr = null;
244
309
  }
245
310
  catch (err) {
@@ -269,21 +334,34 @@ export class HerdrAdapter {
269
334
  code: "herdr_workspace_failed",
270
335
  };
271
336
  }
337
+ const appliedTabIds = [];
338
+ let firstPopulatedTabId = null;
339
+ // The starting tab is known blank only if every page applied AND reported its tab id:
340
+ // an id-less reply or a failed (possibly still effective) apply may have used it.
341
+ let everyPageKnown = true;
272
342
  for (let pageIndex = 0; pageIndex < plan.pages.length; pageIndex++) {
273
343
  const pagePlan = plan.pages[pageIndex];
274
344
  const pagePanes = view.pages[pageIndex];
275
345
  try {
276
346
  // ONE atomic layout.apply for the whole page (capture-verified shape).
277
- await this.transport.request("layout.apply", {
347
+ const applied = await this.transport.request("layout.apply", {
278
348
  workspace_id: workspaceId,
279
349
  tab_label: pagePlan.tabLabel,
280
350
  focus: true,
281
351
  root: pagePlan.root,
282
352
  });
353
+ const tabId = extractTabId(applied);
354
+ if (tabId) {
355
+ appliedTabIds.push(tabId);
356
+ firstPopulatedTabId ??= tabId;
357
+ }
358
+ else
359
+ everyPageKnown = false;
283
360
  for (const pane of pagePanes)
284
361
  opened.push(pane.seat);
285
362
  }
286
363
  catch (err) {
364
+ everyPageKnown = false;
287
365
  // The whole page failed to apply — degrade its seats honestly.
288
366
  for (const pane of pagePanes) {
289
367
  degraded.push({
@@ -294,6 +372,34 @@ export class HerdrAdapter {
294
372
  }
295
373
  }
296
374
  }
375
+ // Land on a known populated tab, then remove the create's starting tab (#26) only when it is
376
+ // known to be blank. When that is uncertain the tab is kept: closing it could remove seats.
377
+ if (opened.length > 0) {
378
+ if (firstPopulatedTabId) {
379
+ try {
380
+ await this.transport.request("tab.focus", { tab_id: firstPopulatedTabId });
381
+ }
382
+ catch (err) {
383
+ notes.push(`herdr did not focus the first tab: ${err instanceof Error ? err.message : String(err)}`);
384
+ }
385
+ }
386
+ else {
387
+ notes.push("herdr returned no tab id for any page, so no tab was focused explicitly.");
388
+ }
389
+ if (defaultTabId) {
390
+ if (!everyPageKnown) {
391
+ notes.push("The starting tab was kept because it could not be confirmed empty.");
392
+ }
393
+ else if (!appliedTabIds.includes(defaultTabId)) {
394
+ try {
395
+ await this.transport.request("tab.close", { tab_id: defaultTabId });
396
+ }
397
+ catch (err) {
398
+ notes.push(`herdr kept the blank starting tab: ${err instanceof Error ? err.message : String(err)}`);
399
+ }
400
+ }
401
+ }
402
+ }
297
403
  return {
298
404
  provider: this.name,
299
405
  ok: opened.length > 0 || view.opened.length === 0,
@@ -301,6 +407,7 @@ export class HerdrAdapter {
301
407
  absent,
302
408
  degraded,
303
409
  pages: plan.pages.length,
410
+ ...(notes.length ? { notes } : {}),
304
411
  };
305
412
  }
306
413
  }