@openrig/cli 0.6.14 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1366) hide show
  1. package/README.md +14 -12
  2. package/daemon/assets/claude-statusline-context.cjs +13 -3
  3. package/daemon/assets/guidance/openrig-seat-skills.md +1 -0
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/README.md +11 -4
  7. package/daemon/assets/plugins/openrig-core/hooks/claude.json +11 -11
  8. package/daemon/assets/plugins/openrig-core/hooks/codex.json +6 -6
  9. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +22 -9
  10. package/daemon/assets/plugins/openrig-core/hooks/scripts/codex-hook-trust.cjs +49 -0
  11. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +2 -2
  12. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +35 -11
  13. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -2
  14. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +1 -1
  15. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +16 -10
  16. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +43 -4
  17. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +2 -2
  18. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +192 -61
  19. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +10 -4
  20. package/daemon/assets/skills/rigs/SKILL.md +26 -6
  21. package/daemon/context-packs/help/manifest.yaml +1 -1
  22. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  23. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +209 -33
  24. package/daemon/context-packs/reference/getting-started.md +148 -23
  25. package/daemon/context-packs/reference/manifest.yaml +1 -1
  26. package/daemon/context-packs/reference/rig-spec.md +83 -3
  27. package/daemon/context-packs/reference/whats-new.md +173 -69
  28. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +9 -2
  32. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +1 -1
  34. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +43 -4
  39. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +3 -0
  43. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +2 -2
  45. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +2 -2
  48. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +11 -5
  49. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +16 -10
  58. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/openrig-user/SKILL.md +192 -61
  63. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pods/development-team/SKILL.md +2 -0
  73. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -1
  74. package/daemon/context-packs/skills/pods/development-team/references/refactoring.md +11 -0
  75. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/review-team/SKILL.md +46 -96
  78. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +17 -80
  86. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +5 -3
  87. package/daemon/context-packs/skills/process/verification-before-completion/references/performance-claims.md +12 -0
  88. package/daemon/context-packs/skills/queue-handoff/SKILL.md +10 -4
  89. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  94. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  95. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  96. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  97. package/daemon/dist/adapters/claude-code-adapter.d.ts +6 -2
  98. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  99. package/daemon/dist/adapters/claude-code-adapter.js +127 -32
  100. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  101. package/daemon/dist/adapters/claude-resume.d.ts +2 -1
  102. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  103. package/daemon/dist/adapters/claude-resume.js +10 -3
  104. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  105. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  106. package/daemon/dist/adapters/codex-resume.js +2 -7
  107. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  108. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +75 -3
  109. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  110. package/daemon/dist/adapters/codex-runtime-adapter.js +592 -91
  111. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  112. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts +21 -2
  113. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts.map +1 -1
  114. package/daemon/dist/adapters/community-harness-runtime-adapter.js +90 -8
  115. package/daemon/dist/adapters/community-harness-runtime-adapter.js.map +1 -1
  116. package/daemon/dist/adapters/compose-services-adapter.d.ts +16 -0
  117. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  118. package/daemon/dist/adapters/compose-services-adapter.js +52 -9
  119. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  120. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  121. package/daemon/dist/adapters/kernel-authority.js +9 -5
  122. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  123. package/daemon/dist/adapters/pi-runner.d.ts +13 -0
  124. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  125. package/daemon/dist/adapters/pi-runner.js +64 -16
  126. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  127. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  128. package/daemon/dist/adapters/pi-runtime-adapter.js +9 -6
  129. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  130. package/daemon/dist/adapters/runtime-probe-exec.d.ts +11 -0
  131. package/daemon/dist/adapters/runtime-probe-exec.d.ts.map +1 -0
  132. package/daemon/dist/adapters/runtime-probe-exec.js +25 -0
  133. package/daemon/dist/adapters/runtime-probe-exec.js.map +1 -0
  134. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  135. package/daemon/dist/adapters/stub-runner.js +2 -0
  136. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  137. package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
  138. package/daemon/dist/adapters/stub-runtime-adapter.js +9 -5
  139. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  140. package/daemon/dist/adapters/tmux.d.ts +36 -5
  141. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  142. package/daemon/dist/adapters/tmux.js +162 -33
  143. package/daemon/dist/adapters/tmux.js.map +1 -1
  144. package/daemon/dist/attention-surface.d.ts +14 -0
  145. package/daemon/dist/attention-surface.d.ts.map +1 -1
  146. package/daemon/dist/attention-surface.js.map +1 -1
  147. package/daemon/dist/build-info.js +3 -3
  148. package/daemon/dist/daemon-db-path.d.ts +6 -0
  149. package/daemon/dist/daemon-db-path.d.ts.map +1 -1
  150. package/daemon/dist/daemon-db-path.js +65 -1
  151. package/daemon/dist/daemon-db-path.js.map +1 -1
  152. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  153. package/daemon/dist/daemon-shutdown.js +4 -2
  154. package/daemon/dist/daemon-shutdown.js.map +1 -1
  155. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  156. package/daemon/dist/db/all-migrations.js +28 -0
  157. package/daemon/dist/db/all-migrations.js.map +1 -1
  158. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts +3 -0
  159. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts.map +1 -0
  160. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js +8 -0
  161. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js.map +1 -0
  162. package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts +3 -0
  163. package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts.map +1 -0
  164. package/daemon/dist/db/migrations/118_human_quiet_windows.js +30 -0
  165. package/daemon/dist/db/migrations/118_human_quiet_windows.js.map +1 -0
  166. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts +3 -0
  167. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts.map +1 -0
  168. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js +7 -0
  169. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js.map +1 -0
  170. package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts +13 -0
  171. package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts.map +1 -0
  172. package/daemon/dist/db/migrations/121_rig_startup_layers.js +17 -0
  173. package/daemon/dist/db/migrations/121_rig_startup_layers.js.map +1 -0
  174. package/daemon/dist/db/migrations/122_human_operating_modes.d.ts +3 -0
  175. package/daemon/dist/db/migrations/122_human_operating_modes.d.ts.map +1 -0
  176. package/daemon/dist/db/migrations/122_human_operating_modes.js +55 -0
  177. package/daemon/dist/db/migrations/122_human_operating_modes.js.map +1 -0
  178. package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts +3 -0
  179. package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts.map +1 -0
  180. package/daemon/dist/db/migrations/123_queue_delegated_decision.js +10 -0
  181. package/daemon/dist/db/migrations/123_queue_delegated_decision.js.map +1 -0
  182. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.d.ts +4 -0
  183. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.d.ts.map +1 -0
  184. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.js +9 -0
  185. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.js.map +1 -0
  186. package/daemon/dist/db/migrations/125_node_advisor.d.ts +3 -0
  187. package/daemon/dist/db/migrations/125_node_advisor.d.ts.map +1 -0
  188. package/daemon/dist/db/migrations/125_node_advisor.js +8 -0
  189. package/daemon/dist/db/migrations/125_node_advisor.js.map +1 -0
  190. package/daemon/dist/db/migrations/127_operation_correlation.d.ts +3 -0
  191. package/daemon/dist/db/migrations/127_operation_correlation.d.ts.map +1 -0
  192. package/daemon/dist/db/migrations/127_operation_correlation.js +10 -0
  193. package/daemon/dist/db/migrations/127_operation_correlation.js.map +1 -0
  194. package/daemon/dist/db/migrations/128_terminal_policy.d.ts +3 -0
  195. package/daemon/dist/db/migrations/128_terminal_policy.d.ts.map +1 -0
  196. package/daemon/dist/db/migrations/128_terminal_policy.js +37 -0
  197. package/daemon/dist/db/migrations/128_terminal_policy.js.map +1 -0
  198. package/daemon/dist/db/migrations/129_stream_dispositions.d.ts +10 -0
  199. package/daemon/dist/db/migrations/129_stream_dispositions.d.ts.map +1 -0
  200. package/daemon/dist/db/migrations/129_stream_dispositions.js +35 -0
  201. package/daemon/dist/db/migrations/129_stream_dispositions.js.map +1 -0
  202. package/daemon/dist/db/migrations/130_stream_subscriptions.d.ts +11 -0
  203. package/daemon/dist/db/migrations/130_stream_subscriptions.d.ts.map +1 -0
  204. package/daemon/dist/db/migrations/130_stream_subscriptions.js +33 -0
  205. package/daemon/dist/db/migrations/130_stream_subscriptions.js.map +1 -0
  206. package/daemon/dist/db/migrations/131_stream_retention_floor.d.ts +8 -0
  207. package/daemon/dist/db/migrations/131_stream_retention_floor.d.ts.map +1 -0
  208. package/daemon/dist/db/migrations/131_stream_retention_floor.js +20 -0
  209. package/daemon/dist/db/migrations/131_stream_retention_floor.js.map +1 -0
  210. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.d.ts +3 -0
  211. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.d.ts.map +1 -0
  212. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.js +16 -0
  213. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.js.map +1 -0
  214. package/daemon/dist/domain/active-occupant.d.ts +8 -3
  215. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  216. package/daemon/dist/domain/active-occupant.js +8 -4
  217. package/daemon/dist/domain/active-occupant.js.map +1 -1
  218. package/daemon/dist/domain/activity-taxonomy.d.ts +19 -1
  219. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  220. package/daemon/dist/domain/activity-taxonomy.js +21 -0
  221. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  222. package/daemon/dist/domain/agent-activity-store.d.ts +24 -0
  223. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  224. package/daemon/dist/domain/agent-activity-store.js +50 -5
  225. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  226. package/daemon/dist/domain/agent-images/evidence-guard.js +3 -3
  227. package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -1
  228. package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -1
  229. package/daemon/dist/domain/agent-images/resume-token-discovery.js +2 -10
  230. package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -1
  231. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  232. package/daemon/dist/domain/agent-manifest.js +14 -2
  233. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  234. package/daemon/dist/domain/ask-service.d.ts +1 -0
  235. package/daemon/dist/domain/ask-service.d.ts.map +1 -1
  236. package/daemon/dist/domain/ask-service.js +7 -1
  237. package/daemon/dist/domain/ask-service.js.map +1 -1
  238. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +5 -0
  239. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  240. package/daemon/dist/domain/bootstrap-orchestrator.js +25 -12
  241. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  242. package/daemon/dist/domain/builtin-startup-files.d.ts.map +1 -1
  243. package/daemon/dist/domain/builtin-startup-files.js +2 -0
  244. package/daemon/dist/domain/builtin-startup-files.js.map +1 -1
  245. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
  246. package/daemon/dist/domain/bundle-behaviour.js +28 -1
  247. package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
  248. package/daemon/dist/domain/claim-service.d.ts +20 -2
  249. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  250. package/daemon/dist/domain/claim-service.js +74 -19
  251. package/daemon/dist/domain/claim-service.js.map +1 -1
  252. package/daemon/dist/domain/classification-attempts.d.ts +4 -1
  253. package/daemon/dist/domain/classification-attempts.d.ts.map +1 -1
  254. package/daemon/dist/domain/classification-attempts.js +10 -1
  255. package/daemon/dist/domain/classification-attempts.js.map +1 -1
  256. package/daemon/dist/domain/classification-sources.d.ts +38 -0
  257. package/daemon/dist/domain/classification-sources.d.ts.map +1 -1
  258. package/daemon/dist/domain/classification-sources.js +26 -1
  259. package/daemon/dist/domain/classification-sources.js.map +1 -1
  260. package/daemon/dist/domain/claude-activity-hooks.d.ts +2 -2
  261. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
  262. package/daemon/dist/domain/claude-activity-hooks.js +8 -7
  263. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
  264. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +126 -11
  265. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  266. package/daemon/dist/domain/claude-compaction-enforcer.js +527 -68
  267. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  268. package/daemon/dist/domain/claude-core-plugin-env.d.ts +14 -0
  269. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
  270. package/daemon/dist/domain/claude-core-plugin-env.js +37 -11
  271. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -1
  272. package/daemon/dist/domain/claude-managed-launch.d.ts +1 -1
  273. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  274. package/daemon/dist/domain/claude-managed-launch.js +33 -15
  275. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  276. package/daemon/dist/domain/codex-core-plugin-install.d.ts +41 -0
  277. package/daemon/dist/domain/codex-core-plugin-install.d.ts.map +1 -0
  278. package/daemon/dist/domain/codex-core-plugin-install.js +126 -0
  279. package/daemon/dist/domain/codex-core-plugin-install.js.map +1 -0
  280. package/daemon/dist/domain/codex-owned-plugin-trust.d.ts +26 -0
  281. package/daemon/dist/domain/codex-owned-plugin-trust.d.ts.map +1 -0
  282. package/daemon/dist/domain/codex-owned-plugin-trust.js +187 -0
  283. package/daemon/dist/domain/codex-owned-plugin-trust.js.map +1 -0
  284. package/daemon/dist/domain/codex-rebuild-permissions.d.ts +54 -0
  285. package/daemon/dist/domain/codex-rebuild-permissions.d.ts.map +1 -0
  286. package/daemon/dist/domain/codex-rebuild-permissions.js +134 -0
  287. package/daemon/dist/domain/codex-rebuild-permissions.js.map +1 -0
  288. package/daemon/dist/domain/codex-thread-id.d.ts +23 -1
  289. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  290. package/daemon/dist/domain/codex-thread-id.js +58 -17
  291. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  292. package/daemon/dist/domain/community-harness-launch-result.d.ts +33 -0
  293. package/daemon/dist/domain/community-harness-launch-result.d.ts.map +1 -0
  294. package/daemon/dist/domain/community-harness-launch-result.js +93 -0
  295. package/daemon/dist/domain/community-harness-launch-result.js.map +1 -0
  296. package/daemon/dist/domain/community-harness-presets.d.ts +27 -2
  297. package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -1
  298. package/daemon/dist/domain/community-harness-presets.js +49 -5
  299. package/daemon/dist/domain/community-harness-presets.js.map +1 -1
  300. package/daemon/dist/domain/composer-prompts.d.ts +5 -2
  301. package/daemon/dist/domain/composer-prompts.d.ts.map +1 -1
  302. package/daemon/dist/domain/composer-prompts.js +2 -2
  303. package/daemon/dist/domain/composer-prompts.js.map +1 -1
  304. package/daemon/dist/domain/context-monitor.d.ts +13 -5
  305. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  306. package/daemon/dist/domain/context-monitor.js +49 -14
  307. package/daemon/dist/domain/context-monitor.js.map +1 -1
  308. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  309. package/daemon/dist/domain/context-usage-store.js +3 -0
  310. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  311. package/daemon/dist/domain/continuity-policy-materializer.d.ts +1 -0
  312. package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -1
  313. package/daemon/dist/domain/continuity-policy-materializer.js +2 -0
  314. package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -1
  315. package/daemon/dist/domain/current-work.d.ts +18 -0
  316. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  317. package/daemon/dist/domain/current-work.js +17 -3
  318. package/daemon/dist/domain/current-work.js.map +1 -1
  319. package/daemon/dist/domain/draft-aware-delivery.d.ts +7 -7
  320. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -1
  321. package/daemon/dist/domain/draft-aware-delivery.js +61 -82
  322. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -1
  323. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  324. package/daemon/dist/domain/execution-view.js +9 -7
  325. package/daemon/dist/domain/execution-view.js.map +1 -1
  326. package/daemon/dist/domain/existing-rig-restore.d.ts +110 -0
  327. package/daemon/dist/domain/existing-rig-restore.d.ts.map +1 -0
  328. package/daemon/dist/domain/existing-rig-restore.js +254 -0
  329. package/daemon/dist/domain/existing-rig-restore.js.map +1 -0
  330. package/daemon/dist/domain/footprint-choice.d.ts +41 -0
  331. package/daemon/dist/domain/footprint-choice.d.ts.map +1 -0
  332. package/daemon/dist/domain/footprint-choice.js +42 -0
  333. package/daemon/dist/domain/footprint-choice.js.map +1 -0
  334. package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
  335. package/daemon/dist/domain/fresh-occupant-relation.js +9 -2
  336. package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
  337. package/daemon/dist/domain/gateway/channel-operations.d.ts +3 -4
  338. package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
  339. package/daemon/dist/domain/gateway/channel-operations.js.map +1 -1
  340. package/daemon/dist/domain/gateway/connections-projection.d.ts +0 -5
  341. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  342. package/daemon/dist/domain/gateway/connections-projection.js +3 -46
  343. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  344. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +14 -1
  345. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -1
  346. package/daemon/dist/domain/gateway/delivery-rules-engine.js +13 -3
  347. package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -1
  348. package/daemon/dist/domain/gateway/dispatch-buffer.d.ts +4 -0
  349. package/daemon/dist/domain/gateway/dispatch-buffer.d.ts.map +1 -1
  350. package/daemon/dist/domain/gateway/dispatch-buffer.js +18 -0
  351. package/daemon/dist/domain/gateway/dispatch-buffer.js.map +1 -1
  352. package/daemon/dist/domain/gateway/human-mode-account.d.ts +61 -0
  353. package/daemon/dist/domain/gateway/human-mode-account.d.ts.map +1 -0
  354. package/daemon/dist/domain/gateway/human-mode-account.js +112 -0
  355. package/daemon/dist/domain/gateway/human-mode-account.js.map +1 -0
  356. package/daemon/dist/domain/gateway/human-operating-modes.d.ts +171 -0
  357. package/daemon/dist/domain/gateway/human-operating-modes.d.ts.map +1 -0
  358. package/daemon/dist/domain/gateway/human-operating-modes.js +422 -0
  359. package/daemon/dist/domain/gateway/human-operating-modes.js.map +1 -0
  360. package/daemon/dist/domain/gateway/human-quiet-windows.d.ts +121 -0
  361. package/daemon/dist/domain/gateway/human-quiet-windows.d.ts.map +1 -0
  362. package/daemon/dist/domain/gateway/human-quiet-windows.js +217 -0
  363. package/daemon/dist/domain/gateway/human-quiet-windows.js.map +1 -0
  364. package/daemon/dist/domain/gateway/human-registry.d.ts +55 -2
  365. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  366. package/daemon/dist/domain/gateway/human-registry.js +137 -8
  367. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  368. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  369. package/daemon/dist/domain/gateway/operator-delivery-engine.js +9 -0
  370. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  371. package/daemon/dist/domain/gateway/slack/inbound.d.ts +10 -2
  372. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  373. package/daemon/dist/domain/gateway/slack/inbound.js +76 -6
  374. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  375. package/daemon/dist/domain/gateway/slack/message.d.ts +4 -0
  376. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  377. package/daemon/dist/domain/gateway/slack/message.js +13 -2
  378. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  379. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +9 -3
  380. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  381. package/daemon/dist/domain/gateway/slack/outbound-driver.js +40 -6
  382. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  383. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +7 -0
  384. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  385. package/daemon/dist/domain/gateway/slack/queue-access.js +14 -2
  386. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  387. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +17 -1
  388. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  389. package/daemon/dist/domain/gateway/slack/slack-delivery.js +143 -56
  390. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  391. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -2
  392. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  393. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +266 -51
  394. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  395. package/daemon/dist/domain/generated-file-hygiene.js +1 -1
  396. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -1
  397. package/daemon/dist/domain/graph-projection.d.ts +3 -0
  398. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  399. package/daemon/dist/domain/graph-projection.js +2 -0
  400. package/daemon/dist/domain/graph-projection.js.map +1 -1
  401. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  402. package/daemon/dist/domain/health-diagnosis.js +14 -6
  403. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  404. package/daemon/dist/domain/health-passive-ceremony.d.ts +4 -0
  405. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  406. package/daemon/dist/domain/health-passive-ceremony.js +34 -4
  407. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  408. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +3 -1
  409. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  410. package/daemon/dist/domain/hosts/hosts-registry-reader.js +9 -9
  411. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  412. package/daemon/dist/domain/hosts/learned-host-bindings.d.ts +28 -0
  413. package/daemon/dist/domain/hosts/learned-host-bindings.d.ts.map +1 -0
  414. package/daemon/dist/domain/hosts/learned-host-bindings.js +77 -0
  415. package/daemon/dist/domain/hosts/learned-host-bindings.js.map +1 -0
  416. package/daemon/dist/domain/hot-potato-enforcer.d.ts +7 -5
  417. package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -1
  418. package/daemon/dist/domain/hot-potato-enforcer.js +19 -10
  419. package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -1
  420. package/daemon/dist/domain/human-questions.d.ts +10 -1
  421. package/daemon/dist/domain/human-questions.d.ts.map +1 -1
  422. package/daemon/dist/domain/human-questions.js +5 -0
  423. package/daemon/dist/domain/human-questions.js.map +1 -1
  424. package/daemon/dist/domain/kernel-boot-tracker.d.ts +17 -1
  425. package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
  426. package/daemon/dist/domain/kernel-boot-tracker.js +44 -3
  427. package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
  428. package/daemon/dist/domain/kernel-boot.d.ts +26 -1
  429. package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  430. package/daemon/dist/domain/kernel-boot.js +91 -6
  431. package/daemon/dist/domain/kernel-boot.js.map +1 -1
  432. package/daemon/dist/domain/managed-blocks.d.ts +32 -1
  433. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  434. package/daemon/dist/domain/managed-blocks.js +109 -11
  435. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  436. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +1 -1
  437. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -1
  438. package/daemon/dist/domain/mission-control/mission-control-action-log.js +3 -0
  439. package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -1
  440. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +21 -0
  441. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  442. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +110 -0
  443. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  444. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +2 -1
  445. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  446. package/daemon/dist/domain/model-divergence/current-generation-record.js +8 -3
  447. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  448. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts +2 -0
  449. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts.map +1 -1
  450. package/daemon/dist/domain/model-divergence/current-model-reader.js +7 -0
  451. package/daemon/dist/domain/model-divergence/current-model-reader.js.map +1 -1
  452. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +10 -1
  453. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  454. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +24 -5
  455. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  456. package/daemon/dist/domain/native-process-lineage.d.ts +3 -0
  457. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  458. package/daemon/dist/domain/native-process-lineage.js +103 -17
  459. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  460. package/daemon/dist/domain/native-resume-probe-evidence.d.ts +19 -0
  461. package/daemon/dist/domain/native-resume-probe-evidence.d.ts.map +1 -0
  462. package/daemon/dist/domain/native-resume-probe-evidence.js +37 -0
  463. package/daemon/dist/domain/native-resume-probe-evidence.js.map +1 -0
  464. package/daemon/dist/domain/native-resume-probe.d.ts +7 -0
  465. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  466. package/daemon/dist/domain/native-resume-probe.js +12 -9
  467. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  468. package/daemon/dist/domain/node-inventory.d.ts +49 -1
  469. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  470. package/daemon/dist/domain/node-inventory.js +145 -57
  471. package/daemon/dist/domain/node-inventory.js.map +1 -1
  472. package/daemon/dist/domain/node-launcher.d.ts +5 -3
  473. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  474. package/daemon/dist/domain/node-launcher.js +36 -26
  475. package/daemon/dist/domain/node-launcher.js.map +1 -1
  476. package/daemon/dist/domain/occupant-invalidator.d.ts +16 -4
  477. package/daemon/dist/domain/occupant-invalidator.d.ts.map +1 -1
  478. package/daemon/dist/domain/occupant-invalidator.js +25 -5
  479. package/daemon/dist/domain/occupant-invalidator.js.map +1 -1
  480. package/daemon/dist/domain/operation-correlation.d.ts +78 -0
  481. package/daemon/dist/domain/operation-correlation.d.ts.map +1 -0
  482. package/daemon/dist/domain/operation-correlation.js +54 -0
  483. package/daemon/dist/domain/operation-correlation.js.map +1 -0
  484. package/daemon/dist/domain/outbox-handler.d.ts +3 -5
  485. package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
  486. package/daemon/dist/domain/outbox-handler.js +9 -19
  487. package/daemon/dist/domain/outbox-handler.js.map +1 -1
  488. package/daemon/dist/domain/park-wake-text.d.ts +11 -0
  489. package/daemon/dist/domain/park-wake-text.d.ts.map +1 -0
  490. package/daemon/dist/domain/park-wake-text.js +26 -0
  491. package/daemon/dist/domain/park-wake-text.js.map +1 -0
  492. package/daemon/dist/domain/permission-account.d.ts +28 -0
  493. package/daemon/dist/domain/permission-account.d.ts.map +1 -0
  494. package/daemon/dist/domain/permission-account.js +102 -0
  495. package/daemon/dist/domain/permission-account.js.map +1 -0
  496. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  497. package/daemon/dist/domain/permission-drift.js +11 -7
  498. package/daemon/dist/domain/permission-drift.js.map +1 -1
  499. package/daemon/dist/domain/plugin-vendor-service.d.ts +4 -0
  500. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  501. package/daemon/dist/domain/plugin-vendor-service.js +29 -6
  502. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  503. package/daemon/dist/domain/pod-bundle-assembler.d.ts +1 -0
  504. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  505. package/daemon/dist/domain/pod-bundle-assembler.js +25 -0
  506. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  507. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts +7 -0
  508. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
  509. package/daemon/dist/domain/policies/artifact-pool-helpers.js +8 -4
  510. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
  511. package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -1
  512. package/daemon/dist/domain/policies/context-usage-threshold.js +109 -21
  513. package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -1
  514. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +1 -0
  515. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -1
  516. package/daemon/dist/domain/policies/delivery-digest-flush.js +25 -4
  517. package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -1
  518. package/daemon/dist/domain/policies/edge-artifact-required.d.ts +6 -1
  519. package/daemon/dist/domain/policies/edge-artifact-required.d.ts.map +1 -1
  520. package/daemon/dist/domain/policies/edge-artifact-required.js +18 -13
  521. package/daemon/dist/domain/policies/edge-artifact-required.js.map +1 -1
  522. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts +39 -0
  523. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts.map +1 -0
  524. package/daemon/dist/domain/policies/mode-scheduled-end.js +165 -0
  525. package/daemon/dist/domain/policies/mode-scheduled-end.js.map +1 -0
  526. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +11 -7
  527. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  528. package/daemon/dist/domain/policies/parked-owner-consumer.js +82 -113
  529. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  530. package/daemon/dist/domain/policies/periodic-reminder.d.ts +10 -0
  531. package/daemon/dist/domain/policies/periodic-reminder.d.ts.map +1 -1
  532. package/daemon/dist/domain/policies/periodic-reminder.js +11 -6
  533. package/daemon/dist/domain/policies/periodic-reminder.js.map +1 -1
  534. package/daemon/dist/domain/policies/quiet-release.d.ts +109 -0
  535. package/daemon/dist/domain/policies/quiet-release.d.ts.map +1 -0
  536. package/daemon/dist/domain/policies/quiet-release.js +213 -0
  537. package/daemon/dist/domain/policies/quiet-release.js.map +1 -0
  538. package/daemon/dist/domain/policies/types.d.ts +25 -0
  539. package/daemon/dist/domain/policies/types.d.ts.map +1 -1
  540. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +6 -1
  541. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  542. package/daemon/dist/domain/policies/workflow-keepalive.js +11 -5
  543. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  544. package/daemon/dist/domain/profile-resolution-worker.d.ts +7 -0
  545. package/daemon/dist/domain/profile-resolution-worker.d.ts.map +1 -0
  546. package/daemon/dist/domain/profile-resolution-worker.js +83 -0
  547. package/daemon/dist/domain/profile-resolution-worker.js.map +1 -0
  548. package/daemon/dist/domain/profile-resolver.d.ts +6 -0
  549. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  550. package/daemon/dist/domain/profile-resolver.js +20 -3
  551. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  552. package/daemon/dist/domain/project-classifier.d.ts +7 -0
  553. package/daemon/dist/domain/project-classifier.d.ts.map +1 -1
  554. package/daemon/dist/domain/project-classifier.js +26 -0
  555. package/daemon/dist/domain/project-classifier.js.map +1 -1
  556. package/daemon/dist/domain/proof/source-watch.js +2 -2
  557. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  558. package/daemon/dist/domain/provider/subscription-move-report.d.ts +86 -0
  559. package/daemon/dist/domain/provider/subscription-move-report.d.ts.map +1 -0
  560. package/daemon/dist/domain/provider/subscription-move-report.js +227 -0
  561. package/daemon/dist/domain/provider/subscription-move-report.js.map +1 -0
  562. package/daemon/dist/domain/ps-projection.d.ts +6 -35
  563. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  564. package/daemon/dist/domain/ps-projection.js +14 -55
  565. package/daemon/dist/domain/ps-projection.js.map +1 -1
  566. package/daemon/dist/domain/queue-destination-check.d.ts +6 -0
  567. package/daemon/dist/domain/queue-destination-check.d.ts.map +1 -0
  568. package/daemon/dist/domain/queue-destination-check.js +35 -0
  569. package/daemon/dist/domain/queue-destination-check.js.map +1 -0
  570. package/daemon/dist/domain/queue-owner.d.ts +6 -3
  571. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  572. package/daemon/dist/domain/queue-owner.js +12 -6
  573. package/daemon/dist/domain/queue-owner.js.map +1 -1
  574. package/daemon/dist/domain/queue-pickup.d.ts +5 -2
  575. package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  576. package/daemon/dist/domain/queue-pickup.js +19 -2
  577. package/daemon/dist/domain/queue-pickup.js.map +1 -1
  578. package/daemon/dist/domain/queue-recovery.d.ts +1 -1
  579. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  580. package/daemon/dist/domain/queue-recovery.js +3 -2
  581. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  582. package/daemon/dist/domain/queue-repository.d.ts +146 -72
  583. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  584. package/daemon/dist/domain/queue-repository.js +505 -169
  585. package/daemon/dist/domain/queue-repository.js.map +1 -1
  586. package/daemon/dist/domain/queue-retention.d.ts +18 -0
  587. package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  588. package/daemon/dist/domain/queue-retention.js +74 -0
  589. package/daemon/dist/domain/queue-retention.js.map +1 -1
  590. package/daemon/dist/domain/queue-stuck-sweep.d.ts +15 -1
  591. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  592. package/daemon/dist/domain/queue-stuck-sweep.js +132 -16
  593. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  594. package/daemon/dist/domain/queue-transition-log.d.ts +5 -0
  595. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  596. package/daemon/dist/domain/queue-transition-log.js +25 -8
  597. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  598. package/daemon/dist/domain/queue-wait-backoff.d.ts +3 -0
  599. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
  600. package/daemon/dist/domain/queue-wait-backoff.js +9 -0
  601. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
  602. package/daemon/dist/domain/queue-waiting.d.ts +2 -0
  603. package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
  604. package/daemon/dist/domain/queue-waiting.js.map +1 -1
  605. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -0
  606. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  607. package/daemon/dist/domain/queue-wake-ladder.js +112 -17
  608. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  609. package/daemon/dist/domain/quiet-hold-custody.d.ts +24 -0
  610. package/daemon/dist/domain/quiet-hold-custody.d.ts.map +1 -0
  611. package/daemon/dist/domain/quiet-hold-custody.js +85 -0
  612. package/daemon/dist/domain/quiet-hold-custody.js.map +1 -0
  613. package/daemon/dist/domain/reconciler.d.ts +23 -0
  614. package/daemon/dist/domain/reconciler.d.ts.map +1 -1
  615. package/daemon/dist/domain/reconciler.js +44 -1
  616. package/daemon/dist/domain/reconciler.js.map +1 -1
  617. package/daemon/dist/domain/rehydrate-eligibility.d.ts +12 -1
  618. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  619. package/daemon/dist/domain/rehydrate-eligibility.js +47 -10
  620. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  621. package/daemon/dist/domain/restore-guidance.d.ts +7 -0
  622. package/daemon/dist/domain/restore-guidance.d.ts.map +1 -1
  623. package/daemon/dist/domain/restore-guidance.js +20 -8
  624. package/daemon/dist/domain/restore-guidance.js.map +1 -1
  625. package/daemon/dist/domain/restore-orchestrator.d.ts +24 -1
  626. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  627. package/daemon/dist/domain/restore-orchestrator.js +295 -41
  628. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  629. package/daemon/dist/domain/restore-plan-preview.d.ts +10 -3
  630. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  631. package/daemon/dist/domain/restore-plan-preview.js +56 -18
  632. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  633. package/daemon/dist/domain/restore-policy.d.ts +4 -0
  634. package/daemon/dist/domain/restore-policy.d.ts.map +1 -1
  635. package/daemon/dist/domain/restore-policy.js +11 -0
  636. package/daemon/dist/domain/restore-policy.js.map +1 -1
  637. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  638. package/daemon/dist/domain/review/gather.js +8 -5
  639. package/daemon/dist/domain/review/gather.js.map +1 -1
  640. package/daemon/dist/domain/rig-edge-ops.d.ts +58 -0
  641. package/daemon/dist/domain/rig-edge-ops.d.ts.map +1 -0
  642. package/daemon/dist/domain/rig-edge-ops.js +113 -0
  643. package/daemon/dist/domain/rig-edge-ops.js.map +1 -0
  644. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
  645. package/daemon/dist/domain/rig-mode/operating-posture.js +3 -1
  646. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
  647. package/daemon/dist/domain/rig-name-override.d.ts +14 -0
  648. package/daemon/dist/domain/rig-name-override.d.ts.map +1 -0
  649. package/daemon/dist/domain/rig-name-override.js +38 -0
  650. package/daemon/dist/domain/rig-name-override.js.map +1 -0
  651. package/daemon/dist/domain/rig-repository.d.ts +19 -1
  652. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  653. package/daemon/dist/domain/rig-repository.js +41 -3
  654. package/daemon/dist/domain/rig-repository.js.map +1 -1
  655. package/daemon/dist/domain/rig-status-compose.d.ts +1 -1
  656. package/daemon/dist/domain/rig-status-compose.d.ts.map +1 -1
  657. package/daemon/dist/domain/rig-status-compose.js +3 -1
  658. package/daemon/dist/domain/rig-status-compose.js.map +1 -1
  659. package/daemon/dist/domain/rig-teardown.d.ts +19 -0
  660. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  661. package/daemon/dist/domain/rig-teardown.js +109 -12
  662. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  663. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  664. package/daemon/dist/domain/rigspec-codec.js +10 -0
  665. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  666. package/daemon/dist/domain/rigspec-exporter.d.ts +3 -0
  667. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  668. package/daemon/dist/domain/rigspec-exporter.js +22 -0
  669. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  670. package/daemon/dist/domain/rigspec-instantiator.d.ts +39 -2
  671. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  672. package/daemon/dist/domain/rigspec-instantiator.js +319 -73
  673. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  674. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  675. package/daemon/dist/domain/rigspec-preflight.js +15 -2
  676. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  677. package/daemon/dist/domain/rigspec-schema.d.ts +8 -0
  678. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  679. package/daemon/dist/domain/rigspec-schema.js +97 -3
  680. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  681. package/daemon/dist/domain/runtime-adapter.d.ts +47 -3
  682. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  683. package/daemon/dist/domain/runtime-adapter.js +5 -1
  684. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  685. package/daemon/dist/domain/scope/scope-view-projection.d.ts +6 -0
  686. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  687. package/daemon/dist/domain/scope/scope-view-projection.js +26 -10
  688. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  689. package/daemon/dist/domain/seat-activity-service.d.ts +22 -5
  690. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  691. package/daemon/dist/domain/seat-activity-service.js +137 -62
  692. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  693. package/daemon/dist/domain/seat-attention-reconciler.d.ts +27 -1
  694. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  695. package/daemon/dist/domain/seat-attention-reconciler.js +63 -7
  696. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  697. package/daemon/dist/domain/seat-delivery-guard.d.ts +20 -1
  698. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  699. package/daemon/dist/domain/seat-delivery-guard.js +87 -16
  700. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  701. package/daemon/dist/domain/seat-handover-service.d.ts +10 -2
  702. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  703. package/daemon/dist/domain/seat-handover-service.js +100 -4
  704. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  705. package/daemon/dist/domain/seat-identity-reconciler.js +1 -1
  706. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  707. package/daemon/dist/domain/seat-identity-store.d.ts +11 -1
  708. package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
  709. package/daemon/dist/domain/seat-identity-store.js +32 -4
  710. package/daemon/dist/domain/seat-identity-store.js.map +1 -1
  711. package/daemon/dist/domain/seat-launch-additions.d.ts +115 -0
  712. package/daemon/dist/domain/seat-launch-additions.d.ts.map +1 -0
  713. package/daemon/dist/domain/seat-launch-additions.js +439 -0
  714. package/daemon/dist/domain/seat-launch-additions.js.map +1 -0
  715. package/daemon/dist/domain/seat-launch-environment.d.ts +1 -1
  716. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -1
  717. package/daemon/dist/domain/seat-launch-environment.js +18 -2
  718. package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
  719. package/daemon/dist/domain/seat-lifecycle-service.d.ts +83 -4
  720. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  721. package/daemon/dist/domain/seat-lifecycle-service.js +202 -12
  722. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  723. package/daemon/dist/domain/seat-restart-in-place.d.ts +33 -14
  724. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
  725. package/daemon/dist/domain/seat-restart-in-place.js +102 -30
  726. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
  727. package/daemon/dist/domain/seat-skill-apply.d.ts +139 -0
  728. package/daemon/dist/domain/seat-skill-apply.d.ts.map +1 -0
  729. package/daemon/dist/domain/seat-skill-apply.js +221 -0
  730. package/daemon/dist/domain/seat-skill-apply.js.map +1 -0
  731. package/daemon/dist/domain/seat-skill-storage.d.ts +295 -0
  732. package/daemon/dist/domain/seat-skill-storage.d.ts.map +1 -0
  733. package/daemon/dist/domain/seat-skill-storage.js +850 -0
  734. package/daemon/dist/domain/seat-skill-storage.js.map +1 -0
  735. package/daemon/dist/domain/seat-status-service.d.ts +9 -0
  736. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  737. package/daemon/dist/domain/seat-status-service.js +15 -3
  738. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  739. package/daemon/dist/domain/self-attach-service.d.ts +3 -2
  740. package/daemon/dist/domain/self-attach-service.d.ts.map +1 -1
  741. package/daemon/dist/domain/self-attach-service.js +18 -1
  742. package/daemon/dist/domain/self-attach-service.js.map +1 -1
  743. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  744. package/daemon/dist/domain/services-readiness.js +14 -3
  745. package/daemon/dist/domain/services-readiness.js.map +1 -1
  746. package/daemon/dist/domain/session-registry.d.ts +49 -0
  747. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  748. package/daemon/dist/domain/session-registry.js +137 -0
  749. package/daemon/dist/domain/session-registry.js.map +1 -1
  750. package/daemon/dist/domain/session-transport.d.ts +76 -27
  751. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  752. package/daemon/dist/domain/session-transport.js +202 -82
  753. package/daemon/dist/domain/session-transport.js.map +1 -1
  754. package/daemon/dist/domain/skill-catalog.d.ts +16 -0
  755. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  756. package/daemon/dist/domain/skill-catalog.js +15 -6
  757. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  758. package/daemon/dist/domain/skill-discovery.d.ts +24 -3
  759. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  760. package/daemon/dist/domain/skill-discovery.js +85 -12
  761. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  762. package/daemon/dist/domain/snapshot-repository.d.ts +1 -0
  763. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  764. package/daemon/dist/domain/snapshot-repository.js +23 -10
  765. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  766. package/daemon/dist/domain/startup-orchestrator.d.ts +47 -5
  767. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  768. package/daemon/dist/domain/startup-orchestrator.js +291 -29
  769. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  770. package/daemon/dist/domain/startup-submission-evidence.d.ts +4 -11
  771. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  772. package/daemon/dist/domain/startup-submission-evidence.js +11 -17
  773. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  774. package/daemon/dist/domain/stream-dispositions.d.ts +51 -0
  775. package/daemon/dist/domain/stream-dispositions.d.ts.map +1 -0
  776. package/daemon/dist/domain/stream-dispositions.js +112 -0
  777. package/daemon/dist/domain/stream-dispositions.js.map +1 -0
  778. package/daemon/dist/domain/stream-store.d.ts +22 -0
  779. package/daemon/dist/domain/stream-store.d.ts.map +1 -1
  780. package/daemon/dist/domain/stream-store.js +49 -6
  781. package/daemon/dist/domain/stream-store.js.map +1 -1
  782. package/daemon/dist/domain/stream-subscriptions.d.ts +94 -0
  783. package/daemon/dist/domain/stream-subscriptions.d.ts.map +1 -0
  784. package/daemon/dist/domain/stream-subscriptions.js +160 -0
  785. package/daemon/dist/domain/stream-subscriptions.js.map +1 -0
  786. package/daemon/dist/domain/successor-session-launcher.d.ts +8 -1
  787. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  788. package/daemon/dist/domain/successor-session-launcher.js +6 -1
  789. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  790. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +3 -1
  791. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  792. package/daemon/dist/domain/terminal/herdr-adapter.js +125 -4
  793. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  794. package/daemon/dist/domain/terminal/herdr-sessions.d.ts +9 -0
  795. package/daemon/dist/domain/terminal/herdr-sessions.d.ts.map +1 -0
  796. package/daemon/dist/domain/terminal/herdr-sessions.js +23 -0
  797. package/daemon/dist/domain/terminal/herdr-sessions.js.map +1 -0
  798. package/daemon/dist/domain/terminal/terminal-provider.d.ts +4 -0
  799. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  800. package/daemon/dist/domain/terminal/terminal-service.d.ts +12 -3
  801. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  802. package/daemon/dist/domain/terminal/terminal-service.js +42 -17
  803. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  804. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  805. package/daemon/dist/domain/terminal/view-composer.js +1 -0
  806. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  807. package/daemon/dist/domain/terminal-policy.d.ts +80 -0
  808. package/daemon/dist/domain/terminal-policy.d.ts.map +1 -0
  809. package/daemon/dist/domain/terminal-policy.js +117 -0
  810. package/daemon/dist/domain/terminal-policy.js.map +1 -0
  811. package/daemon/dist/domain/terminal-seat.d.ts +9 -0
  812. package/daemon/dist/domain/terminal-seat.d.ts.map +1 -0
  813. package/daemon/dist/domain/terminal-seat.js +37 -0
  814. package/daemon/dist/domain/terminal-seat.js.map +1 -0
  815. package/daemon/dist/domain/topology-converge.d.ts +25 -2
  816. package/daemon/dist/domain/topology-converge.d.ts.map +1 -1
  817. package/daemon/dist/domain/topology-converge.js +14 -1
  818. package/daemon/dist/domain/topology-converge.js.map +1 -1
  819. package/daemon/dist/domain/types.d.ts +73 -6
  820. package/daemon/dist/domain/types.d.ts.map +1 -1
  821. package/daemon/dist/domain/types.js.map +1 -1
  822. package/daemon/dist/domain/urgent-line.d.ts +4 -0
  823. package/daemon/dist/domain/urgent-line.d.ts.map +1 -0
  824. package/daemon/dist/domain/urgent-line.js +7 -0
  825. package/daemon/dist/domain/urgent-line.js.map +1 -0
  826. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  827. package/daemon/dist/domain/usage-series.js +6 -2
  828. package/daemon/dist/domain/usage-series.js.map +1 -1
  829. package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
  830. package/daemon/dist/domain/user-settings/settings-browser.js +4 -2
  831. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
  832. package/daemon/dist/domain/user-settings/settings-store.d.ts +3 -1
  833. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  834. package/daemon/dist/domain/user-settings/settings-store.js +106 -8
  835. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  836. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  837. package/daemon/dist/domain/view-projector.js +2 -1
  838. package/daemon/dist/domain/view-projector.js.map +1 -1
  839. package/daemon/dist/domain/watchdog-delivery.d.ts +3 -23
  840. package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -1
  841. package/daemon/dist/domain/watchdog-delivery.js +12 -89
  842. package/daemon/dist/domain/watchdog-delivery.js.map +1 -1
  843. package/daemon/dist/domain/watchdog-history-log.d.ts +5 -2
  844. package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -1
  845. package/daemon/dist/domain/watchdog-history-log.js.map +1 -1
  846. package/daemon/dist/domain/watchdog-job-update.d.ts +21 -0
  847. package/daemon/dist/domain/watchdog-job-update.d.ts.map +1 -0
  848. package/daemon/dist/domain/watchdog-job-update.js +143 -0
  849. package/daemon/dist/domain/watchdog-job-update.js.map +1 -0
  850. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +65 -9
  851. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  852. package/daemon/dist/domain/watchdog-jobs-repository.js +194 -21
  853. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  854. package/daemon/dist/domain/watchdog-policy-engine.d.ts +39 -24
  855. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  856. package/daemon/dist/domain/watchdog-policy-engine.js +89 -55
  857. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  858. package/daemon/dist/domain/whoami-service.d.ts +2 -0
  859. package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
  860. package/daemon/dist/domain/whoami-service.js +23 -6
  861. package/daemon/dist/domain/whoami-service.js.map +1 -1
  862. package/daemon/dist/domain/workflow-boot-sweep.d.ts +2 -1
  863. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  864. package/daemon/dist/domain/workflow-boot-sweep.js +11 -5
  865. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  866. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  867. package/daemon/dist/domain/workflow-exception-escalation.js +9 -4
  868. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  869. package/daemon/dist/domain/workflow-projector.d.ts +5 -2
  870. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  871. package/daemon/dist/domain/workflow-projector.js +21 -9
  872. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  873. package/daemon/dist/domain/workflow-role-context.js +2 -2
  874. package/daemon/dist/domain/workflow-role-context.js.map +1 -1
  875. package/daemon/dist/domain/workflow-runtime.d.ts +8 -2
  876. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  877. package/daemon/dist/domain/workflow-runtime.js +32 -7
  878. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  879. package/daemon/dist/domain/workspace/project-read.d.ts +2 -0
  880. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
  881. package/daemon/dist/domain/workspace/project-read.js +10 -1
  882. package/daemon/dist/domain/workspace/project-read.js.map +1 -1
  883. package/daemon/dist/index.d.ts.map +1 -1
  884. package/daemon/dist/index.js +2 -0
  885. package/daemon/dist/index.js.map +1 -1
  886. package/daemon/dist/router-line-surface.d.ts +2 -0
  887. package/daemon/dist/router-line-surface.d.ts.map +1 -0
  888. package/daemon/dist/router-line-surface.js +3 -0
  889. package/daemon/dist/router-line-surface.js.map +1 -0
  890. package/daemon/dist/routes/activity.d.ts +13 -1
  891. package/daemon/dist/routes/activity.d.ts.map +1 -1
  892. package/daemon/dist/routes/activity.js +70 -2
  893. package/daemon/dist/routes/activity.js.map +1 -1
  894. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  895. package/daemon/dist/routes/agent-images.js +12 -2
  896. package/daemon/dist/routes/agent-images.js.map +1 -1
  897. package/daemon/dist/routes/attention.d.ts.map +1 -1
  898. package/daemon/dist/routes/attention.js +30 -3
  899. package/daemon/dist/routes/attention.js.map +1 -1
  900. package/daemon/dist/routes/bootstrap-failure-response.js +2 -2
  901. package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -1
  902. package/daemon/dist/routes/bundles.js +1 -1
  903. package/daemon/dist/routes/bundles.js.map +1 -1
  904. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  905. package/daemon/dist/routes/compaction.js +38 -12
  906. package/daemon/dist/routes/compaction.js.map +1 -1
  907. package/daemon/dist/routes/discovery.js +3 -0
  908. package/daemon/dist/routes/discovery.js.map +1 -1
  909. package/daemon/dist/routes/down.js +9 -1
  910. package/daemon/dist/routes/down.js.map +1 -1
  911. package/daemon/dist/routes/gateway.d.ts +2 -0
  912. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  913. package/daemon/dist/routes/gateway.js +181 -1
  914. package/daemon/dist/routes/gateway.js.map +1 -1
  915. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  916. package/daemon/dist/routes/hosts.js +2 -0
  917. package/daemon/dist/routes/hosts.js.map +1 -1
  918. package/daemon/dist/routes/kernel-status.js +6 -1
  919. package/daemon/dist/routes/kernel-status.js.map +1 -1
  920. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  921. package/daemon/dist/routes/mission-control.js +5 -1
  922. package/daemon/dist/routes/mission-control.js.map +1 -1
  923. package/daemon/dist/routes/projects.d.ts.map +1 -1
  924. package/daemon/dist/routes/projects.js +59 -12
  925. package/daemon/dist/routes/projects.js.map +1 -1
  926. package/daemon/dist/routes/proof.js +2 -2
  927. package/daemon/dist/routes/proof.js.map +1 -1
  928. package/daemon/dist/routes/provider.d.ts.map +1 -1
  929. package/daemon/dist/routes/provider.js +87 -73
  930. package/daemon/dist/routes/provider.js.map +1 -1
  931. package/daemon/dist/routes/queue.d.ts.map +1 -1
  932. package/daemon/dist/routes/queue.js +125 -16
  933. package/daemon/dist/routes/queue.js.map +1 -1
  934. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  935. package/daemon/dist/routes/rigs.js +104 -20
  936. package/daemon/dist/routes/rigs.js.map +1 -1
  937. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  938. package/daemon/dist/routes/rigspec.js +40 -15
  939. package/daemon/dist/routes/rigspec.js.map +1 -1
  940. package/daemon/dist/routes/scopes.d.ts.map +1 -1
  941. package/daemon/dist/routes/scopes.js +30 -7
  942. package/daemon/dist/routes/scopes.js.map +1 -1
  943. package/daemon/dist/routes/seat.d.ts.map +1 -1
  944. package/daemon/dist/routes/seat.js +21 -5
  945. package/daemon/dist/routes/seat.js.map +1 -1
  946. package/daemon/dist/routes/sessions.js +5 -0
  947. package/daemon/dist/routes/sessions.js.map +1 -1
  948. package/daemon/dist/routes/skills.d.ts.map +1 -1
  949. package/daemon/dist/routes/skills.js +55 -2
  950. package/daemon/dist/routes/skills.js.map +1 -1
  951. package/daemon/dist/routes/stream.d.ts.map +1 -1
  952. package/daemon/dist/routes/stream.js +62 -13
  953. package/daemon/dist/routes/stream.js.map +1 -1
  954. package/daemon/dist/routes/terminal.d.ts.map +1 -1
  955. package/daemon/dist/routes/terminal.js +20 -11
  956. package/daemon/dist/routes/terminal.js.map +1 -1
  957. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  958. package/daemon/dist/routes/transcripts.js +7 -3
  959. package/daemon/dist/routes/transcripts.js.map +1 -1
  960. package/daemon/dist/routes/transport.d.ts.map +1 -1
  961. package/daemon/dist/routes/transport.js +25 -3
  962. package/daemon/dist/routes/transport.js.map +1 -1
  963. package/daemon/dist/routes/up.js +41 -52
  964. package/daemon/dist/routes/up.js.map +1 -1
  965. package/daemon/dist/routes/watchdog.d.ts +1 -0
  966. package/daemon/dist/routes/watchdog.d.ts.map +1 -1
  967. package/daemon/dist/routes/watchdog.js +52 -3
  968. package/daemon/dist/routes/watchdog.js.map +1 -1
  969. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  970. package/daemon/dist/routes/workflow.js +24 -13
  971. package/daemon/dist/routes/workflow.js.map +1 -1
  972. package/daemon/dist/server.d.ts +2 -0
  973. package/daemon/dist/server.d.ts.map +1 -1
  974. package/daemon/dist/server.js +4 -1
  975. package/daemon/dist/server.js.map +1 -1
  976. package/daemon/dist/skill-loadout-surface.d.ts +2 -0
  977. package/daemon/dist/skill-loadout-surface.d.ts.map +1 -1
  978. package/daemon/dist/skill-loadout-surface.js +2 -0
  979. package/daemon/dist/skill-loadout-surface.js.map +1 -1
  980. package/daemon/dist/startup.d.ts.map +1 -1
  981. package/daemon/dist/startup.js +156 -81
  982. package/daemon/dist/startup.js.map +1 -1
  983. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  984. package/daemon/dist/terminal/TerminalSessionBroker.js +9 -2
  985. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  986. package/daemon/docs/reference/a2a-agents.md +343 -0
  987. package/daemon/docs/reference/acp-agents.md +77 -0
  988. package/daemon/docs/reference/agent-spec.md +7 -5
  989. package/daemon/docs/reference/agent-startup-guide.md +46 -0
  990. package/daemon/docs/reference/agent-state-taxonomy.md +43 -3
  991. package/daemon/docs/reference/checked-seat-stop.md +11 -0
  992. package/daemon/docs/reference/community-harness-examples/cursor/cursor.yaml +13 -0
  993. package/daemon/docs/reference/community-harness-examples/cursor/openrig-cursor-launch +61 -0
  994. package/daemon/docs/reference/community-harness-examples/hermes/config.yaml.example +18 -0
  995. package/daemon/docs/reference/community-harness-examples/hermes/hermes.yaml +12 -0
  996. package/daemon/docs/reference/community-harness-examples/hermes/openrig-hermes-launch +34 -0
  997. package/daemon/docs/reference/community-harness-examples/openclaw/openclaw.yaml +13 -0
  998. package/daemon/docs/reference/community-harness-examples/openclaw/openrig-openclaw-launch +38 -0
  999. package/daemon/docs/reference/community-harness-presets.md +179 -0
  1000. package/daemon/docs/reference/getting-started.md +148 -23
  1001. package/daemon/docs/reference/operation-correlation.md +9 -0
  1002. package/daemon/docs/reference/project-workspace.md +6 -0
  1003. package/daemon/docs/reference/quickstart.md +33 -20
  1004. package/daemon/docs/reference/refocus-channel.md +11 -3
  1005. package/daemon/docs/reference/rig-spec.md +83 -3
  1006. package/daemon/docs/reference/seat-delivery.md +130 -20
  1007. package/daemon/docs/reference/slack-app-setup.md +52 -3
  1008. package/daemon/docs/reference/stream-classifier-worker.md +28 -0
  1009. package/daemon/docs/reference/telemetry.md +3 -0
  1010. package/daemon/docs/reference/terminal-sessions.md +90 -0
  1011. package/daemon/docs/reference/topology-naming.md +1 -1
  1012. package/daemon/docs/reference/whats-new.md +173 -69
  1013. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +0 -3
  1014. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +43 -4
  1015. package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +3 -0
  1016. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +2 -2
  1017. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +2 -2
  1018. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +11 -5
  1019. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +2 -0
  1020. package/daemon/specs/agents/shared/skills/pods/development-team/references/refactoring.md +11 -0
  1021. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +46 -96
  1022. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +17 -80
  1023. package/daemon/specs/agents/shared/skills/process/verification-before-completion/references/performance-claims.md +12 -0
  1024. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +129 -24
  1025. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +11 -0
  1026. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +3 -1
  1027. package/daemon/specs/rigs/launch/secrets-manager/secrets-manager.compose.yaml +1 -1
  1028. package/dist/acp/connector.d.ts +72 -0
  1029. package/dist/acp/connector.d.ts.map +1 -0
  1030. package/dist/acp/connector.js +218 -0
  1031. package/dist/acp/connector.js.map +1 -0
  1032. package/dist/acp/json-rpc-stdio.d.ts +53 -0
  1033. package/dist/acp/json-rpc-stdio.d.ts.map +1 -0
  1034. package/dist/acp/json-rpc-stdio.js +141 -0
  1035. package/dist/acp/json-rpc-stdio.js.map +1 -0
  1036. package/dist/acp/run-processes.d.ts +10 -0
  1037. package/dist/acp/run-processes.d.ts.map +1 -0
  1038. package/dist/acp/run-processes.js +33 -0
  1039. package/dist/acp/run-processes.js.map +1 -0
  1040. package/dist/build-info.js +3 -3
  1041. package/dist/cli-error.d.ts +4 -0
  1042. package/dist/cli-error.d.ts.map +1 -1
  1043. package/dist/cli-error.js +6 -0
  1044. package/dist/cli-error.js.map +1 -1
  1045. package/dist/client.d.ts +7 -2
  1046. package/dist/client.d.ts.map +1 -1
  1047. package/dist/client.js +14 -7
  1048. package/dist/client.js.map +1 -1
  1049. package/dist/commands/acp.d.ts +11 -0
  1050. package/dist/commands/acp.d.ts.map +1 -0
  1051. package/dist/commands/acp.js +198 -0
  1052. package/dist/commands/acp.js.map +1 -0
  1053. package/dist/commands/agent-image.d.ts.map +1 -1
  1054. package/dist/commands/agent-image.js +15 -7
  1055. package/dist/commands/agent-image.js.map +1 -1
  1056. package/dist/commands/archive.d.ts.map +1 -1
  1057. package/dist/commands/archive.js +17 -3
  1058. package/dist/commands/archive.js.map +1 -1
  1059. package/dist/commands/attach.d.ts.map +1 -1
  1060. package/dist/commands/attach.js +7 -5
  1061. package/dist/commands/attach.js.map +1 -1
  1062. package/dist/commands/auth.d.ts +3 -0
  1063. package/dist/commands/auth.d.ts.map +1 -1
  1064. package/dist/commands/auth.js +39 -10
  1065. package/dist/commands/auth.js.map +1 -1
  1066. package/dist/commands/broadcast.js +2 -0
  1067. package/dist/commands/broadcast.js.map +1 -1
  1068. package/dist/commands/community-harness.d.ts.map +1 -1
  1069. package/dist/commands/community-harness.js +2 -1
  1070. package/dist/commands/community-harness.js.map +1 -1
  1071. package/dist/commands/compact-plan.d.ts +2 -0
  1072. package/dist/commands/compact-plan.d.ts.map +1 -1
  1073. package/dist/commands/compact-plan.js +40 -4
  1074. package/dist/commands/compact-plan.js.map +1 -1
  1075. package/dist/commands/compact.d.ts.map +1 -1
  1076. package/dist/commands/compact.js +11 -4
  1077. package/dist/commands/compact.js.map +1 -1
  1078. package/dist/commands/config.d.ts.map +1 -1
  1079. package/dist/commands/config.js +17 -3
  1080. package/dist/commands/config.js.map +1 -1
  1081. package/dist/commands/context.d.ts.map +1 -1
  1082. package/dist/commands/context.js +16 -9
  1083. package/dist/commands/context.js.map +1 -1
  1084. package/dist/commands/create.js +2 -2
  1085. package/dist/commands/create.js.map +1 -1
  1086. package/dist/commands/daemon.d.ts.map +1 -1
  1087. package/dist/commands/daemon.js +2 -0
  1088. package/dist/commands/daemon.js.map +1 -1
  1089. package/dist/commands/down.d.ts +5 -1
  1090. package/dist/commands/down.d.ts.map +1 -1
  1091. package/dist/commands/down.js +87 -3
  1092. package/dist/commands/down.js.map +1 -1
  1093. package/dist/commands/edge.d.ts +4 -0
  1094. package/dist/commands/edge.d.ts.map +1 -0
  1095. package/dist/commands/edge.js +135 -0
  1096. package/dist/commands/edge.js.map +1 -0
  1097. package/dist/commands/expand.d.ts.map +1 -1
  1098. package/dist/commands/expand.js +16 -2
  1099. package/dist/commands/expand.js.map +1 -1
  1100. package/dist/commands/export.d.ts +1 -0
  1101. package/dist/commands/export.d.ts.map +1 -1
  1102. package/dist/commands/export.js +60 -2
  1103. package/dist/commands/export.js.map +1 -1
  1104. package/dist/commands/fork.d.ts.map +1 -1
  1105. package/dist/commands/fork.js +22 -3
  1106. package/dist/commands/fork.js.map +1 -1
  1107. package/dist/commands/gateway.d.ts +39 -0
  1108. package/dist/commands/gateway.d.ts.map +1 -1
  1109. package/dist/commands/gateway.js +311 -3
  1110. package/dist/commands/gateway.js.map +1 -1
  1111. package/dist/commands/grow.js +2 -2
  1112. package/dist/commands/grow.js.map +1 -1
  1113. package/dist/commands/health.js +3 -2
  1114. package/dist/commands/health.js.map +1 -1
  1115. package/dist/commands/host.d.ts +1 -1
  1116. package/dist/commands/host.d.ts.map +1 -1
  1117. package/dist/commands/host.js +2 -2
  1118. package/dist/commands/host.js.map +1 -1
  1119. package/dist/commands/launch.d.ts.map +1 -1
  1120. package/dist/commands/launch.js +10 -3
  1121. package/dist/commands/launch.js.map +1 -1
  1122. package/dist/commands/mcp.d.ts.map +1 -1
  1123. package/dist/commands/mcp.js +113 -1
  1124. package/dist/commands/mcp.js.map +1 -1
  1125. package/dist/commands/plugin.d.ts.map +1 -1
  1126. package/dist/commands/plugin.js +2 -1
  1127. package/dist/commands/plugin.js.map +1 -1
  1128. package/dist/commands/project-worker.d.ts +25 -1
  1129. package/dist/commands/project-worker.d.ts.map +1 -1
  1130. package/dist/commands/project-worker.js +9 -7
  1131. package/dist/commands/project-worker.js.map +1 -1
  1132. package/dist/commands/project.d.ts +2 -0
  1133. package/dist/commands/project.d.ts.map +1 -1
  1134. package/dist/commands/project.js +64 -1
  1135. package/dist/commands/project.js.map +1 -1
  1136. package/dist/commands/provider.d.ts.map +1 -1
  1137. package/dist/commands/provider.js +72 -44
  1138. package/dist/commands/provider.js.map +1 -1
  1139. package/dist/commands/ps.d.ts +16 -1
  1140. package/dist/commands/ps.d.ts.map +1 -1
  1141. package/dist/commands/ps.js +145 -52
  1142. package/dist/commands/ps.js.map +1 -1
  1143. package/dist/commands/queue.d.ts +7 -1
  1144. package/dist/commands/queue.d.ts.map +1 -1
  1145. package/dist/commands/queue.js +97 -13
  1146. package/dist/commands/queue.js.map +1 -1
  1147. package/dist/commands/reconcile-session.d.ts.map +1 -1
  1148. package/dist/commands/reconcile-session.js +6 -0
  1149. package/dist/commands/reconcile-session.js.map +1 -1
  1150. package/dist/commands/release.d.ts.map +1 -1
  1151. package/dist/commands/release.js +16 -2
  1152. package/dist/commands/release.js.map +1 -1
  1153. package/dist/commands/restore-check.d.ts.map +1 -1
  1154. package/dist/commands/restore-check.js +2 -1
  1155. package/dist/commands/restore-check.js.map +1 -1
  1156. package/dist/commands/restore-packet.d.ts.map +1 -1
  1157. package/dist/commands/restore-packet.js +2 -1
  1158. package/dist/commands/restore-packet.js.map +1 -1
  1159. package/dist/commands/restore.d.ts.map +1 -1
  1160. package/dist/commands/restore.js +23 -6
  1161. package/dist/commands/restore.js.map +1 -1
  1162. package/dist/commands/scope.d.ts.map +1 -1
  1163. package/dist/commands/scope.js +5 -2
  1164. package/dist/commands/scope.js.map +1 -1
  1165. package/dist/commands/seat.d.ts +2 -0
  1166. package/dist/commands/seat.d.ts.map +1 -1
  1167. package/dist/commands/seat.js +124 -10
  1168. package/dist/commands/seat.js.map +1 -1
  1169. package/dist/commands/send.d.ts.map +1 -1
  1170. package/dist/commands/send.js +87 -56
  1171. package/dist/commands/send.js.map +1 -1
  1172. package/dist/commands/setup.d.ts +27 -0
  1173. package/dist/commands/setup.d.ts.map +1 -1
  1174. package/dist/commands/setup.js +189 -16
  1175. package/dist/commands/setup.js.map +1 -1
  1176. package/dist/commands/shrink.d.ts.map +1 -1
  1177. package/dist/commands/shrink.js +16 -2
  1178. package/dist/commands/shrink.js.map +1 -1
  1179. package/dist/commands/skill.d.ts.map +1 -1
  1180. package/dist/commands/skill.js +116 -3
  1181. package/dist/commands/skill.js.map +1 -1
  1182. package/dist/commands/slack.d.ts.map +1 -1
  1183. package/dist/commands/slack.js +11 -24
  1184. package/dist/commands/slack.js.map +1 -1
  1185. package/dist/commands/snapshot.d.ts.map +1 -1
  1186. package/dist/commands/snapshot.js +36 -10
  1187. package/dist/commands/snapshot.js.map +1 -1
  1188. package/dist/commands/specs.d.ts.map +1 -1
  1189. package/dist/commands/specs.js +11 -5
  1190. package/dist/commands/specs.js.map +1 -1
  1191. package/dist/commands/start.d.ts.map +1 -1
  1192. package/dist/commands/start.js +54 -35
  1193. package/dist/commands/start.js.map +1 -1
  1194. package/dist/commands/status.d.ts.map +1 -1
  1195. package/dist/commands/status.js +8 -2
  1196. package/dist/commands/status.js.map +1 -1
  1197. package/dist/commands/stream-outcome.d.ts +157 -0
  1198. package/dist/commands/stream-outcome.d.ts.map +1 -0
  1199. package/dist/commands/stream-outcome.js +81 -0
  1200. package/dist/commands/stream-outcome.js.map +1 -0
  1201. package/dist/commands/stream.d.ts.map +1 -1
  1202. package/dist/commands/stream.js +64 -2
  1203. package/dist/commands/stream.js.map +1 -1
  1204. package/dist/commands/terminal.d.ts +1 -0
  1205. package/dist/commands/terminal.d.ts.map +1 -1
  1206. package/dist/commands/terminal.js +35 -6
  1207. package/dist/commands/terminal.js.map +1 -1
  1208. package/dist/commands/topology-default-agent.d.ts +2 -2
  1209. package/dist/commands/topology-default-agent.d.ts.map +1 -1
  1210. package/dist/commands/topology-default-agent.js +5 -3
  1211. package/dist/commands/topology-default-agent.js.map +1 -1
  1212. package/dist/commands/transcript.d.ts.map +1 -1
  1213. package/dist/commands/transcript.js +12 -7
  1214. package/dist/commands/transcript.js.map +1 -1
  1215. package/dist/commands/unarchive.d.ts.map +1 -1
  1216. package/dist/commands/unarchive.js +16 -2
  1217. package/dist/commands/unarchive.js.map +1 -1
  1218. package/dist/commands/up.d.ts.map +1 -1
  1219. package/dist/commands/up.js +106 -35
  1220. package/dist/commands/up.js.map +1 -1
  1221. package/dist/commands/walk.d.ts.map +1 -1
  1222. package/dist/commands/walk.js +2 -1
  1223. package/dist/commands/walk.js.map +1 -1
  1224. package/dist/commands/watchdog.d.ts.map +1 -1
  1225. package/dist/commands/watchdog.js +80 -5
  1226. package/dist/commands/watchdog.js.map +1 -1
  1227. package/dist/commands/whoami.d.ts.map +1 -1
  1228. package/dist/commands/whoami.js +3 -0
  1229. package/dist/commands/whoami.js.map +1 -1
  1230. package/dist/commands/workflow-errors.js +1 -1
  1231. package/dist/commands/workflow-errors.js.map +1 -1
  1232. package/dist/commands/workflow-render.js +4 -4
  1233. package/dist/commands/workflow-render.js.map +1 -1
  1234. package/dist/commands/workflow.d.ts.map +1 -1
  1235. package/dist/commands/workflow.js +34 -15
  1236. package/dist/commands/workflow.js.map +1 -1
  1237. package/dist/config-store.d.ts +18 -2
  1238. package/dist/config-store.d.ts.map +1 -1
  1239. package/dist/config-store.js +120 -11
  1240. package/dist/config-store.js.map +1 -1
  1241. package/dist/daemon-lifecycle.d.ts +13 -4
  1242. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1243. package/dist/daemon-lifecycle.js +100 -30
  1244. package/dist/daemon-lifecycle.js.map +1 -1
  1245. package/dist/daemon-reachability.d.ts +13 -0
  1246. package/dist/daemon-reachability.d.ts.map +1 -1
  1247. package/dist/daemon-reachability.js +28 -0
  1248. package/dist/daemon-reachability.js.map +1 -1
  1249. package/dist/decisions/decisions.d.ts +203 -0
  1250. package/dist/decisions/decisions.d.ts.map +1 -0
  1251. package/dist/decisions/decisions.js +374 -0
  1252. package/dist/decisions/decisions.js.map +1 -0
  1253. package/dist/decisions/stream-consumer.d.ts +255 -0
  1254. package/dist/decisions/stream-consumer.d.ts.map +1 -0
  1255. package/dist/decisions/stream-consumer.js +282 -0
  1256. package/dist/decisions/stream-consumer.js.map +1 -0
  1257. package/dist/decisions/templates.d.ts +8 -0
  1258. package/dist/decisions/templates.d.ts.map +1 -0
  1259. package/dist/decisions/templates.js +34 -0
  1260. package/dist/decisions/templates.js.map +1 -0
  1261. package/dist/fetch-with-timeout.d.ts.map +1 -1
  1262. package/dist/fetch-with-timeout.js +19 -16
  1263. package/dist/fetch-with-timeout.js.map +1 -1
  1264. package/dist/fresh-seat-command.d.ts +18 -0
  1265. package/dist/fresh-seat-command.d.ts.map +1 -0
  1266. package/dist/fresh-seat-command.js +36 -0
  1267. package/dist/fresh-seat-command.js.map +1 -0
  1268. package/dist/front-door.d.ts +4 -0
  1269. package/dist/front-door.d.ts.map +1 -1
  1270. package/dist/front-door.js +8 -4
  1271. package/dist/front-door.js.map +1 -1
  1272. package/dist/host-bindings.d.ts +6 -0
  1273. package/dist/host-bindings.d.ts.map +1 -1
  1274. package/dist/host-bindings.js +23 -13
  1275. package/dist/host-bindings.js.map +1 -1
  1276. package/dist/index.d.ts +2 -0
  1277. package/dist/index.d.ts.map +1 -1
  1278. package/dist/index.js +4 -0
  1279. package/dist/index.js.map +1 -1
  1280. package/dist/lazy-program.d.ts.map +1 -1
  1281. package/dist/lazy-program.js +2 -0
  1282. package/dist/lazy-program.js.map +1 -1
  1283. package/dist/lib/bundle-check.d.ts.map +1 -1
  1284. package/dist/lib/bundle-check.js +13 -5
  1285. package/dist/lib/bundle-check.js.map +1 -1
  1286. package/dist/lib/run-on-host.d.ts +29 -0
  1287. package/dist/lib/run-on-host.d.ts.map +1 -0
  1288. package/dist/lib/run-on-host.js +69 -0
  1289. package/dist/lib/run-on-host.js.map +1 -0
  1290. package/dist/lib/seat-activity.d.ts +17 -0
  1291. package/dist/lib/seat-activity.d.ts.map +1 -0
  1292. package/dist/lib/seat-activity.js +29 -0
  1293. package/dist/lib/seat-activity.js.map +1 -0
  1294. package/dist/local-daemon-owner.d.ts +4 -0
  1295. package/dist/local-daemon-owner.d.ts.map +1 -1
  1296. package/dist/local-daemon-owner.js +1 -1
  1297. package/dist/local-daemon-owner.js.map +1 -1
  1298. package/dist/mcp-http.d.ts +42 -0
  1299. package/dist/mcp-http.d.ts.map +1 -0
  1300. package/dist/mcp-http.js +232 -0
  1301. package/dist/mcp-http.js.map +1 -0
  1302. package/dist/mcp-server.d.ts +30 -2
  1303. package/dist/mcp-server.d.ts.map +1 -1
  1304. package/dist/mcp-server.js +1126 -407
  1305. package/dist/mcp-server.js.map +1 -1
  1306. package/dist/rig-handle.d.ts +18 -1
  1307. package/dist/rig-handle.d.ts.map +1 -1
  1308. package/dist/rig-handle.js +19 -2
  1309. package/dist/rig-handle.js.map +1 -1
  1310. package/dist/seat-launch-additions-lines.d.ts +11 -0
  1311. package/dist/seat-launch-additions-lines.d.ts.map +1 -0
  1312. package/dist/seat-launch-additions-lines.js +14 -0
  1313. package/dist/seat-launch-additions-lines.js.map +1 -0
  1314. package/dist/terminal-window.d.ts +1 -1
  1315. package/dist/terminal-window.d.ts.map +1 -1
  1316. package/dist/terminal-window.js +50 -22
  1317. package/dist/terminal-window.js.map +1 -1
  1318. package/package.json +1 -1
  1319. package/tui/dist/attention/attention-model.d.ts +3 -1
  1320. package/tui/dist/attention/attention-model.d.ts.map +1 -1
  1321. package/tui/dist/attention/attention-model.js +68 -1
  1322. package/tui/dist/attention/attention-model.js.map +1 -1
  1323. package/tui/dist/commands/registry.d.ts.map +1 -1
  1324. package/tui/dist/commands/registry.js +2 -0
  1325. package/tui/dist/commands/registry.js.map +1 -1
  1326. package/tui/dist/config/config-model.d.ts.map +1 -1
  1327. package/tui/dist/config/config-model.js +3 -1
  1328. package/tui/dist/config/config-model.js.map +1 -1
  1329. package/tui/dist/connections/connections-model.d.ts +0 -5
  1330. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  1331. package/tui/dist/connections/connections-model.js +1 -1
  1332. package/tui/dist/connections/connections-model.js.map +1 -1
  1333. package/tui/dist/daemon-client.d.ts +20 -0
  1334. package/tui/dist/daemon-client.d.ts.map +1 -1
  1335. package/tui/dist/daemon-client.js +27 -0
  1336. package/tui/dist/daemon-client.js.map +1 -1
  1337. package/tui/dist/hydrate.d.ts.map +1 -1
  1338. package/tui/dist/hydrate.js +22 -7
  1339. package/tui/dist/hydrate.js.map +1 -1
  1340. package/tui/dist/live.d.ts +10 -1
  1341. package/tui/dist/live.d.ts.map +1 -1
  1342. package/tui/dist/live.js +56 -7
  1343. package/tui/dist/live.js.map +1 -1
  1344. package/tui/dist/main.js +50 -3
  1345. package/tui/dist/main.js.map +1 -1
  1346. package/tui/dist/render.d.ts.map +1 -1
  1347. package/tui/dist/render.js +121 -10
  1348. package/tui/dist/render.js.map +1 -1
  1349. package/tui/dist/topology/fixture.js +1 -1
  1350. package/tui/dist/topology/fixture.js.map +1 -1
  1351. package/tui/dist/topology/glyphs.js +1 -1
  1352. package/tui/dist/topology/glyphs.js.map +1 -1
  1353. package/tui/dist/topology/graph-types.d.ts +1 -0
  1354. package/tui/dist/topology/graph-types.d.ts.map +1 -1
  1355. package/tui/dist/types.d.ts +78 -0
  1356. package/tui/dist/types.d.ts.map +1 -1
  1357. package/tui/dist/version-skew.d.ts +24 -0
  1358. package/tui/dist/version-skew.d.ts.map +1 -0
  1359. package/tui/dist/version-skew.js +37 -0
  1360. package/tui/dist/version-skew.js.map +1 -0
  1361. package/ui/dist/assets/{index-CVgod3Pm.js → index-Blg-p32B.js} +92 -92
  1362. package/ui/dist/index.html +1 -1
  1363. package/daemon/dist/domain/provider/subscription-moves.d.ts +0 -77
  1364. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +0 -1
  1365. package/daemon/dist/domain/provider/subscription-moves.js +0 -140
  1366. package/daemon/dist/domain/provider/subscription-moves.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { physicalSessionName } from "./session-registry.js";
1
2
  import { currentClaudeMcpMenu } from "./claude-mcp-menu.js";
2
3
  import stringWidth from "string-width";
3
4
  import { CODEX_TURN_STATUS_PATTERN } from "./codex-pane-patterns.js";
@@ -10,7 +11,9 @@ import { DraftAwareDelivery } from "./draft-aware-delivery.js";
10
11
  import { claudeResumeRotation } from "./session-registry.js";
11
12
  import { latestHookPermissionPending, latestHookWaitsOnPerson } from "./agent-activity-store.js";
12
13
  import { DeliveryGuardError } from "./seat-delivery-guard.js";
14
+ import { withUrgentLine } from "./urgent-line.js";
13
15
  import { wrapPaneEnvelope, appendDeliveredSegment } from "../lib/pane-envelope.js";
16
+ import { isBoundTerminalSeat } from "./terminal-seat.js";
14
17
  import { SeatIdentityStore } from "./seat-identity-store.js";
15
18
  import { isShellForeground } from "./shell-classifier.js";
16
19
  import { observeClaudeDelivery, verifyCodexPaneProcess } from "./native-process-lineage.js";
@@ -134,6 +137,10 @@ const CLAUDE_STATUS_WARNINGS = [
134
137
  /^✘ Auto-update failed: no write permission to npm prefix · Run claude doctor$/,
135
138
  /^tmux focus-events off · add 'set -g focus-events on' to ~\/\.tmux\.conf and re…$/,
136
139
  /^You've used (?:\d|[1-9]\d)% of your weekly limit · resets \d{1,2}(?::\d{2})?(?:am|pm) \(UTC\)$/,
140
+ // #1641: Claude 2.1.293's update banner, whatever installer it names.
141
+ /^Update available! Run: \S.*$/,
142
+ // The context hint, as Claude prints it; reported as the last line below the mode bar on one seat.
143
+ /^new task\? \/clear to save \d+(?:\.\d+)?k tokens$/,
137
144
  ];
138
145
  // Current Claude status rows need not end in "thinking)" or show "esc to interrupt".
139
146
  // Completed summaries such as "✻ Crunched for 2s" lack the live ellipsis/timer shape.
@@ -205,7 +212,7 @@ function findClaudeComposer(paneContent, options = {}) {
205
212
  }
206
213
  return { text: prompt.slice(indent.length), bar: lines[bar].trim(), framed, hasWarnings: bar < lines.length - 1, supportedWarningFooter, modeFooter, headSeen, liveStatus };
207
214
  }
208
- const unknown = () => ({ state: "unknown", rows: [], columns: 0, cursorAtEnd: false, collapsedPaste: null });
215
+ const unknown = (unknownReason, cursor) => ({ state: "unknown", rows: [], columns: 0, cursorAtEnd: false, collapsedPaste: null, unknownReason, ...(cursor ? { cursor } : {}) });
209
216
  const rule = (line) => /^[─━═-]{6,}(?: .+ [─━═-]+)?$/.test(line.trim());
210
217
  const codexFooter = (line) => isComposerFooter(line)
211
218
  || /(?:\b\d+% context left\b|\bContext \[)/.test(line);
@@ -250,17 +257,19 @@ function styledTextLines(screen) {
250
257
  */
251
258
  export function inspectComposerInput(snapshot, runtime = null, owned) {
252
259
  const promptClass = composerPromptClassForRuntime(runtime);
253
- if (!snapshot || snapshot.inMode)
254
- return unknown();
260
+ if (!snapshot)
261
+ return unknown("capture_unavailable");
262
+ if (snapshot.inMode)
263
+ return unknown("pane_in_mode", snapshot.cursor);
255
264
  const { x, y, width, height } = snapshot.cursor;
256
265
  if (![x, y, width, height].every(Number.isInteger) || x < 0 || y < 0 || x >= width || y >= height || width < 3 || height < 1)
257
- return unknown();
266
+ return unknown("invalid_cursor", snapshot.cursor);
258
267
  const styled = styledTextLines(snapshot.screen);
259
268
  const lines = styled.map(line => line.text);
260
269
  if (lines.at(-1) === "")
261
270
  lines.pop();
262
271
  if (lines.length > height || !lines[y])
263
- return unknown();
272
+ return unknown("incomplete_frame", snapshot.cursor);
264
273
  const footerAt = findClaudeFooterIndex(lines);
265
274
  const footer = lines[footerAt]?.trim() ?? "";
266
275
  let claudeEnd = footerAt - 1;
@@ -312,6 +321,7 @@ export function inspectComposerInput(snapshot, runtime = null, owned) {
312
321
  // A literal placeholder or text before a moved cursor remains authored input.
313
322
  const cursorRow = y - start;
314
323
  let ghost;
324
+ let suggestionRows = [];
315
325
  const currentRow = rows[cursorRow];
316
326
  let cursorOffset = x === prefix ? 0 : -1;
317
327
  let offset = 0;
@@ -326,6 +336,7 @@ export function inspectComposerInput(snapshot, runtime = null, owned) {
326
336
  faint: styled[y + i].faintCells.slice(prefix + (i === 0 ? cursorOffset : 0), prefix + row.length),
327
337
  }));
328
338
  if (suffix.some(row => row.text.length > 0) && suffix.every(row => row.faint.every(Boolean))) {
339
+ suggestionRows = suffix.map(row => row.text);
329
340
  ghost = { line: y, offset: prefix + cursorOffset, continuationRows: rows.length - cursorRow - 1 };
330
341
  rows.splice(cursorRow + 1);
331
342
  rows[cursorRow] = currentRow.slice(0, cursorOffset);
@@ -347,7 +358,7 @@ export function inspectComposerInput(snapshot, runtime = null, owned) {
347
358
  const cursorAtEnd = y === start + last && x === prefix + stringWidth(visible[last] ?? "");
348
359
  const label = visible.length === 1 && COMPOSER_COLLAPSED_PASTE_PATTERN.test(visible[0]) ? visible[0] : null;
349
360
  const frame = JSON.stringify([prompt.glyph, prefix, width, footer]);
350
- const input = { state: empty ? "empty" : "text", rows: visible, columns: width - prefix, cursorAtEnd, collapsedPaste: label, frame,
361
+ const input = { state: empty ? "empty" : "text", cursor: { ...snapshot.cursor }, suggestionRows, rows: visible, columns: width - prefix, cursorAtEnd, collapsedPaste: label, frame,
351
362
  ...(ghost ? { ghost } : {}) };
352
363
  // A numbered body is allowed only as this operation's exact text in its
353
364
  // previously empty composer. A newly observed menu gains no such authority.
@@ -360,7 +371,7 @@ export function inspectComposerInput(snapshot, runtime = null, owned) {
360
371
  }
361
372
  candidates.push(input);
362
373
  }
363
- return candidates.length === 1 ? candidates[0] : unknown();
374
+ return candidates.length === 1 ? candidates[0] : unknown(candidates.length ? "ambiguous_composer" : "unrecognized_composer", snapshot.cursor);
364
375
  }
365
376
  function findPromptDraftBeforeFooter(paneContent) {
366
377
  const rawLines = paneContent.split("\n").map((line) => line.trimEnd());
@@ -502,8 +513,19 @@ export function classifyPaneActivity(paneContent, options = {}) {
502
513
  ? promptScanLines.slice(oldQuestionEnd + 1)
503
514
  : options.runtime === "codex" && !permissionPromptEvidence
504
515
  ? codexCurrentSelectionLines(paneContent) ?? promptScanLines : promptScanLines;
516
+ const currentComposer = options.currentClaudeDialogueOnly && options.runtime === "claude-code"
517
+ ? composerRegion(paneContent, "claude-code")
518
+ : null;
519
+ const currentComposerText = currentComposer?.body ?? (currentComposer?.markerLine !== null && currentComposer?.markerLine !== undefined
520
+ && currentComposer.closingRuleLine !== null && currentComposer.closingRuleLine !== undefined
521
+ ? paneContent.split(/\r?\n/).slice(currentComposer.markerLine - 1, currentComposer.closingRuleLine - 1).join("\n")
522
+ : null);
523
+ const currentComposerSelection = currentComposerText
524
+ ? findPatternEvidence(currentComposerText.split("\n").map(line => line.trimStart()), [COMPOSER_SELECTION_SCAN_PATTERN])
525
+ : null;
505
526
  const selectionPromptEvidence = currentClaudeMcpMenu(paneContent) ?? findCurrentClaudeQuestion(paneContent) ??
506
- findPatternEvidence(selectionLines, [COMPOSER_SELECTION_SCAN_PATTERN]);
527
+ currentComposerSelection ?? (options.currentClaudeDialogueOnly ? null
528
+ : findPatternEvidence(selectionLines, [COMPOSER_SELECTION_SCAN_PATTERN]));
507
529
  if (selectionPromptEvidence) {
508
530
  return {
509
531
  state: "attention",
@@ -604,7 +626,7 @@ export function classifyPaneActivity(paneContent, options = {}) {
604
626
  export async function probeSessionActivity(input) {
605
627
  // Capture routing and observation labels must share the entry context. The
606
628
  // caller may reuse/mutate its input while hasSession is pending.
607
- const { sessionName, runtime, attachmentType, tmuxAdapter, now, captureObserver, binding } = input;
629
+ const { sessionName, runtime, attachmentType, tmuxAdapter, now, captureObserver, binding, visibleScreenOnly } = input;
608
630
  const sampledAt = (now ?? new Date()).toISOString();
609
631
  // P2: attempt identity frozen at entry, before any await. Early returns below
610
632
  // take no capture and are not observed.
@@ -709,10 +731,16 @@ export async function probeSessionActivity(input) {
709
731
  };
710
732
  const captureSeq = observed ? nextCaptureSeq++ : 0;
711
733
  try {
734
+ const capture = (opts) => visibleScreenOnly
735
+ ? opts ? tmuxAdapter.capturePaneScreen(sessionName, opts) : tmuxAdapter.capturePaneScreen(sessionName)
736
+ : opts ? tmuxAdapter.capturePaneContent(sessionName, 20, opts) : tmuxAdapter.capturePaneContent(sessionName, 20);
712
737
  const snapshot = input.composerSnapshot ? await input.composerSnapshot().catch(() => null) : null;
713
- const paneContent = snapshot?.screen ?? await tmuxAdapter.capturePaneContent(sessionName, 20);
738
+ const paneContent = snapshot?.screen ?? await capture();
714
739
  const capturedAt = new Date().toISOString();
715
- const classifyOptions = { timerlessStatusIsLive: input.timerlessStatusIsLive === true };
740
+ const classifyOptions = {
741
+ timerlessStatusIsLive: input.timerlessStatusIsLive === true,
742
+ currentClaudeDialogueOnly: input.currentClaudeDialogueOnly === true,
743
+ };
716
744
  let classification = communityHarnessPaneActivity(classifyPaneActivity(paneContent ?? "", { ...classifyOptions,
717
745
  composerSnapshot: snapshot ?? undefined, runtime }), input.communityHarness);
718
746
  // Claude renders its prompt suggestion faint, which the plain capture loses. When a Claude pane reads
@@ -721,7 +749,7 @@ export async function probeSessionActivity(input) {
721
749
  // the verdict is then the styled frame's, as an empty composer. Anything else leaves the draft standing.
722
750
  let slot = captureSlot(paneContent, capturedAt, captureSeq);
723
751
  if (classification.reason === "prompt_draft" && runtime === "claude-code" && paneContent) {
724
- const styled = await tmuxAdapter.capturePaneContent(sessionName, 20, { escapeSequences: true }).catch(() => null);
752
+ const styled = await capture({ escapeSequences: true }).catch(() => null);
725
753
  const later = styled ? classifyStyledFrame(styled, classifyOptions) : null;
726
754
  const newer = !later ? null
727
755
  : later.asIs.state === "agent_active" || (later.asIs.state === "attention" && later.asIs.reason !== "prompt_draft") ? later.asIs
@@ -1496,8 +1524,6 @@ function callerCancelled(sessionName) {
1496
1524
  return { ok: false, sessionName, sent: false, inputPhase: "not_reached", reason: CALLER_CANCELLED,
1497
1525
  error: `The request was cancelled before any input started. Nothing was typed into '${sessionName}', and nothing will be.` };
1498
1526
  }
1499
- /** The evidence of a verified send whose path does not read the input box (an audited prompt answer). */
1500
- const INPUT_BOX_UNCHECKED = { seat: "unchecked", before: "unchecked", after: "unchecked", sameProcess: false };
1501
1527
  export class SessionTransport {
1502
1528
  db;
1503
1529
  guardedDelivery;
@@ -1546,6 +1572,7 @@ export class SessionTransport {
1546
1572
  }
1547
1573
  /** Freeze the registration and binding before asking tmux about this name. */
1548
1574
  absenceProbeTarget(sessionName) {
1575
+ sessionName = physicalSessionName(this.db, sessionName);
1549
1576
  return this.db
1550
1577
  .prepare(`
1551
1578
  SELECT s.id AS session_id, n.id AS node_id, s.session_name AS session_name, b.tmux_pane AS tmux_pane
@@ -1578,6 +1605,7 @@ export class SessionTransport {
1578
1605
  });
1579
1606
  }
1580
1607
  getSessionMeta(sessionName) {
1608
+ sessionName = physicalSessionName(this.db, sessionName);
1581
1609
  // One existing statement; P2 reads the binding columns it already joins plus the
1582
1610
  // same current-occupant subselect the delivery guard uses. No extra query.
1583
1611
  const row = this.db.prepare(`
@@ -1646,6 +1674,9 @@ export class SessionTransport {
1646
1674
  return { ok: true, sessions };
1647
1675
  }
1648
1676
  resolveBySessionName(sessionName) {
1677
+ const current = this.sessionRegistry.resolveAddress(sessionName);
1678
+ if (current)
1679
+ return { ok: true, sessions: [{ sessionName, rigName: current.rigName, nodeLogicalId: current.logicalId }] };
1649
1680
  const sessionRows = this.db
1650
1681
  .prepare("SELECT node_id, session_name FROM sessions WHERE session_name = ? ORDER BY id DESC")
1651
1682
  .all(sessionName);
@@ -1700,9 +1731,10 @@ export class SessionTransport {
1700
1731
  const sessions = [];
1701
1732
  const seen = new Set();
1702
1733
  for (const name of sessionNames) {
1703
- if (seen.has(name))
1734
+ const identity = this.sessionRegistry.resolveAddress(name)?.nodeId ?? name;
1735
+ if (seen.has(identity))
1704
1736
  continue;
1705
- seen.add(name);
1737
+ seen.add(identity);
1706
1738
  const resolved = this.resolveBySessionName(name);
1707
1739
  if (!resolved.ok)
1708
1740
  return resolved;
@@ -1808,11 +1840,14 @@ export class SessionTransport {
1808
1840
  }
1809
1841
  deliveryTarget(sessionName) { return this.tmuxAdapter.deliveryGuard?.maybeTarget(sessionName) ?? null; }
1810
1842
  get deliveryGuard() { return this.tmuxAdapter.deliveryGuard; }
1811
- retentionTarget(sessionName) {
1843
+ /** With an input, whether the seat's level would hold that input; without one, whether its mode holds everything. */
1844
+ retentionTarget(sessionName, input) {
1812
1845
  const guard = this.tmuxAdapter.deliveryGuard;
1813
1846
  const target = guard?.maybeTarget(sessionName);
1814
1847
  if (!guard || !target)
1815
1848
  return null;
1849
+ if (input)
1850
+ return guard.holdsInput(target.nodeId, input) ? target : null;
1816
1851
  const pref = guard.preference(target.nodeId);
1817
1852
  return pref.desired || pref.effective ? target : null;
1818
1853
  }
@@ -1827,8 +1862,56 @@ export class SessionTransport {
1827
1862
  /** Deliver text and Enter to the resolved recipient under the send guards.
1828
1863
  * With verification requested, compare rendered message counts, excluding
1829
1864
  * agent input; a confirmed render does not prove agent consumption. */
1865
+ /** The managed compaction state OpenRig has recorded for a seat (the compaction enforcer's), for the sender's notice. */
1866
+ compactionObserver;
1867
+ setCompactionObserver(observer) {
1868
+ this.compactionObserver = observer;
1869
+ }
1870
+ /**
1871
+ * Deliver as always; when the seat was in a managed compaction or restore OpenRig had recorded, before or after the
1872
+ * send, add a notice saying so. The notice is context beside the send's own result, which it never changes.
1873
+ */
1830
1874
  async send(sessionName, text, opts) {
1875
+ // A terminal seat's shell would run the envelope lines as commands. Swap before the guard,
1876
+ // whose outbox body, hash and delivery-ID identity all key on the text actually typed.
1877
+ // Without the envelope there's no Sent: line, so stampISO is dropped too: the delivered-latency
1878
+ // segment must never edit a line of the exact text.
1879
+ if (opts?.exactText !== undefined && !opts.dangerouslyInteract) {
1880
+ const { exactText, ...rest } = opts;
1881
+ if (!isBoundTerminalSeat(this.db, sessionName))
1882
+ return this.send(sessionName, text, rest);
1883
+ return { ...(await this.send(sessionName, exactText, { ...rest, stampISO: undefined, typedExactly: true })), envelopeOmitted: true };
1884
+ }
1885
+ const observe = () => { try {
1886
+ return this.compactionObserver?.(sessionName) ?? null;
1887
+ }
1888
+ catch {
1889
+ return null;
1890
+ } };
1891
+ const before = observe();
1892
+ const result = await this.sendWithoutCompactionNotice(sessionName, text, opts);
1893
+ const seen = before ? { observed: "before_send", ...before } : (() => { const after = observe(); return after ? { observed: "after_send", ...after } : null; })();
1894
+ if (!seen)
1895
+ return result;
1896
+ const when = seen.observed === "before_send" ? "when this send started" : "when this send finished";
1897
+ return { ...result, managedCompaction: { stage: seen.stage, observed: seen.observed,
1898
+ notice: `${sessionName} was ${seen.detail} (${when}, as OpenRig's managed compaction recorded it). This doesn't mean the restore has finished; if this message matters, check the reply and follow up.` } };
1899
+ }
1900
+ async sendWithoutCompactionNotice(sessionName, text, opts) {
1901
+ if (!opts?.urgent)
1902
+ return this.sendClassified(sessionName, text, opts);
1903
+ // Shown on delivery, and kept with a held message: who marked it urgent.
1904
+ console.info(`[transport] urgent send to ${sessionName}, marked by ${opts.urgent.by}`);
1905
+ // An explicit prompt answer is typed as keys, and a submit-only retry types no text at all: the label's letters would
1906
+ // act as keystrokes (a menu shortcut, say). A terminal seat's exact text would run the label as a command. Their bytes
1907
+ // stay exactly as given; the mark stays in the result and the log.
1908
+ const rawKeys = opts.dangerouslyInteract === true || opts.submitOnly === true || opts.typedExactly === true;
1909
+ const result = await this.sendClassified(sessionName, rawKeys ? text : withUrgentLine(text, opts.urgent.by), opts);
1910
+ return { ...result, urgent: opts.urgent };
1911
+ }
1912
+ async sendClassified(sessionName, text, opts) {
1831
1913
  const guard = this.tmuxAdapter.deliveryGuard;
1914
+ const admission = { source: opts?.openrigNotice ? "openrig" : "agent", urgent: !!opts?.urgent, override: opts?.dangerouslyInteract === true };
1832
1915
  if (!guard) {
1833
1916
  // No guard, so no recorded delivery to read back: a caller already gone ends the send here.
1834
1917
  if (callerSignal(opts)?.aborted)
@@ -1840,7 +1923,9 @@ export class SessionTransport {
1840
1923
  return result;
1841
1924
  }
1842
1925
  const outbox = new OutboxHandler(this.db);
1843
- const ids = opts?.committedOutboxIds ?? [opts?.deliveryId ?? `guard-send-${randomUUID()}`];
1926
+ let ids = opts?.committedOutboxIds ?? [opts?.deliveryId ?? `guard-send-${randomUUID()}`];
1927
+ // A combined wake's members are re-checked under the lease, against the configuration that decides this send.
1928
+ const recheck = (held) => opts?.recheckMembers?.((input) => guard.holdsInput(guard.target(sessionName).nodeId, input), held) ?? null;
1844
1929
  const retainedResult = (reason = "typing_guard_enabled") => ({ ok: true, sessionName, outcome: "retained", sent: false, verified: false,
1845
1930
  outboxIds: ids, reason, warning: `Retained, not delivered. Inspect with rig seat held-messages ${sessionName}; changing protection does not replay held messages.` });
1846
1931
  try {
@@ -1855,23 +1940,6 @@ export class SessionTransport {
1855
1940
  }
1856
1941
  }
1857
1942
  }
1858
- const existing = this.guardedDelivery?.existing(sessionName, text, opts ?? {}, ids);
1859
- if (existing)
1860
- return existing;
1861
- // Idempotent readback also after disabling: an old retained ID never becomes a new send.
1862
- // (P2: this readback is NOT a new retention and is outside the retained_no_write seam.)
1863
- if (!opts?.committedOutboxIds && opts?.deliveryId) {
1864
- const prior = outbox.getById(opts.deliveryId);
1865
- if (prior?.guardBinding) {
1866
- if (prior.body !== text || prior.destinationSession !== sessionName || prior.senderSession !== (opts.actorSession ?? "unknown")) {
1867
- return { ok: false, sessionName, sent: false, reason: "delivery_identity_conflict", error: "Delivery ID names different content/identity." };
1868
- }
1869
- if (prior.deliveryState === "retained" || prior.deliveryState === "retired")
1870
- return retainedResult();
1871
- }
1872
- }
1873
- // A recorded delivery has answered with its own outcome above; with nothing recorded, a caller already gone
1874
- // ends the send here.
1875
1943
  if (callerSignal(opts)?.aborted)
1876
1944
  return callerCancelled(sessionName);
1877
1945
  // #1084 — the idle wait must not occupy the seat's serial lease: a long
@@ -1912,27 +1980,24 @@ export class SessionTransport {
1912
1980
  }
1913
1981
  }
1914
1982
  const result = await guard.operation(sessionName, async () => {
1915
- if (this.guardedDelivery && !sendOpts?.submitOnly && guard.needsInputCheck(sessionName)) {
1916
- // Up to its durable record a draft-aware send is still the caller's: one that went away while this send
1917
- // waited for the lease ends here, unless a record for this delivery already exists. DraftAwareDelivery.send
1918
- // commits that record synchronously before its first await, so no cancellation lands between this check
1919
- // and the commit; after the commit a caller going away doesn't cancel it.
1920
- if (callerSignal(sendOpts)?.aborted && !this.guardedDelivery.existing(sessionName, text, sendOpts ?? {}, ids)) {
1983
+ const members = recheck(false);
1984
+ const memberText = members?.text ?? text;
1985
+ const memberOpts = members ? { ...sendOpts, committedOutboxIds: members.outboxIds } : sendOpts;
1986
+ if (this.guardedDelivery && !memberOpts?.submitOnly && !memberOpts?.dangerouslyInteract && guard.needsInputCheck(sessionName)) {
1987
+ if (callerSignal(memberOpts)?.aborted)
1921
1988
  return callerCancelled(sessionName);
1922
- }
1923
- return this.guardedDelivery.send(sessionName, text, { ...sendOpts, signal: undefined }, ids);
1989
+ return this.guardedDelivery.send(sessionName, memberText, memberOpts ?? {}, memberOpts?.committedOutboxIds ?? [`guard-send-${randomUUID()}`]);
1924
1990
  }
1925
- const prior = this.guardedDelivery?.existing(sessionName, text, sendOpts ?? {}, ids);
1926
- return prior ?? this.sendUnguarded(sessionName, text, sendOpts);
1991
+ return this.sendUnguarded(sessionName, memberText, memberOpts);
1927
1992
  }, async (target) => {
1928
- const prior = this.guardedDelivery?.existing(sessionName, text, sendOpts ?? {}, ids);
1929
- if (prior)
1930
- return prior;
1931
1993
  if (opts?.submitOnly)
1932
1994
  return { ok: false, sessionName, sent: false, reason: "typing_guard_enabled", error: "Typing guard prevents submit-only; no Enter was sent." };
1933
1995
  // Nothing is retained yet: a caller that went away while this send waited for the lease ends it here.
1934
1996
  if (callerSignal(opts)?.aborted)
1935
1997
  return callerCancelled(sessionName);
1998
+ const members = recheck(true);
1999
+ if (members)
2000
+ ids = members.outboxIds;
1936
2001
  this.db.transaction(() => {
1937
2002
  for (const id of ids) {
1938
2003
  const prior = opts?.committedOutboxIds ? outbox.getById(id) : null;
@@ -1940,7 +2005,7 @@ export class SessionTransport {
1940
2005
  throw new Error("Committed wake target/ID mismatch");
1941
2006
  outbox.retain(prior ? { ...prior, outboxId: id, tags: prior.tags ?? undefined, auditPointer: prior.auditPointer ?? undefined } : {
1942
2007
  outboxId: id, senderSession: opts?.actorSession ?? "unknown", destinationSession: sessionName, body: text, auditPointer: opts?.auditPointer,
1943
- identityProvenance: opts?.identityProvenance,
2008
+ identityProvenance: opts?.identityProvenance, ...(opts?.urgent ? { urgency: "urgent" } : {}),
1944
2009
  }, target, !!opts?.committedOutboxIds);
1945
2010
  }
1946
2011
  })();
@@ -1960,7 +2025,7 @@ export class SessionTransport {
1960
2025
  });
1961
2026
  }
1962
2027
  return retainedResult();
1963
- });
2028
+ }, admission);
1964
2029
  if (result.ok && result.sent !== false) {
1965
2030
  await this.reconcileStartupReadiness(sessionName).catch(() => { });
1966
2031
  }
@@ -2011,6 +2076,7 @@ export class SessionTransport {
2011
2076
  return null;
2012
2077
  meta = this.getSessionMeta(sessionName);
2013
2078
  bound = guard.target(sessionName);
2079
+ sessionName = bound.session;
2014
2080
  }
2015
2081
  catch {
2016
2082
  return null;
@@ -2094,6 +2160,7 @@ export class SessionTransport {
2094
2160
  attachmentType: meta.attachmentType,
2095
2161
  timeoutMs,
2096
2162
  binding: { sessionName, nodeId: meta.nodeId, occupant: meta.occupant, pane: meta.pane },
2163
+ privateInput: opts.dangerouslyInteract === true,
2097
2164
  readinessFromPaneOnly: opts.readinessFromPaneOnly === true,
2098
2165
  signal: callerSignal(opts), cancelledBy: "caller",
2099
2166
  });
@@ -2113,6 +2180,7 @@ export class SessionTransport {
2113
2180
  return { ok: true, evidence: { activity: preWait.activity, waitedMs: preWait.waitedMs, attempts: preWait.attempts, deadlineAt }, bound };
2114
2181
  }
2115
2182
  async sendUnguarded(sessionName, text, opts) {
2183
+ sessionName = physicalSessionName(this.db, sessionName);
2116
2184
  let preVerifyContent = null;
2117
2185
  const sessionMeta = this.getSessionMeta(sessionName);
2118
2186
  const runtime = sessionMeta.runtime;
@@ -2162,14 +2230,18 @@ export class SessionTransport {
2162
2230
  error: `'${sessionName}' is in a tmux mode (such as copy mode) and could not leave it, so Enter would not reach the agent. ${outcome}` };
2163
2231
  };
2164
2232
  // S01/S02 P2 observation context, frozen at attempt entry before any await.
2165
- const observed = this.captureObserver ? {
2233
+ const observed = this.captureObserver && !opts?.dangerouslyInteract ? {
2166
2234
  attemptId: randomUUID(),
2167
2235
  binding: Object.freeze({ sessionName, nodeId: sessionMeta.nodeId, occupant: sessionMeta.occupant, pane: sessionMeta.pane }),
2168
2236
  pre: (opts?.verify ? { state: "not_reached" } : { state: "not_requested" }),
2169
2237
  post: (opts?.verify ? { state: "not_reached" } : { state: "not_requested" }),
2170
2238
  sentHash: null,
2171
2239
  } : null;
2240
+ let existingInput;
2241
+ let overrideBeforePaste;
2172
2242
  const observe = (result) => {
2243
+ if (existingInput)
2244
+ result = { ...result, existingInput };
2173
2245
  if (result.ok && runtimeAdvisory)
2174
2246
  result = { ...result, warning: [runtimeAdvisory, result.warning].filter(Boolean).join(" ") };
2175
2247
  if (observed && this.captureObserver) {
@@ -2353,6 +2425,7 @@ export class SessionTransport {
2353
2425
  attachmentType: sessionMeta.attachmentType,
2354
2426
  timeoutMs: waitForIdleMs,
2355
2427
  binding: observed?.binding,
2428
+ privateInput: opts?.dangerouslyInteract === true,
2356
2429
  readinessFromPaneOnly: opts?.readinessFromPaneOnly === true,
2357
2430
  signal: callerSignal(opts), cancelledBy: "caller",
2358
2431
  });
@@ -2411,6 +2484,7 @@ export class SessionTransport {
2411
2484
  // Message-only: the re-wait runs on the leftover budget, but the
2412
2485
  // timeout names the configured --wait-for-idle value.
2413
2486
  timeoutLabelMs: waitForIdleMs,
2487
+ privateInput: opts.dangerouslyInteract === true,
2414
2488
  binding: observed?.binding,
2415
2489
  readinessFromPaneOnly: opts.readinessFromPaneOnly === true,
2416
2490
  signal: callerSignal(opts), cancelledBy: "caller",
@@ -2439,7 +2513,7 @@ export class SessionTransport {
2439
2513
  attachmentType: sessionMeta.attachmentType,
2440
2514
  binding: observed?.binding,
2441
2515
  readinessFromPaneOnly: opts.readinessFromPaneOnly === true,
2442
- });
2516
+ }, opts.dangerouslyInteract === true);
2443
2517
  if (recheck.state !== "idle") {
2444
2518
  const late = recheck.state === "needs_input"
2445
2519
  ? {
@@ -2486,14 +2560,15 @@ export class SessionTransport {
2486
2560
  // the positive-picker guard (FR-4 — the footgun separation). The advisory is carried on the
2487
2561
  // success result via `warning` so the honest telemetry is surfaced.
2488
2562
  let sendAdvisory;
2489
- const promptOverride = waitForIdleMs === undefined && Boolean(opts?.dangerouslyInteract);
2490
- if (waitForIdleMs === undefined) {
2563
+ // Broadcast can carry wait + override: after waiting, it still uses the same deliberate-input boundary.
2564
+ const promptOverride = Boolean(opts?.dangerouslyInteract);
2565
+ if (waitForIdleMs === undefined || promptOverride) {
2491
2566
  const readiness = await this.classifySendReadiness({
2492
2567
  sessionName,
2493
2568
  runtime,
2494
2569
  attachmentType: sessionMeta.attachmentType,
2495
2570
  binding: observed?.binding,
2496
- });
2571
+ }, opts?.dangerouslyInteract === true);
2497
2572
  // Explicit interaction selects key input even when readiness cannot recognize the prompt.
2498
2573
  // Only bypassing a positive picker requires a successful audit; other states already sent.
2499
2574
  if (opts?.dangerouslyInteract) {
@@ -2505,12 +2580,34 @@ export class SessionTransport {
2505
2580
  error: "--dangerously-interact requires --reason explaining why the prompt is being driven. No text was sent.",
2506
2581
  };
2507
2582
  }
2508
- const audit = this.recordPromptOverride({
2509
- sessionName,
2510
- readiness,
2511
- actorSession: opts.actorSession ?? null,
2512
- overrideReason: opts.reason ?? null,
2513
- });
2583
+ const auditInput = { sessionName, readiness, actorSession: opts.actorSession ?? null, overrideReason: opts.reason ?? null };
2584
+ const target = this.tmuxAdapter.deliveryGuard?.maybeTarget(sessionName);
2585
+ // Native menus retain their audited key-driving path. Otherwise inspect under the same lease,
2586
+ // after buffer preparation, immediately before the adapter's final identity check and paste.
2587
+ if (target && readiness.state !== "needs_input") {
2588
+ overrideBeforePaste = async () => {
2589
+ const unchecked = opts.typeWithoutChecking === true;
2590
+ const snapshot = unchecked ? null : await this.readWithinDeadline("session_transport.override_input", () => this.tmuxAdapter.captureComposerSnapshot(target.pane ?? sessionName));
2591
+ const input = unchecked ? null : inspectComposerInput(snapshot, runtime);
2592
+ const classification = unchecked ? "not_checked" : input.state === "unknown" ? "unreadable"
2593
+ : input.state === "text" ? "typed_or_pasted" : input.ghost ? "suggestion_only" : "empty";
2594
+ existingInput = { target, classification, rows: input?.rows ?? [], suggestionRows: input?.suggestionRows ?? [],
2595
+ cursor: input?.cursor ?? null, fullContentsVisible: !!input && input.state !== "unknown" && !input.collapsedPaste,
2596
+ ...(input?.unknownReason ? { reason: input.unknownReason } : {}), cleared: false };
2597
+ const stopped = classification === "typed_or_pasted" || classification === "unreadable";
2598
+ const audit = this.recordPromptOverride({ ...auditInput, input: { classification, visibleRows: existingInput.rows.length,
2599
+ suggestionRows: existingInput.suggestionRows.length, choice: unchecked ? "type_without_checking" : "inspect",
2600
+ outcome: stopped ? "stopped" : "proceed", clearAttempted: false } });
2601
+ if (!audit.ok)
2602
+ sendAdvisory = `prompt-override: audit unavailable (${audit.reason}).`;
2603
+ if (stopped)
2604
+ throw new DeliveryGuardError(classification === "unreadable" ? "override_input_unknown" : "override_input_present", classification === "unreadable" ? "Input could not be read. Nothing was typed. Inspect the native terminal, deliberately clear its prompt with native/tmux controls, then retry; or explicitly choose --type-without-checking (does not clear)."
2605
+ : "Existing typed or pasted input (author unknown). Nothing was typed. Inspect the shown input, deliberately clear the prompt with native/tmux controls, then retry. Manual clearing is outside OpenRig's lease and observation checks and is not recorded.");
2606
+ if (unchecked)
2607
+ sendAdvisory = [sendAdvisory, "Input was not checked or cleared; this send may join or submit existing text."].filter(Boolean).join(" ");
2608
+ };
2609
+ }
2610
+ const audit = overrideBeforePaste ? { ok: true } : this.recordPromptOverride(auditInput);
2514
2611
  if (!audit.ok && readiness.state === "needs_input") {
2515
2612
  return {
2516
2613
  ok: false,
@@ -2612,7 +2709,7 @@ export class SessionTransport {
2612
2709
  opts?.beforeWrite?.();
2613
2710
  writeIssued = true;
2614
2711
  if (promptOverride)
2615
- return this.tmuxAdapter.sendText(sessionName, text, beforePaste, { bracketed: false });
2712
+ return this.tmuxAdapter.sendText(sessionName, text, beforePaste, { bracketed: false, beforePaste: overrideBeforePaste });
2616
2713
  return beforePaste ? this.tmuxAdapter.sendText(sessionName, text, beforePaste) : this.tmuxAdapter.sendText(sessionName, text);
2617
2714
  }, (result) => result.ok ? "ok" : "failed").catch(tagIssued);
2618
2715
  if (!textResult.ok && textResult.code === CALLER_CANCELLED && cancel?.aborted) {
@@ -2620,13 +2717,15 @@ export class SessionTransport {
2620
2717
  }
2621
2718
  if (!textResult.ok) {
2622
2719
  // A draft refusal is the guard holding the write before any input; it is not an attempted write.
2623
- const policyRefusal = typeof textResult.code === "string" && textResult.code.startsWith("draft_");
2720
+ const policyRefusal = typeof textResult.code === "string" && (textResult.code.startsWith("draft_") || textResult.code.startsWith("override_input_") || textResult.code === "managed_compaction_pending");
2624
2721
  return observe({
2625
2722
  ok: false,
2626
2723
  sessionName,
2627
2724
  reason: policyRefusal ? textResult.code : "send_failed",
2628
2725
  outcome: "failed",
2629
- ...(policyRefusal ? {} : { inputPhase: "attempted" }),
2726
+ // The adapter's draft checks run before the paste (only file/buffer preparation precedes them), and its
2727
+ // after-paste observation cannot fail the write, so a draft_* receipt proves the target input was never reached.
2728
+ inputPhase: policyRefusal ? "not_reached" : "attempted",
2630
2729
  error: `Failed to send text to '${sessionName}': ${textResult.message}`,
2631
2730
  ...(waitMode || policyRefusal ? { sent: false, ...waitEvidence } : {}),
2632
2731
  });
@@ -2662,7 +2761,6 @@ export class SessionTransport {
2662
2761
  return observe(changedRecipient(true));
2663
2762
  if (!promptAnswerStaged(pane, text, runtime)) {
2664
2763
  return observe({ ok: true, sessionName, sent: true, verified: false, outcome: "rendered-unconfirmed", promptInteraction: "unverified",
2665
- ...(inputBoxRuntime ? { inputBox: INPUT_BOX_UNCHECKED } : {}),
2666
2764
  warning: [sendAdvisory, "prompt-override: answer sent as unbracketed input; submission unverified. No trailing Enter: the complete answer is not visibly staged (it may have been consumed, the prompt changed, or observation is unavailable)."].filter(Boolean).join(" ") });
2667
2765
  }
2668
2766
  sendAdvisory = [sendAdvisory, "prompt-override: answer sent as unbracketed input; Enter submitted the complete still-staged answer."].filter(Boolean).join(" ");
@@ -2670,14 +2768,16 @@ export class SessionTransport {
2670
2768
  // 5. Submit (Enter)
2671
2769
  submitResult = await this.runStage("session_transport.submit", () => { opts?.beforeWrite?.(); enterIssued = true; return opts?.beforeWrite ? this.tmuxAdapter.sendKeys(sessionName, ["Enter"], opts.beforeWrite) : this.tmuxAdapter.sendKeys(sessionName, ["Enter"]); }, (result) => result.ok ? "ok" : "failed");
2672
2770
  if (!submitResult.ok) {
2673
- const policyRefusal = typeof submitResult.code === "string" && submitResult.code.startsWith("draft_");
2771
+ const policyRefusal = typeof submitResult.code === "string" && (submitResult.code.startsWith("draft_") || submitResult.code === "managed_compaction_pending");
2674
2772
  return observe({
2675
2773
  ok: false,
2676
2774
  sessionName,
2677
2775
  reason: policyRefusal ? submitResult.code : "submit_failed",
2678
2776
  outcome: "failed",
2679
2777
  inputPhase: "written",
2680
- error: `Text is in '${sessionName}', but the Enter reported a failure, so the submission outcome is unconfirmed. The agent may need manual attention.`,
2778
+ error: policyRefusal
2779
+ ? `Text was pasted into '${sessionName}', but Enter was not sent: ${submitResult.message} Inspect the current input before submitting it.`
2780
+ : `Text is in '${sessionName}', but the Enter reported a failure, so the submission outcome is unconfirmed. The agent may need manual attention.`,
2681
2781
  ...(waitMode || policyRefusal ? { sent: true, ...waitEvidence } : {}),
2682
2782
  });
2683
2783
  }
@@ -2716,26 +2816,23 @@ export class SessionTransport {
2716
2816
  const count = envelope ? (pane, expected) => countEnvelopeOccurrences(pane, expected, promptClass) : countOccurrences;
2717
2817
  const preCount = count(transcript(preVerifyContent), snippet);
2718
2818
  const postCount = count(transcript(content), snippet);
2719
- // An audited prompt answer reads no box (no extra read is added for it), so it says so: unchecked, and
2720
- // unconfirmed; it never falls back to the count below.
2819
+ // An audited prompt answer reads no box (no extra read is added for it), so it reads unconfirmed; it never
2820
+ // falls back to the count below.
2721
2821
  const inputBox = boxBefore && inputBoxRuntime
2722
2822
  ? await this.inputBoxEvidence(sessionName, sessionMeta, boxBefore, readInputBox(content, inputBoxRuntime, text, boxBefore.pane))
2723
- : inputBoxRuntime && promptOverride ? INPUT_BOX_UNCHECKED : undefined;
2823
+ : undefined;
2724
2824
  // With the setting on, only a seat proven idle before the paste and input-box evidence verify: exact before
2725
2825
  // Enter, empty after, same process. A not-idle or unknown seat always reads unconfirmed.
2726
2826
  const verified = inputBoxRuntime
2727
2827
  ? inputBox?.seat === "idle" && inputBox.before === "exact" && inputBox.after === "empty" && inputBox.sameProcess
2728
2828
  : postCount > preCount;
2729
- return observe({ ok: true, sessionName, ...interaction, verified, outcome: verified ? "delivered" : "rendered-unconfirmed", ...(inputBox ? { inputBox } : {}), ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
2829
+ return observe({ ok: true, sessionName, ...interaction, verified, outcome: verified ? "delivered" : "rendered-unconfirmed", ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
2730
2830
  }
2731
2831
  catch {
2732
2832
  if (observed && observed.post.state === "not_reached") {
2733
2833
  observed.post = { state: "unavailable", cause: "capture_error", capturedAt: this.now().toISOString(), captureSeq };
2734
2834
  }
2735
- const inputBox = boxBefore
2736
- ? { seat: boxBefore.seat, before: boxBefore.reading, after: "unavailable", sameProcess: false }
2737
- : inputBoxRuntime && promptOverride ? INPUT_BOX_UNCHECKED : undefined;
2738
- return observe({ ok: true, sessionName, ...interaction, verified: false, outcome: "rendered-unconfirmed", ...(inputBox ? { inputBox } : {}), ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
2835
+ return observe({ ok: true, sessionName, ...interaction, verified: false, outcome: "rendered-unconfirmed", ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
2739
2836
  }
2740
2837
  }
2741
2838
  return observe({ ok: true, sessionName, ...interaction, ...(sendAdvisory ? { warning: sendAdvisory } : {}), ...(waitMode ? { sent: true, ...waitEvidence } : {}) });
@@ -2876,7 +2973,7 @@ export class SessionTransport {
2876
2973
  async observeReadinessWithin(input, remainingMs, cancel) {
2877
2974
  if (cancel?.aborted)
2878
2975
  return null;
2879
- const observation = this.classifySendReadiness(input);
2976
+ const observation = this.classifySendReadiness(input, input.privateInput);
2880
2977
  observation.catch(() => undefined);
2881
2978
  let timer;
2882
2979
  let onAbort;
@@ -2945,7 +3042,7 @@ export class SessionTransport {
2945
3042
  }
2946
3043
  return paneCommand.replace(/^-/, "");
2947
3044
  }
2948
- async classifySendReadiness(input) {
3045
+ async classifySendReadiness(input, privateInput = false) {
2949
3046
  const now = this.now();
2950
3047
  const composerSnapshot = this.tmuxAdapter.deliveryGuard?.needsInputCheck(input.sessionName)
2951
3048
  ? () => this.tmuxAdapter.captureComposerSnapshot(input.binding?.pane ?? input.sessionName) : undefined;
@@ -2978,6 +3075,21 @@ export class SessionTransport {
2978
3075
  hookActivity.reason !== "permission_prompt_cleared") {
2979
3076
  // Fresh hook (within the 15s send window): authoritative for any state.
2980
3077
  if (this.hookFreshForSend(hookActivity, now)) {
3078
+ if (hookActivity.state === "running" && input.runtime === "claude-code") {
3079
+ const paneVeto = await probeSessionActivity({
3080
+ composerSnapshot,
3081
+ currentClaudeDialogueOnly: true,
3082
+ sessionName: input.sessionName,
3083
+ runtime: input.runtime,
3084
+ attachmentType: input.attachmentType,
3085
+ tmuxAdapter: this.tmuxAdapter,
3086
+ now,
3087
+ captureObserver: privateInput ? undefined : this.captureObserver,
3088
+ binding: input.binding,
3089
+ });
3090
+ if (paneVeto.state === "needs_input")
3091
+ return paneVeto;
3092
+ }
2981
3093
  return hookActivity;
2982
3094
  }
2983
3095
  // OPR.0.4.3.28 Part A — a stale-but-latest `idle` hook (older than the 15s
@@ -3001,7 +3113,7 @@ export class SessionTransport {
3001
3113
  attachmentType: input.attachmentType,
3002
3114
  tmuxAdapter: this.tmuxAdapter,
3003
3115
  now,
3004
- captureObserver: this.captureObserver,
3116
+ captureObserver: privateInput ? undefined : this.captureObserver,
3005
3117
  binding: input.binding,
3006
3118
  });
3007
3119
  if (paneVeto.state === "needs_input") {
@@ -3017,7 +3129,7 @@ export class SessionTransport {
3017
3129
  attachmentType: input.attachmentType,
3018
3130
  tmuxAdapter: this.tmuxAdapter,
3019
3131
  now,
3020
- captureObserver: this.captureObserver,
3132
+ captureObserver: privateInput ? undefined : this.captureObserver,
3021
3133
  binding: input.binding,
3022
3134
  // Pane-only readiness must not send into a status row whose timer hasn't appeared yet.
3023
3135
  timerlessStatusIsLive: input.readinessFromPaneOnly === true,
@@ -3184,6 +3296,7 @@ export class SessionTransport {
3184
3296
  detectedReason: input.readiness.reason,
3185
3297
  evidenceSource: input.readiness.evidenceSource,
3186
3298
  overrideReason: input.overrideReason,
3299
+ ...(input.input ? { input: input.input } : {}),
3187
3300
  });
3188
3301
  return { ok: true };
3189
3302
  }
@@ -3195,6 +3308,7 @@ export class SessionTransport {
3195
3308
  * use it: the capture route asks when its request does (`rig capture`, the MCP tool). `inputBoxBudget` is the time
3196
3309
  * those reads may still take, shared across a fan-out; a single capture gets its own CAPTURE_INPUT_BOX_DEADLINE_MS. */
3197
3310
  async capture(sessionName, opts) {
3311
+ sessionName = physicalSessionName(this.db, sessionName);
3198
3312
  const sessionMeta = this.getSessionMeta(sessionName);
3199
3313
  if (sessionMeta.attachmentType === "external_cli") {
3200
3314
  return {
@@ -3329,6 +3443,7 @@ export class SessionTransport {
3329
3443
  // (h) thread the resolved stampISO so send()'s delivered-latency calc measures from the SAME
3330
3444
  // compose stamp the envelope carries (opts may not have carried one; the local stampISO is truth).
3331
3445
  const result = await this.send(session.sessionName, perRecipientText, { ...opts, stampISO,
3446
+ exactText: opts?.envelopeSender ? text : undefined,
3332
3447
  deliveryId: opts?.deliveryId ? `${opts.deliveryId}:${session.sessionName}` : undefined });
3333
3448
  results.push(result);
3334
3449
  }
@@ -3344,7 +3459,7 @@ export class SessionTransport {
3344
3459
  return this.db.prepare(`
3345
3460
  SELECT n.id as node_id, r.id as rig_id, s.id as session_id, s.session_name, n.runtime, n.cwd,
3346
3461
  s.startup_status, s.status as session_status, s.startup_completed_at,
3347
- s.resume_type, s.resume_token,
3462
+ s.resume_type, s.resume_token, s.resume_provenance, s.resume_rotated_from, s.resume_rotated_process, s.resume_launch_process,
3348
3463
  b.tmux_session as binding_session, b.tmux_window as binding_window, b.tmux_pane as binding_pane,
3349
3464
  b.updated_at as binding_updated_at,
3350
3465
  (SELECT generation_uuid FROM occupant_tenures WHERE node_id = n.id ORDER BY generation_ordinal DESC LIMIT 1) as occupant_generation,
@@ -3365,6 +3480,7 @@ export class SessionTransport {
3365
3480
  * re-check readiness via the runtime adapter with currentness verification and atomic commit.
3366
3481
  */
3367
3482
  async reconcileStartupReadiness(sessionName) {
3483
+ sessionName = physicalSessionName(this.db, sessionName);
3368
3484
  const existing = this.inFlightReconciliations.get(sessionName);
3369
3485
  if (existing)
3370
3486
  return existing;
@@ -3401,17 +3517,21 @@ export class SessionTransport {
3401
3517
  }
3402
3518
  return hasClaudeResumeIdentityWork(this.sessionRegistry, sessionId, runtime, failedEvent.requestedResumeToken, failedEvent.requestedResumeType);
3403
3519
  };
3520
+ // A Claude seat is checked with its real pane, occupant and recorded conversation (#1477); others keep the stand-in.
3521
+ const claude = snapshot.runtime === "claude-code";
3522
+ const rotation = claude ? claudeResumeRotation(snapshot) : null;
3404
3523
  const probeBinding = {
3405
3524
  id: `session-transport:${snapshot.session_id}`,
3406
3525
  nodeId: snapshot.node_id,
3407
3526
  attachmentType: "tmux",
3408
3527
  tmuxSession: sessionName,
3409
3528
  tmuxWindow: null,
3410
- tmuxPane: null,
3529
+ tmuxPane: claude ? snapshot.binding_pane : null,
3411
3530
  cmuxWorkspace: null,
3412
3531
  cmuxSurface: null,
3413
3532
  updatedAt: "",
3414
3533
  cwd: snapshot.cwd ?? "",
3534
+ ...(claude && snapshot.occupant_generation ? { launchGeneration: snapshot.occupant_generation } : {}),
3415
3535
  };
3416
3536
  let timeoutTimer;
3417
3537
  const timeoutPromise = new Promise((_, reject) => {
@@ -3419,7 +3539,7 @@ export class SessionTransport {
3419
3539
  });
3420
3540
  let readiness;
3421
3541
  try {
3422
- readiness = await Promise.race([checker.checkReady(probeBinding), timeoutPromise]);
3542
+ readiness = await Promise.race([checker.checkReady(probeBinding, ...(claude && snapshot.resume_token ? [{ resumeToken: snapshot.resume_token, ...(rotation ? { resumeRotation: rotation } : {}) }] : [])), timeoutPromise]);
3423
3543
  }
3424
3544
  catch {
3425
3545
  return false;