@openrig/cli 0.6.4 → 0.6.6

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 (1443) hide show
  1. package/README.md +405 -0
  2. package/daemon/assets/onboarding/02-self-and-competent-action.md +42 -0
  3. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  4. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +100 -20
  6. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +41 -21
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +207 -132
  8. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  9. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
  10. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  11. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
  12. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
  15. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +9 -4
  16. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +54 -23
  17. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  18. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
  19. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
  20. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
  21. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
  22. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
  23. package/daemon/context-packs/help/help.md +40 -10
  24. package/daemon/context-packs/help/manifest.yaml +1 -1
  25. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  26. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +26 -12
  27. package/daemon/context-packs/reference/getting-started.md +426 -111
  28. package/daemon/context-packs/reference/instance-layout.md +11 -0
  29. package/daemon/context-packs/reference/manifest.yaml +1 -1
  30. package/daemon/context-packs/reference/rig-spec.md +180 -29
  31. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/applying-a-permission-policy/SKILL.md +41 -21
  34. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +207 -132
  36. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
  37. package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  38. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +0 -6
  39. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
  41. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
  45. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +5 -5
  47. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +3 -3
  48. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +9 -4
  51. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +12 -9
  53. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +29 -29
  55. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
  57. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +0 -5
  60. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  63. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
  64. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
  67. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  70. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
  71. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
  73. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
  75. package/daemon/context-packs/skills/openrig-user/SKILL.md +54 -23
  76. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  78. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +1 -1
  91. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  94. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  95. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +0 -2
  96. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  97. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  99. package/daemon/context-packs/skills/queue-handoff/SKILL.md +1 -19
  100. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  101. package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
  102. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  103. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
  104. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  105. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +0 -5
  106. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  107. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +5 -6
  108. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  109. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  110. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  111. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  112. package/daemon/dist/adapters/claude-code-adapter.d.ts +18 -4
  113. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  114. package/daemon/dist/adapters/claude-code-adapter.js +179 -63
  115. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  116. package/daemon/dist/adapters/claude-resume.d.ts +7 -1
  117. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  118. package/daemon/dist/adapters/claude-resume.js +44 -10
  119. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  120. package/daemon/dist/adapters/codex-resume.d.ts +9 -1
  121. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  122. package/daemon/dist/adapters/codex-resume.js +22 -8
  123. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  124. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -0
  125. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  126. package/daemon/dist/adapters/codex-runtime-adapter.js +93 -73
  127. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  128. package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
  129. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  130. package/daemon/dist/adapters/compose-services-adapter.js +6 -3
  131. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  132. package/daemon/dist/adapters/daemon-url.d.ts +7 -0
  133. package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
  134. package/daemon/dist/adapters/daemon-url.js +12 -0
  135. package/daemon/dist/adapters/daemon-url.js.map +1 -0
  136. package/daemon/dist/adapters/kernel-authority.d.ts +10 -0
  137. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -0
  138. package/daemon/dist/adapters/kernel-authority.js +53 -0
  139. package/daemon/dist/adapters/kernel-authority.js.map +1 -0
  140. package/daemon/dist/adapters/non-interruptive.d.ts +14 -0
  141. package/daemon/dist/adapters/non-interruptive.d.ts.map +1 -0
  142. package/daemon/dist/adapters/non-interruptive.js +38 -0
  143. package/daemon/dist/adapters/non-interruptive.js.map +1 -0
  144. package/daemon/dist/adapters/omp-resume.d.ts +6 -0
  145. package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
  146. package/daemon/dist/adapters/omp-resume.js +6 -0
  147. package/daemon/dist/adapters/omp-resume.js.map +1 -0
  148. package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
  149. package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
  150. package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
  151. package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
  152. package/daemon/dist/adapters/pi-resume.d.ts +7 -1
  153. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  154. package/daemon/dist/adapters/pi-resume.js +27 -18
  155. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  156. package/daemon/dist/adapters/pi-runner-protocol.d.ts +29 -2
  157. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  158. package/daemon/dist/adapters/pi-runner-protocol.js +89 -5
  159. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  160. package/daemon/dist/adapters/pi-runner.d.ts +52 -5
  161. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  162. package/daemon/dist/adapters/pi-runner.js +429 -68
  163. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  164. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +11 -2
  165. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  166. package/daemon/dist/adapters/pi-runtime-adapter.js +85 -40
  167. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  168. package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
  169. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
  170. package/daemon/dist/adapters/preflight-exec.js +52 -0
  171. package/daemon/dist/adapters/preflight-exec.js.map +1 -0
  172. package/daemon/dist/adapters/stub-runner-protocol.d.ts +1 -1
  173. package/daemon/dist/adapters/stub-runner-protocol.d.ts.map +1 -1
  174. package/daemon/dist/adapters/stub-runner.d.ts +1 -1
  175. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  176. package/daemon/dist/adapters/stub-runner.js +3 -1
  177. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  178. package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
  179. package/daemon/dist/adapters/stub-runtime-adapter.js +11 -8
  180. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  181. package/daemon/dist/adapters/tmux.d.ts +52 -6
  182. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  183. package/daemon/dist/adapters/tmux.js +313 -57
  184. package/daemon/dist/adapters/tmux.js.map +1 -1
  185. package/daemon/dist/adapters/yolo-mode.d.ts +1 -1
  186. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  187. package/daemon/dist/adapters/yolo-mode.js +3 -0
  188. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  189. package/daemon/dist/build-info.js +3 -3
  190. package/daemon/dist/bundle-behaviour-surface.d.ts +2 -0
  191. package/daemon/dist/bundle-behaviour-surface.d.ts.map +1 -0
  192. package/daemon/dist/bundle-behaviour-surface.js +2 -0
  193. package/daemon/dist/bundle-behaviour-surface.js.map +1 -0
  194. package/daemon/dist/bundle-identity-surface.d.ts +2 -0
  195. package/daemon/dist/bundle-identity-surface.d.ts.map +1 -0
  196. package/daemon/dist/bundle-identity-surface.js +4 -0
  197. package/daemon/dist/bundle-identity-surface.js.map +1 -0
  198. package/daemon/dist/daemon-shutdown.d.ts +19 -0
  199. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  200. package/daemon/dist/daemon-shutdown.js +85 -0
  201. package/daemon/dist/daemon-shutdown.js.map +1 -1
  202. package/daemon/dist/db/all-migrations.d.ts +1 -1
  203. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  204. package/daemon/dist/db/all-migrations.js +12 -2
  205. package/daemon/dist/db/all-migrations.js.map +1 -1
  206. package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
  207. package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
  208. package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
  209. package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
  210. package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
  211. package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
  212. package/daemon/dist/db/migrations/091_human_questions.js +9 -0
  213. package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
  214. package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
  215. package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
  216. package/daemon/dist/db/migrations/092_node_effort.js +8 -0
  217. package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
  218. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
  219. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
  220. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
  221. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
  222. package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts +3 -0
  223. package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts.map +1 -0
  224. package/daemon/dist/db/migrations/095_rig_non_interruptive.js +5 -0
  225. package/daemon/dist/db/migrations/095_rig_non_interruptive.js.map +1 -0
  226. package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
  227. package/daemon/dist/domain/activity-endpoint.js +3 -1
  228. package/daemon/dist/domain/activity-endpoint.js.map +1 -1
  229. package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
  230. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  231. package/daemon/dist/domain/agent-activity-store.js +13 -3
  232. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  233. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
  234. package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
  235. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  236. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  237. package/daemon/dist/domain/agent-manifest.js +28 -5
  238. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  239. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +10 -0
  240. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  241. package/daemon/dist/domain/bootstrap-orchestrator.js +136 -33
  242. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  243. package/daemon/dist/domain/builtin-policy-reference.d.ts +1 -1
  244. package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -1
  245. package/daemon/dist/domain/builtin-policy-reference.js +2 -2
  246. package/daemon/dist/domain/builtin-policy-reference.js.map +1 -1
  247. package/daemon/dist/domain/bundle-archive.d.ts +24 -0
  248. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  249. package/daemon/dist/domain/bundle-archive.js +66 -21
  250. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  251. package/daemon/dist/domain/bundle-audit.d.ts +5 -0
  252. package/daemon/dist/domain/bundle-audit.d.ts.map +1 -1
  253. package/daemon/dist/domain/bundle-audit.js.map +1 -1
  254. package/daemon/dist/domain/bundle-behaviour-inspect.d.ts +4 -0
  255. package/daemon/dist/domain/bundle-behaviour-inspect.d.ts.map +1 -0
  256. package/daemon/dist/domain/bundle-behaviour-inspect.js +56 -0
  257. package/daemon/dist/domain/bundle-behaviour-inspect.js.map +1 -0
  258. package/daemon/dist/domain/bundle-behaviour.d.ts +118 -0
  259. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -0
  260. package/daemon/dist/domain/bundle-behaviour.js +364 -0
  261. package/daemon/dist/domain/bundle-behaviour.js.map +1 -0
  262. package/daemon/dist/domain/bundle-carried-context-pack.d.ts +16 -0
  263. package/daemon/dist/domain/bundle-carried-context-pack.d.ts.map +1 -0
  264. package/daemon/dist/domain/bundle-carried-context-pack.js +67 -0
  265. package/daemon/dist/domain/bundle-carried-context-pack.js.map +1 -0
  266. package/daemon/dist/domain/bundle-carried-project.d.ts +13 -0
  267. package/daemon/dist/domain/bundle-carried-project.d.ts.map +1 -0
  268. package/daemon/dist/domain/bundle-carried-project.js +71 -0
  269. package/daemon/dist/domain/bundle-carried-project.js.map +1 -0
  270. package/daemon/dist/domain/bundle-conflict-detector.js +3 -3
  271. package/daemon/dist/domain/bundle-conflict-detector.js.map +1 -1
  272. package/daemon/dist/domain/bundle-content-routing.d.ts +49 -0
  273. package/daemon/dist/domain/bundle-content-routing.d.ts.map +1 -0
  274. package/daemon/dist/domain/bundle-content-routing.js +246 -0
  275. package/daemon/dist/domain/bundle-content-routing.js.map +1 -0
  276. package/daemon/dist/domain/bundle-context-packs-router.d.ts +7 -2
  277. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  278. package/daemon/dist/domain/bundle-context-packs-router.js +19 -0
  279. package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  280. package/daemon/dist/domain/bundle-identity.d.ts +27 -0
  281. package/daemon/dist/domain/bundle-identity.d.ts.map +1 -0
  282. package/daemon/dist/domain/bundle-identity.js +34 -0
  283. package/daemon/dist/domain/bundle-identity.js.map +1 -0
  284. package/daemon/dist/domain/bundle-install-context.d.ts +22 -0
  285. package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -0
  286. package/daemon/dist/domain/bundle-install-context.js +51 -0
  287. package/daemon/dist/domain/bundle-install-context.js.map +1 -0
  288. package/daemon/dist/domain/bundle-integrity.d.ts +1 -0
  289. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  290. package/daemon/dist/domain/bundle-integrity.js +1 -1
  291. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  292. package/daemon/dist/domain/bundle-source-resolver.d.ts +4 -1
  293. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  294. package/daemon/dist/domain/bundle-source-resolver.js +73 -19
  295. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  296. package/daemon/dist/domain/bundle-types.d.ts +37 -0
  297. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  298. package/daemon/dist/domain/bundle-types.js +78 -0
  299. package/daemon/dist/domain/bundle-types.js.map +1 -1
  300. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  301. package/daemon/dist/domain/chat-repository.js +3 -1
  302. package/daemon/dist/domain/chat-repository.js.map +1 -1
  303. package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
  304. package/daemon/dist/domain/checkpoint-store.js +2 -2
  305. package/daemon/dist/domain/checkpoint-store.js.map +1 -1
  306. package/daemon/dist/domain/claim-service.d.ts +7 -0
  307. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  308. package/daemon/dist/domain/claim-service.js +6 -2
  309. package/daemon/dist/domain/claim-service.js.map +1 -1
  310. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +38 -12
  311. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  312. package/daemon/dist/domain/claude-compaction-enforcer.js +291 -128
  313. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  314. package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
  315. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  316. package/daemon/dist/domain/claude-managed-launch.js +31 -4
  317. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  318. package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
  319. package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
  320. package/daemon/dist/domain/codex-daemon-support.js +2 -2
  321. package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
  322. package/daemon/dist/domain/codex-network-default.d.ts +42 -0
  323. package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
  324. package/daemon/dist/domain/codex-network-default.js +230 -0
  325. package/daemon/dist/domain/codex-network-default.js.map +1 -0
  326. package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
  327. package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
  328. package/daemon/dist/domain/codex-profile-preflight.js +3 -3
  329. package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
  330. package/daemon/dist/domain/codex-team-workspace.d.ts +8 -0
  331. package/daemon/dist/domain/codex-team-workspace.d.ts.map +1 -0
  332. package/daemon/dist/domain/codex-team-workspace.js +54 -0
  333. package/daemon/dist/domain/codex-team-workspace.js.map +1 -0
  334. package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
  335. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  336. package/daemon/dist/domain/codex-thread-id.js +10 -6
  337. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  338. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  339. package/daemon/dist/domain/context-monitor.js +9 -2
  340. package/daemon/dist/domain/context-monitor.js.map +1 -1
  341. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  342. package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
  343. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  344. package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
  345. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  346. package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
  347. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  348. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
  349. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  350. package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
  351. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  352. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
  353. package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
  354. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
  355. package/daemon/dist/domain/context-usage-store.d.ts +3 -0
  356. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  357. package/daemon/dist/domain/context-usage-store.js +4 -2
  358. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  359. package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
  360. package/daemon/dist/domain/crash-cart-detect.js +2 -1
  361. package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
  362. package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
  363. package/daemon/dist/domain/crash-cart-discovery.js +4 -2
  364. package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
  365. package/daemon/dist/domain/current-work.d.ts +17 -0
  366. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  367. package/daemon/dist/domain/current-work.js +46 -0
  368. package/daemon/dist/domain/current-work.js.map +1 -1
  369. package/daemon/dist/domain/cwd-resolution.js +1 -1
  370. package/daemon/dist/domain/cwd-resolution.js.map +1 -1
  371. package/daemon/dist/domain/daemon-url.d.ts +7 -0
  372. package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
  373. package/daemon/dist/domain/daemon-url.js +12 -0
  374. package/daemon/dist/domain/daemon-url.js.map +1 -0
  375. package/daemon/dist/domain/daemon-version.d.ts +3 -1
  376. package/daemon/dist/domain/daemon-version.d.ts.map +1 -1
  377. package/daemon/dist/domain/daemon-version.js +6 -1
  378. package/daemon/dist/domain/daemon-version.js.map +1 -1
  379. package/daemon/dist/domain/discovery-types.d.ts +1 -1
  380. package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
  381. package/daemon/dist/domain/event-bus.d.ts +1 -0
  382. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  383. package/daemon/dist/domain/event-bus.js +18 -7
  384. package/daemon/dist/domain/event-bus.js.map +1 -1
  385. package/daemon/dist/domain/event-loop-monitor.d.ts +6 -0
  386. package/daemon/dist/domain/event-loop-monitor.d.ts.map +1 -1
  387. package/daemon/dist/domain/event-loop-monitor.js +13 -0
  388. package/daemon/dist/domain/event-loop-monitor.js.map +1 -1
  389. package/daemon/dist/domain/execution-view.d.ts +3 -3
  390. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  391. package/daemon/dist/domain/execution-view.js +116 -93
  392. package/daemon/dist/domain/execution-view.js.map +1 -1
  393. package/daemon/dist/domain/finite-telemetry.d.ts +74 -0
  394. package/daemon/dist/domain/finite-telemetry.d.ts.map +1 -0
  395. package/daemon/dist/domain/finite-telemetry.js +236 -0
  396. package/daemon/dist/domain/finite-telemetry.js.map +1 -0
  397. package/daemon/dist/domain/gateway/connections-projection.d.ts +1 -1
  398. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +2 -0
  399. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  400. package/daemon/dist/domain/gateway/gateway-subsystem.js +4 -0
  401. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  402. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
  403. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  404. package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
  405. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  406. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +45 -0
  407. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -0
  408. package/daemon/dist/domain/gateway/slack/channel-recovery.js +176 -0
  409. package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -0
  410. package/daemon/dist/domain/gateway/slack/inbound.d.ts +74 -4
  411. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  412. package/daemon/dist/domain/gateway/slack/inbound.js +163 -18
  413. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  414. package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
  415. package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
  416. package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
  417. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  418. package/daemon/dist/domain/gateway/slack/message.js +77 -3
  419. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  420. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  421. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  422. package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
  423. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  424. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
  425. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  426. package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
  427. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  428. package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
  429. package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
  430. package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
  431. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +17 -10
  432. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  433. package/daemon/dist/domain/gateway/slack/slack-api.js +94 -24
  434. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  435. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
  436. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  437. package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
  438. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  439. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
  440. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  441. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +121 -28
  442. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  443. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +4 -0
  444. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  445. package/daemon/dist/domain/gateway/slack/socket-inbound.js +14 -1
  446. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  447. package/daemon/dist/domain/gateway/slack/state-store.d.ts +27 -0
  448. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  449. package/daemon/dist/domain/gateway/slack/state-store.js +102 -1
  450. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  451. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  452. package/daemon/dist/domain/gateway/slack/thread-routing.js +7 -2
  453. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  454. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -0
  455. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  456. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +14 -2
  457. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  458. package/daemon/dist/domain/generated-file-hygiene.d.ts +3 -0
  459. package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -0
  460. package/daemon/dist/domain/generated-file-hygiene.js +142 -0
  461. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -0
  462. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  463. package/daemon/dist/domain/graph-projection.js +1 -0
  464. package/daemon/dist/domain/graph-projection.js.map +1 -1
  465. package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
  466. package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
  467. package/daemon/dist/domain/health-checkpoints.js +2 -0
  468. package/daemon/dist/domain/health-checkpoints.js.map +1 -1
  469. package/daemon/dist/domain/health-detectors.d.ts +32 -1
  470. package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
  471. package/daemon/dist/domain/health-detectors.js +40 -9
  472. package/daemon/dist/domain/health-detectors.js.map +1 -1
  473. package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
  474. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  475. package/daemon/dist/domain/health-diagnosis.js +6 -3
  476. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  477. package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
  478. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  479. package/daemon/dist/domain/health-passive-ceremony.js +20 -4
  480. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  481. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
  482. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  483. package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
  484. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  485. package/daemon/dist/domain/human-questions.d.ts +41 -0
  486. package/daemon/dist/domain/human-questions.d.ts.map +1 -0
  487. package/daemon/dist/domain/human-questions.js +81 -0
  488. package/daemon/dist/domain/human-questions.js.map +1 -0
  489. package/daemon/dist/domain/install-planner.d.ts.map +1 -1
  490. package/daemon/dist/domain/install-planner.js +17 -0
  491. package/daemon/dist/domain/install-planner.js.map +1 -1
  492. package/daemon/dist/domain/managed-blocks.d.ts +1 -0
  493. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  494. package/daemon/dist/domain/managed-blocks.js +3 -0
  495. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  496. package/daemon/dist/domain/markdown-address.js +1 -1
  497. package/daemon/dist/domain/markdown-address.js.map +1 -1
  498. package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
  499. package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
  500. package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
  501. package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
  502. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
  503. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
  504. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
  505. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
  506. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
  507. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  508. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
  509. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  510. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
  511. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
  512. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
  513. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  514. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
  515. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
  516. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
  517. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
  518. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
  519. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
  520. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
  521. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
  522. package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
  523. package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
  524. package/daemon/dist/domain/native-permission-store.d.ts +14 -0
  525. package/daemon/dist/domain/native-permission-store.d.ts.map +1 -1
  526. package/daemon/dist/domain/native-permission-store.js +168 -4
  527. package/daemon/dist/domain/native-permission-store.js.map +1 -1
  528. package/daemon/dist/domain/native-process-executable.d.ts +4 -0
  529. package/daemon/dist/domain/native-process-executable.d.ts.map +1 -0
  530. package/daemon/dist/domain/native-process-executable.js +53 -0
  531. package/daemon/dist/domain/native-process-executable.js.map +1 -0
  532. package/daemon/dist/domain/native-process-lineage.d.ts +11 -2
  533. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  534. package/daemon/dist/domain/native-process-lineage.js +135 -15
  535. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  536. package/daemon/dist/domain/native-resume-probe.d.ts +8 -2
  537. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  538. package/daemon/dist/domain/native-resume-probe.js +55 -11
  539. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  540. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  541. package/daemon/dist/domain/node-inventory.js +91 -44
  542. package/daemon/dist/domain/node-inventory.js.map +1 -1
  543. package/daemon/dist/domain/node-launcher.d.ts +4 -0
  544. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  545. package/daemon/dist/domain/node-launcher.js +4 -1
  546. package/daemon/dist/domain/node-launcher.js.map +1 -1
  547. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
  548. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  549. package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
  550. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  551. package/daemon/dist/domain/permission-drift.d.ts +1 -0
  552. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  553. package/daemon/dist/domain/permission-drift.js +13 -1
  554. package/daemon/dist/domain/permission-drift.js.map +1 -1
  555. package/daemon/dist/domain/permission-policy/policy-ref.d.ts +6 -1
  556. package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -1
  557. package/daemon/dist/domain/permission-policy/policy-ref.js +16 -4
  558. package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -1
  559. package/daemon/dist/domain/permission-policy/policy-spec.d.ts +1 -1
  560. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  561. package/daemon/dist/domain/permission-policy/policy-spec.js +2 -2
  562. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  563. package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
  564. package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  565. package/daemon/dist/domain/plugin-discovery-service.js +14 -8
  566. package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  567. package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
  568. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  569. package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
  570. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  571. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
  572. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  573. package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
  574. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  575. package/daemon/dist/domain/profile-resolver.d.ts +4 -2
  576. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  577. package/daemon/dist/domain/profile-resolver.js +78 -9
  578. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  579. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  580. package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
  581. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  582. package/daemon/dist/domain/projection-planner.d.ts +11 -0
  583. package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
  584. package/daemon/dist/domain/projection-planner.js +14 -5
  585. package/daemon/dist/domain/projection-planner.js.map +1 -1
  586. package/daemon/dist/domain/proof/judgments.d.ts +3 -0
  587. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  588. package/daemon/dist/domain/proof/judgments.js +13 -8
  589. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  590. package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
  591. package/daemon/dist/domain/proof/source-watch.js +45 -27
  592. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  593. package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
  594. package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
  595. package/daemon/dist/domain/ps-projection.d.ts +22 -3
  596. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  597. package/daemon/dist/domain/ps-projection.js +50 -11
  598. package/daemon/dist/domain/ps-projection.js.map +1 -1
  599. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  600. package/daemon/dist/domain/queue-recovery.js +7 -1
  601. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  602. package/daemon/dist/domain/queue-repository.d.ts +98 -6
  603. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  604. package/daemon/dist/domain/queue-repository.js +337 -43
  605. package/daemon/dist/domain/queue-repository.js.map +1 -1
  606. package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
  607. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  608. package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
  609. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  610. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  611. package/daemon/dist/domain/queue-transition-log.js +12 -10
  612. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  613. package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
  614. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  615. package/daemon/dist/domain/queue-wake-ladder.js +278 -19
  616. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  617. package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
  618. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  619. package/daemon/dist/domain/queue-wake-repository.js +31 -11
  620. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  621. package/daemon/dist/domain/readiness-timeout.d.ts +7 -0
  622. package/daemon/dist/domain/readiness-timeout.d.ts.map +1 -0
  623. package/daemon/dist/domain/readiness-timeout.js +19 -0
  624. package/daemon/dist/domain/readiness-timeout.js.map +1 -0
  625. package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
  626. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
  627. package/daemon/dist/domain/reply-to-choice.js +45 -0
  628. package/daemon/dist/domain/reply-to-choice.js.map +1 -0
  629. package/daemon/dist/domain/request-phase-observer.d.ts +69 -0
  630. package/daemon/dist/domain/request-phase-observer.d.ts.map +1 -0
  631. package/daemon/dist/domain/request-phase-observer.js +206 -0
  632. package/daemon/dist/domain/request-phase-observer.js.map +1 -0
  633. package/daemon/dist/domain/restore-check-service.d.ts +27 -8
  634. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  635. package/daemon/dist/domain/restore-check-service.js +202 -126
  636. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  637. package/daemon/dist/domain/restore-orchestrator.d.ts +5 -2
  638. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  639. package/daemon/dist/domain/restore-orchestrator.js +119 -216
  640. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  641. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  642. package/daemon/dist/domain/restore-plan-preview.js +2 -6
  643. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  644. package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
  645. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
  646. package/daemon/dist/domain/restore-preconditions.js +202 -0
  647. package/daemon/dist/domain/restore-preconditions.js.map +1 -0
  648. package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
  649. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  650. package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
  651. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  652. package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
  653. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  654. package/daemon/dist/domain/resume-token-capture.js +32 -4
  655. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  656. package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
  657. package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
  658. package/daemon/dist/domain/resume-token-validation.js +24 -24
  659. package/daemon/dist/domain/resume-token-validation.js.map +1 -1
  660. package/daemon/dist/domain/rig-mode/operating-posture.d.ts +17 -1
  661. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
  662. package/daemon/dist/domain/rig-mode/operating-posture.js +53 -15
  663. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
  664. package/daemon/dist/domain/rig-repository.d.ts +15 -5
  665. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  666. package/daemon/dist/domain/rig-repository.js +70 -6
  667. package/daemon/dist/domain/rig-repository.js.map +1 -1
  668. package/daemon/dist/domain/rig-teardown.d.ts +3 -0
  669. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  670. package/daemon/dist/domain/rig-teardown.js +105 -19
  671. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  672. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  673. package/daemon/dist/domain/rigspec-codec.js +8 -0
  674. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  675. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  676. package/daemon/dist/domain/rigspec-exporter.js +5 -0
  677. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  678. package/daemon/dist/domain/rigspec-instantiator.d.ts +8 -3
  679. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  680. package/daemon/dist/domain/rigspec-instantiator.js +82 -20
  681. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  682. package/daemon/dist/domain/rigspec-preflight.d.ts +5 -2
  683. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  684. package/daemon/dist/domain/rigspec-preflight.js +36 -13
  685. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  686. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  687. package/daemon/dist/domain/rigspec-schema.js +19 -3
  688. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  689. package/daemon/dist/domain/route-timing-recorder.d.ts.map +1 -1
  690. package/daemon/dist/domain/route-timing-recorder.js +2 -0
  691. package/daemon/dist/domain/route-timing-recorder.js.map +1 -1
  692. package/daemon/dist/domain/runtime-adapter.d.ts +19 -3
  693. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  694. package/daemon/dist/domain/runtime-adapter.js +1 -0
  695. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  696. package/daemon/dist/domain/runtime-verifier.d.ts +3 -1
  697. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  698. package/daemon/dist/domain/runtime-verifier.js +10 -1
  699. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  700. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
  701. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  702. package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
  703. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  704. package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
  705. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  706. package/daemon/dist/domain/seat-activity-service.js +73 -22
  707. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  708. package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
  709. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  710. package/daemon/dist/domain/seat-attention-reconciler.js +38 -9
  711. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  712. package/daemon/dist/domain/seat-handover-service.d.ts +8 -0
  713. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  714. package/daemon/dist/domain/seat-handover-service.js +12 -11
  715. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  716. package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
  717. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  718. package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
  719. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  720. package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
  721. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
  722. package/daemon/dist/domain/seat-launch-environment.js +182 -0
  723. package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
  724. package/daemon/dist/domain/seat-lifecycle-service.d.ts +11 -0
  725. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  726. package/daemon/dist/domain/seat-lifecycle-service.js +41 -2
  727. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  728. package/daemon/dist/domain/seat-status-service.d.ts +2 -1
  729. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  730. package/daemon/dist/domain/seat-status-service.js +10 -6
  731. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  732. package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
  733. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  734. package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
  735. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  736. package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
  737. package/daemon/dist/domain/seat-switch-client-service.js +3 -2
  738. package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
  739. package/daemon/dist/domain/service-orchestrator.d.ts +1 -0
  740. package/daemon/dist/domain/service-orchestrator.d.ts.map +1 -1
  741. package/daemon/dist/domain/service-orchestrator.js +4 -0
  742. package/daemon/dist/domain/service-orchestrator.js.map +1 -1
  743. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  744. package/daemon/dist/domain/services-readiness.js +6 -2
  745. package/daemon/dist/domain/services-readiness.js.map +1 -1
  746. package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
  747. package/daemon/dist/domain/session-fingerprinter.js +16 -1
  748. package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
  749. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  750. package/daemon/dist/domain/session-name.js +6 -0
  751. package/daemon/dist/domain/session-name.js.map +1 -1
  752. package/daemon/dist/domain/session-registry.d.ts +3 -0
  753. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  754. package/daemon/dist/domain/session-registry.js +7 -0
  755. package/daemon/dist/domain/session-registry.js.map +1 -1
  756. package/daemon/dist/domain/session-transport.d.ts +35 -1
  757. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  758. package/daemon/dist/domain/session-transport.js +450 -158
  759. package/daemon/dist/domain/session-transport.js.map +1 -1
  760. package/daemon/dist/domain/skill-catalog.d.ts +19 -0
  761. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  762. package/daemon/dist/domain/skill-catalog.js +166 -17
  763. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  764. package/daemon/dist/domain/skill-discovery.d.ts +1 -1
  765. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  766. package/daemon/dist/domain/skill-discovery.js +6 -0
  767. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  768. package/daemon/dist/domain/slow-op-recorder.d.ts +5 -0
  769. package/daemon/dist/domain/slow-op-recorder.d.ts.map +1 -1
  770. package/daemon/dist/domain/slow-op-recorder.js +34 -1
  771. package/daemon/dist/domain/slow-op-recorder.js.map +1 -1
  772. package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
  773. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  774. package/daemon/dist/domain/snapshot-repository.js +39 -15
  775. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  776. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  777. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  778. package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
  779. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  780. package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
  781. package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
  782. package/daemon/dist/domain/spec-validation-service.js +16 -1
  783. package/daemon/dist/domain/spec-validation-service.js.map +1 -1
  784. package/daemon/dist/domain/startup-orchestrator.d.ts +38 -5
  785. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  786. package/daemon/dist/domain/startup-orchestrator.js +275 -64
  787. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  788. package/daemon/dist/domain/startup-proof.d.ts +7 -0
  789. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  790. package/daemon/dist/domain/startup-proof.js +7 -0
  791. package/daemon/dist/domain/startup-proof.js.map +1 -1
  792. package/daemon/dist/domain/startup-submission-evidence.d.ts +45 -0
  793. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
  794. package/daemon/dist/domain/startup-submission-evidence.js +84 -0
  795. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
  796. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  797. package/daemon/dist/domain/startup-validation.js +4 -0
  798. package/daemon/dist/domain/startup-validation.js.map +1 -1
  799. package/daemon/dist/domain/successor-session-launcher.d.ts +14 -3
  800. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  801. package/daemon/dist/domain/successor-session-launcher.js +19 -9
  802. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  803. package/daemon/dist/domain/system-world.d.ts +3 -0
  804. package/daemon/dist/domain/system-world.d.ts.map +1 -1
  805. package/daemon/dist/domain/system-world.js +24 -21
  806. package/daemon/dist/domain/system-world.js.map +1 -1
  807. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
  808. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +2 -3
  809. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
  810. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +19 -4
  811. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  812. package/daemon/dist/domain/terminal/herdr-adapter.js +102 -8
  813. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  814. package/daemon/dist/domain/terminal/terminal-provider.d.ts +2 -0
  815. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  816. package/daemon/dist/domain/terminal/terminal-service.d.ts +10 -0
  817. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  818. package/daemon/dist/domain/terminal/terminal-service.js +75 -6
  819. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  820. package/daemon/dist/domain/terminal/view-composer.d.ts +6 -0
  821. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  822. package/daemon/dist/domain/terminal/view-composer.js +6 -3
  823. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  824. package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
  825. package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
  826. package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
  827. package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
  828. package/daemon/dist/domain/tmux-option-defaults.js +5 -0
  829. package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
  830. package/daemon/dist/domain/topology/remote-up-leaf.d.ts +1 -0
  831. package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -1
  832. package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -1
  833. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  834. package/daemon/dist/domain/transcript-capture.js +1 -1
  835. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  836. package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
  837. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  838. package/daemon/dist/domain/transcript-rotation.js +176 -25
  839. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  840. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  841. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  842. package/daemon/dist/domain/transcript-store.js +14 -6
  843. package/daemon/dist/domain/transcript-store.js.map +1 -1
  844. package/daemon/dist/domain/types.d.ts +24 -5
  845. package/daemon/dist/domain/types.d.ts.map +1 -1
  846. package/daemon/dist/domain/types.js.map +1 -1
  847. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  848. package/daemon/dist/domain/usage-series.js +11 -6
  849. package/daemon/dist/domain/usage-series.js.map +1 -1
  850. package/daemon/dist/domain/user-settings/settings-store.d.ts +3 -1
  851. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  852. package/daemon/dist/domain/user-settings/settings-store.js +101 -6
  853. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  854. package/daemon/dist/domain/view-projector.d.ts +11 -6
  855. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  856. package/daemon/dist/domain/view-projector.js +2 -6
  857. package/daemon/dist/domain/view-projector.js.map +1 -1
  858. package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
  859. package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
  860. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  861. package/daemon/dist/domain/workflow-spec-cache.js +103 -14
  862. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  863. package/daemon/dist/domain/workspace/project-catalog.d.ts +20 -0
  864. package/daemon/dist/domain/workspace/project-catalog.d.ts.map +1 -1
  865. package/daemon/dist/domain/workspace/project-catalog.js +92 -0
  866. package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
  867. package/daemon/dist/domain/workspace/project-registration.d.ts +49 -0
  868. package/daemon/dist/domain/workspace/project-registration.d.ts.map +1 -0
  869. package/daemon/dist/domain/workspace/project-registration.js +251 -0
  870. package/daemon/dist/domain/workspace/project-registration.js.map +1 -0
  871. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  872. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  873. package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
  874. package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
  875. package/daemon/dist/health-detectors-surface.d.ts +1 -1
  876. package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
  877. package/daemon/dist/health-detectors-surface.js.map +1 -1
  878. package/daemon/dist/index.d.ts +4 -4
  879. package/daemon/dist/index.d.ts.map +1 -1
  880. package/daemon/dist/index.js +12 -7
  881. package/daemon/dist/index.js.map +1 -1
  882. package/daemon/dist/middleware/json-body-error.d.ts +17 -0
  883. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
  884. package/daemon/dist/middleware/json-body-error.js +42 -0
  885. package/daemon/dist/middleware/json-body-error.js.map +1 -0
  886. package/daemon/dist/project-catalog-surface.d.ts +2 -1
  887. package/daemon/dist/project-catalog-surface.d.ts.map +1 -1
  888. package/daemon/dist/project-catalog-surface.js +1 -1
  889. package/daemon/dist/project-catalog-surface.js.map +1 -1
  890. package/daemon/dist/routes/activity.d.ts.map +1 -1
  891. package/daemon/dist/routes/activity.js +85 -6
  892. package/daemon/dist/routes/activity.js.map +1 -1
  893. package/daemon/dist/routes/attention.d.ts.map +1 -1
  894. package/daemon/dist/routes/attention.js +7 -1
  895. package/daemon/dist/routes/attention.js.map +1 -1
  896. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  897. package/daemon/dist/routes/bundles.js +197 -407
  898. package/daemon/dist/routes/bundles.js.map +1 -1
  899. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  900. package/daemon/dist/routes/compaction.js +44 -4
  901. package/daemon/dist/routes/compaction.js.map +1 -1
  902. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  903. package/daemon/dist/routes/context-packs.js +10 -2
  904. package/daemon/dist/routes/context-packs.js.map +1 -1
  905. package/daemon/dist/routes/env.d.ts.map +1 -1
  906. package/daemon/dist/routes/env.js +14 -4
  907. package/daemon/dist/routes/env.js.map +1 -1
  908. package/daemon/dist/routes/files.js +2 -2
  909. package/daemon/dist/routes/files.js.map +1 -1
  910. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  911. package/daemon/dist/routes/gateway.js +11 -1
  912. package/daemon/dist/routes/gateway.js.map +1 -1
  913. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  914. package/daemon/dist/routes/hosts.js +51 -12
  915. package/daemon/dist/routes/hosts.js.map +1 -1
  916. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  917. package/daemon/dist/routes/mission-control.js +6 -2
  918. package/daemon/dist/routes/mission-control.js.map +1 -1
  919. package/daemon/dist/routes/missions.d.ts.map +1 -1
  920. package/daemon/dist/routes/missions.js +17 -5
  921. package/daemon/dist/routes/missions.js.map +1 -1
  922. package/daemon/dist/routes/plugins.d.ts.map +1 -1
  923. package/daemon/dist/routes/plugins.js +5 -1
  924. package/daemon/dist/routes/plugins.js.map +1 -1
  925. package/daemon/dist/routes/projects.d.ts.map +1 -1
  926. package/daemon/dist/routes/projects.js +4 -2
  927. package/daemon/dist/routes/projects.js.map +1 -1
  928. package/daemon/dist/routes/proof.d.ts.map +1 -1
  929. package/daemon/dist/routes/proof.js +9 -2
  930. package/daemon/dist/routes/proof.js.map +1 -1
  931. package/daemon/dist/routes/ps.d.ts.map +1 -1
  932. package/daemon/dist/routes/ps.js +18 -0
  933. package/daemon/dist/routes/ps.js.map +1 -1
  934. package/daemon/dist/routes/queue.d.ts.map +1 -1
  935. package/daemon/dist/routes/queue.js +150 -67
  936. package/daemon/dist/routes/queue.js.map +1 -1
  937. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  938. package/daemon/dist/routes/restore-check.js +40 -1
  939. package/daemon/dist/routes/restore-check.js.map +1 -1
  940. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  941. package/daemon/dist/routes/rigs.js +4 -3
  942. package/daemon/dist/routes/rigs.js.map +1 -1
  943. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  944. package/daemon/dist/routes/rigspec.js +11 -12
  945. package/daemon/dist/routes/rigspec.js.map +1 -1
  946. package/daemon/dist/routes/seat.d.ts.map +1 -1
  947. package/daemon/dist/routes/seat.js +22 -4
  948. package/daemon/dist/routes/seat.js.map +1 -1
  949. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  950. package/daemon/dist/routes/sessions.js +3 -2
  951. package/daemon/dist/routes/sessions.js.map +1 -1
  952. package/daemon/dist/routes/telemetry.d.ts +2 -0
  953. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  954. package/daemon/dist/routes/telemetry.js +22 -1
  955. package/daemon/dist/routes/telemetry.js.map +1 -1
  956. package/daemon/dist/routes/terminal-ws.d.ts +1 -2
  957. package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
  958. package/daemon/dist/routes/terminal-ws.js +1 -2
  959. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  960. package/daemon/dist/routes/up.js +11 -6
  961. package/daemon/dist/routes/up.js.map +1 -1
  962. package/daemon/dist/routes/views.js +2 -2
  963. package/daemon/dist/routes/views.js.map +1 -1
  964. package/daemon/dist/server.d.ts +3 -0
  965. package/daemon/dist/server.d.ts.map +1 -1
  966. package/daemon/dist/server.js +11 -3
  967. package/daemon/dist/server.js.map +1 -1
  968. package/daemon/dist/spec-validation-surface.d.ts +4 -0
  969. package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
  970. package/daemon/dist/spec-validation-surface.js +4 -0
  971. package/daemon/dist/spec-validation-surface.js.map +1 -0
  972. package/daemon/dist/startup.d.ts +1 -1
  973. package/daemon/dist/startup.d.ts.map +1 -1
  974. package/daemon/dist/startup.js +166 -57
  975. package/daemon/dist/startup.js.map +1 -1
  976. package/daemon/dist/system-world-surface.d.ts +1 -1
  977. package/daemon/dist/system-world-surface.d.ts.map +1 -1
  978. package/daemon/dist/system-world-surface.js +1 -1
  979. package/daemon/dist/system-world-surface.js.map +1 -1
  980. package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
  981. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  982. package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
  983. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  984. package/daemon/docs/reference/agent-spec.md +145 -64
  985. package/daemon/docs/reference/agent-startup-guide.md +187 -35
  986. package/daemon/docs/reference/agent-state-taxonomy.md +44 -13
  987. package/daemon/docs/reference/browser-access.md +8 -4
  988. package/daemon/docs/reference/bundle-formats.md +207 -0
  989. package/daemon/docs/reference/chain-file-convention.md +16 -7
  990. package/daemon/docs/reference/developing.md +24 -9
  991. package/daemon/docs/reference/edge-types.md +18 -10
  992. package/daemon/docs/reference/getting-started.md +426 -111
  993. package/daemon/docs/reference/health-diagnosis.md +23 -8
  994. package/daemon/docs/reference/help.md +40 -10
  995. package/daemon/docs/reference/host-resources.md +61 -0
  996. package/daemon/docs/reference/instance-layout.md +11 -0
  997. package/daemon/docs/reference/inventory-request-diagnostics.md +75 -0
  998. package/daemon/docs/reference/knowledge-maturity.md +3 -1
  999. package/daemon/docs/reference/legacy-topology-migration.md +4 -2
  1000. package/daemon/docs/reference/lore-routing.md +3 -1
  1001. package/daemon/docs/reference/mission-install.md +3 -1
  1002. package/daemon/docs/reference/non-interruptive-mode.md +60 -0
  1003. package/daemon/docs/reference/planning-dial.md +2 -1
  1004. package/daemon/docs/reference/product-journey-sdlc.md +11 -6
  1005. package/daemon/docs/reference/product-management-pass.md +3 -1
  1006. package/daemon/docs/reference/project-workspace.md +80 -3
  1007. package/daemon/docs/reference/publishing-a-rig-bundle.md +144 -0
  1008. package/daemon/docs/reference/refocus-channel.md +14 -5
  1009. package/daemon/docs/reference/release-boundary.md +7 -3
  1010. package/daemon/docs/reference/rig-bundle.md +271 -42
  1011. package/daemon/docs/reference/rig-spec.md +180 -29
  1012. package/daemon/docs/reference/rosters.md +60 -0
  1013. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +546 -0
  1014. package/daemon/docs/reference/schemas/bundle-common.v1.schema.json +110 -0
  1015. package/daemon/docs/reference/schemas/bundle-configurations.v1.schema.json +67 -0
  1016. package/daemon/docs/reference/schemas/bundle-status.v1.schema.json +323 -0
  1017. package/daemon/docs/reference/schemas/fixtures/identity-vectors.json +80 -0
  1018. package/daemon/docs/reference/schemas/fixtures/invalid/behaviour/not-generated-with-sections.json +60 -0
  1019. package/daemon/docs/reference/schemas/fixtures/invalid/configurations/spaced-member.configurations.yaml +6 -0
  1020. package/daemon/docs/reference/schemas/fixtures/invalid/registry/listed-with-withdrawn-on.yaml +21 -0
  1021. package/daemon/docs/reference/schemas/fixtures/invalid/registry/missing-source.yaml +16 -0
  1022. package/daemon/docs/reference/schemas/fixtures/invalid/registry/parent-folder.yaml +20 -0
  1023. package/daemon/docs/reference/schemas/fixtures/invalid/registry/short-commit.yaml +20 -0
  1024. package/daemon/docs/reference/schemas/fixtures/invalid/registry/withdrawn-without-date.yaml +20 -0
  1025. package/daemon/docs/reference/schemas/fixtures/invalid/run-record/harness-check-with-configuration.json +75 -0
  1026. package/daemon/docs/reference/schemas/fixtures/invalid/run-record/unlabelable-platform.json +97 -0
  1027. package/daemon/docs/reference/schemas/fixtures/invalid/status/hand-edited-notice.json +61 -0
  1028. package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-with-assistance.json +62 -0
  1029. package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-without-records.json +59 -0
  1030. package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-harness-with-result.json +61 -0
  1031. package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-listing-with-label.json +61 -0
  1032. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/custom-not-generated.json +22 -0
  1033. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/legacy-archive-unknown-identity.json +53 -0
  1034. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-default.json +101 -0
  1035. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-yolo.json +102 -0
  1036. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/openrig-dev.recommended.json +258 -0
  1037. package/daemon/docs/reference/schemas/fixtures/valid/configurations/openrig-dev.configurations.yaml +12 -0
  1038. package/daemon/docs/reference/schemas/fixtures/valid/registry/openrig-dev.yaml +20 -0
  1039. package/daemon/docs/reference/schemas/fixtures/valid/registry/withdrawn.yaml +21 -0
  1040. package/daemon/docs/reference/schemas/fixtures/valid/run-record/pi-harness-check-blocked.json +74 -0
  1041. package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-assisted-pass.json +97 -0
  1042. package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-pass.json +97 -0
  1043. package/daemon/docs/reference/schemas/fixtures/valid/run-record/withdraws-earlier.json +99 -0
  1044. package/daemon/docs/reference/schemas/fixtures/valid/status/status.json +61 -0
  1045. package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +139 -0
  1046. package/daemon/docs/reference/schemas/run-record.v1.schema.json +315 -0
  1047. package/daemon/docs/reference/scoped-operating-posture.md +17 -9
  1048. package/daemon/docs/reference/sdlc-conventions.md +47 -28
  1049. package/daemon/docs/reference/slack-app-setup.md +58 -7
  1050. package/daemon/docs/reference/stream-classifier-worker.md +21 -8
  1051. package/daemon/docs/reference/telemetry.md +114 -0
  1052. package/daemon/docs/reference/worktree-builds.md +12 -6
  1053. package/daemon/policies/builtin/auto.policy.md +24 -0
  1054. package/daemon/specs/agents/development/implementer/agent.yaml +2 -2
  1055. package/daemon/specs/agents/development/qa/agent.yaml +1 -1
  1056. package/daemon/specs/agents/product-management/pm/agent.yaml +10 -0
  1057. package/daemon/specs/agents/shared/agent.yaml +1 -1
  1058. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +0 -6
  1059. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
  1060. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
  1061. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +5 -5
  1062. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +9 -4
  1063. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +12 -9
  1064. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +29 -29
  1065. package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
  1066. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +0 -5
  1067. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  1068. package/daemon/specs/agents/shared/skills/process/agent-browser/OPENRIG.md +1 -1
  1069. package/daemon/specs/agents/shared/skills/process/systematic-debugging/SKILL.md +0 -2
  1070. package/daemon/specs/rigs/focused/{adversarial-review → code-review}/rig.yaml +1 -1
  1071. package/daemon/specs/rigs/focused/pm/CULTURE.md +21 -0
  1072. package/daemon/specs/rigs/focused/{pm-team → pm}/rig.yaml +5 -5
  1073. package/daemon/specs/rigs/focused/{research-team → research}/rig.yaml +1 -1
  1074. package/daemon/specs/rigs/launch/factory/CULTURE.md +96 -0
  1075. package/daemon/specs/rigs/launch/factory/guidance/advisor-role.md +10 -0
  1076. package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +23 -0
  1077. package/daemon/specs/rigs/launch/{demo → factory}/rig.yaml +46 -35
  1078. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/instance/CRAFT.md +1 -1
  1079. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/CRAFT.md +2 -2
  1080. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/ORCHESTRATION-CRAFT.md +3 -3
  1081. package/daemon/specs/rigs/{preview/product-team/topology/seats/dev1-qa → launch/factory/topology/seats/dev-qa}/CRAFT.md +1 -1
  1082. package/daemon/specs/rigs/{preview/product-team/topology/seats/orch1-lead → launch/factory/topology/seats/orch-lead}/CRAFT.md +1 -1
  1083. package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r1 → launch/factory/topology/seats/review-r1}/CRAFT.md +1 -1
  1084. package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r2 → launch/factory/topology/seats/review-r2}/CRAFT.md +1 -1
  1085. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
  1086. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +37 -0
  1087. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +12 -13
  1088. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
  1089. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +167 -4
  1090. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +30 -7
  1091. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
  1092. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +37 -0
  1093. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +41 -0
  1094. package/daemon/specs/rigs/launch/starter/CULTURE.md +39 -0
  1095. package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +23 -0
  1096. package/daemon/specs/rigs/launch/{first-project-mixed → starter}/rig.yaml +11 -8
  1097. package/dist/atomic-text-write.d.ts +3 -0
  1098. package/dist/atomic-text-write.d.ts.map +1 -0
  1099. package/dist/atomic-text-write.js +79 -0
  1100. package/dist/atomic-text-write.js.map +1 -0
  1101. package/dist/build-info.js +3 -3
  1102. package/dist/bundle-behaviour.d.ts +10 -0
  1103. package/dist/bundle-behaviour.d.ts.map +1 -0
  1104. package/dist/bundle-behaviour.js +72 -0
  1105. package/dist/bundle-behaviour.js.map +1 -0
  1106. package/dist/cli-error.d.ts.map +1 -1
  1107. package/dist/cli-error.js +15 -2
  1108. package/dist/cli-error.js.map +1 -1
  1109. package/dist/client.d.ts +14 -1
  1110. package/dist/client.d.ts.map +1 -1
  1111. package/dist/client.js +29 -4
  1112. package/dist/client.js.map +1 -1
  1113. package/dist/commands/agent-image.d.ts.map +1 -1
  1114. package/dist/commands/agent-image.js +2 -0
  1115. package/dist/commands/agent-image.js.map +1 -1
  1116. package/dist/commands/ask.d.ts.map +1 -1
  1117. package/dist/commands/ask.js +10 -1
  1118. package/dist/commands/ask.js.map +1 -1
  1119. package/dist/commands/bootstrap.d.ts.map +1 -1
  1120. package/dist/commands/bootstrap.js +34 -11
  1121. package/dist/commands/bootstrap.js.map +1 -1
  1122. package/dist/commands/broadcast.js +1 -1
  1123. package/dist/commands/broadcast.js.map +1 -1
  1124. package/dist/commands/bundle.d.ts +12 -0
  1125. package/dist/commands/bundle.d.ts.map +1 -1
  1126. package/dist/commands/bundle.js +286 -21
  1127. package/dist/commands/bundle.js.map +1 -1
  1128. package/dist/commands/capture.js +4 -4
  1129. package/dist/commands/capture.js.map +1 -1
  1130. package/dist/commands/chatroom.d.ts.map +1 -1
  1131. package/dist/commands/chatroom.js +22 -1
  1132. package/dist/commands/chatroom.js.map +1 -1
  1133. package/dist/commands/compact-plan.d.ts.map +1 -1
  1134. package/dist/commands/compact-plan.js +36 -7
  1135. package/dist/commands/compact-plan.js.map +1 -1
  1136. package/dist/commands/compact.d.ts.map +1 -1
  1137. package/dist/commands/compact.js +24 -4
  1138. package/dist/commands/compact.js.map +1 -1
  1139. package/dist/commands/config.d.ts.map +1 -1
  1140. package/dist/commands/config.js +5 -4
  1141. package/dist/commands/config.js.map +1 -1
  1142. package/dist/commands/context.d.ts +3 -1
  1143. package/dist/commands/context.d.ts.map +1 -1
  1144. package/dist/commands/context.js +85 -32
  1145. package/dist/commands/context.js.map +1 -1
  1146. package/dist/commands/crash-cart.d.ts.map +1 -1
  1147. package/dist/commands/crash-cart.js +2 -1
  1148. package/dist/commands/crash-cart.js.map +1 -1
  1149. package/dist/commands/daemon.d.ts +13 -1
  1150. package/dist/commands/daemon.d.ts.map +1 -1
  1151. package/dist/commands/daemon.js +36 -18
  1152. package/dist/commands/daemon.js.map +1 -1
  1153. package/dist/commands/destroy.d.ts.map +1 -1
  1154. package/dist/commands/destroy.js +3 -2
  1155. package/dist/commands/destroy.js.map +1 -1
  1156. package/dist/commands/discover.d.ts.map +1 -1
  1157. package/dist/commands/discover.js +2 -4
  1158. package/dist/commands/discover.js.map +1 -1
  1159. package/dist/commands/doctor.d.ts.map +1 -1
  1160. package/dist/commands/doctor.js +10 -4
  1161. package/dist/commands/doctor.js.map +1 -1
  1162. package/dist/commands/down.d.ts.map +1 -1
  1163. package/dist/commands/down.js +7 -1
  1164. package/dist/commands/down.js.map +1 -1
  1165. package/dist/commands/env.d.ts.map +1 -1
  1166. package/dist/commands/env.js +9 -1
  1167. package/dist/commands/env.js.map +1 -1
  1168. package/dist/commands/export.js +2 -2
  1169. package/dist/commands/export.js.map +1 -1
  1170. package/dist/commands/gateway.d.ts.map +1 -1
  1171. package/dist/commands/gateway.js +23 -3
  1172. package/dist/commands/gateway.js.map +1 -1
  1173. package/dist/commands/health.d.ts.map +1 -1
  1174. package/dist/commands/health.js +13 -1
  1175. package/dist/commands/health.js.map +1 -1
  1176. package/dist/commands/host.d.ts +11 -0
  1177. package/dist/commands/host.d.ts.map +1 -1
  1178. package/dist/commands/host.js +38 -4
  1179. package/dist/commands/host.js.map +1 -1
  1180. package/dist/commands/import.d.ts.map +1 -1
  1181. package/dist/commands/import.js +2 -0
  1182. package/dist/commands/import.js.map +1 -1
  1183. package/dist/commands/mcp.d.ts.map +1 -1
  1184. package/dist/commands/mcp.js +25 -12
  1185. package/dist/commands/mcp.js.map +1 -1
  1186. package/dist/commands/plugin.d.ts.map +1 -1
  1187. package/dist/commands/plugin.js +12 -2
  1188. package/dist/commands/plugin.js.map +1 -1
  1189. package/dist/commands/policy.d.ts.map +1 -1
  1190. package/dist/commands/policy.js +3 -2
  1191. package/dist/commands/policy.js.map +1 -1
  1192. package/dist/commands/project-jev.js +1 -1
  1193. package/dist/commands/project-jev.js.map +1 -1
  1194. package/dist/commands/project.d.ts.map +1 -1
  1195. package/dist/commands/project.js +5 -3
  1196. package/dist/commands/project.js.map +1 -1
  1197. package/dist/commands/ps.d.ts +2 -0
  1198. package/dist/commands/ps.d.ts.map +1 -1
  1199. package/dist/commands/ps.js +109 -37
  1200. package/dist/commands/ps.js.map +1 -1
  1201. package/dist/commands/queue.d.ts +2 -0
  1202. package/dist/commands/queue.d.ts.map +1 -1
  1203. package/dist/commands/queue.js +133 -19
  1204. package/dist/commands/queue.js.map +1 -1
  1205. package/dist/commands/requirements.d.ts.map +1 -1
  1206. package/dist/commands/requirements.js +6 -3
  1207. package/dist/commands/requirements.js.map +1 -1
  1208. package/dist/commands/restore.d.ts.map +1 -1
  1209. package/dist/commands/restore.js +5 -0
  1210. package/dist/commands/restore.js.map +1 -1
  1211. package/dist/commands/rig-mode.d.ts.map +1 -1
  1212. package/dist/commands/rig-mode.js +6 -1
  1213. package/dist/commands/rig-mode.js.map +1 -1
  1214. package/dist/commands/rig.d.ts.map +1 -1
  1215. package/dist/commands/rig.js +20 -20
  1216. package/dist/commands/rig.js.map +1 -1
  1217. package/dist/commands/roster.d.ts +63 -0
  1218. package/dist/commands/roster.d.ts.map +1 -0
  1219. package/dist/commands/roster.js +169 -0
  1220. package/dist/commands/roster.js.map +1 -0
  1221. package/dist/commands/scope.d.ts.map +1 -1
  1222. package/dist/commands/scope.js +22 -0
  1223. package/dist/commands/scope.js.map +1 -1
  1224. package/dist/commands/seat.d.ts.map +1 -1
  1225. package/dist/commands/seat.js +96 -17
  1226. package/dist/commands/seat.js.map +1 -1
  1227. package/dist/commands/send.d.ts.map +1 -1
  1228. package/dist/commands/send.js +20 -6
  1229. package/dist/commands/send.js.map +1 -1
  1230. package/dist/commands/setup.d.ts +1 -1
  1231. package/dist/commands/setup.d.ts.map +1 -1
  1232. package/dist/commands/setup.js +78 -30
  1233. package/dist/commands/setup.js.map +1 -1
  1234. package/dist/commands/slack.d.ts +1 -1
  1235. package/dist/commands/slack.d.ts.map +1 -1
  1236. package/dist/commands/slack.js +57 -5
  1237. package/dist/commands/slack.js.map +1 -1
  1238. package/dist/commands/specs.d.ts.map +1 -1
  1239. package/dist/commands/specs.js +21 -2
  1240. package/dist/commands/specs.js.map +1 -1
  1241. package/dist/commands/start.js +7 -6
  1242. package/dist/commands/start.js.map +1 -1
  1243. package/dist/commands/startup-proof.d.ts.map +1 -1
  1244. package/dist/commands/startup-proof.js +2 -1
  1245. package/dist/commands/startup-proof.js.map +1 -1
  1246. package/dist/commands/status.d.ts.map +1 -1
  1247. package/dist/commands/status.js +7 -0
  1248. package/dist/commands/status.js.map +1 -1
  1249. package/dist/commands/telemetry.d.ts +5 -0
  1250. package/dist/commands/telemetry.d.ts.map +1 -0
  1251. package/dist/commands/telemetry.js +58 -0
  1252. package/dist/commands/telemetry.js.map +1 -0
  1253. package/dist/commands/terminal.d.ts.map +1 -1
  1254. package/dist/commands/terminal.js +5 -1
  1255. package/dist/commands/terminal.js.map +1 -1
  1256. package/dist/commands/transcript.js +5 -3
  1257. package/dist/commands/transcript.js.map +1 -1
  1258. package/dist/commands/tui.js +4 -4
  1259. package/dist/commands/tui.js.map +1 -1
  1260. package/dist/commands/up.d.ts +8 -0
  1261. package/dist/commands/up.d.ts.map +1 -1
  1262. package/dist/commands/up.js +193 -72
  1263. package/dist/commands/up.js.map +1 -1
  1264. package/dist/commands/walk.d.ts.map +1 -1
  1265. package/dist/commands/walk.js +3 -0
  1266. package/dist/commands/walk.js.map +1 -1
  1267. package/dist/commands/whoami.d.ts +3 -0
  1268. package/dist/commands/whoami.d.ts.map +1 -1
  1269. package/dist/commands/whoami.js +29 -2
  1270. package/dist/commands/whoami.js.map +1 -1
  1271. package/dist/commands/workflow-follow.d.ts +2 -0
  1272. package/dist/commands/workflow-follow.d.ts.map +1 -1
  1273. package/dist/commands/workflow-follow.js +6 -4
  1274. package/dist/commands/workflow-follow.js.map +1 -1
  1275. package/dist/commands/workflow.d.ts.map +1 -1
  1276. package/dist/commands/workflow.js +2 -4
  1277. package/dist/commands/workflow.js.map +1 -1
  1278. package/dist/commands/workspace.d.ts.map +1 -1
  1279. package/dist/commands/workspace.js +2 -4
  1280. package/dist/commands/workspace.js.map +1 -1
  1281. package/dist/config-store.d.ts +7 -1
  1282. package/dist/config-store.d.ts.map +1 -1
  1283. package/dist/config-store.js +40 -7
  1284. package/dist/config-store.js.map +1 -1
  1285. package/dist/daemon-auto-start.d.ts +8 -0
  1286. package/dist/daemon-auto-start.d.ts.map +1 -0
  1287. package/dist/daemon-auto-start.js +39 -0
  1288. package/dist/daemon-auto-start.js.map +1 -0
  1289. package/dist/daemon-lifecycle.d.ts +9 -0
  1290. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1291. package/dist/daemon-lifecycle.js +61 -19
  1292. package/dist/daemon-lifecycle.js.map +1 -1
  1293. package/dist/daemon-reachability.d.ts +18 -0
  1294. package/dist/daemon-reachability.d.ts.map +1 -0
  1295. package/dist/daemon-reachability.js +48 -0
  1296. package/dist/daemon-reachability.js.map +1 -0
  1297. package/dist/front-door.d.ts.map +1 -1
  1298. package/dist/front-door.js +3 -2
  1299. package/dist/front-door.js.map +1 -1
  1300. package/dist/index.d.ts +1 -0
  1301. package/dist/index.d.ts.map +1 -1
  1302. package/dist/index.js +4 -0
  1303. package/dist/index.js.map +1 -1
  1304. package/dist/lib/bundle-check.d.ts +13 -0
  1305. package/dist/lib/bundle-check.d.ts.map +1 -0
  1306. package/dist/lib/bundle-check.js +191 -0
  1307. package/dist/lib/bundle-check.js.map +1 -0
  1308. package/dist/lib/bundle-configuration.d.ts +60 -0
  1309. package/dist/lib/bundle-configuration.d.ts.map +1 -0
  1310. package/dist/lib/bundle-configuration.js +198 -0
  1311. package/dist/lib/bundle-configuration.js.map +1 -0
  1312. package/dist/lib/bundle-source.d.ts +57 -0
  1313. package/dist/lib/bundle-source.d.ts.map +1 -0
  1314. package/dist/lib/bundle-source.js +355 -0
  1315. package/dist/lib/bundle-source.js.map +1 -0
  1316. package/dist/lib/context-install.d.ts.map +1 -1
  1317. package/dist/lib/context-install.js +2 -3
  1318. package/dist/lib/context-install.js.map +1 -1
  1319. package/dist/lib/file-transfer.d.ts +1 -1
  1320. package/dist/lib/file-transfer.d.ts.map +1 -1
  1321. package/dist/lib/file-transfer.js +17 -5
  1322. package/dist/lib/file-transfer.js.map +1 -1
  1323. package/dist/lib/permission-policy/policy-ref.d.ts +6 -1
  1324. package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -1
  1325. package/dist/lib/permission-policy/policy-ref.js +16 -4
  1326. package/dist/lib/permission-policy/policy-ref.js.map +1 -1
  1327. package/dist/lib/permission-policy/policy-spec.d.ts +1 -1
  1328. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1329. package/dist/lib/permission-policy/policy-spec.js +2 -2
  1330. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1331. package/dist/lib/scope/mission-composition.d.ts.map +1 -1
  1332. package/dist/lib/scope/mission-composition.js +11 -0
  1333. package/dist/lib/scope/mission-composition.js.map +1 -1
  1334. package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
  1335. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  1336. package/dist/lib/scope/scaffold-placeholder.js +4 -4
  1337. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  1338. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1339. package/dist/lib/scope/scope-fs.js +10 -16
  1340. package/dist/lib/scope/scope-fs.js.map +1 -1
  1341. package/dist/lib/scope/templates.d.ts.map +1 -1
  1342. package/dist/lib/scope/templates.js +1 -0
  1343. package/dist/lib/scope/templates.js.map +1 -1
  1344. package/dist/lib/scope-templates/notes.md +1 -1
  1345. package/dist/lib/scope-templates/slice-progress.md +11 -7
  1346. package/dist/lib/work-install.d.ts +12 -0
  1347. package/dist/lib/work-install.d.ts.map +1 -1
  1348. package/dist/lib/work-install.js +55 -4
  1349. package/dist/lib/work-install.js.map +1 -1
  1350. package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
  1351. package/dist/restore-packet/claude-transcript-parser.js +2 -0
  1352. package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
  1353. package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
  1354. package/dist/restore-packet/codex-jsonl-parser.js +2 -0
  1355. package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
  1356. package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
  1357. package/dist/restore-packet/runtime-detect.js +2 -0
  1358. package/dist/restore-packet/runtime-detect.js.map +1 -1
  1359. package/package.json +4 -3
  1360. package/tui/dist/attention/source-continuity.d.ts.map +1 -1
  1361. package/tui/dist/attention/source-continuity.js +5 -3
  1362. package/tui/dist/attention/source-continuity.js.map +1 -1
  1363. package/tui/dist/commands/registry.d.ts.map +1 -1
  1364. package/tui/dist/commands/registry.js +8 -3
  1365. package/tui/dist/commands/registry.js.map +1 -1
  1366. package/tui/dist/daemon-client.d.ts +3 -1
  1367. package/tui/dist/daemon-client.d.ts.map +1 -1
  1368. package/tui/dist/daemon-client.js +18 -6
  1369. package/tui/dist/daemon-client.js.map +1 -1
  1370. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1371. package/tui/dist/execution/execution-model.js +19 -7
  1372. package/tui/dist/execution/execution-model.js.map +1 -1
  1373. package/tui/dist/grammar.d.ts.map +1 -1
  1374. package/tui/dist/grammar.js +3 -2
  1375. package/tui/dist/grammar.js.map +1 -1
  1376. package/tui/dist/health/health-model.d.ts.map +1 -1
  1377. package/tui/dist/health/health-model.js +17 -5
  1378. package/tui/dist/health/health-model.js.map +1 -1
  1379. package/tui/dist/hydrate.d.ts.map +1 -1
  1380. package/tui/dist/hydrate.js +1 -0
  1381. package/tui/dist/hydrate.js.map +1 -1
  1382. package/tui/dist/input.d.ts.map +1 -1
  1383. package/tui/dist/input.js +5 -0
  1384. package/tui/dist/input.js.map +1 -1
  1385. package/tui/dist/live-events.d.ts +2 -2
  1386. package/tui/dist/live-events.d.ts.map +1 -1
  1387. package/tui/dist/live-events.js +65 -27
  1388. package/tui/dist/live-events.js.map +1 -1
  1389. package/tui/dist/local-reading.d.ts.map +1 -1
  1390. package/tui/dist/local-reading.js +2 -0
  1391. package/tui/dist/local-reading.js.map +1 -1
  1392. package/tui/dist/main.js +46 -6
  1393. package/tui/dist/main.js.map +1 -1
  1394. package/tui/dist/page-read.d.ts.map +1 -1
  1395. package/tui/dist/page-read.js +4 -1
  1396. package/tui/dist/page-read.js.map +1 -1
  1397. package/tui/dist/render.d.ts +2 -0
  1398. package/tui/dist/render.d.ts.map +1 -1
  1399. package/tui/dist/render.js +81 -23
  1400. package/tui/dist/render.js.map +1 -1
  1401. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1402. package/tui/dist/scopes/scopes-model.js +36 -31
  1403. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1404. package/tui/dist/socket-server.d.ts +6 -2
  1405. package/tui/dist/socket-server.d.ts.map +1 -1
  1406. package/tui/dist/socket-server.js +159 -14
  1407. package/tui/dist/socket-server.js.map +1 -1
  1408. package/tui/dist/specs/graph.d.ts +5 -0
  1409. package/tui/dist/specs/graph.d.ts.map +1 -0
  1410. package/tui/dist/specs/graph.js +16 -0
  1411. package/tui/dist/specs/graph.js.map +1 -0
  1412. package/tui/dist/specs/launch.d.ts +29 -0
  1413. package/tui/dist/specs/launch.d.ts.map +1 -0
  1414. package/tui/dist/specs/launch.js +64 -0
  1415. package/tui/dist/specs/launch.js.map +1 -0
  1416. package/tui/dist/startup.d.ts.map +1 -1
  1417. package/tui/dist/startup.js +15 -6
  1418. package/tui/dist/startup.js.map +1 -1
  1419. package/tui/dist/state.d.ts +2 -2
  1420. package/tui/dist/state.d.ts.map +1 -1
  1421. package/tui/dist/state.js +41 -18
  1422. package/tui/dist/state.js.map +1 -1
  1423. package/tui/dist/terminals/terminal-model.d.ts +1 -0
  1424. package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
  1425. package/tui/dist/terminals/terminal-model.js +19 -2
  1426. package/tui/dist/terminals/terminal-model.js.map +1 -1
  1427. package/tui/dist/types.d.ts +35 -0
  1428. package/tui/dist/types.d.ts.map +1 -1
  1429. package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
  1430. package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
  1431. package/ui/dist/index.html +2 -2
  1432. package/daemon/specs/rigs/launch/conveyor/README.md +0 -33
  1433. package/daemon/specs/rigs/launch/conveyor/rig.yaml +0 -72
  1434. package/daemon/specs/rigs/launch/demo/project-example/README.md +0 -25
  1435. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +0 -19
  1436. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +0 -6
  1437. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +0 -7
  1438. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +0 -31
  1439. package/daemon/specs/rigs/launch/first-project/rig.yaml +0 -31
  1440. package/daemon/specs/rigs/launch/first-project-claude/rig.yaml +0 -30
  1441. package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +0 -27
  1442. package/daemon/specs/rigs/preview/product-team/rig.yaml +0 -90
  1443. /package/daemon/specs/rigs/launch/factory-rsi/{rig.yaml → world-bundle.yaml} +0 -0
@@ -104,11 +104,25 @@ function classifyWriteError(err) {
104
104
  }
105
105
  return { ok: false, code: "unknown", message: err.message };
106
106
  }
107
- /** Shell-quote a string using single quotes (POSIX-safe). */
107
+ /** The most sessions one batched capture chains (#308). Not a byte bound: a chunk whose output overflows exec's buffer
108
+ * fails and is split in half. */
109
+ const CAPTURE_BATCH = 24;
108
110
  function shellQuote(s) {
109
111
  // Replace each ' with '"'"' (end quote, double-quote the apostrophe, resume quote)
110
112
  return "'" + s.replace(/'/g, "'\"'\"'") + "'";
111
113
  }
114
+ /**
115
+ * An exact tmux target for a session name. tmux resolves a bare name by prefix when no session has that exact name,
116
+ * so a read or pipe for a session that just ended would act on another (`dev-impl@my-rig` on `dev-impl@my-rig2`).
117
+ * Pane, window and session ids (`%3`, `@1`, `$2`) and `session:window.pane` targets pass through unchanged (tmux
118
+ * turns `:` in a session name into `_`, so a `:` always means an explicit target). A pane or window command gets
119
+ * `=name:` (as the batched capture uses); a session command gets `=name`.
120
+ */
121
+ function exactTarget(target, kind) {
122
+ if (/^[%@$]\d+$/.test(target) || target.includes(":"))
123
+ return target;
124
+ return kind === "session" ? `=${target}` : `=${target}:`;
125
+ }
112
126
  /** Elements safe to leave bare in a POSIX shell word list. */
113
127
  const SHELL_SAFE = /^[A-Za-z0-9_@%+=:,./-]+$/;
114
128
  /** Join argv for a POSIX shell — the legacy string form. Only used when
@@ -168,17 +182,17 @@ function parsePaneLine(line) {
168
182
  if (parts.length < 6)
169
183
  return null;
170
184
  const index = parseInt(parts[1], 10);
171
- const width = parseInt(parts[3], 10);
172
- const height = parseInt(parts[4], 10);
185
+ const width = parseInt(parts.at(-3), 10);
186
+ const height = parseInt(parts.at(-2), 10);
173
187
  if (isNaN(index) || isNaN(width) || isNaN(height))
174
188
  return null;
175
189
  return {
176
190
  id: parts[0],
177
191
  index,
178
- cwd: parts[2],
192
+ cwd: parts.slice(2, -3).join(TMUX_FIELD_SEPARATOR),
179
193
  width,
180
194
  height,
181
- active: parts[5] === "1",
195
+ active: parts.at(-1) === "1",
182
196
  };
183
197
  }
184
198
  function parseLines(output, parser) {
@@ -280,9 +294,20 @@ export class TmuxAdapter {
280
294
  const result = classifyWriteError(error);
281
295
  // Only termination consumes positive absence. Unknown probe failures
282
296
  // still refuse, and guard-on never reaches this observation.
283
- if (allowAbsent && !result.ok && result.code === "session_not_found"
284
- && !/permission denied|operation not permitted|EACCES|EPERM/i.test(result.message))
285
- return result;
297
+ if (allowAbsent && !result.ok
298
+ && !/permission denied|operation not permitted|EACCES|EPERM/i.test(result.message)) {
299
+ if (result.code === "session_not_found")
300
+ return result;
301
+ // list-panes reports a missing session as "can't find window" on
302
+ // native tmux. Do not broaden write-error classification: only
303
+ // termination may confirm the bound session's positive absence.
304
+ if (/can't find window/i.test(result.message)) {
305
+ const probe = await this.probeSession(bound.session);
306
+ guard.checkInput(identity);
307
+ if (probe.state === "absent")
308
+ return { ok: false, code: "session_not_found", message: result.message };
309
+ }
310
+ }
286
311
  throw error;
287
312
  }
288
313
  const pane = fresh ? created.pane : bound.pane;
@@ -369,8 +394,15 @@ export class TmuxAdapter {
369
394
  }
370
395
  }
371
396
  async listPanes(target) {
397
+ // Callers name a session (optionally with a window), or an immutable tmux
398
+ // id. Exact session matching prevents observing a prefix neighbor's pane.
399
+ // A bare leading '=' belongs to the literal session name. Only qualified
400
+ // targets already carry tmux's encoded exact-match syntax.
401
+ const namedTarget = target.includes(":") && target.startsWith("=") ? target : `=${target}`;
402
+ const exactTarget = /^[%$@]\d+$/.test(target) ? target
403
+ : namedTarget.includes(":") ? namedTarget : `${namedTarget}:`;
372
404
  try {
373
- const output = await this.run(["tmux", "list-panes", "-t", target, "-F", PANE_FORMAT], `tmux list-panes -t ${shellQuote(target)} -F "${PANE_FORMAT}"`);
405
+ const output = await this.run(["tmux", "list-panes", "-t", exactTarget, "-F", PANE_FORMAT], `tmux list-panes -t ${shellQuote(exactTarget)} -F "${PANE_FORMAT}"`);
374
406
  return parseLines(output, parsePaneLine);
375
407
  }
376
408
  catch (err) {
@@ -394,7 +426,8 @@ export class TmuxAdapter {
394
426
  // Use `tmux has-session` directly for reliable existence check — avoids
395
427
  // parsing format-string output from `list-sessions` which can fail when
396
428
  // tab delimiters are malformed across tmux versions.
397
- await this.run(["tmux", "has-session", "-t", name], `tmux has-session -t ${shellQuote(name)}`);
429
+ const target = `=${name}`; // canonical session name, never a prefix lookup
430
+ await this.run(["tmux", "has-session", "-t", target], `tmux has-session -t ${shellQuote(target)}`);
398
431
  return { state: "present" }; // exit 0 = session exists
399
432
  }
400
433
  catch (err) {
@@ -435,18 +468,25 @@ export class TmuxAdapter {
435
468
  /** The committed binding now owns identity; this is not filesystem cleanup. */
436
469
  finishLaunchBinding(session) { this.freshManaged.delete(session); }
437
470
  async createSessionUnchecked(name, cwd, env) {
471
+ // These are the daemon's resolved capture settings, not seat overrides.
472
+ // An empty per-session value prevents the tmux server's inherited values
473
+ // from pinning an old policy over config.json inside a newly launched seat.
474
+ // Explicit seat settings remain authoritative.
475
+ const seatEnv = {
476
+ OPENRIG_TRANSCRIPTS_LINES: "",
477
+ OPENRIG_TRANSCRIPTS_POLL_INTERVAL_SECONDS: "",
478
+ ...env,
479
+ };
438
480
  const argv = ["tmux", "new-session", "-d", "-s", name];
439
481
  if (cwd != null)
440
482
  argv.push("-c", cwd);
441
- if (env)
442
- for (const [k, v] of Object.entries(env))
443
- argv.push("-e", `${k}=${v}`);
483
+ for (const [k, v] of Object.entries(seatEnv))
484
+ argv.push("-e", `${k}=${v}`);
444
485
  const legacyParts = ["tmux", "new-session", "-d", "-s", shellQuote(name)];
445
486
  if (cwd != null)
446
487
  legacyParts.push("-c", shellQuote(cwd));
447
- if (env)
448
- for (const [k, v] of Object.entries(env))
449
- legacyParts.push("-e", shellQuote(`${k}=${v}`));
488
+ for (const [k, v] of Object.entries(seatEnv))
489
+ legacyParts.push("-e", shellQuote(`${k}=${v}`));
450
490
  try {
451
491
  await this.run(argv, legacyParts.join(" "));
452
492
  return { ok: true };
@@ -456,33 +496,40 @@ export class TmuxAdapter {
456
496
  }
457
497
  }
458
498
  /**
459
- * Paste text at every size. Unbracketed input can be consumed as individual
499
+ * Bracketed paste by default, at every size. Unbracketed input can be consumed as individual
460
500
  * keystrokes by agent TUIs, losing text even below the old 8 KiB cutoff.
461
501
  * A file keeps payload bytes out of shell/tmux argv and its size limits.
462
502
  * `-p` bracket the paste when the receiving application enables that mode.
463
503
  * `-r` preserve raw LF. tmux's default paste-buffer replaces every LF with
464
- * CR, and CR (= `C-m` = Enter) is SUBMIT in the Claude/Codex TUIs - a
504
+ * CR, and CR is SUBMIT in the Claude/Codex TUIs - a
465
505
  * default paste of a multi-line pack would submit on every newline.
466
506
  * `-d` drop the buffer after a successful paste.
467
- * The single trailing submit stays the caller's separate `sendKeys(["C-m"])`.
507
+ * `options.bracketed: false` omits `-p` for explicit prompt answers: bytes
508
+ * then act as keystrokes, including menu shortcuts and control keys.
509
+ * Any trailing submit stays the caller's separate `sendKeys(["Enter"])`.
468
510
  * Cleanup unlinks the temp file in `finally`; if the buffer was loaded but the
469
511
  * paste failed (e.g. missing target), an explicit `delete-buffer` runs so no
470
512
  * buffer leaks. Unique temp + buffer names per call keep parallel `rig up`
471
513
  * seats from colliding.
472
514
  */
473
- async sendText(target, text) {
474
- return this.guardedInput(target, (pane, beforeWrite) => this.sendTextUnchecked(pane, text, beforeWrite));
515
+ async sendText(target, text, beforeInput, options) {
516
+ return this.guardedInput(target, (pane, beforeWrite) => this.sendTextUnchecked(pane, text, () => { beforeWrite(); beforeInput?.(); }, options?.bracketed));
475
517
  }
476
- async sendTextUnchecked(target, text, beforeWrite) {
518
+ async sendTextUnchecked(target, text, beforeWrite, bracketed = true) {
477
519
  const path = this.fileOps.tmpName();
478
520
  const buffer = this.fileOps.bufferName();
479
521
  let bufferLoaded = false;
522
+ let created = false;
480
523
  try {
481
- await this.fileOps.writeFile(path, text);
524
+ await this.fileOps.writeFile(path, text, { mode: 0o600, flag: "wx" });
525
+ created = true;
482
526
  await this.run(["tmux", "load-buffer", "-b", buffer, path], `tmux load-buffer -b ${shellQuote(buffer)} ${shellQuote(path)}`);
483
527
  bufferLoaded = true;
484
528
  beforeWrite();
485
- await this.run(["tmux", "paste-buffer", "-t", target, "-b", buffer, "-d", "-r", "-p"], `tmux paste-buffer -t ${shellQuote(target)} -b ${shellQuote(buffer)} -d -r -p`);
529
+ // Explicit prompt answers need key input, not bracketed-paste framing.
530
+ // Keep their bytes in the file: tmux command parsing and argv limits must
531
+ // not alter semicolons or reject long answers (#519, #602).
532
+ await this.run(["tmux", "paste-buffer", "-t", target, "-b", buffer, "-d", "-r", ...(bracketed ? ["-p"] : [])], `tmux paste-buffer -t ${shellQuote(target)} -b ${shellQuote(buffer)} -d -r${bracketed ? " -p" : ""}`);
486
533
  return { ok: true };
487
534
  }
488
535
  catch (err) {
@@ -497,10 +544,12 @@ export class TmuxAdapter {
497
544
  return classifyWriteError(err);
498
545
  }
499
546
  finally {
500
- try {
501
- await this.fileOps.unlink(path);
547
+ if (created) {
548
+ try {
549
+ await this.fileOps.unlink(path);
550
+ }
551
+ catch { /* best-effort cleanup */ }
502
552
  }
503
- catch { /* best-effort cleanup */ }
504
553
  }
505
554
  }
506
555
  /**
@@ -511,23 +560,50 @@ export class TmuxAdapter {
511
560
  * The shell removes its private script when consumed (not when pasted).
512
561
  * A shell that never consumes the invocation leaves the file for diagnosis.
513
562
  */
514
- async sendShellCommand(target, command, beforeInput) {
563
+ async sendShellCommand(target, command, beforeInput, options = {}) {
515
564
  // Keep the managed selector for nested paste/Enter checks. A resolved pane
516
565
  // ID can also occur in detached bindings after a tmux restart; resolving it
517
566
  // again would lose the unambiguous session/node and its existing lease.
518
567
  // Each nested write still validates the lease and targets its observed pane.
519
- return this.guardedInput(target, () => this.sendShellCommandUnchecked(target, command, beforeInput));
568
+ return this.guardedInput(target, () => this.sendShellCommandUnchecked(target, command, beforeInput, options));
520
569
  }
521
- async sendShellCommandUnchecked(target, command, beforeInput) {
522
- const path = this.fileOps.tmpName();
523
- const invocation = `/bin/sh ${shellQuote(path)}`;
570
+ async sendShellCommandUnchecked(target, command, beforeInput, options) {
571
+ const commandBytes = Buffer.byteLength(command, "utf8");
572
+ // POSIX shells retain subshell isolation; unknown/unreadable panes use sh.
573
+ const paneShell = options.sourceInPane ? (await this.getPaneCommand(target) ?? "").replace(/^-/, "") : "";
574
+ const sourceInPane = ["bash", "zsh", "sh", "dash", "ksh"].includes(paneShell);
575
+ let path = options.stageIfLong && commandBytes <= 512 ? undefined : this.fileOps.tmpName();
576
+ let invocation = path ? sourceInPane ? `( . ${shellQuote(path)} )` : `/bin/sh ${shellQuote(path)}` : command;
577
+ if (path && paneShell === "fish") {
578
+ const quotedPath = shellQuote(path);
579
+ invocation = `/bin/sh ${quotedPath}`;
580
+ // Fish single quotes reinterpret POSIX backslashes. Keep those payloads
581
+ // (and paths) on sh, preserving existing executable launches byte-for-byte.
582
+ if (!command.includes("\\") && !path.includes("\\")) {
583
+ // Probe fixed syntax in the pane before sourcing, not the launch's exit
584
+ // status: even failed cleanup must not turn a later exit into a retry.
585
+ const sourced = `if eval 'OPENRIG_FISH_ASSIGNMENT_PROBE=1 /bin/sh -c :'; source ${quotedPath}; else; /bin/sh ${quotedPath}; end`;
586
+ // Repeating the path must not add a refusal for previously valid TMPDIRs.
587
+ if (Buffer.byteLength(sourced, "utf8") <= 512)
588
+ invocation = sourced;
589
+ }
590
+ }
524
591
  if (Buffer.byteLength(invocation, "utf8") > 512) {
525
- return { ok: false, code: "launch_path_too_long", message: "Temporary launch-script path exceeds the safe terminal input bound" };
592
+ // Pi commands below the canonical tty limit still fit when staging cannot.
593
+ if (options.stageIfLong && commandBytes < 1024) {
594
+ path = undefined;
595
+ invocation = command;
596
+ }
597
+ else {
598
+ return { ok: false, code: "launch_path_too_long", message: "Temporary launch-script path exceeds the safe terminal input bound" };
599
+ }
526
600
  }
527
601
  let created = false;
528
602
  try {
529
- await this.fileOps.writeFile(path, `/bin/rm -f -- ${shellQuote(path)}\n${command}\n`, { mode: 0o600, flag: "wx" });
530
- created = true;
603
+ if (path) {
604
+ await this.fileOps.writeFile(path, `/bin/rm -f -- ${shellQuote(path)}\n${options.execInScript ? "exec " : ""}${command}\n`, { mode: 0o600, flag: "wx" });
605
+ created = true;
606
+ }
531
607
  const text = beforeInput ? await this.guardedInput(target, (pane, check) => this.sendTextUnchecked(pane, invocation, () => { check(); beforeInput(); }))
532
608
  : await this.sendText(target, invocation);
533
609
  if (!text.ok)
@@ -546,7 +622,7 @@ export class TmuxAdapter {
546
622
  return classifyWriteError(err);
547
623
  }
548
624
  finally {
549
- if (created) {
625
+ if (created && path) {
550
626
  try {
551
627
  await this.fileOps.unlink(path);
552
628
  }
@@ -554,8 +630,8 @@ export class TmuxAdapter {
554
630
  }
555
631
  }
556
632
  }
557
- async sendKeys(target, keys) {
558
- return this.guardedInput(target, pane => this.sendKeysUnchecked(pane, keys));
633
+ async sendKeys(target, keys, beforeInput) {
634
+ return this.guardedInput(target, (pane, beforeWrite) => { beforeWrite(); beforeInput?.(); return this.sendKeysUnchecked(pane, keys); });
559
635
  }
560
636
  async sendKeysUnchecked(target, keys) {
561
637
  try {
@@ -567,8 +643,9 @@ export class TmuxAdapter {
567
643
  }
568
644
  }
569
645
  async setWindowOption(target, option, value) {
646
+ const window = exactTarget(target, "window");
570
647
  try {
571
- await this.run(["tmux", "set-option", "-w", "-t", target, option, value], `tmux set-option -w -t ${shellQuote(target)} ${shellQuote(option)} ${shellQuote(value)}`);
648
+ await this.run(["tmux", "set-option", "-w", "-t", window, option, value], `tmux set-option -w -t ${shellQuote(window)} ${shellQuote(option)} ${shellQuote(value)}`);
572
649
  return { ok: true };
573
650
  }
574
651
  catch (err) {
@@ -583,7 +660,7 @@ export class TmuxAdapter {
583
660
  return { ok: false, code: "validation_error", message: `resizeWindow: rows must be a positive integer, got ${rows}` };
584
661
  }
585
662
  try {
586
- await this.run(["tmux", "resize-window", "-t", target, "-x", String(cols), "-y", String(rows)]);
663
+ await this.run(["tmux", "resize-window", "-t", exactTarget(target, "window"), "-x", String(cols), "-y", String(rows)]);
587
664
  return { ok: true };
588
665
  }
589
666
  catch (err) {
@@ -614,8 +691,20 @@ export class TmuxAdapter {
614
691
  return this.killSessionUnchecked(name);
615
692
  }
616
693
  async killSessionUnchecked(name) {
694
+ // The guarded path passes the immutable `$N` id, which stays as it is; a bare name is made exact.
695
+ const session = exactTarget(name, "session");
696
+ // Detach first so `detach-on-destroy off` cannot switch views onto another session.
697
+ try {
698
+ await this.run(["tmux", "detach-client", "-s", session], `tmux detach-client -s ${shellQuote(session)}`);
699
+ }
700
+ catch (err) {
701
+ // tmux 3.7 says "no current client" when nothing is attached (and for a missing session, which the kill classifies).
702
+ const message = err instanceof Error ? err.message : String(err);
703
+ if (!message.toLowerCase().includes("no current client"))
704
+ return classifyWriteError(err);
705
+ }
617
706
  try {
618
- await this.run(["tmux", "kill-session", "-t", name], `tmux kill-session -t ${shellQuote(name)}`);
707
+ await this.run(["tmux", "kill-session", "-t", session], `tmux kill-session -t ${shellQuote(session)}`);
619
708
  const pane = this.freshProbes.get(name);
620
709
  this.freshProbes.delete(name);
621
710
  if (pane)
@@ -648,7 +737,8 @@ export class TmuxAdapter {
648
737
  return this.guardedInput(paneTarget, pane => this.respawnPaneUnchecked(pane, command, opts));
649
738
  }
650
739
  async respawnPaneUnchecked(paneTarget, command, opts) {
651
- const argv = ["tmux", "respawn-pane", "-t", paneTarget];
740
+ const exact = exactTarget(paneTarget, "pane");
741
+ const argv = ["tmux", "respawn-pane", "-t", exact];
652
742
  if (opts?.cwd != null)
653
743
  argv.push("-c", opts.cwd);
654
744
  if (opts?.env)
@@ -657,7 +747,7 @@ export class TmuxAdapter {
657
747
  // The respawn command is ONE argv unit: tmux runs it via the shell.
658
748
  if (command != null && command.length > 0)
659
749
  argv.push(command);
660
- const legacyRespawn = ["tmux", "respawn-pane", "-t", shellQuote(paneTarget)];
750
+ const legacyRespawn = ["tmux", "respawn-pane", "-t", shellQuote(exact)];
661
751
  if (opts?.cwd != null)
662
752
  legacyRespawn.push("-c", shellQuote(opts.cwd));
663
753
  if (opts?.env)
@@ -678,8 +768,9 @@ export class TmuxAdapter {
678
768
  * Set to `on` BEFORE the retiree is signalled to exit (else the pane is destroyed on exit and there
679
769
  * is nothing to respawn into). */
680
770
  async setRemainOnExit(paneTarget, on) {
771
+ const exact = exactTarget(paneTarget, "pane");
681
772
  try {
682
- await this.run(["tmux", "set-option", "-p", "-t", paneTarget, "remain-on-exit", on ? "on" : "off"], `tmux set-option -p -t ${shellQuote(paneTarget)} remain-on-exit ${on ? "on" : "off"}`);
773
+ await this.run(["tmux", "set-option", "-p", "-t", exact, "remain-on-exit", on ? "on" : "off"], `tmux set-option -p -t ${shellQuote(exact)} remain-on-exit ${on ? "on" : "off"}`);
683
774
  return { ok: true };
684
775
  }
685
776
  catch (err) {
@@ -689,8 +780,9 @@ export class TmuxAdapter {
689
780
  /** Seat-handover cutover: is the pane's process dead (the retiree exited; the pane held by
690
781
  * remain-on-exit)? A known-missing pane also proves physical cutover; unknown probe errors stay false. */
691
782
  async isPaneDead(paneId) {
783
+ const exact = exactTarget(paneId, "pane");
692
784
  try {
693
- const output = await this.run(["tmux", "display-message", "-p", "-t", paneId, "#{pane_dead}"], `tmux display-message -p -t ${shellQuote(paneId)} "#{pane_dead}"`);
785
+ const output = await this.run(["tmux", "display-message", "-p", "-t", exact, "#{pane_dead}"], `tmux display-message -p -t ${shellQuote(exact)} "#{pane_dead}"`);
694
786
  return output.trim() === "1";
695
787
  }
696
788
  catch (error) {
@@ -721,8 +813,9 @@ export class TmuxAdapter {
721
813
  }
722
814
  /** Get the PID of the foreground process in a pane. Returns null if unavailable. */
723
815
  async getPanePid(paneId) {
816
+ const target = exactTarget(paneId, "pane");
724
817
  try {
725
- const output = await this.run(["tmux", "display-message", "-p", "-t", paneId, "#{pane_pid}"], `tmux display-message -p -t ${shellQuote(paneId)} "#{pane_pid}"`);
818
+ const output = await this.run(["tmux", "display-message", "-p", "-t", target, "#{pane_pid}"], `tmux display-message -p -t ${shellQuote(target)} "#{pane_pid}"`);
726
819
  const trimmed = output.trim();
727
820
  const parsed = parseInt(trimmed, 10);
728
821
  return Number.isFinite(parsed) && parsed > 0 ? parsed : null;
@@ -746,8 +839,9 @@ export class TmuxAdapter {
746
839
  }
747
840
  /** Get the current foreground command in a pane. Returns null if unavailable. */
748
841
  async getPaneCommand(paneId) {
842
+ const target = exactTarget(paneId, "pane");
749
843
  try {
750
- const output = await this.run(["tmux", "display-message", "-p", "-t", paneId, "#{pane_current_command}"], `tmux display-message -p -t ${shellQuote(paneId)} "#{pane_current_command}"`);
844
+ const output = await this.run(["tmux", "display-message", "-p", "-t", target, "#{pane_current_command}"], `tmux display-message -p -t ${shellQuote(target)} "#{pane_current_command}"`);
751
845
  const trimmed = output.trim();
752
846
  return trimmed || null;
753
847
  }
@@ -755,14 +849,33 @@ export class TmuxAdapter {
755
849
  return null;
756
850
  }
757
851
  }
852
+ /** A launch metadata read. Callers must never put credential values in terminal input. */
853
+ async getSessionEnv(session, key) {
854
+ if (!/^[A-Z_][A-Z0-9_]*$/.test(key))
855
+ throw new Error("Invalid session environment key.");
856
+ try {
857
+ const output = await this.run(["tmux", "show-environment", "-t", session, key], `tmux show-environment -t ${shellQuote(session)} ${shellQuote(key)}`);
858
+ if (output.trim() === `-${key}`)
859
+ return undefined;
860
+ if (!output.startsWith(`${key}=`))
861
+ throw new Error("Unexpected session environment response.");
862
+ return output.slice(key.length + 1).replace(/\r?\n$/, "");
863
+ }
864
+ catch (error) {
865
+ if (error instanceof Error && error.message.includes(`unknown variable: ${key}`))
866
+ return undefined;
867
+ throw new Error("Cannot read the session's launch environment.");
868
+ }
869
+ }
758
870
  /** OPR.0.4.3.28 Part C — usable-presence check for a session-env variable.
759
871
  * Returns whether the var has a nonblank value, NEVER that value, and null
760
872
  * when the session environment cannot be inspected. Listing the environment
761
873
  * distinguishes a genuinely absent var from `tmux show-environment <var>`'s
762
874
  * nonzero lookup exit. */
763
875
  async hasSessionEnv(sessionName, varName) {
876
+ const target = exactTarget(sessionName, "session");
764
877
  try {
765
- const output = await this.run(["tmux", "show-environment", "-t", sessionName], `tmux show-environment -t ${shellQuote(sessionName)}`);
878
+ const output = await this.run(["tmux", "show-environment", "-t", target], `tmux show-environment -t ${shellQuote(target)}`);
766
879
  const prefix = `${varName}=`;
767
880
  return output.split(/\r?\n/).some((line) => line.startsWith(prefix) && line.slice(prefix.length).trim().length > 0);
768
881
  }
@@ -779,8 +892,9 @@ export class TmuxAdapter {
779
892
  // shell, so its inner quoting stays POSIX here (psmux documents the same
780
893
  // `cat >` server-side form for its own path).
781
894
  const sink = "cat >> " + shellQuote(outputPath);
895
+ const target = exactTarget(sessionName, "pane");
782
896
  try {
783
- await this.run(["tmux", "pipe-pane", "-t", sessionName, sink], `tmux pipe-pane -t ${shellQuote(sessionName)} ${shellQuote(sink)}`);
897
+ await this.run(["tmux", "pipe-pane", "-t", target, sink], `tmux pipe-pane -t ${shellQuote(target)} ${shellQuote(sink)}`);
784
898
  return { ok: true };
785
899
  }
786
900
  catch (err) {
@@ -789,8 +903,9 @@ export class TmuxAdapter {
789
903
  }
790
904
  /** Stop pipe-pane on a session. */
791
905
  async stopPipePane(sessionName) {
906
+ const target = exactTarget(sessionName, "pane");
792
907
  try {
793
- await this.run(["tmux", "pipe-pane", "-t", sessionName], `tmux pipe-pane -t ${shellQuote(sessionName)}`);
908
+ await this.run(["tmux", "pipe-pane", "-t", target], `tmux pipe-pane -t ${shellQuote(target)}`);
794
909
  return { ok: true };
795
910
  }
796
911
  catch (err) {
@@ -798,9 +913,93 @@ export class TmuxAdapter {
798
913
  }
799
914
  }
800
915
  /** Capture pane content (last N lines). Returns null if unavailable. */
916
+ /**
917
+ * Capture many sessions' panes with a few tmux calls instead of one per session (#308). One `list-sessions` says
918
+ * which targets exist: a missing one maps to null (as a failed per-target capture) without a fork. The live ones
919
+ * are captured in chunks of CAPTURE_BATCH chained commands (a `display-message` marker, then `capture-pane`), each
920
+ * pane's output delimited by a marker unique to the call, so the text equals what `capturePaneContent` returns.
921
+ * Targets are exact (`=<name>:`): no prefix match, and a name with a "." still resolves. tmux stops a chain at its
922
+ * first failing command, so a chunk that fails is split in half and retried (an oversized output, or a session gone
923
+ * since the listing); a single session that still fails is left OUT of the map, and the caller reads it per target.
924
+ * Null when tmux can't be listed at all. Each entry carries the time its own chunk was read (`capturedAt`), so a
925
+ * slow later chunk can't make an earlier capture look fresh.
926
+ */
927
+ async capturePanesContent(targets, lines = 20, now = () => new Date()) {
928
+ let live;
929
+ try {
930
+ const listing = await this.run(["tmux", "list-sessions", "-F", "#{session_name}"], "tmux list-sessions -F '#{session_name}'");
931
+ live = new Set(listing.split("\n").map((s) => s.trim()).filter(Boolean));
932
+ }
933
+ catch {
934
+ return null;
935
+ }
936
+ const out = new Map();
937
+ const listedAt = now();
938
+ const present = [];
939
+ for (const t of new Set(targets)) {
940
+ if (live.has(t))
941
+ present.push(t);
942
+ else
943
+ out.set(t, { text: null, capturedAt: listedAt });
944
+ }
945
+ // A chunk that fails is split in half and retried, down to one session: its output overflowed exec's buffer (wide,
946
+ // colour-dense panes: each capture is the visible pane plus the requested history) or a session vanished since
947
+ // the listing. A single session that still fails is left out: the caller reads it per target.
948
+ /** Capture one chunk with a single chained tmux call into `out`; on failure, split it in half and retry each half. */
949
+ const captureChunk = async (chunk) => {
950
+ const nonce = randomUUID().replace(/-/g, "");
951
+ const mark = (k) => `__openrig_capture_${nonce}_${k}__`;
952
+ const argv = ["tmux", ...chunk.flatMap((t, k) => [
953
+ ...(k > 0 ? [";"] : []),
954
+ "display-message", "-p", "-t", `=${t}:`, mark(k), ";", "capture-pane", "-p", "-t", `=${t}:`, "-S", `-${lines}`,
955
+ ])];
956
+ const legacy = "tmux " + chunk.map((t, k) => `display-message -p -t ${shellQuote(`=${t}:`)} ${shellQuote(mark(k))} \\; capture-pane -p -t ${shellQuote(`=${t}:`)} -S -${lines}`).join(" \\; ");
957
+ let output;
958
+ let capturedAt;
959
+ try {
960
+ output = await this.run(argv, legacy);
961
+ capturedAt = now(); // when THIS chunk's panes were read, not when the sweep ends
962
+ }
963
+ catch {
964
+ if (chunk.length > 1) {
965
+ const half = Math.ceil(chunk.length / 2);
966
+ await captureChunk(chunk.slice(0, half));
967
+ await captureChunk(chunk.slice(half));
968
+ }
969
+ return; // a single session that failed: read per target by the caller
970
+ }
971
+ const segments = chunk.map(() => null);
972
+ let cur = -1;
973
+ const outLines = output.split("\n");
974
+ if (outLines.length && outLines[outLines.length - 1] === "")
975
+ outLines.pop(); // the final newline, not a line
976
+ for (const line of outLines) {
977
+ const m = line.startsWith(`__openrig_capture_${nonce}_`) ? /_(\d+)__$/.exec(line) : null;
978
+ if (m && line === mark(Number(m[1]))) {
979
+ cur = Number(m[1]);
980
+ segments[cur] = [];
981
+ }
982
+ else if (cur >= 0) {
983
+ segments[cur].push(line);
984
+ }
985
+ }
986
+ chunk.forEach((t, k) => {
987
+ const seg = segments[k];
988
+ if (seg == null)
989
+ return; // its marker never printed: read per target
990
+ // capture-pane prints its lines newline-terminated, as the per-target read returns them
991
+ const text = seg.length ? seg.join("\n") + "\n" : "";
992
+ out.set(t, { text: text === "" ? null : text, capturedAt });
993
+ });
994
+ };
995
+ for (let i = 0; i < present.length; i += CAPTURE_BATCH)
996
+ await captureChunk(present.slice(i, i + CAPTURE_BATCH));
997
+ return out;
998
+ }
801
999
  async capturePaneContent(paneId, lines = 20) {
1000
+ const target = exactTarget(paneId, "pane");
802
1001
  try {
803
- const output = await this.run(["tmux", "capture-pane", "-p", "-t", paneId, "-S", `-${lines}`], `tmux capture-pane -p -t ${shellQuote(paneId)} -S -${lines}`);
1002
+ const output = await this.run(["tmux", "capture-pane", "-p", "-t", target, "-S", `-${lines}`], `tmux capture-pane -p -t ${shellQuote(target)} -S -${lines}`);
804
1003
  return output || null;
805
1004
  }
806
1005
  catch {
@@ -814,8 +1013,9 @@ export class TmuxAdapter {
814
1013
  * the absolute-paint seed exists to eliminate.
815
1014
  */
816
1015
  async capturePaneScreen(paneId) {
1016
+ const target = exactTarget(paneId, "pane");
817
1017
  try {
818
- const output = await this.run(["tmux", "capture-pane", "-p", "-t", paneId], `tmux capture-pane -p -t ${shellQuote(paneId)}`);
1018
+ const output = await this.run(["tmux", "capture-pane", "-p", "-t", target], `tmux capture-pane -p -t ${shellQuote(target)}`);
819
1019
  return output || null;
820
1020
  }
821
1021
  catch {
@@ -829,8 +1029,9 @@ export class TmuxAdapter {
829
1029
  * produces a garbage seed.
830
1030
  */
831
1031
  async getPaneCursorPosition(paneId) {
1032
+ const exact = exactTarget(paneId, "pane");
832
1033
  try {
833
- const output = await this.run(["tmux", "display-message", "-p", "-t", paneId, CURSOR_FORMAT], `tmux display-message -p -t ${shellQuote(paneId)} "${CURSOR_FORMAT}"`);
1034
+ const output = await this.run(["tmux", "display-message", "-p", "-t", exact, CURSOR_FORMAT], `tmux display-message -p -t ${shellQuote(exact)} "${CURSOR_FORMAT}"`);
834
1035
  const [xRaw, yRaw, widthRaw, heightRaw] = output.trim().split(TMUX_FIELD_SEPARATOR);
835
1036
  const x = Number.parseInt(xRaw ?? "", 10);
836
1037
  const y = Number.parseInt(yRaw ?? "", 10);
@@ -855,8 +1056,10 @@ export class TmuxAdapter {
855
1056
  * scopes are never crossed (guard b2).
856
1057
  */
857
1058
  async setSessionOption(sessionName, key, value) {
1059
+ // set/show-option take a target-pane even when the option is session-scoped.
1060
+ const exact = exactTarget(sessionName, "pane");
858
1061
  try {
859
- await this.run(["tmux", "set-option", "-t", sessionName, key, value], `tmux set-option -t ${shellQuote(sessionName)} ${shellQuote(key)} ${shellQuote(value)}`);
1062
+ await this.run(["tmux", "set-option", "-t", exact, key, value], `tmux set-option -t ${shellQuote(exact)} ${shellQuote(key)} ${shellQuote(value)}`);
860
1063
  return { ok: true };
861
1064
  }
862
1065
  catch (err) {
@@ -896,8 +1099,10 @@ export class TmuxAdapter {
896
1099
  }
897
1100
  /** Get a session-scoped user option value. Returns null if not set or error. */
898
1101
  async getSessionOption(sessionName, key) {
1102
+ // set/show-option take a target-pane even when the option is session-scoped.
1103
+ const exact = exactTarget(sessionName, "pane");
899
1104
  try {
900
- const output = await this.run(["tmux", "show-option", "-v", "-t", sessionName, key], `tmux show-option -v -t ${shellQuote(sessionName)} ${shellQuote(key)}`);
1105
+ const output = await this.run(["tmux", "show-option", "-v", "-t", exact, key], `tmux show-option -v -t ${shellQuote(exact)} ${shellQuote(key)}`);
901
1106
  return output.trim() || null;
902
1107
  }
903
1108
  catch {
@@ -925,9 +1130,59 @@ export class TmuxAdapter {
925
1130
  * - `null` when the target is missing OR the value is unparseable
926
1131
  * (consumers treat null as "no signal", distinct from "idle").
927
1132
  */
1133
+ /** Every session's current-window `#{window_activity}` in ONE tmux call, keyed by session name: the same value
1134
+ * `readPaneLastActivity(<session name>)` reads (display-message -t <session> resolves to the session's current
1135
+ * window). Only well-formed timestamps are included, so a missing key means "read it the per-target way". Null when
1136
+ * tmux can't be read at all. The session name is the LAST field, so a separator inside it stays intact. */
1137
+ async readAllSessionWindowActivity() {
1138
+ try {
1139
+ const format = ["#{window_active}", "#{window_activity}", "#{session_name}"].join(TMUX_FIELD_SEPARATOR);
1140
+ const output = await this.run(["tmux", "list-windows", "-a", "-F", format], `tmux list-windows -a -F '${format}'`);
1141
+ const out = new Map();
1142
+ for (const line of output.split("\n")) {
1143
+ const first = line.indexOf(TMUX_FIELD_SEPARATOR), second = line.indexOf(TMUX_FIELD_SEPARATOR, first + 1);
1144
+ if (first < 0 || second < 0)
1145
+ continue;
1146
+ const active = line.slice(0, first), activity = line.slice(first + 1, second).trim(), session = line.slice(second + 1);
1147
+ if (!session || active !== "1" || !/^\d+$/.test(activity))
1148
+ continue;
1149
+ const n = Number(activity);
1150
+ if (Number.isFinite(n) && n > 0)
1151
+ out.set(session, n);
1152
+ }
1153
+ return out;
1154
+ }
1155
+ catch {
1156
+ return null;
1157
+ }
1158
+ }
1159
+ /** Every pane's pid and current command in ONE tmux call, keyed by pane id (%N): the values `getPanePid` /
1160
+ * `getPaneCommand` read per pane. Panes without a valid pid are left out (read those per pane). Null when tmux can't
1161
+ * be read at all. The command is the LAST field, so a separator inside it stays intact. */
1162
+ async readAllPaneProcesses() {
1163
+ try {
1164
+ const format = ["#{pane_id}", "#{pane_pid}", "#{pane_current_command}"].join(TMUX_FIELD_SEPARATOR);
1165
+ const output = await this.run(["tmux", "list-panes", "-a", "-F", format], `tmux list-panes -a -F '${format}'`);
1166
+ const out = new Map();
1167
+ for (const line of output.split("\n")) {
1168
+ const first = line.indexOf(TMUX_FIELD_SEPARATOR), second = line.indexOf(TMUX_FIELD_SEPARATOR, first + 1);
1169
+ if (first <= 0 || second < 0)
1170
+ continue;
1171
+ const id = line.slice(0, first), pid = parseInt(line.slice(first + 1, second).trim(), 10);
1172
+ if (!Number.isFinite(pid) || pid <= 0)
1173
+ continue;
1174
+ out.set(id, { pid, command: line.slice(second + 1).trim() || null });
1175
+ }
1176
+ return out;
1177
+ }
1178
+ catch {
1179
+ return null;
1180
+ }
1181
+ }
928
1182
  async readPaneLastActivity(paneId) {
1183
+ const exact = exactTarget(paneId, "pane");
929
1184
  try {
930
- const output = await this.run(["tmux", "display-message", "-p", "-t", paneId, "#{window_activity}"], `tmux display-message -p -t ${shellQuote(paneId)} '#{window_activity}'`);
1185
+ const output = await this.run(["tmux", "display-message", "-p", "-t", exact, "#{window_activity}"], `tmux display-message -p -t ${shellQuote(exact)} '#{window_activity}'`);
931
1186
  const trimmed = output.trim();
932
1187
  if (!/^\d+$/.test(trimmed))
933
1188
  return null;
@@ -966,8 +1221,9 @@ export class TmuxAdapter {
966
1221
  * kills, or rebinds a session and never touches OpenRig routing/identity.
967
1222
  */
968
1223
  async switchClient(client, target) {
1224
+ const exact = exactTarget(target, "session");
969
1225
  try {
970
- await this.run(["tmux", "switch-client", "-c", client, "-t", target], `tmux switch-client -c ${shellQuote(client)} -t ${shellQuote(target)}`);
1226
+ await this.run(["tmux", "switch-client", "-c", client, "-t", exact], `tmux switch-client -c ${shellQuote(client)} -t ${shellQuote(exact)}`);
971
1227
  return { ok: true };
972
1228
  }
973
1229
  catch (err) {