@openrig/cli 0.5.17 → 0.6.1

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 (430) hide show
  1. package/daemon/assets/guidance/openrig-start.md +7 -0
  2. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +7 -0
  3. package/daemon/context-packs/help/help.md +130 -0
  4. package/daemon/context-packs/help/manifest.yaml +9 -0
  5. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  6. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +3 -0
  7. package/daemon/context-packs/reference/getting-started.md +454 -0
  8. package/daemon/context-packs/reference/instance-layout.md +106 -0
  9. package/daemon/context-packs/reference/manifest.yaml +16 -0
  10. package/daemon/context-packs/reference/rig-spec.md +580 -0
  11. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  12. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  13. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  14. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  15. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  16. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  17. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  18. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  19. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  20. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  21. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  22. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  23. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +7 -0
  24. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  25. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  26. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  27. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  28. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  64. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  65. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  66. package/daemon/dist/adapters/claude-code-adapter.d.ts +3 -0
  67. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  68. package/daemon/dist/adapters/claude-code-adapter.js +36 -14
  69. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  70. package/daemon/dist/adapters/claude-resume.d.ts +3 -1
  71. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  72. package/daemon/dist/adapters/claude-resume.js +20 -6
  73. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  74. package/daemon/dist/adapters/codex-resume.d.ts +4 -1
  75. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  76. package/daemon/dist/adapters/codex-resume.js +8 -2
  77. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  78. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +6 -0
  79. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  80. package/daemon/dist/adapters/codex-runtime-adapter.js +25 -4
  81. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  82. package/daemon/dist/adapters/pi-runner.d.ts +1 -0
  83. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  84. package/daemon/dist/adapters/pi-runner.js +7 -1
  85. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  86. package/daemon/dist/adapters/tmux.d.ts +21 -1
  87. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  88. package/daemon/dist/adapters/tmux.js +141 -3
  89. package/daemon/dist/adapters/tmux.js.map +1 -1
  90. package/daemon/dist/adapters/yolo-mode.d.ts +3 -2
  91. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  92. package/daemon/dist/adapters/yolo-mode.js +10 -2
  93. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  94. package/daemon/dist/build-info.js +3 -3
  95. package/daemon/dist/db/all-migrations.d.ts +1 -1
  96. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  97. package/daemon/dist/db/all-migrations.js +10 -2
  98. package/daemon/dist/db/all-migrations.js.map +1 -1
  99. package/daemon/dist/db/migrations/086_classification_fields_and_attempts.d.ts +26 -0
  100. package/daemon/dist/db/migrations/086_classification_fields_and_attempts.d.ts.map +1 -0
  101. package/daemon/dist/db/migrations/086_classification_fields_and_attempts.js +66 -0
  102. package/daemon/dist/db/migrations/086_classification_fields_and_attempts.js.map +1 -0
  103. package/daemon/dist/db/migrations/087_seat_delivery_guard.d.ts +3 -0
  104. package/daemon/dist/db/migrations/087_seat_delivery_guard.d.ts.map +1 -0
  105. package/daemon/dist/db/migrations/087_seat_delivery_guard.js +31 -0
  106. package/daemon/dist/db/migrations/087_seat_delivery_guard.js.map +1 -0
  107. package/daemon/dist/db/migrations/088_node_permission_selections.d.ts +3 -0
  108. package/daemon/dist/db/migrations/088_node_permission_selections.d.ts.map +1 -0
  109. package/daemon/dist/db/migrations/088_node_permission_selections.js +16 -0
  110. package/daemon/dist/db/migrations/088_node_permission_selections.js.map +1 -0
  111. package/daemon/dist/db/migrations/089_classification_identity_provenance.d.ts +3 -0
  112. package/daemon/dist/db/migrations/089_classification_identity_provenance.d.ts.map +1 -0
  113. package/daemon/dist/db/migrations/089_classification_identity_provenance.js +6 -0
  114. package/daemon/dist/db/migrations/089_classification_identity_provenance.js.map +1 -0
  115. package/daemon/dist/domain/applied-launch-observation-store.d.ts +1 -1
  116. package/daemon/dist/domain/applied-launch-observation-store.d.ts.map +1 -1
  117. package/daemon/dist/domain/applied-launch-observation-store.js +6 -4
  118. package/daemon/dist/domain/applied-launch-observation-store.js.map +1 -1
  119. package/daemon/dist/domain/capture-observer.d.ts +130 -0
  120. package/daemon/dist/domain/capture-observer.d.ts.map +1 -0
  121. package/daemon/dist/domain/capture-observer.js +113 -0
  122. package/daemon/dist/domain/capture-observer.js.map +1 -0
  123. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  124. package/daemon/dist/domain/claim-service.js +24 -3
  125. package/daemon/dist/domain/claim-service.js.map +1 -1
  126. package/daemon/dist/domain/classification-attempts.d.ts +143 -0
  127. package/daemon/dist/domain/classification-attempts.d.ts.map +1 -0
  128. package/daemon/dist/domain/classification-attempts.js +316 -0
  129. package/daemon/dist/domain/classification-attempts.js.map +1 -0
  130. package/daemon/dist/domain/classification-sources.d.ts +44 -0
  131. package/daemon/dist/domain/classification-sources.d.ts.map +1 -0
  132. package/daemon/dist/domain/classification-sources.js +102 -0
  133. package/daemon/dist/domain/classification-sources.js.map +1 -0
  134. package/daemon/dist/domain/classifier-lease-manager.d.ts +15 -4
  135. package/daemon/dist/domain/classifier-lease-manager.d.ts.map +1 -1
  136. package/daemon/dist/domain/classifier-lease-manager.js +63 -21
  137. package/daemon/dist/domain/classifier-lease-manager.js.map +1 -1
  138. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +3 -1
  139. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  140. package/daemon/dist/domain/claude-compaction-enforcer.js +36 -7
  141. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  142. package/daemon/dist/domain/claude-managed-launch.d.ts +28 -0
  143. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -0
  144. package/daemon/dist/domain/claude-managed-launch.js +111 -0
  145. package/daemon/dist/domain/claude-managed-launch.js.map +1 -0
  146. package/daemon/dist/domain/codex-daemon-support.d.ts +16 -0
  147. package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -0
  148. package/daemon/dist/domain/codex-daemon-support.js +52 -0
  149. package/daemon/dist/domain/codex-daemon-support.js.map +1 -0
  150. package/daemon/dist/domain/codex-git-add-dirs.d.ts +16 -0
  151. package/daemon/dist/domain/codex-git-add-dirs.d.ts.map +1 -0
  152. package/daemon/dist/domain/codex-git-add-dirs.js +43 -0
  153. package/daemon/dist/domain/codex-git-add-dirs.js.map +1 -0
  154. package/daemon/dist/domain/context-usage-store.d.ts +2 -2
  155. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  156. package/daemon/dist/domain/context-usage-store.js +4 -3
  157. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  158. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  159. package/daemon/dist/domain/gateway/connections-projection.js +6 -3
  160. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  161. package/daemon/dist/domain/gateway/slack/capabilities.d.ts +19 -0
  162. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -0
  163. package/daemon/dist/domain/gateway/slack/capabilities.js +24 -0
  164. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -0
  165. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  166. package/daemon/dist/domain/gateway/slack/config.js +2 -1
  167. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  168. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  169. package/daemon/dist/domain/gateway/slack/inbound.js +2 -1
  170. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  171. package/daemon/dist/domain/gateway/slack/manifest.d.ts +54 -0
  172. package/daemon/dist/domain/gateway/slack/manifest.d.ts.map +1 -0
  173. package/daemon/dist/domain/gateway/slack/manifest.js +55 -0
  174. package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -0
  175. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  176. package/daemon/dist/domain/model-divergence/current-generation-record.js +6 -3
  177. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  178. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +3 -2
  179. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  180. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +9 -5
  181. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  182. package/daemon/dist/domain/native-permission-selection.d.ts +13 -0
  183. package/daemon/dist/domain/native-permission-selection.d.ts.map +1 -0
  184. package/daemon/dist/domain/native-permission-selection.js +30 -0
  185. package/daemon/dist/domain/native-permission-selection.js.map +1 -0
  186. package/daemon/dist/domain/native-permission-store.d.ts +17 -0
  187. package/daemon/dist/domain/native-permission-store.d.ts.map +1 -0
  188. package/daemon/dist/domain/native-permission-store.js +36 -0
  189. package/daemon/dist/domain/native-permission-store.js.map +1 -0
  190. package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
  191. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  192. package/daemon/dist/domain/native-resume-probe.js +22 -7
  193. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  194. package/daemon/dist/domain/node-inventory.d.ts +3 -0
  195. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  196. package/daemon/dist/domain/node-inventory.js +2 -0
  197. package/daemon/dist/domain/node-inventory.js.map +1 -1
  198. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  199. package/daemon/dist/domain/node-launcher.js +6 -0
  200. package/daemon/dist/domain/node-launcher.js.map +1 -1
  201. package/daemon/dist/domain/outbox-handler.d.ts +25 -2
  202. package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
  203. package/daemon/dist/domain/outbox-handler.js +70 -1
  204. package/daemon/dist/domain/outbox-handler.js.map +1 -1
  205. package/daemon/dist/domain/permission-drift-observer.d.ts +1 -0
  206. package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  207. package/daemon/dist/domain/permission-drift-observer.js +1 -1
  208. package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  209. package/daemon/dist/domain/permission-drift.d.ts +10 -0
  210. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  211. package/daemon/dist/domain/permission-drift.js +29 -18
  212. package/daemon/dist/domain/permission-drift.js.map +1 -1
  213. package/daemon/dist/domain/project-classifier.d.ts +43 -0
  214. package/daemon/dist/domain/project-classifier.d.ts.map +1 -1
  215. package/daemon/dist/domain/project-classifier.js +141 -25
  216. package/daemon/dist/domain/project-classifier.js.map +1 -1
  217. package/daemon/dist/domain/proof/judgments.d.ts +16 -0
  218. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  219. package/daemon/dist/domain/proof/judgments.js +17 -1
  220. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  221. package/daemon/dist/domain/queue-repository.d.ts +8 -0
  222. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  223. package/daemon/dist/domain/queue-repository.js +41 -14
  224. package/daemon/dist/domain/queue-repository.js.map +1 -1
  225. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  226. package/daemon/dist/domain/restore-orchestrator.js +28 -1
  227. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  228. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  229. package/daemon/dist/domain/resume-metadata-refresher.js +3 -1
  230. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  231. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  232. package/daemon/dist/domain/rig-lifecycle-service.js +7 -0
  233. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  234. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  235. package/daemon/dist/domain/rig-teardown.js +4 -0
  236. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  237. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  238. package/daemon/dist/domain/rigspec-instantiator.js +36 -22
  239. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  240. package/daemon/dist/domain/runtime-adapter.d.ts +6 -0
  241. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  242. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  243. package/daemon/dist/domain/seat-delivery-guard.d.ts +64 -0
  244. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -0
  245. package/daemon/dist/domain/seat-delivery-guard.js +224 -0
  246. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -0
  247. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  248. package/daemon/dist/domain/seat-handover-service.js +19 -1
  249. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  250. package/daemon/dist/domain/seat-lifecycle-service.d.ts +16 -2
  251. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  252. package/daemon/dist/domain/seat-lifecycle-service.js +70 -0
  253. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  254. package/daemon/dist/domain/seat-status-service.d.ts +10 -0
  255. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  256. package/daemon/dist/domain/seat-status-service.js +13 -0
  257. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  258. package/daemon/dist/domain/session-transport.d.ts +19 -1
  259. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  260. package/daemon/dist/domain/session-transport.js +221 -23
  261. package/daemon/dist/domain/session-transport.js.map +1 -1
  262. package/daemon/dist/domain/shadow-capture.d.ts +97 -0
  263. package/daemon/dist/domain/shadow-capture.d.ts.map +1 -0
  264. package/daemon/dist/domain/shadow-capture.js +147 -0
  265. package/daemon/dist/domain/shadow-capture.js.map +1 -0
  266. package/daemon/dist/domain/sqlite-time.d.ts +5 -0
  267. package/daemon/dist/domain/sqlite-time.d.ts.map +1 -0
  268. package/daemon/dist/domain/sqlite-time.js +7 -0
  269. package/daemon/dist/domain/sqlite-time.js.map +1 -0
  270. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  271. package/daemon/dist/domain/startup-orchestrator.js +11 -0
  272. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  273. package/daemon/dist/domain/stream-classification-worker.d.ts +106 -0
  274. package/daemon/dist/domain/stream-classification-worker.d.ts.map +1 -0
  275. package/daemon/dist/domain/stream-classification-worker.js +265 -0
  276. package/daemon/dist/domain/stream-classification-worker.js.map +1 -0
  277. package/daemon/dist/domain/successor-session-launcher.d.ts +1 -0
  278. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  279. package/daemon/dist/domain/successor-session-launcher.js +4 -2
  280. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  281. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +7 -0
  282. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  283. package/daemon/dist/domain/terminal/herdr-adapter.js +119 -12
  284. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  285. package/daemon/dist/domain/terminal/terminal-provider.d.ts +5 -0
  286. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  287. package/daemon/dist/domain/terminal/terminal-service.js +6 -6
  288. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  289. package/daemon/dist/domain/terminal/view-composer.d.ts +6 -4
  290. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  291. package/daemon/dist/domain/terminal/view-composer.js +5 -5
  292. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  293. package/daemon/dist/domain/types.d.ts +10 -0
  294. package/daemon/dist/domain/types.d.ts.map +1 -1
  295. package/daemon/dist/domain/types.js.map +1 -1
  296. package/daemon/dist/domain/watchdog-policy-engine.d.ts +3 -1
  297. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  298. package/daemon/dist/domain/watchdog-policy-engine.js +5 -3
  299. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  300. package/daemon/dist/gateway-slack-surface.d.ts +2 -0
  301. package/daemon/dist/gateway-slack-surface.d.ts.map +1 -1
  302. package/daemon/dist/gateway-slack-surface.js +2 -0
  303. package/daemon/dist/gateway-slack-surface.js.map +1 -1
  304. package/daemon/dist/routes/activity.d.ts.map +1 -1
  305. package/daemon/dist/routes/activity.js +28 -2
  306. package/daemon/dist/routes/activity.js.map +1 -1
  307. package/daemon/dist/routes/down.d.ts.map +1 -1
  308. package/daemon/dist/routes/down.js +3 -0
  309. package/daemon/dist/routes/down.js.map +1 -1
  310. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  311. package/daemon/dist/routes/gateway.js +3 -0
  312. package/daemon/dist/routes/gateway.js.map +1 -1
  313. package/daemon/dist/routes/projects.d.ts.map +1 -1
  314. package/daemon/dist/routes/projects.js +205 -18
  315. package/daemon/dist/routes/projects.js.map +1 -1
  316. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  317. package/daemon/dist/routes/rigs.js +13 -5
  318. package/daemon/dist/routes/rigs.js.map +1 -1
  319. package/daemon/dist/routes/seat.d.ts.map +1 -1
  320. package/daemon/dist/routes/seat.js +78 -1
  321. package/daemon/dist/routes/seat.js.map +1 -1
  322. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  323. package/daemon/dist/routes/sessions.js +6 -2
  324. package/daemon/dist/routes/sessions.js.map +1 -1
  325. package/daemon/dist/routes/transport.d.ts.map +1 -1
  326. package/daemon/dist/routes/transport.js +9 -1
  327. package/daemon/dist/routes/transport.js.map +1 -1
  328. package/daemon/dist/server.d.ts +5 -0
  329. package/daemon/dist/server.d.ts.map +1 -1
  330. package/daemon/dist/server.js +3 -0
  331. package/daemon/dist/server.js.map +1 -1
  332. package/daemon/dist/startup.d.ts.map +1 -1
  333. package/daemon/dist/startup.js +32 -8
  334. package/daemon/dist/startup.js.map +1 -1
  335. package/daemon/dist/stream-classifier-surface.d.ts +6 -0
  336. package/daemon/dist/stream-classifier-surface.d.ts.map +1 -0
  337. package/daemon/dist/stream-classifier-surface.js +6 -0
  338. package/daemon/dist/stream-classifier-surface.js.map +1 -0
  339. package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
  340. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  341. package/daemon/dist/terminal/TerminalSessionBroker.js +10 -6
  342. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  343. package/daemon/docs/reference/getting-started.md +63 -5
  344. package/daemon/docs/reference/help.md +130 -0
  345. package/daemon/docs/reference/rig-spec.md +6 -1
  346. package/daemon/docs/reference/slack-app-setup.md +90 -0
  347. package/daemon/docs/reference/stream-classifier-worker.md +244 -0
  348. package/daemon/policies/builtin/yolo.policy.md +5 -5
  349. package/daemon/specs/agents/apps/vault-specialist/skills/vault-user/SKILL.md +5 -0
  350. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +7 -0
  351. package/daemon/specs/rigs/launch/kernel/rig.yaml +4 -0
  352. package/dist/build-info.js +3 -3
  353. package/dist/commands/doctor.d.ts.map +1 -1
  354. package/dist/commands/doctor.js +9 -6
  355. package/dist/commands/doctor.js.map +1 -1
  356. package/dist/commands/policy.d.ts.map +1 -1
  357. package/dist/commands/policy.js +8 -1
  358. package/dist/commands/policy.js.map +1 -1
  359. package/dist/commands/preflight.d.ts.map +1 -1
  360. package/dist/commands/preflight.js +2 -0
  361. package/dist/commands/preflight.js.map +1 -1
  362. package/dist/commands/project-jev.d.ts +115 -0
  363. package/dist/commands/project-jev.d.ts.map +1 -0
  364. package/dist/commands/project-jev.js +239 -0
  365. package/dist/commands/project-jev.js.map +1 -0
  366. package/dist/commands/project-worker.d.ts +96 -0
  367. package/dist/commands/project-worker.d.ts.map +1 -0
  368. package/dist/commands/project-worker.js +125 -0
  369. package/dist/commands/project-worker.js.map +1 -0
  370. package/dist/commands/project.d.ts +5 -1
  371. package/dist/commands/project.d.ts.map +1 -1
  372. package/dist/commands/project.js +161 -0
  373. package/dist/commands/project.js.map +1 -1
  374. package/dist/commands/seat.d.ts.map +1 -1
  375. package/dist/commands/seat.js +79 -0
  376. package/dist/commands/seat.js.map +1 -1
  377. package/dist/commands/send.d.ts.map +1 -1
  378. package/dist/commands/send.js +18 -5
  379. package/dist/commands/send.js.map +1 -1
  380. package/dist/commands/slack.d.ts +4 -1
  381. package/dist/commands/slack.d.ts.map +1 -1
  382. package/dist/commands/slack.js +41 -2
  383. package/dist/commands/slack.js.map +1 -1
  384. package/dist/commands/terminal.d.ts.map +1 -1
  385. package/dist/commands/terminal.js +2 -0
  386. package/dist/commands/terminal.js.map +1 -1
  387. package/dist/commands/view.d.ts.map +1 -1
  388. package/dist/commands/view.js +3 -0
  389. package/dist/commands/view.js.map +1 -1
  390. package/dist/commands/walk.d.ts.map +1 -1
  391. package/dist/commands/walk.js +6 -0
  392. package/dist/commands/walk.js.map +1 -1
  393. package/dist/node-support.d.ts +12 -0
  394. package/dist/node-support.d.ts.map +1 -0
  395. package/dist/node-support.js +37 -0
  396. package/dist/node-support.js.map +1 -0
  397. package/dist/system-preflight.d.ts +2 -0
  398. package/dist/system-preflight.d.ts.map +1 -1
  399. package/dist/system-preflight.js +9 -10
  400. package/dist/system-preflight.js.map +1 -1
  401. package/package.json +3 -3
  402. package/scripts/check-abi.mjs +119 -65
  403. package/tui/dist/commands/registry.d.ts.map +1 -1
  404. package/tui/dist/commands/registry.js +3 -0
  405. package/tui/dist/commands/registry.js.map +1 -1
  406. package/tui/dist/connections/connections-model.d.ts +11 -1
  407. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  408. package/tui/dist/connections/connections-model.js +28 -1
  409. package/tui/dist/connections/connections-model.js.map +1 -1
  410. package/tui/dist/daemon-client.d.ts +2 -0
  411. package/tui/dist/daemon-client.d.ts.map +1 -1
  412. package/tui/dist/daemon-client.js +1 -0
  413. package/tui/dist/daemon-client.js.map +1 -1
  414. package/tui/dist/hydrate.d.ts.map +1 -1
  415. package/tui/dist/hydrate.js +5 -0
  416. package/tui/dist/hydrate.js.map +1 -1
  417. package/tui/dist/main.js +16 -2
  418. package/tui/dist/main.js.map +1 -1
  419. package/tui/dist/print-for-copy.d.ts +36 -0
  420. package/tui/dist/print-for-copy.d.ts.map +1 -0
  421. package/tui/dist/print-for-copy.js +92 -0
  422. package/tui/dist/print-for-copy.js.map +1 -0
  423. package/tui/dist/render.d.ts.map +1 -1
  424. package/tui/dist/render.js +4 -1
  425. package/tui/dist/render.js.map +1 -1
  426. package/tui/dist/state.d.ts.map +1 -1
  427. package/tui/dist/state.js +2 -0
  428. package/tui/dist/state.js.map +1 -1
  429. package/tui/dist/types.d.ts +8 -0
  430. 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
  }