@openrig/cli 0.6.10 → 0.6.12

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 (1275) hide show
  1. package/README.md +7 -4
  2. package/daemon/assets/claude-statusline-context.cjs +2 -0
  3. package/daemon/assets/guidance/openrig-start.md +2 -1
  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 +30 -7
  7. package/daemon/assets/plugins/openrig-core/hooks/claude.json +7 -7
  8. package/daemon/assets/plugins/openrig-core/hooks/codex.json +2 -2
  9. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +77 -0
  10. package/daemon/assets/plugins/openrig-core/hooks/scripts/compaction-restore-bridge.cjs +23 -0
  11. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +4 -2
  12. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +69 -16
  13. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +24 -0
  14. package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +25 -5
  15. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -2
  16. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +10 -1
  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 +172 -11
  19. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +7 -4
  20. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +8 -0
  21. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +6 -1
  22. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +5 -2
  23. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +19 -0
  24. package/daemon/assets/skills/rigs/SKILL.md +56 -10
  25. package/daemon/context-packs/help/manifest.yaml +1 -1
  26. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  27. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +131 -37
  28. package/daemon/context-packs/reference/getting-started.md +39 -6
  29. package/daemon/context-packs/reference/manifest.yaml +1 -1
  30. package/daemon/context-packs/reference/rig-spec.md +66 -5
  31. package/daemon/context-packs/reference/whats-new.md +169 -147
  32. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +24 -0
  37. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +2 -2
  46. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +3 -3
  47. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +0 -1
  48. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  50. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  56. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/delegating-work/SKILL.md +25 -5
  59. package/daemon/context-packs/skills/delegating-work/manifest.yaml +3 -3
  60. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +4 -2
  61. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +10 -1
  64. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/openrig-user/SKILL.md +172 -11
  67. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +7 -4
  69. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +1 -1
  79. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/queue-handoff/SKILL.md +8 -0
  90. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +6 -1
  93. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +5 -2
  94. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  95. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  96. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +19 -0
  97. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  99. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  100. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  101. package/daemon/dist/adapters/bounded-probe-exec.d.ts +45 -0
  102. package/daemon/dist/adapters/bounded-probe-exec.d.ts.map +1 -0
  103. package/daemon/dist/adapters/bounded-probe-exec.js +204 -0
  104. package/daemon/dist/adapters/bounded-probe-exec.js.map +1 -0
  105. package/daemon/dist/adapters/claude-code-adapter.d.ts +17 -15
  106. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  107. package/daemon/dist/adapters/claude-code-adapter.js +200 -105
  108. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  109. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  110. package/daemon/dist/adapters/claude-resume.js +14 -3
  111. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  112. package/daemon/dist/adapters/codex-resume.d.ts +5 -0
  113. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  114. package/daemon/dist/adapters/codex-resume.js +17 -3
  115. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  116. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +73 -1
  117. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  118. package/daemon/dist/adapters/codex-runtime-adapter.js +230 -48
  119. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  120. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts +46 -0
  121. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts.map +1 -0
  122. package/daemon/dist/adapters/community-harness-runtime-adapter.js +102 -0
  123. package/daemon/dist/adapters/community-harness-runtime-adapter.js.map +1 -0
  124. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  125. package/daemon/dist/adapters/compose-services-adapter.js +2 -1
  126. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  127. package/daemon/dist/adapters/kernel-authority.d.ts +8 -1
  128. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  129. package/daemon/dist/adapters/kernel-authority.js +35 -10
  130. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  131. package/daemon/dist/adapters/omp-rpc-frame.d.ts +51 -0
  132. package/daemon/dist/adapters/omp-rpc-frame.d.ts.map +1 -0
  133. package/daemon/dist/adapters/omp-rpc-frame.js +153 -0
  134. package/daemon/dist/adapters/omp-rpc-frame.js.map +1 -0
  135. package/daemon/dist/adapters/pi-openrouter-charge.d.ts +67 -0
  136. package/daemon/dist/adapters/pi-openrouter-charge.d.ts.map +1 -0
  137. package/daemon/dist/adapters/pi-openrouter-charge.js +228 -0
  138. package/daemon/dist/adapters/pi-openrouter-charge.js.map +1 -0
  139. package/daemon/dist/adapters/pi-readiness.d.ts +81 -5
  140. package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -1
  141. package/daemon/dist/adapters/pi-readiness.js +193 -27
  142. package/daemon/dist/adapters/pi-readiness.js.map +1 -1
  143. package/daemon/dist/adapters/pi-resume.d.ts +4 -0
  144. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  145. package/daemon/dist/adapters/pi-resume.js +2 -0
  146. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  147. package/daemon/dist/adapters/pi-runner-protocol.d.ts +4 -0
  148. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  149. package/daemon/dist/adapters/pi-runner-protocol.js +5 -0
  150. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  151. package/daemon/dist/adapters/pi-runner.d.ts +67 -2
  152. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  153. package/daemon/dist/adapters/pi-runner.js +336 -13
  154. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  155. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +16 -1
  156. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  157. package/daemon/dist/adapters/pi-runtime-adapter.js +18 -1
  158. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  159. package/daemon/dist/adapters/preflight-exec.d.ts +3 -0
  160. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -1
  161. package/daemon/dist/adapters/preflight-exec.js +15 -7
  162. package/daemon/dist/adapters/preflight-exec.js.map +1 -1
  163. package/daemon/dist/adapters/replace-file.d.ts +8 -0
  164. package/daemon/dist/adapters/replace-file.d.ts.map +1 -0
  165. package/daemon/dist/adapters/replace-file.js +32 -0
  166. package/daemon/dist/adapters/replace-file.js.map +1 -0
  167. package/daemon/dist/adapters/tmux-control.d.ts +119 -0
  168. package/daemon/dist/adapters/tmux-control.d.ts.map +1 -0
  169. package/daemon/dist/adapters/tmux-control.js +547 -0
  170. package/daemon/dist/adapters/tmux-control.js.map +1 -0
  171. package/daemon/dist/adapters/tmux-exec.d.ts +18 -4
  172. package/daemon/dist/adapters/tmux-exec.d.ts.map +1 -1
  173. package/daemon/dist/adapters/tmux-exec.js +98 -17
  174. package/daemon/dist/adapters/tmux-exec.js.map +1 -1
  175. package/daemon/dist/adapters/tmux.d.ts +75 -15
  176. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  177. package/daemon/dist/adapters/tmux.js +352 -57
  178. package/daemon/dist/adapters/tmux.js.map +1 -1
  179. package/daemon/dist/build-info.js +3 -3
  180. package/daemon/dist/composer-prompts-surface.d.ts +2 -0
  181. package/daemon/dist/composer-prompts-surface.d.ts.map +1 -0
  182. package/daemon/dist/composer-prompts-surface.js +2 -0
  183. package/daemon/dist/composer-prompts-surface.js.map +1 -0
  184. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  185. package/daemon/dist/db/all-migrations.js +26 -0
  186. package/daemon/dist/db/all-migrations.js.map +1 -1
  187. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts +3 -0
  188. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts.map +1 -0
  189. package/daemon/dist/db/migrations/100_typing_guard_modes.js +10 -0
  190. package/daemon/dist/db/migrations/100_typing_guard_modes.js.map +1 -0
  191. package/daemon/dist/db/migrations/103_session_stop_intent.d.ts +4 -0
  192. package/daemon/dist/db/migrations/103_session_stop_intent.d.ts.map +1 -0
  193. package/daemon/dist/db/migrations/103_session_stop_intent.js +9 -0
  194. package/daemon/dist/db/migrations/103_session_stop_intent.js.map +1 -0
  195. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts +3 -0
  196. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts.map +1 -0
  197. package/daemon/dist/db/migrations/104_node_effort_choice.js +10 -0
  198. package/daemon/dist/db/migrations/104_node_effort_choice.js.map +1 -0
  199. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts +9 -0
  200. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts.map +1 -0
  201. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js +14 -0
  202. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js.map +1 -0
  203. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts +10 -0
  204. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts.map +1 -0
  205. package/daemon/dist/db/migrations/107_pi_usage_entries.js +38 -0
  206. package/daemon/dist/db/migrations/107_pi_usage_entries.js.map +1 -0
  207. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts +12 -0
  208. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts.map +1 -0
  209. package/daemon/dist/db/migrations/108_pi_usage_charges.js +39 -0
  210. package/daemon/dist/db/migrations/108_pi_usage_charges.js.map +1 -0
  211. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts +5 -0
  212. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts.map +1 -0
  213. package/daemon/dist/db/migrations/109_mode_posture_coexist.js +11 -0
  214. package/daemon/dist/db/migrations/109_mode_posture_coexist.js.map +1 -0
  215. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts +10 -0
  216. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts.map +1 -0
  217. package/daemon/dist/db/migrations/110_workflow_instance_scope.js +14 -0
  218. package/daemon/dist/db/migrations/110_workflow_instance_scope.js.map +1 -0
  219. package/daemon/dist/db/migrations/111_seat_env.d.ts +6 -0
  220. package/daemon/dist/db/migrations/111_seat_env.d.ts.map +1 -0
  221. package/daemon/dist/db/migrations/111_seat_env.js +11 -0
  222. package/daemon/dist/db/migrations/111_seat_env.js.map +1 -0
  223. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts +3 -0
  224. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts.map +1 -0
  225. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js +14 -0
  226. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js.map +1 -0
  227. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts +3 -0
  228. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts.map +1 -0
  229. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js +9 -0
  230. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js.map +1 -0
  231. package/daemon/dist/db/migrations/114_session_agent_app.d.ts +3 -0
  232. package/daemon/dist/db/migrations/114_session_agent_app.d.ts.map +1 -0
  233. package/daemon/dist/db/migrations/114_session_agent_app.js +11 -0
  234. package/daemon/dist/db/migrations/114_session_agent_app.js.map +1 -0
  235. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts +3 -0
  236. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts.map +1 -0
  237. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js +28 -0
  238. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js.map +1 -0
  239. package/daemon/dist/domain/active-occupant.d.ts +14 -0
  240. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  241. package/daemon/dist/domain/active-occupant.js +17 -0
  242. package/daemon/dist/domain/active-occupant.js.map +1 -1
  243. package/daemon/dist/domain/activity-taxonomy.d.ts +13 -5
  244. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  245. package/daemon/dist/domain/activity-taxonomy.js +14 -2
  246. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  247. package/daemon/dist/domain/agent-activity-store.d.ts +2 -0
  248. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  249. package/daemon/dist/domain/agent-activity-store.js +14 -8
  250. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  251. package/daemon/dist/domain/agent-images/agent-image-library-service.js +1 -1
  252. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  253. package/daemon/dist/domain/agent-images/manifest-parser.js +1 -1
  254. package/daemon/dist/domain/agent-images/manifest-parser.js.map +1 -1
  255. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  256. package/daemon/dist/domain/agent-manifest.js +21 -3
  257. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  258. package/daemon/dist/domain/applied-launch-observation-store.d.ts +2 -0
  259. package/daemon/dist/domain/applied-launch-observation-store.d.ts.map +1 -1
  260. package/daemon/dist/domain/applied-launch-observation-store.js +27 -3
  261. package/daemon/dist/domain/applied-launch-observation-store.js.map +1 -1
  262. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +3 -0
  263. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  264. package/daemon/dist/domain/bootstrap-orchestrator.js +49 -16
  265. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  266. package/daemon/dist/domain/built-in-runtimes.d.ts +10 -0
  267. package/daemon/dist/domain/built-in-runtimes.d.ts.map +1 -0
  268. package/daemon/dist/domain/built-in-runtimes.js +14 -0
  269. package/daemon/dist/domain/built-in-runtimes.js.map +1 -0
  270. package/daemon/dist/domain/bundle-archive.d.ts +3 -1
  271. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  272. package/daemon/dist/domain/bundle-archive.js +5 -3
  273. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  274. package/daemon/dist/domain/bundle-behaviour.d.ts +20 -0
  275. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
  276. package/daemon/dist/domain/bundle-behaviour.js +57 -1
  277. package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
  278. package/daemon/dist/domain/bundle-integrity.d.ts +5 -2
  279. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  280. package/daemon/dist/domain/bundle-integrity.js +39 -8
  281. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  282. package/daemon/dist/domain/bundle-source-resolver.d.ts +3 -1
  283. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  284. package/daemon/dist/domain/bundle-source-resolver.js +7 -2
  285. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  286. package/daemon/dist/domain/bundle-types.d.ts +6 -0
  287. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  288. package/daemon/dist/domain/bundle-types.js +26 -0
  289. package/daemon/dist/domain/bundle-types.js.map +1 -1
  290. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  291. package/daemon/dist/domain/chat-repository.js +3 -2
  292. package/daemon/dist/domain/chat-repository.js.map +1 -1
  293. package/daemon/dist/domain/claim-service.d.ts +6 -0
  294. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  295. package/daemon/dist/domain/claim-service.js +20 -1
  296. package/daemon/dist/domain/claim-service.js.map +1 -1
  297. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +63 -2
  298. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  299. package/daemon/dist/domain/claude-compaction-enforcer.js +154 -16
  300. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  301. package/daemon/dist/domain/claude-core-plugin-env.d.ts +26 -0
  302. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -0
  303. package/daemon/dist/domain/claude-core-plugin-env.js +86 -0
  304. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -0
  305. package/daemon/dist/domain/claude-managed-launch.d.ts +13 -6
  306. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  307. package/daemon/dist/domain/claude-managed-launch.js +58 -5
  308. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  309. package/daemon/dist/domain/codex-network-default.d.ts +3 -0
  310. package/daemon/dist/domain/codex-network-default.d.ts.map +1 -1
  311. package/daemon/dist/domain/codex-network-default.js +1 -1
  312. package/daemon/dist/domain/codex-network-default.js.map +1 -1
  313. package/daemon/dist/domain/codex-pane-patterns.d.ts +2 -0
  314. package/daemon/dist/domain/codex-pane-patterns.d.ts.map +1 -0
  315. package/daemon/dist/domain/codex-pane-patterns.js +5 -0
  316. package/daemon/dist/domain/codex-pane-patterns.js.map +1 -0
  317. package/daemon/dist/domain/codex-thread-id.d.ts +22 -3
  318. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  319. package/daemon/dist/domain/codex-thread-id.js +65 -16
  320. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  321. package/daemon/dist/domain/community-harness-presets.d.ts +38 -0
  322. package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -0
  323. package/daemon/dist/domain/community-harness-presets.js +155 -0
  324. package/daemon/dist/domain/community-harness-presets.js.map +1 -0
  325. package/daemon/dist/domain/composer-prompts.d.ts +118 -0
  326. package/daemon/dist/domain/composer-prompts.d.ts.map +1 -0
  327. package/daemon/dist/domain/composer-prompts.js +165 -0
  328. package/daemon/dist/domain/composer-prompts.js.map +1 -0
  329. package/daemon/dist/domain/context-monitor.d.ts +3 -0
  330. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  331. package/daemon/dist/domain/context-monitor.js +59 -23
  332. package/daemon/dist/domain/context-monitor.js.map +1 -1
  333. package/daemon/dist/domain/context-packs/context-pack-library-service.js +2 -2
  334. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  335. package/daemon/dist/domain/context-packs/manifest-parser.js +1 -1
  336. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  337. package/daemon/dist/domain/context-usage-store.d.ts +4 -0
  338. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  339. package/daemon/dist/domain/context-usage-store.js +1 -0
  340. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  341. package/daemon/dist/domain/current-work.js +2 -2
  342. package/daemon/dist/domain/current-work.js.map +1 -1
  343. package/daemon/dist/domain/cwd-resolution.d.ts +8 -0
  344. package/daemon/dist/domain/cwd-resolution.d.ts.map +1 -1
  345. package/daemon/dist/domain/cwd-resolution.js +24 -3
  346. package/daemon/dist/domain/cwd-resolution.js.map +1 -1
  347. package/daemon/dist/domain/draft-aware-delivery.d.ts +32 -0
  348. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -0
  349. package/daemon/dist/domain/draft-aware-delivery.js +156 -0
  350. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -0
  351. package/daemon/dist/domain/event-bus.d.ts +10 -1
  352. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  353. package/daemon/dist/domain/event-bus.js +25 -0
  354. package/daemon/dist/domain/event-bus.js.map +1 -1
  355. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  356. package/daemon/dist/domain/execution-view.js +76 -10
  357. package/daemon/dist/domain/execution-view.js.map +1 -1
  358. package/daemon/dist/domain/frontmatter.d.ts +11 -0
  359. package/daemon/dist/domain/frontmatter.d.ts.map +1 -0
  360. package/daemon/dist/domain/frontmatter.js +20 -0
  361. package/daemon/dist/domain/frontmatter.js.map +1 -0
  362. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +11 -0
  363. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  364. package/daemon/dist/domain/gateway/gateway-subsystem.js +7 -0
  365. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  366. package/daemon/dist/domain/gateway/human-registry.d.ts +6 -1
  367. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  368. package/daemon/dist/domain/gateway/human-registry.js +7 -0
  369. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  370. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts +54 -0
  371. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts.map +1 -0
  372. package/daemon/dist/domain/gateway/slack/bot-inbox.js +86 -0
  373. package/daemon/dist/domain/gateway/slack/bot-inbox.js.map +1 -0
  374. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
  375. package/daemon/dist/domain/gateway/slack/capabilities.js +1 -0
  376. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
  377. package/daemon/dist/domain/gateway/slack/channel-map.d.ts +11 -1
  378. package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -1
  379. package/daemon/dist/domain/gateway/slack/channel-map.js +31 -6
  380. package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -1
  381. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -1
  382. package/daemon/dist/domain/gateway/slack/channel-recovery.js +4 -3
  383. package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -1
  384. package/daemon/dist/domain/gateway/slack/config.d.ts +14 -0
  385. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  386. package/daemon/dist/domain/gateway/slack/config.js +28 -0
  387. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  388. package/daemon/dist/domain/gateway/slack/forwarding.d.ts +32 -0
  389. package/daemon/dist/domain/gateway/slack/forwarding.d.ts.map +1 -0
  390. package/daemon/dist/domain/gateway/slack/forwarding.js +76 -0
  391. package/daemon/dist/domain/gateway/slack/forwarding.js.map +1 -0
  392. package/daemon/dist/domain/gateway/slack/inbound.d.ts +99 -1
  393. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  394. package/daemon/dist/domain/gateway/slack/inbound.js +325 -7
  395. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  396. package/daemon/dist/domain/gateway/slack/message.d.ts +28 -0
  397. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  398. package/daemon/dist/domain/gateway/slack/message.js +105 -4
  399. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  400. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  401. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  402. package/daemon/dist/domain/gateway/slack/outbound-driver.js +1 -0
  403. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  404. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -1
  405. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  406. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +10 -0
  407. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  408. package/daemon/dist/domain/gateway/slack/slack-api.js +13 -0
  409. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  410. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +2 -0
  411. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  412. package/daemon/dist/domain/gateway/slack/slack-delivery.js +12 -2
  413. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  414. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -0
  415. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  416. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +133 -20
  417. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  418. package/daemon/dist/domain/gateway/slack/state-store.d.ts +9 -2
  419. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  420. package/daemon/dist/domain/gateway/slack/state-store.js +24 -2
  421. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  422. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +3 -0
  423. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  424. package/daemon/dist/domain/gateway/slack/thread-routing.js +18 -7
  425. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  426. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +17 -6
  427. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  428. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +41 -23
  429. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  430. package/daemon/dist/domain/history-query.d.ts.map +1 -1
  431. package/daemon/dist/domain/history-query.js +2 -1
  432. package/daemon/dist/domain/history-query.js.map +1 -1
  433. package/daemon/dist/domain/home-isolation.d.ts +18 -0
  434. package/daemon/dist/domain/home-isolation.d.ts.map +1 -0
  435. package/daemon/dist/domain/home-isolation.js +75 -0
  436. package/daemon/dist/domain/home-isolation.js.map +1 -0
  437. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +22 -0
  438. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  439. package/daemon/dist/domain/hosts/remote-daemon-http.js +43 -3
  440. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  441. package/daemon/dist/domain/inbox-handler.d.ts.map +1 -1
  442. package/daemon/dist/domain/inbox-handler.js +34 -32
  443. package/daemon/dist/domain/inbox-handler.js.map +1 -1
  444. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +12 -2
  445. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  446. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +1 -1
  447. package/daemon/dist/domain/mission-control/notification-dispatcher.js +2 -1
  448. package/daemon/dist/domain/mission-control/notification-dispatcher.js.map +1 -1
  449. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +63 -0
  450. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  451. package/daemon/dist/domain/model-divergence/current-generation-record.js +130 -1
  452. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  453. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +42 -0
  454. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
  455. package/daemon/dist/domain/model-divergence/effective-model-readers.js +160 -5
  456. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
  457. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +8 -2
  458. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  459. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +10 -5
  460. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  461. package/daemon/dist/domain/native-process-lineage.d.ts +54 -0
  462. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  463. package/daemon/dist/domain/native-process-lineage.js +181 -29
  464. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  465. package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
  466. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  467. package/daemon/dist/domain/native-resume-probe.js +43 -6
  468. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  469. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  470. package/daemon/dist/domain/node-inventory.js +41 -16
  471. package/daemon/dist/domain/node-inventory.js.map +1 -1
  472. package/daemon/dist/domain/node-launcher.d.ts +18 -0
  473. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  474. package/daemon/dist/domain/node-launcher.js +62 -3
  475. package/daemon/dist/domain/node-launcher.js.map +1 -1
  476. package/daemon/dist/domain/openrouter-charge.d.ts +42 -0
  477. package/daemon/dist/domain/openrouter-charge.d.ts.map +1 -0
  478. package/daemon/dist/domain/openrouter-charge.js +57 -0
  479. package/daemon/dist/domain/openrouter-charge.js.map +1 -0
  480. package/daemon/dist/domain/pane-cutover.d.ts +27 -0
  481. package/daemon/dist/domain/pane-cutover.d.ts.map +1 -0
  482. package/daemon/dist/domain/pane-cutover.js +37 -0
  483. package/daemon/dist/domain/pane-cutover.js.map +1 -0
  484. package/daemon/dist/domain/parent-session-env.d.ts +8 -0
  485. package/daemon/dist/domain/parent-session-env.d.ts.map +1 -0
  486. package/daemon/dist/domain/parent-session-env.js +37 -0
  487. package/daemon/dist/domain/parent-session-env.js.map +1 -0
  488. package/daemon/dist/domain/parked-query.d.ts +5 -0
  489. package/daemon/dist/domain/parked-query.d.ts.map +1 -1
  490. package/daemon/dist/domain/parked-query.js +9 -2
  491. package/daemon/dist/domain/parked-query.js.map +1 -1
  492. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  493. package/daemon/dist/domain/periodic-snapshot-scheduler.js +27 -3
  494. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  495. package/daemon/dist/domain/permission-drift.d.ts +2 -0
  496. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  497. package/daemon/dist/domain/permission-drift.js.map +1 -1
  498. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  499. package/daemon/dist/domain/permission-policy/policy-spec.js +5 -7
  500. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  501. package/daemon/dist/domain/pi-usage-entries-store.d.ts +41 -0
  502. package/daemon/dist/domain/pi-usage-entries-store.d.ts.map +1 -0
  503. package/daemon/dist/domain/pi-usage-entries-store.js +173 -0
  504. package/daemon/dist/domain/pi-usage-entries-store.js.map +1 -0
  505. package/daemon/dist/domain/pi-usage-facts.d.ts +90 -0
  506. package/daemon/dist/domain/pi-usage-facts.d.ts.map +1 -0
  507. package/daemon/dist/domain/pi-usage-facts.js +165 -0
  508. package/daemon/dist/domain/pi-usage-facts.js.map +1 -0
  509. package/daemon/dist/domain/pod-bundle-assembler.d.ts +2 -0
  510. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  511. package/daemon/dist/domain/pod-bundle-assembler.js +4 -0
  512. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  513. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
  514. package/daemon/dist/domain/policies/artifact-pool-helpers.js +6 -4
  515. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
  516. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +11 -0
  517. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  518. package/daemon/dist/domain/policies/parked-owner-consumer.js +81 -11
  519. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  520. package/daemon/dist/domain/profile-resolver.d.ts +2 -0
  521. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  522. package/daemon/dist/domain/profile-resolver.js +6 -3
  523. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  524. package/daemon/dist/domain/progress/progress-indexer.js +1 -1
  525. package/daemon/dist/domain/progress/progress-indexer.js.map +1 -1
  526. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +4 -0
  527. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  528. package/daemon/dist/domain/project-lifecycle-compiler.js +63 -3
  529. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  530. package/daemon/dist/domain/proof/judgments.d.ts +10 -5
  531. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  532. package/daemon/dist/domain/proof/judgments.js +57 -20
  533. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  534. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts +33 -0
  535. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts.map +1 -0
  536. package/daemon/dist/domain/provider/claude-auth-status-reader.js +195 -0
  537. package/daemon/dist/domain/provider/claude-auth-status-reader.js.map +1 -0
  538. package/daemon/dist/domain/provider/claude-usage-windows.d.ts +68 -0
  539. package/daemon/dist/domain/provider/claude-usage-windows.d.ts.map +1 -0
  540. package/daemon/dist/domain/provider/claude-usage-windows.js +260 -0
  541. package/daemon/dist/domain/provider/claude-usage-windows.js.map +1 -0
  542. package/daemon/dist/domain/provider/codex-auth-reader.d.ts +14 -0
  543. package/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +1 -1
  544. package/daemon/dist/domain/provider/codex-auth-reader.js +41 -12
  545. package/daemon/dist/domain/provider/codex-auth-reader.js.map +1 -1
  546. package/daemon/dist/domain/provider/codex-limit-banner.d.ts +2 -2
  547. package/daemon/dist/domain/provider/codex-limit-banner.d.ts.map +1 -1
  548. package/daemon/dist/domain/provider/codex-limit-banner.js +56 -9
  549. package/daemon/dist/domain/provider/codex-limit-banner.js.map +1 -1
  550. package/daemon/dist/domain/provider/codex-usage-reader.d.ts +33 -0
  551. package/daemon/dist/domain/provider/codex-usage-reader.d.ts.map +1 -0
  552. package/daemon/dist/domain/provider/codex-usage-reader.js +117 -0
  553. package/daemon/dist/domain/provider/codex-usage-reader.js.map +1 -0
  554. package/daemon/dist/domain/provider/codex-usage-windows.d.ts +39 -0
  555. package/daemon/dist/domain/provider/codex-usage-windows.d.ts.map +1 -0
  556. package/daemon/dist/domain/provider/codex-usage-windows.js +101 -0
  557. package/daemon/dist/domain/provider/codex-usage-windows.js.map +1 -0
  558. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts +18 -0
  559. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts.map +1 -0
  560. package/daemon/dist/domain/provider/provider-seat-accounts.js +159 -0
  561. package/daemon/dist/domain/provider/provider-seat-accounts.js.map +1 -0
  562. package/daemon/dist/domain/provider/provider-service-impl.d.ts +15 -0
  563. package/daemon/dist/domain/provider/provider-service-impl.d.ts.map +1 -1
  564. package/daemon/dist/domain/provider/provider-service-impl.js +45 -1
  565. package/daemon/dist/domain/provider/provider-service-impl.js.map +1 -1
  566. package/daemon/dist/domain/provider/provider-service.d.ts +7 -0
  567. package/daemon/dist/domain/provider/provider-service.d.ts.map +1 -1
  568. package/daemon/dist/domain/provider/provider-types.d.ts +133 -0
  569. package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -1
  570. package/daemon/dist/domain/provider/reactive-tap.js +2 -0
  571. package/daemon/dist/domain/provider/reactive-tap.js.map +1 -1
  572. package/daemon/dist/domain/provider/subscription-moves.d.ts +77 -0
  573. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +1 -0
  574. package/daemon/dist/domain/provider/subscription-moves.js +140 -0
  575. package/daemon/dist/domain/provider/subscription-moves.js.map +1 -0
  576. package/daemon/dist/domain/provider/usage-across-hosts.d.ts +162 -0
  577. package/daemon/dist/domain/provider/usage-across-hosts.d.ts.map +1 -0
  578. package/daemon/dist/domain/provider/usage-across-hosts.js +563 -0
  579. package/daemon/dist/domain/provider/usage-across-hosts.js.map +1 -0
  580. package/daemon/dist/domain/provider/usage-windows.d.ts +88 -0
  581. package/daemon/dist/domain/provider/usage-windows.d.ts.map +1 -0
  582. package/daemon/dist/domain/provider/usage-windows.js +189 -0
  583. package/daemon/dist/domain/provider/usage-windows.js.map +1 -0
  584. package/daemon/dist/domain/ps-projection.d.ts +5 -2
  585. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  586. package/daemon/dist/domain/ps-projection.js +27 -25
  587. package/daemon/dist/domain/ps-projection.js.map +1 -1
  588. package/daemon/dist/domain/queue-owner.d.ts +6 -0
  589. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  590. package/daemon/dist/domain/queue-owner.js +22 -0
  591. package/daemon/dist/domain/queue-owner.js.map +1 -1
  592. package/daemon/dist/domain/queue-repository.d.ts +91 -14
  593. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  594. package/daemon/dist/domain/queue-repository.js +347 -89
  595. package/daemon/dist/domain/queue-repository.js.map +1 -1
  596. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  597. package/daemon/dist/domain/queue-stuck-sweep.js +29 -27
  598. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  599. package/daemon/dist/domain/queue-transition-log.d.ts +23 -2
  600. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  601. package/daemon/dist/domain/queue-transition-log.js +98 -39
  602. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  603. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -2
  604. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  605. package/daemon/dist/domain/queue-wake-ladder.js +27 -8
  606. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  607. package/daemon/dist/domain/queue-wake-repository.d.ts +7 -1
  608. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  609. package/daemon/dist/domain/queue-wake-repository.js +54 -5
  610. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  611. package/daemon/dist/domain/reply-to-choice.d.ts +2 -0
  612. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
  613. package/daemon/dist/domain/reply-to-choice.js +2 -0
  614. package/daemon/dist/domain/reply-to-choice.js.map +1 -1
  615. package/daemon/dist/domain/restore-check-service.d.ts +8 -0
  616. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  617. package/daemon/dist/domain/restore-check-service.js +15 -5
  618. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  619. package/daemon/dist/domain/restore-orchestrator.d.ts +4 -0
  620. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  621. package/daemon/dist/domain/restore-orchestrator.js +111 -18
  622. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  623. package/daemon/dist/domain/restore-plan-preview.d.ts +4 -0
  624. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  625. package/daemon/dist/domain/restore-plan-preview.js +35 -20
  626. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  627. package/daemon/dist/domain/restore-policy.d.ts +26 -0
  628. package/daemon/dist/domain/restore-policy.d.ts.map +1 -0
  629. package/daemon/dist/domain/restore-policy.js +22 -0
  630. package/daemon/dist/domain/restore-policy.js.map +1 -0
  631. package/daemon/dist/domain/restore-preconditions.d.ts +2 -0
  632. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -1
  633. package/daemon/dist/domain/restore-preconditions.js +6 -1
  634. package/daemon/dist/domain/restore-preconditions.js.map +1 -1
  635. package/daemon/dist/domain/restore-runtime-compatibility.d.ts +3 -0
  636. package/daemon/dist/domain/restore-runtime-compatibility.d.ts.map +1 -0
  637. package/daemon/dist/domain/restore-runtime-compatibility.js +7 -0
  638. package/daemon/dist/domain/restore-runtime-compatibility.js.map +1 -0
  639. package/daemon/dist/domain/resume-metadata-refresher.d.ts +10 -5
  640. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  641. package/daemon/dist/domain/resume-metadata-refresher.js +109 -21
  642. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  643. package/daemon/dist/domain/resume-token-capture.d.ts +1 -1
  644. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  645. package/daemon/dist/domain/resume-token-capture.js +7 -1
  646. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  647. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  648. package/daemon/dist/domain/review/compose.js +5 -4
  649. package/daemon/dist/domain/review/compose.js.map +1 -1
  650. package/daemon/dist/domain/review/gather.d.ts +2 -1
  651. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  652. package/daemon/dist/domain/review/gather.js +25 -17
  653. package/daemon/dist/domain/review/gather.js.map +1 -1
  654. package/daemon/dist/domain/rig-lifecycle-service.d.ts +31 -8
  655. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  656. package/daemon/dist/domain/rig-lifecycle-service.js +253 -98
  657. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  658. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts +11 -1
  659. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -1
  660. package/daemon/dist/domain/rig-mode/rig-mode-store.js +69 -48
  661. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -1
  662. package/daemon/dist/domain/rig-repository.d.ts +18 -0
  663. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  664. package/daemon/dist/domain/rig-repository.js +52 -1
  665. package/daemon/dist/domain/rig-repository.js.map +1 -1
  666. package/daemon/dist/domain/rig-teardown.d.ts +4 -1
  667. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  668. package/daemon/dist/domain/rig-teardown.js +40 -2
  669. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  670. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  671. package/daemon/dist/domain/rigspec-codec.js +7 -0
  672. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  673. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  674. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  675. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  676. package/daemon/dist/domain/rigspec-instantiator.d.ts +3 -0
  677. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  678. package/daemon/dist/domain/rigspec-instantiator.js +28 -5
  679. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  680. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  681. package/daemon/dist/domain/rigspec-preflight.js +25 -11
  682. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  683. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  684. package/daemon/dist/domain/rigspec-schema.js +24 -2
  685. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  686. package/daemon/dist/domain/runtime-adapter.d.ts +12 -0
  687. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  688. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  689. package/daemon/dist/domain/runtime-verifier.d.ts +15 -1
  690. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  691. package/daemon/dist/domain/runtime-verifier.js +28 -4
  692. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  693. package/daemon/dist/domain/scope/logical-checkbox.js +1 -1
  694. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -1
  695. package/daemon/dist/domain/scope/scope-view-projection.d.ts +4 -2
  696. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  697. package/daemon/dist/domain/scope/scope-view-projection.js +29 -14
  698. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  699. package/daemon/dist/domain/seat-activity-service.d.ts +9 -2
  700. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  701. package/daemon/dist/domain/seat-activity-service.js +100 -15
  702. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  703. package/daemon/dist/domain/seat-attention-reconciler.d.ts +3 -0
  704. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  705. package/daemon/dist/domain/seat-attention-reconciler.js +114 -7
  706. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  707. package/daemon/dist/domain/seat-delivery-guard.d.ts +36 -1
  708. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  709. package/daemon/dist/domain/seat-delivery-guard.js +255 -22
  710. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  711. package/daemon/dist/domain/seat-effort.d.ts +115 -0
  712. package/daemon/dist/domain/seat-effort.d.ts.map +1 -0
  713. package/daemon/dist/domain/seat-effort.js +233 -0
  714. package/daemon/dist/domain/seat-effort.js.map +1 -0
  715. package/daemon/dist/domain/seat-env.d.ts +37 -0
  716. package/daemon/dist/domain/seat-env.d.ts.map +1 -0
  717. package/daemon/dist/domain/seat-env.js +94 -0
  718. package/daemon/dist/domain/seat-env.js.map +1 -0
  719. package/daemon/dist/domain/seat-handover-service.d.ts +5 -0
  720. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  721. package/daemon/dist/domain/seat-handover-service.js +22 -4
  722. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  723. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  724. package/daemon/dist/domain/seat-identity-reconciler.js +19 -2
  725. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  726. package/daemon/dist/domain/seat-lifecycle-service.d.ts +234 -5
  727. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  728. package/daemon/dist/domain/seat-lifecycle-service.js +651 -95
  729. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  730. package/daemon/dist/domain/seat-restart-in-place.d.ts +303 -0
  731. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -0
  732. package/daemon/dist/domain/seat-restart-in-place.js +914 -0
  733. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -0
  734. package/daemon/dist/domain/seat-structural-activity-service.d.ts +7 -3
  735. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  736. package/daemon/dist/domain/seat-structural-activity-service.js +50 -15
  737. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  738. package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
  739. package/daemon/dist/domain/session-fingerprinter.js +9 -5
  740. package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
  741. package/daemon/dist/domain/session-registry.d.ts +16 -1
  742. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  743. package/daemon/dist/domain/session-registry.js +35 -3
  744. package/daemon/dist/domain/session-registry.js.map +1 -1
  745. package/daemon/dist/domain/session-transport.d.ts +141 -4
  746. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  747. package/daemon/dist/domain/session-transport.js +1496 -139
  748. package/daemon/dist/domain/session-transport.js.map +1 -1
  749. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +2 -0
  750. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  751. package/daemon/dist/domain/slices/slice-detail-projector.js +16 -4
  752. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  753. package/daemon/dist/domain/slices/slice-indexer.d.ts +10 -0
  754. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  755. package/daemon/dist/domain/slices/slice-indexer.js +84 -4
  756. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  757. package/daemon/dist/domain/snapshot-repository.d.ts +3 -0
  758. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  759. package/daemon/dist/domain/snapshot-repository.js +19 -2
  760. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  761. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  762. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  763. package/daemon/dist/domain/spec-library-workflow-scanner.js +24 -21
  764. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  765. package/daemon/dist/domain/spec-validation-advisory.js +1 -1
  766. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -1
  767. package/daemon/dist/domain/startup-orchestrator.d.ts +33 -3
  768. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  769. package/daemon/dist/domain/startup-orchestrator.js +220 -61
  770. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  771. package/daemon/dist/domain/startup-submission-evidence.d.ts +13 -3
  772. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  773. package/daemon/dist/domain/startup-submission-evidence.js +34 -25
  774. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  775. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  776. package/daemon/dist/domain/startup-validation.js +3 -0
  777. package/daemon/dist/domain/startup-validation.js.map +1 -1
  778. package/daemon/dist/domain/successor-session-launcher.d.ts +10 -8
  779. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  780. package/daemon/dist/domain/successor-session-launcher.js +11 -33
  781. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  782. package/daemon/dist/domain/text-cut.d.ts +4 -0
  783. package/daemon/dist/domain/text-cut.d.ts.map +1 -0
  784. package/daemon/dist/domain/text-cut.js +7 -0
  785. package/daemon/dist/domain/text-cut.js.map +1 -0
  786. package/daemon/dist/domain/time-bound-advisory.d.ts +5 -0
  787. package/daemon/dist/domain/time-bound-advisory.d.ts.map +1 -0
  788. package/daemon/dist/domain/time-bound-advisory.js +25 -0
  789. package/daemon/dist/domain/time-bound-advisory.js.map +1 -0
  790. package/daemon/dist/domain/transcript-capture.d.ts +7 -0
  791. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  792. package/daemon/dist/domain/transcript-capture.js +22 -1
  793. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  794. package/daemon/dist/domain/transcript-rotation.d.ts +12 -4
  795. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  796. package/daemon/dist/domain/transcript-rotation.js +185 -23
  797. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  798. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  799. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  800. package/daemon/dist/domain/transcript-store.js +8 -4
  801. package/daemon/dist/domain/transcript-store.js.map +1 -1
  802. package/daemon/dist/domain/types.d.ts +82 -3
  803. package/daemon/dist/domain/types.d.ts.map +1 -1
  804. package/daemon/dist/domain/types.js.map +1 -1
  805. package/daemon/dist/domain/usage-samples-store.d.ts +8 -0
  806. package/daemon/dist/domain/usage-samples-store.d.ts.map +1 -1
  807. package/daemon/dist/domain/usage-samples-store.js +24 -5
  808. package/daemon/dist/domain/usage-samples-store.js.map +1 -1
  809. package/daemon/dist/domain/usage-series.d.ts +154 -2
  810. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  811. package/daemon/dist/domain/usage-series.js +208 -9
  812. package/daemon/dist/domain/usage-series.js.map +1 -1
  813. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  814. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  815. package/daemon/dist/domain/user-settings/settings-store.js +67 -0
  816. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  817. package/daemon/dist/domain/wake-resolver.js +2 -2
  818. package/daemon/dist/domain/wake-resolver.js.map +1 -1
  819. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +3 -1
  820. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  821. package/daemon/dist/domain/watchdog-jobs-repository.js +32 -4
  822. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  823. package/daemon/dist/domain/watchdog-policy-engine.d.ts +1 -0
  824. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  825. package/daemon/dist/domain/watchdog-policy-engine.js +31 -2
  826. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  827. package/daemon/dist/domain/whoami-service.d.ts +4 -1
  828. package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
  829. package/daemon/dist/domain/whoami-service.js +25 -19
  830. package/daemon/dist/domain/whoami-service.js.map +1 -1
  831. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  832. package/daemon/dist/domain/workflow-exception-escalation.js +3 -1
  833. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  834. package/daemon/dist/domain/workflow-exception-readiness.d.ts.map +1 -1
  835. package/daemon/dist/domain/workflow-exception-readiness.js +7 -3
  836. package/daemon/dist/domain/workflow-exception-readiness.js.map +1 -1
  837. package/daemon/dist/domain/workflow-instance-store.d.ts +11 -0
  838. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  839. package/daemon/dist/domain/workflow-instance-store.js +18 -4
  840. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  841. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  842. package/daemon/dist/domain/workflow-projector.js +5 -3
  843. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  844. package/daemon/dist/domain/workflow-rig-placeholder.d.ts +24 -0
  845. package/daemon/dist/domain/workflow-rig-placeholder.d.ts.map +1 -0
  846. package/daemon/dist/domain/workflow-rig-placeholder.js +43 -0
  847. package/daemon/dist/domain/workflow-rig-placeholder.js.map +1 -0
  848. package/daemon/dist/domain/workflow-runtime.d.ts +10 -1
  849. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  850. package/daemon/dist/domain/workflow-runtime.js +26 -13
  851. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  852. package/daemon/dist/domain/workflow-scope.d.ts +50 -0
  853. package/daemon/dist/domain/workflow-scope.d.ts.map +1 -0
  854. package/daemon/dist/domain/workflow-scope.js +129 -0
  855. package/daemon/dist/domain/workflow-scope.js.map +1 -0
  856. package/daemon/dist/domain/workflow-spec-cache.d.ts +10 -0
  857. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  858. package/daemon/dist/domain/workflow-spec-cache.js +13 -0
  859. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  860. package/daemon/dist/domain/workflow-types.d.ts +4 -0
  861. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  862. package/daemon/dist/domain/workflow-types.js.map +1 -1
  863. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  864. package/daemon/dist/domain/workflow-validator.js +3 -1
  865. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  866. package/daemon/dist/domain/workspace/project-read.d.ts +4 -0
  867. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
  868. package/daemon/dist/domain/workspace/project-read.js +23 -8
  869. package/daemon/dist/domain/workspace/project-read.js.map +1 -1
  870. package/daemon/dist/index.d.ts.map +1 -1
  871. package/daemon/dist/index.js +16 -0
  872. package/daemon/dist/index.js.map +1 -1
  873. package/daemon/dist/lib/pane-envelope.js +1 -1
  874. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  875. package/daemon/dist/middleware/json-body-error.d.ts +4 -3
  876. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -1
  877. package/daemon/dist/middleware/json-body-error.js +18 -4
  878. package/daemon/dist/middleware/json-body-error.js.map +1 -1
  879. package/daemon/dist/routes/activity.d.ts.map +1 -1
  880. package/daemon/dist/routes/activity.js +78 -0
  881. package/daemon/dist/routes/activity.js.map +1 -1
  882. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  883. package/daemon/dist/routes/bundles.js +39 -16
  884. package/daemon/dist/routes/bundles.js.map +1 -1
  885. package/daemon/dist/routes/chat.d.ts.map +1 -1
  886. package/daemon/dist/routes/chat.js +23 -2
  887. package/daemon/dist/routes/chat.js.map +1 -1
  888. package/daemon/dist/routes/community-harnesses.d.ts +3 -0
  889. package/daemon/dist/routes/community-harnesses.d.ts.map +1 -0
  890. package/daemon/dist/routes/community-harnesses.js +18 -0
  891. package/daemon/dist/routes/community-harnesses.js.map +1 -0
  892. package/daemon/dist/routes/compaction.d.ts +3 -0
  893. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  894. package/daemon/dist/routes/compaction.js +14 -2
  895. package/daemon/dist/routes/compaction.js.map +1 -1
  896. package/daemon/dist/routes/events.js +26 -12
  897. package/daemon/dist/routes/events.js.map +1 -1
  898. package/daemon/dist/routes/gateway.d.ts +3 -0
  899. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  900. package/daemon/dist/routes/gateway.js +15 -0
  901. package/daemon/dist/routes/gateway.js.map +1 -1
  902. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  903. package/daemon/dist/routes/hosts.js +2 -1
  904. package/daemon/dist/routes/hosts.js.map +1 -1
  905. package/daemon/dist/routes/proof.d.ts.map +1 -1
  906. package/daemon/dist/routes/proof.js +99 -10
  907. package/daemon/dist/routes/proof.js.map +1 -1
  908. package/daemon/dist/routes/provider.d.ts +11 -1
  909. package/daemon/dist/routes/provider.d.ts.map +1 -1
  910. package/daemon/dist/routes/provider.js +204 -1
  911. package/daemon/dist/routes/provider.js.map +1 -1
  912. package/daemon/dist/routes/query-limit.d.ts +1 -0
  913. package/daemon/dist/routes/query-limit.d.ts.map +1 -1
  914. package/daemon/dist/routes/query-limit.js +1 -1
  915. package/daemon/dist/routes/query-limit.js.map +1 -1
  916. package/daemon/dist/routes/queue.d.ts.map +1 -1
  917. package/daemon/dist/routes/queue.js +62 -9
  918. package/daemon/dist/routes/queue.js.map +1 -1
  919. package/daemon/dist/routes/rig-mode.d.ts.map +1 -1
  920. package/daemon/dist/routes/rig-mode.js +66 -11
  921. package/daemon/dist/routes/rig-mode.js.map +1 -1
  922. package/daemon/dist/routes/rigs.js +5 -3
  923. package/daemon/dist/routes/rigs.js.map +1 -1
  924. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  925. package/daemon/dist/routes/scope-audit.js +10 -0
  926. package/daemon/dist/routes/scope-audit.js.map +1 -1
  927. package/daemon/dist/routes/scopes.d.ts.map +1 -1
  928. package/daemon/dist/routes/scopes.js +5 -3
  929. package/daemon/dist/routes/scopes.js.map +1 -1
  930. package/daemon/dist/routes/seat.d.ts.map +1 -1
  931. package/daemon/dist/routes/seat.js +95 -12
  932. package/daemon/dist/routes/seat.js.map +1 -1
  933. package/daemon/dist/routes/sessions.js +1 -1
  934. package/daemon/dist/routes/startup.d.ts.map +1 -1
  935. package/daemon/dist/routes/startup.js +9 -2
  936. package/daemon/dist/routes/startup.js.map +1 -1
  937. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  938. package/daemon/dist/routes/telemetry.js +13 -3
  939. package/daemon/dist/routes/telemetry.js.map +1 -1
  940. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  941. package/daemon/dist/routes/transcripts.js +14 -5
  942. package/daemon/dist/routes/transcripts.js.map +1 -1
  943. package/daemon/dist/routes/transport.d.ts.map +1 -1
  944. package/daemon/dist/routes/transport.js +13 -2
  945. package/daemon/dist/routes/transport.js.map +1 -1
  946. package/daemon/dist/routes/up.d.ts.map +1 -1
  947. package/daemon/dist/routes/up.js +4 -0
  948. package/daemon/dist/routes/up.js.map +1 -1
  949. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  950. package/daemon/dist/routes/workflow.js +50 -1
  951. package/daemon/dist/routes/workflow.js.map +1 -1
  952. package/daemon/dist/server.d.ts.map +1 -1
  953. package/daemon/dist/server.js +4 -1
  954. package/daemon/dist/server.js.map +1 -1
  955. package/daemon/dist/spec-validation-surface.d.ts +1 -1
  956. package/daemon/dist/spec-validation-surface.d.ts.map +1 -1
  957. package/daemon/dist/spec-validation-surface.js +1 -1
  958. package/daemon/dist/spec-validation-surface.js.map +1 -1
  959. package/daemon/dist/startup.d.ts +3 -1
  960. package/daemon/dist/startup.d.ts.map +1 -1
  961. package/daemon/dist/startup.js +150 -54
  962. package/daemon/dist/startup.js.map +1 -1
  963. package/daemon/dist/workflow-scope-surface.d.ts +2 -0
  964. package/daemon/dist/workflow-scope-surface.d.ts.map +1 -0
  965. package/daemon/dist/workflow-scope-surface.js +2 -0
  966. package/daemon/dist/workflow-scope-surface.js.map +1 -0
  967. package/daemon/docs/reference/agent-spec.md +4 -2
  968. package/daemon/docs/reference/agent-startup-guide.md +114 -6
  969. package/daemon/docs/reference/claude-status-line.md +69 -0
  970. package/daemon/docs/reference/getting-started.md +39 -6
  971. package/daemon/docs/reference/keeping-a-watch.md +253 -0
  972. package/daemon/docs/reference/project-workspace.md +70 -1
  973. package/daemon/docs/reference/publishing-a-rig-bundle.md +6 -1
  974. package/daemon/docs/reference/refocus-channel.md +41 -5
  975. package/daemon/docs/reference/rig-bundle.md +26 -2
  976. package/daemon/docs/reference/rig-spec.md +66 -5
  977. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +105 -2
  978. package/daemon/docs/reference/scoped-operating-posture.md +12 -2
  979. package/daemon/docs/reference/sdlc-conventions.md +50 -2
  980. package/daemon/docs/reference/seat-delivery.md +127 -0
  981. package/daemon/docs/reference/slack-app-setup.md +147 -17
  982. package/daemon/docs/reference/topology-naming.md +9 -0
  983. package/daemon/docs/reference/whats-new.md +169 -147
  984. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +2 -2
  985. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +0 -1
  986. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  987. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  988. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
  989. package/daemon/specs/rigs/launch/demo/CULTURE.md +1 -1
  990. package/daemon/specs/rigs/launch/factory/CULTURE.md +1 -1
  991. package/daemon/specs/rigs/launch/factory/topology/rig/CRAFT.md +2 -2
  992. package/daemon/specs/rigs/launch/first-project/CULTURE.md +2 -1
  993. package/daemon/specs/rigs/launch/first-project-claude/CULTURE.md +2 -1
  994. package/daemon/specs/rigs/launch/first-project-mixed/CULTURE.md +2 -1
  995. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +9 -2
  996. package/daemon/specs/rigs/launch/starter/CULTURE.md +2 -1
  997. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  998. package/dist/bin-wrapper.d.ts +2 -1
  999. package/dist/bin-wrapper.d.ts.map +1 -1
  1000. package/dist/bin-wrapper.js +61 -4
  1001. package/dist/bin-wrapper.js.map +1 -1
  1002. package/dist/build-info.js +3 -3
  1003. package/dist/bundle-behaviour.d.ts.map +1 -1
  1004. package/dist/bundle-behaviour.js +22 -0
  1005. package/dist/bundle-behaviour.js.map +1 -1
  1006. package/dist/client.d.ts.map +1 -1
  1007. package/dist/client.js +3 -3
  1008. package/dist/client.js.map +1 -1
  1009. package/dist/commands/add.d.ts.map +1 -1
  1010. package/dist/commands/add.js +1 -1
  1011. package/dist/commands/add.js.map +1 -1
  1012. package/dist/commands/ask.d.ts.map +1 -1
  1013. package/dist/commands/ask.js +16 -5
  1014. package/dist/commands/ask.js.map +1 -1
  1015. package/dist/commands/bootstrap.d.ts.map +1 -1
  1016. package/dist/commands/bootstrap.js +9 -5
  1017. package/dist/commands/bootstrap.js.map +1 -1
  1018. package/dist/commands/bundle.d.ts.map +1 -1
  1019. package/dist/commands/bundle.js +8 -0
  1020. package/dist/commands/bundle.js.map +1 -1
  1021. package/dist/commands/capture.d.ts +4 -0
  1022. package/dist/commands/capture.d.ts.map +1 -1
  1023. package/dist/commands/capture.js +15 -2
  1024. package/dist/commands/capture.js.map +1 -1
  1025. package/dist/commands/community-harness.d.ts +4 -0
  1026. package/dist/commands/community-harness.d.ts.map +1 -0
  1027. package/dist/commands/community-harness.js +48 -0
  1028. package/dist/commands/community-harness.js.map +1 -0
  1029. package/dist/commands/compact.d.ts.map +1 -1
  1030. package/dist/commands/compact.js +8 -4
  1031. package/dist/commands/compact.js.map +1 -1
  1032. package/dist/commands/config.d.ts.map +1 -1
  1033. package/dist/commands/config.js +8 -0
  1034. package/dist/commands/config.js.map +1 -1
  1035. package/dist/commands/crash-cart.d.ts.map +1 -1
  1036. package/dist/commands/crash-cart.js +3 -5
  1037. package/dist/commands/crash-cart.js.map +1 -1
  1038. package/dist/commands/create.d.ts.map +1 -1
  1039. package/dist/commands/create.js +7 -5
  1040. package/dist/commands/create.js.map +1 -1
  1041. package/dist/commands/daemon.d.ts.map +1 -1
  1042. package/dist/commands/daemon.js +7 -0
  1043. package/dist/commands/daemon.js.map +1 -1
  1044. package/dist/commands/down.d.ts.map +1 -1
  1045. package/dist/commands/down.js +2 -1
  1046. package/dist/commands/down.js.map +1 -1
  1047. package/dist/commands/launch.d.ts +1 -0
  1048. package/dist/commands/launch.d.ts.map +1 -1
  1049. package/dist/commands/launch.js +61 -10
  1050. package/dist/commands/launch.js.map +1 -1
  1051. package/dist/commands/policy.d.ts +2 -1
  1052. package/dist/commands/policy.d.ts.map +1 -1
  1053. package/dist/commands/policy.js +66 -7
  1054. package/dist/commands/policy.js.map +1 -1
  1055. package/dist/commands/proof.d.ts.map +1 -1
  1056. package/dist/commands/proof.js +11 -5
  1057. package/dist/commands/proof.js.map +1 -1
  1058. package/dist/commands/provider.d.ts +2 -0
  1059. package/dist/commands/provider.d.ts.map +1 -1
  1060. package/dist/commands/provider.js +360 -1
  1061. package/dist/commands/provider.js.map +1 -1
  1062. package/dist/commands/ps.d.ts +15 -0
  1063. package/dist/commands/ps.d.ts.map +1 -1
  1064. package/dist/commands/ps.js +53 -10
  1065. package/dist/commands/ps.js.map +1 -1
  1066. package/dist/commands/queue.d.ts +15 -5
  1067. package/dist/commands/queue.d.ts.map +1 -1
  1068. package/dist/commands/queue.js +172 -47
  1069. package/dist/commands/queue.js.map +1 -1
  1070. package/dist/commands/requirements.d.ts.map +1 -1
  1071. package/dist/commands/requirements.js +8 -5
  1072. package/dist/commands/requirements.js.map +1 -1
  1073. package/dist/commands/restore.js +1 -1
  1074. package/dist/commands/restore.js.map +1 -1
  1075. package/dist/commands/rig-mode.d.ts.map +1 -1
  1076. package/dist/commands/rig-mode.js +106 -18
  1077. package/dist/commands/rig-mode.js.map +1 -1
  1078. package/dist/commands/scope.d.ts.map +1 -1
  1079. package/dist/commands/scope.js +103 -44
  1080. package/dist/commands/scope.js.map +1 -1
  1081. package/dist/commands/seat.d.ts.map +1 -1
  1082. package/dist/commands/seat.js +290 -28
  1083. package/dist/commands/seat.js.map +1 -1
  1084. package/dist/commands/send.d.ts +2 -2
  1085. package/dist/commands/send.d.ts.map +1 -1
  1086. package/dist/commands/send.js +79 -12
  1087. package/dist/commands/send.js.map +1 -1
  1088. package/dist/commands/slack.d.ts.map +1 -1
  1089. package/dist/commands/slack.js +9 -4
  1090. package/dist/commands/slack.js.map +1 -1
  1091. package/dist/commands/start.d.ts +11 -0
  1092. package/dist/commands/start.d.ts.map +1 -1
  1093. package/dist/commands/start.js +81 -6
  1094. package/dist/commands/start.js.map +1 -1
  1095. package/dist/commands/status.d.ts.map +1 -1
  1096. package/dist/commands/status.js +60 -2
  1097. package/dist/commands/status.js.map +1 -1
  1098. package/dist/commands/up.d.ts.map +1 -1
  1099. package/dist/commands/up.js +68 -0
  1100. package/dist/commands/up.js.map +1 -1
  1101. package/dist/commands/usage.d.ts +12 -0
  1102. package/dist/commands/usage.d.ts.map +1 -1
  1103. package/dist/commands/usage.js +107 -0
  1104. package/dist/commands/usage.js.map +1 -1
  1105. package/dist/commands/watchdog.d.ts.map +1 -1
  1106. package/dist/commands/watchdog.js +20 -7
  1107. package/dist/commands/watchdog.js.map +1 -1
  1108. package/dist/commands/whoami.d.ts +36 -0
  1109. package/dist/commands/whoami.d.ts.map +1 -1
  1110. package/dist/commands/whoami.js +125 -7
  1111. package/dist/commands/whoami.js.map +1 -1
  1112. package/dist/commands/workflow.d.ts.map +1 -1
  1113. package/dist/commands/workflow.js +53 -5
  1114. package/dist/commands/workflow.js.map +1 -1
  1115. package/dist/config-store.d.ts +20 -1
  1116. package/dist/config-store.d.ts.map +1 -1
  1117. package/dist/config-store.js +92 -0
  1118. package/dist/config-store.js.map +1 -1
  1119. package/dist/daemon-lifecycle.d.ts +2 -2
  1120. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1121. package/dist/daemon-lifecycle.js +5 -4
  1122. package/dist/daemon-lifecycle.js.map +1 -1
  1123. package/dist/host-registry.d.ts.map +1 -1
  1124. package/dist/host-registry.js +6 -3
  1125. package/dist/host-registry.js.map +1 -1
  1126. package/dist/index.d.ts +1 -0
  1127. package/dist/index.d.ts.map +1 -1
  1128. package/dist/index.js +4 -7
  1129. package/dist/index.js.map +1 -1
  1130. package/dist/lazy-program.d.ts +9 -0
  1131. package/dist/lazy-program.d.ts.map +1 -0
  1132. package/dist/lazy-program.js +111 -0
  1133. package/dist/lazy-program.js.map +1 -0
  1134. package/dist/lib/bundle-check.js +2 -2
  1135. package/dist/lib/bundle-check.js.map +1 -1
  1136. package/dist/lib/bundle-source.d.ts +1 -0
  1137. package/dist/lib/bundle-source.d.ts.map +1 -1
  1138. package/dist/lib/bundle-source.js +1 -0
  1139. package/dist/lib/bundle-source.js.map +1 -1
  1140. package/dist/lib/codex-auth.d.ts.map +1 -1
  1141. package/dist/lib/codex-auth.js +17 -1
  1142. package/dist/lib/codex-auth.js.map +1 -1
  1143. package/dist/lib/context-install.js +1 -1
  1144. package/dist/lib/context-install.js.map +1 -1
  1145. package/dist/lib/file-transfer.js +1 -1
  1146. package/dist/lib/file-transfer.js.map +1 -1
  1147. package/dist/lib/frontmatter.d.ts +11 -0
  1148. package/dist/lib/frontmatter.d.ts.map +1 -0
  1149. package/dist/lib/frontmatter.js +20 -0
  1150. package/dist/lib/frontmatter.js.map +1 -0
  1151. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1152. package/dist/lib/permission-policy/policy-spec.js +5 -7
  1153. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1154. package/dist/lib/scope/logical-checkbox.js +1 -1
  1155. package/dist/lib/scope/logical-checkbox.js.map +1 -1
  1156. package/dist/lib/scope/mission-composition.d.ts +5 -1
  1157. package/dist/lib/scope/mission-composition.d.ts.map +1 -1
  1158. package/dist/lib/scope/mission-composition.js +61 -1
  1159. package/dist/lib/scope/mission-composition.js.map +1 -1
  1160. package/dist/lib/scope/scope-fs.d.ts +10 -1
  1161. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1162. package/dist/lib/scope/scope-fs.js +54 -5
  1163. package/dist/lib/scope/scope-fs.js.map +1 -1
  1164. package/dist/lib/scope/slice-claims.d.ts +8 -0
  1165. package/dist/lib/scope/slice-claims.d.ts.map +1 -0
  1166. package/dist/lib/scope/slice-claims.js +88 -0
  1167. package/dist/lib/scope/slice-claims.js.map +1 -0
  1168. package/dist/lib/work-install.d.ts.map +1 -1
  1169. package/dist/lib/work-install.js +3 -13
  1170. package/dist/lib/work-install.js.map +1 -1
  1171. package/dist/mcp-server.d.ts.map +1 -1
  1172. package/dist/mcp-server.js +113 -0
  1173. package/dist/mcp-server.js.map +1 -1
  1174. package/dist/program-root.d.ts +5 -0
  1175. package/dist/program-root.d.ts.map +1 -0
  1176. package/dist/program-root.js +11 -0
  1177. package/dist/program-root.js.map +1 -0
  1178. package/dist/queue-read-compact.d.ts +29 -0
  1179. package/dist/queue-read-compact.d.ts.map +1 -0
  1180. package/dist/queue-read-compact.js +74 -0
  1181. package/dist/queue-read-compact.js.map +1 -0
  1182. package/dist/queue-receipt.d.ts +41 -0
  1183. package/dist/queue-receipt.d.ts.map +1 -0
  1184. package/dist/queue-receipt.js +272 -0
  1185. package/dist/queue-receipt.js.map +1 -0
  1186. package/dist/remote-host-ops.d.ts +21 -0
  1187. package/dist/remote-host-ops.d.ts.map +1 -1
  1188. package/dist/remote-host-ops.js +25 -12
  1189. package/dist/remote-host-ops.js.map +1 -1
  1190. package/package.json +1 -1
  1191. package/tui/dist/commands/registry.d.ts.map +1 -1
  1192. package/tui/dist/commands/registry.js +3 -0
  1193. package/tui/dist/commands/registry.js.map +1 -1
  1194. package/tui/dist/config/config-model.d.ts.map +1 -1
  1195. package/tui/dist/config/config-model.js +7 -0
  1196. package/tui/dist/config/config-model.js.map +1 -1
  1197. package/tui/dist/cost/cost-model.d.ts +12 -0
  1198. package/tui/dist/cost/cost-model.d.ts.map +1 -0
  1199. package/tui/dist/cost/cost-model.js +141 -0
  1200. package/tui/dist/cost/cost-model.js.map +1 -0
  1201. package/tui/dist/cost/cost-read.d.ts +19 -0
  1202. package/tui/dist/cost/cost-read.d.ts.map +1 -0
  1203. package/tui/dist/cost/cost-read.js +4 -0
  1204. package/tui/dist/cost/cost-read.js.map +1 -0
  1205. package/tui/dist/daemon-client.d.ts +13 -0
  1206. package/tui/dist/daemon-client.d.ts.map +1 -1
  1207. package/tui/dist/daemon-client.js +77 -1
  1208. package/tui/dist/daemon-client.js.map +1 -1
  1209. package/tui/dist/detail.d.ts +2 -0
  1210. package/tui/dist/detail.d.ts.map +1 -1
  1211. package/tui/dist/detail.js +5 -0
  1212. package/tui/dist/detail.js.map +1 -1
  1213. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1214. package/tui/dist/execution/execution-model.js +38 -18
  1215. package/tui/dist/execution/execution-model.js.map +1 -1
  1216. package/tui/dist/helper-cwd.d.ts +3 -0
  1217. package/tui/dist/helper-cwd.d.ts.map +1 -0
  1218. package/tui/dist/helper-cwd.js +16 -0
  1219. package/tui/dist/helper-cwd.js.map +1 -0
  1220. package/tui/dist/hydrate.d.ts.map +1 -1
  1221. package/tui/dist/hydrate.js +43 -5
  1222. package/tui/dist/hydrate.js.map +1 -1
  1223. package/tui/dist/input.d.ts.map +1 -1
  1224. package/tui/dist/input.js +2 -1
  1225. package/tui/dist/input.js.map +1 -1
  1226. package/tui/dist/local-reading.d.ts.map +1 -1
  1227. package/tui/dist/local-reading.js +2 -1
  1228. package/tui/dist/local-reading.js.map +1 -1
  1229. package/tui/dist/main.js +6 -5
  1230. package/tui/dist/main.js.map +1 -1
  1231. package/tui/dist/pulse/pulse-model.d.ts +1 -0
  1232. package/tui/dist/pulse/pulse-model.d.ts.map +1 -1
  1233. package/tui/dist/pulse/pulse-model.js +7 -3
  1234. package/tui/dist/pulse/pulse-model.js.map +1 -1
  1235. package/tui/dist/pulse/render-pulse.d.ts.map +1 -1
  1236. package/tui/dist/pulse/render-pulse.js +10 -2
  1237. package/tui/dist/pulse/render-pulse.js.map +1 -1
  1238. package/tui/dist/reading.js +1 -1
  1239. package/tui/dist/reading.js.map +1 -1
  1240. package/tui/dist/render.d.ts.map +1 -1
  1241. package/tui/dist/render.js +36 -12
  1242. package/tui/dist/render.js.map +1 -1
  1243. package/tui/dist/scopes/scopes-model.d.ts +6 -1
  1244. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1245. package/tui/dist/scopes/scopes-model.js +33 -13
  1246. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1247. package/tui/dist/sections.d.ts.map +1 -1
  1248. package/tui/dist/sections.js +4 -1
  1249. package/tui/dist/sections.js.map +1 -1
  1250. package/tui/dist/socket-server.d.ts.map +1 -1
  1251. package/tui/dist/socket-server.js +2 -1
  1252. package/tui/dist/socket-server.js.map +1 -1
  1253. package/tui/dist/specs/launch.d.ts.map +1 -1
  1254. package/tui/dist/specs/launch.js +2 -1
  1255. package/tui/dist/specs/launch.js.map +1 -1
  1256. package/tui/dist/startup.js +1 -1
  1257. package/tui/dist/startup.js.map +1 -1
  1258. package/tui/dist/state.d.ts.map +1 -1
  1259. package/tui/dist/state.js +8 -4
  1260. package/tui/dist/state.js.map +1 -1
  1261. package/tui/dist/terminals/open-window.d.ts.map +1 -1
  1262. package/tui/dist/terminals/open-window.js +2 -1
  1263. package/tui/dist/terminals/open-window.js.map +1 -1
  1264. package/tui/dist/types.d.ts +12 -0
  1265. package/tui/dist/types.d.ts.map +1 -1
  1266. package/tui/dist/usage/usage-hosts-model.d.ts +17 -0
  1267. package/tui/dist/usage/usage-hosts-model.d.ts.map +1 -0
  1268. package/tui/dist/usage/usage-hosts-model.js +73 -0
  1269. package/tui/dist/usage/usage-hosts-model.js.map +1 -0
  1270. package/tui/dist/usage/usage-model.d.ts +39 -0
  1271. package/tui/dist/usage/usage-model.d.ts.map +1 -0
  1272. package/tui/dist/usage/usage-model.js +161 -0
  1273. package/tui/dist/usage/usage-model.js.map +1 -0
  1274. package/ui/dist/assets/{index-D5n8EwkG.js → index-Cfbtfd9G.js} +159 -159
  1275. package/ui/dist/index.html +1 -1
@@ -0,0 +1,155 @@
1
+ // Community harnesses: another community harness runs in a seat from a small data preset the person installs, one YAML file
2
+ // per harness under $OPENRIG_HOME/community-harnesses/<name>.yaml. A preset names the harness, the command that starts it in the seat's
3
+ // pane, its maintainer and the limits it declares. OpenRig hasn't tested these harnesses: it shows them as community harnesses,
4
+ // never confirms their identity, and reads their activity only from what the screen shows. Built-in runtime names are
5
+ // reserved, so a preset can't replace one.
6
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
7
+ import { basename, join } from "node:path";
8
+ import { parse as parseYaml } from "yaml";
9
+ import { getDefaultOpenRigPath } from "../openrig-compat.js";
10
+ import { BUILT_IN_RUNTIMES, isCommunityHarnessRuntime } from "./built-in-runtimes.js";
11
+ export { BUILT_IN_RUNTIMES, isCommunityHarnessRuntime };
12
+ export const COMMUNITY_HARNESS_PRESET_FORMAT = 1;
13
+ const FIELDS = ["format", "name", "command", "maintainer", "limits"];
14
+ const NAME = /^[a-z0-9][a-z0-9-]{0,62}$/;
15
+ export function communityHarnessesDir() {
16
+ return getDefaultOpenRigPath("community-harnesses");
17
+ }
18
+ function parsePreset(name, path, text) {
19
+ const bad = (reason) => ({ ok: false, kind: "incompatible", path,
20
+ message: `community harness "${name}": the preset at ${path} can't be used: ${reason}` });
21
+ let doc;
22
+ try {
23
+ doc = parseYaml(text);
24
+ }
25
+ catch {
26
+ return bad("it isn't valid YAML");
27
+ }
28
+ if (!doc || typeof doc !== "object" || Array.isArray(doc))
29
+ return bad("it isn't a YAML mapping");
30
+ const raw = doc;
31
+ if (raw.format !== COMMUNITY_HARNESS_PRESET_FORMAT) {
32
+ return bad(`it declares format ${JSON.stringify(raw.format ?? null)}; this OpenRig reads format ${COMMUNITY_HARNESS_PRESET_FORMAT}`);
33
+ }
34
+ const unknown = Object.keys(raw).filter(key => !FIELDS.includes(key));
35
+ if (unknown.length)
36
+ return bad(`unknown field${unknown.length > 1 ? "s" : ""} ${unknown.join(", ")} (format ${COMMUNITY_HARNESS_PRESET_FORMAT} has ${FIELDS.join(", ")})`);
37
+ if (raw.name !== name)
38
+ return bad(`its name is ${JSON.stringify(raw.name ?? null)}, not "${name}" (the file name)`);
39
+ for (const key of ["command", "maintainer"]) {
40
+ if (typeof raw[key] !== "string" || !raw[key].trim())
41
+ return bad(`${key} must be a non-empty string`);
42
+ }
43
+ const shell = shellSyntaxIn(raw.command);
44
+ if (shell) {
45
+ return bad(`command must be a single program and its arguments; shell syntax such as ${shell} isn't supported: put it in a script and name the script`);
46
+ }
47
+ const limits = raw.limits ?? [];
48
+ if (!Array.isArray(limits) || limits.some(limit => typeof limit !== "string" || !limit.trim())) {
49
+ return bad("limits must be a list of non-empty strings");
50
+ }
51
+ return { ok: true, preset: { name, command: raw.command, maintainer: raw.maintainer, limits: limits, path } };
52
+ }
53
+ /** The first shell construct in a preset command, or null when it's one program with its arguments. The command is
54
+ * typed into the seat pane's shell as `/usr/bin/env K=V … <command>` (or staged into a script run by sh), so an
55
+ * operator, redirection, substitution, history expansion or newline would act on that line outside the program, and an
56
+ * alias isn't a program. Keeping to one program and its arguments keeps shell syntax out of the line; it doesn't
57
+ * isolate the program from a shell (`sh -c '…'` is still a program and its arguments). Single and double quotes may
58
+ * group an argument; a backslash or `!` is accepted only inside single quotes, where the shell reads it literally. */
59
+ function shellSyntaxIn(command) {
60
+ let quote = null;
61
+ for (let i = 0; i < command.length; i++) {
62
+ const c = command[i];
63
+ const next = command[i + 1];
64
+ if (quote === "'") {
65
+ if (c === "'")
66
+ quote = null;
67
+ continue;
68
+ }
69
+ // The shell reads \" or \' as a literal quote, not a grouping one; a scan without escapes would misread what follows.
70
+ if (c === "\\")
71
+ return "a backslash escape";
72
+ if (c === "!")
73
+ return "! (history expansion)";
74
+ if (c === "\n" || c === "\r")
75
+ return "a newline";
76
+ if (c === "`")
77
+ return "`…` (command substitution)";
78
+ if (c === "$" && next === "(")
79
+ return "$(…) (command substitution)";
80
+ if (quote === '"') {
81
+ if (c === '"')
82
+ quote = null;
83
+ continue;
84
+ }
85
+ if (c === "'" || c === '"') {
86
+ quote = c;
87
+ continue;
88
+ }
89
+ if (c === "&" && next === "&")
90
+ return "&&";
91
+ if (c === "|" && next === "|")
92
+ return "||";
93
+ if (c === "|")
94
+ return "|";
95
+ if (c === "&")
96
+ return "&";
97
+ if (c === ";")
98
+ return ";";
99
+ if (c === "<" || c === ">")
100
+ return "a redirection (< or >)";
101
+ if (c === "(" || c === ")")
102
+ return "a subshell ( … )";
103
+ }
104
+ return quote ? "an unclosed quote" : null;
105
+ }
106
+ /** The installed preset for a community harness, or why there isn't a usable one. */
107
+ export function loadCommunityHarnessPreset(name, dir = communityHarnessesDir()) {
108
+ const path = join(dir, `${name}.yaml`);
109
+ if (BUILT_IN_RUNTIMES.has(name)) {
110
+ return { ok: false, kind: "incompatible", path, message: `"${name}" is a built-in runtime; a community harness preset can't use that name` };
111
+ }
112
+ // The name check comes first: it keeps a runtime name from reaching outside the directory.
113
+ if (!NAME.test(name)) {
114
+ if (name === basename(name) && !name.startsWith(".") && existsSync(path)) {
115
+ return { ok: false, kind: "incompatible", path,
116
+ message: `community harness "${name}": the preset at ${path} can't be used: its name must be lowercase letters, digits and hyphens, starting with a letter or digit` };
117
+ }
118
+ return { ok: false, kind: "missing", path, message: `no community harness preset named "${name}" is installed (looked for ${path})` };
119
+ }
120
+ if (!existsSync(path)) {
121
+ return { ok: false, kind: "missing", path, message: `no community harness preset named "${name}" is installed (looked for ${path})` };
122
+ }
123
+ let text;
124
+ try {
125
+ text = readFileSync(path, "utf-8");
126
+ }
127
+ catch {
128
+ return { ok: false, kind: "incompatible", path, message: `community harness "${name}": the preset at ${path} couldn't be read` };
129
+ }
130
+ return parsePreset(name, path, text);
131
+ }
132
+ /** Every preset file in the directory, usable or not, sorted by name. */
133
+ export function listCommunityHarnessPresets(dir = communityHarnessesDir()) {
134
+ if (!existsSync(dir))
135
+ return [];
136
+ let files;
137
+ try {
138
+ files = readdirSync(dir).filter(file => file.endsWith(".yaml")).sort();
139
+ }
140
+ catch {
141
+ return [];
142
+ }
143
+ return files.map(file => loadCommunityHarnessPreset(file.slice(0, -".yaml".length), dir));
144
+ }
145
+ export function communityHarnessLabel(runtime, dir = communityHarnessesDir()) {
146
+ const found = loadCommunityHarnessPreset(runtime, dir);
147
+ return {
148
+ harness: runtime, community: true, testedByOpenRig: false,
149
+ maintainer: found.ok ? found.preset.maintainer : null,
150
+ limits: found.ok ? found.preset.limits : [],
151
+ identity: "not confirmed", needsInput: "from the screen only: no harness prompt pattern",
152
+ ...(found.ok ? {} : { presetError: found.message }),
153
+ };
154
+ }
155
+ //# sourceMappingURL=community-harness-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"community-harness-presets.js","sourceRoot":"","sources":["../../src/domain/community-harness-presets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * One place for the composer/prompt glyphs and the shapes built from them.
3
+ *
4
+ * The send-readiness classifier, the staged-input inspector, the startup
5
+ * submission guard and the CLI's staged-at-prompt detector all have to agree on
6
+ * what a composer prompt looks like. They used to each carry their own copy:
7
+ * Claude Code draws `❯`, Codex draws `›`, and Codex 0.153 variants draw `»`
8
+ * (#79). A renderer change or a new glyph must land here once, so the send
9
+ * verify path and the staged-input check can never disagree.
10
+ */
11
+ /** Every glyph a harness has been observed to draw as its composer prompt. */
12
+ export declare const COMPOSER_PROMPT_CHARS: readonly ["❯", "›", "»"];
13
+ /** Character-class fragment (without brackets) for the prompt glyphs. */
14
+ export declare const COMPOSER_PROMPT_CLASS: string;
15
+ /**
16
+ * The glyph set for one runtime. A Claude pane uses `❯`; a Codex pane uses `›`
17
+ * (and `»` on 0.153 variants). Only an unknown runtime takes the union, because
18
+ * a multi-line draft's continuation can itself start with another harness's
19
+ * glyph (a quoted Codex line inside a Claude draft, say), and taking the last
20
+ * such line as the composer would misread the staged text.
21
+ */
22
+ export declare function composerPromptClassForRuntime(runtime: string | null | undefined): string;
23
+ /** A numbered option line (`❯ 1. Yes`, `› 2. No`): a prompt selection, never staged input. */
24
+ export declare const COMPOSER_SELECTION_PATTERN: RegExp;
25
+ /** Same selection shape, matched line-wise across a multi-line scan window. */
26
+ export declare const COMPOSER_SELECTION_SCAN_PATTERN: RegExp;
27
+ /**
28
+ * The broader numbered-option exclusion the staged-input checks always had:
29
+ * number plus dot, with or without a space (`❯ 1.Yes` is still a selector). A
30
+ * compact option must never be confirmed or healed as staged text.
31
+ */
32
+ export declare function composerSelectionPrefixPattern(promptClass?: string): RegExp;
33
+ /**
34
+ * A numbered-option line with either separator (`❯ 1. Yes`, `› 1) No`, `» 2) Later`):
35
+ * a prompt selection, never the typed answer. The prompt-answer path accepts both
36
+ * `.` and `)` after the number, unlike the staged-input prefix exclusion above.
37
+ */
38
+ export declare function composerNumberedChoicePattern(promptClass?: string): RegExp;
39
+ /** Empty composer: prompt glyph, optional whitespace, end of line. */
40
+ export declare const COMPOSER_EMPTY_PATTERN: RegExp;
41
+ /** Codex renders a fixed placeholder in its empty composer (`›` or 0.153's `»`). */
42
+ export declare const COMPOSER_EMPTY_CODEX_PLACEHOLDER_PATTERN: RegExp;
43
+ /** Draft present: prompt glyph followed by non-whitespace text. */
44
+ export declare const COMPOSER_DRAFT_PATTERN: RegExp;
45
+ /** True when a line begins with any composer prompt glyph (union default). */
46
+ export declare const COMPOSER_PROMPT_LINE_PATTERN: RegExp;
47
+ /**
48
+ * Index of the last composer prompt line in a capture, or -1 when the capture
49
+ * carries none. Only the last one can be the current input; everything above it
50
+ * is transcript history and a bare Enter there could drive an old prompt.
51
+ * `promptClass` scopes the glyphs to a known runtime; the union is the default
52
+ * for callers that have no runtime (the advisory classifier and CLI detector).
53
+ */
54
+ export declare function findComposerInputLineIndex(lines: string[], promptClass?: string): number;
55
+ /** Strip a leading prompt glyph from a composer line. */
56
+ export declare function stripComposerPromptGlyph(line: string, promptClass?: string): string;
57
+ /** Read the prompt once for both advisory draft recognition and cursor-bound
58
+ * input checks. Keep the one prompt-space separate from authored whitespace.
59
+ */
60
+ export declare function readComposerPromptLine(line: string, promptClass?: string): {
61
+ indent: string;
62
+ glyph: string;
63
+ text: string;
64
+ prefix: number;
65
+ } | null;
66
+ /**
67
+ * Distinct prompt glyphs in the capture up to and including `inputIndex`.
68
+ * The walk does not stop at a blank line or a rule: a multi-line draft can
69
+ * hold either, and the ambiguous unknown-runtime read has to see the
70
+ * unrelated first line that precedes them.
71
+ */
72
+ export declare function composerGlyphKindsInBlock(lines: string[], inputIndex: number): Set<string>;
73
+ /**
74
+ * True when an unknown-runtime read of this composer block is ambiguous: the
75
+ * block holds more than one prompt glyph kind, so there is no runtime to say
76
+ * which line is the live input. A caller must keep the union for unknown
77
+ * runtimes but fail closed here, exactly as the pre-shared-matcher check did.
78
+ */
79
+ export declare function composerPromptIsAmbiguous(lines: string[], inputIndex: number, promptClass?: string): boolean;
80
+ export interface ComposerSnapshot {
81
+ screen: string;
82
+ cursor: {
83
+ x: number;
84
+ y: number;
85
+ width: number;
86
+ height: number;
87
+ };
88
+ inMode: boolean;
89
+ }
90
+ export interface ComposerOwnership {
91
+ text: string;
92
+ frame: string;
93
+ }
94
+ export interface ComposerInput {
95
+ state: "empty" | "text" | "unknown";
96
+ rows: string[];
97
+ columns: number;
98
+ frame?: string;
99
+ pasteMatchesExpected?: boolean;
100
+ cursorAtEnd: boolean;
101
+ collapsedPaste: string | null;
102
+ /** A proven display-only suffix, so readiness can reuse the same input read. */
103
+ ghost?: {
104
+ line: number;
105
+ offset: number;
106
+ continuationRows: number;
107
+ };
108
+ }
109
+ export declare const COMPOSER_COLLAPSED_PASTE_PATTERN: RegExp;
110
+ /** Preserve characters and spaces within rows. Only a real line break, a full
111
+ * terminal row, or a word that cannot fit may explain a rendered row boundary.
112
+ */
113
+ export declare function composerContainsOwnedText(input: ComposerInput, expected: string): boolean;
114
+ /** An opaque label may be remembered only immediately after this lease pasted
115
+ * the text. Subsequent submission requires that same complete label and cursor.
116
+ */
117
+ export declare function ownCollapsedPaste(input: ComposerInput, expected: string): string | null;
118
+ //# sourceMappingURL=composer-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer-prompts.d.ts","sourceRoot":"","sources":["../../src/domain/composer-prompts.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,0BAA2B,CAAC;AAE9D,yEAAyE;AACzE,eAAO,MAAM,qBAAqB,QAAiC,CAAC;AAIpE;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAIxF;AAOD,8FAA8F;AAC9F,eAAO,MAAM,0BAA0B,QAAyD,CAAC;AACjG,+EAA+E;AAC/E,eAAO,MAAM,+BAA+B,QAA8D,CAAC;AAC3G;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,WAAW,GAAE,MAA8B,GAAG,MAAM,CAElG;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,GAAE,MAA8B,GAAG,MAAM,CAEjG;AAED,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,QAAgD,CAAC;AACpF,oFAAoF;AACpF,eAAO,MAAM,wCAAwC,QAAyC,CAAC;AAC/F,mEAAmE;AACnE,eAAO,MAAM,sBAAsB,QAAkD,CAAC;AACtF,8EAA8E;AAC9E,eAAO,MAAM,4BAA4B,QAA2C,CAAC;AAErF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,GAAE,MAA8B,GAAG,MAAM,CAM/G;AAED,yDAAyD;AACzD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,MAA8B,GAAG,MAAM,CAE1G;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,GAAE,MAA8B;;;;;SAM/F;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAO1F;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,GAAE,MAA8B,GAAG,OAAO,CAGnI;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAElE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gFAAgF;IAChF,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE;AAED,eAAO,MAAM,gCAAgC,QAAyC,CAAC;AAEvF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAsBzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIvF"}
@@ -0,0 +1,165 @@
1
+ import stringWidth from "string-width";
2
+ /**
3
+ * One place for the composer/prompt glyphs and the shapes built from them.
4
+ *
5
+ * The send-readiness classifier, the staged-input inspector, the startup
6
+ * submission guard and the CLI's staged-at-prompt detector all have to agree on
7
+ * what a composer prompt looks like. They used to each carry their own copy:
8
+ * Claude Code draws `❯`, Codex draws `›`, and Codex 0.153 variants draw `»`
9
+ * (#79). A renderer change or a new glyph must land here once, so the send
10
+ * verify path and the staged-input check can never disagree.
11
+ */
12
+ /** Every glyph a harness has been observed to draw as its composer prompt. */
13
+ export const COMPOSER_PROMPT_CHARS = ["❯", "›", "»"];
14
+ /** Character-class fragment (without brackets) for the prompt glyphs. */
15
+ export const COMPOSER_PROMPT_CLASS = COMPOSER_PROMPT_CHARS.join("");
16
+ const promptChar = `[${COMPOSER_PROMPT_CLASS}]`;
17
+ /**
18
+ * The glyph set for one runtime. A Claude pane uses `❯`; a Codex pane uses `›`
19
+ * (and `»` on 0.153 variants). Only an unknown runtime takes the union, because
20
+ * a multi-line draft's continuation can itself start with another harness's
21
+ * glyph (a quoted Codex line inside a Claude draft, say), and taking the last
22
+ * such line as the composer would misread the staged text.
23
+ */
24
+ export function composerPromptClassForRuntime(runtime) {
25
+ if (runtime === "claude-code")
26
+ return "❯";
27
+ if (runtime === "codex")
28
+ return "›»";
29
+ return COMPOSER_PROMPT_CLASS;
30
+ }
31
+ /** Build a line-anchored pattern for one prompt-glyph set. */
32
+ function promptPattern(promptClass, suffix, flags = "") {
33
+ return new RegExp(`^[${promptClass}]${suffix}`, flags);
34
+ }
35
+ /** A numbered option line (`❯ 1. Yes`, `› 2. No`): a prompt selection, never staged input. */
36
+ export const COMPOSER_SELECTION_PATTERN = promptPattern(COMPOSER_PROMPT_CLASS, "\\s*\\d+\\.\\s");
37
+ /** Same selection shape, matched line-wise across a multi-line scan window. */
38
+ export const COMPOSER_SELECTION_SCAN_PATTERN = promptPattern(COMPOSER_PROMPT_CLASS, "\\s*\\d+\\.\\s", "m");
39
+ /**
40
+ * The broader numbered-option exclusion the staged-input checks always had:
41
+ * number plus dot, with or without a space (`❯ 1.Yes` is still a selector). A
42
+ * compact option must never be confirmed or healed as staged text.
43
+ */
44
+ export function composerSelectionPrefixPattern(promptClass = COMPOSER_PROMPT_CLASS) {
45
+ return promptPattern(promptClass, "\\s*\\d+\\.");
46
+ }
47
+ /**
48
+ * A numbered-option line with either separator (`❯ 1. Yes`, `› 1) No`, `» 2) Later`):
49
+ * a prompt selection, never the typed answer. The prompt-answer path accepts both
50
+ * `.` and `)` after the number, unlike the staged-input prefix exclusion above.
51
+ */
52
+ export function composerNumberedChoicePattern(promptClass = COMPOSER_PROMPT_CLASS) {
53
+ return promptPattern(promptClass, "\\s*\\d+[.)]");
54
+ }
55
+ /** Empty composer: prompt glyph, optional whitespace, end of line. */
56
+ export const COMPOSER_EMPTY_PATTERN = promptPattern(COMPOSER_PROMPT_CLASS, "\\s*$");
57
+ /** Codex renders a fixed placeholder in its empty composer (`›` or 0.153's `»`). */
58
+ export const COMPOSER_EMPTY_CODEX_PLACEHOLDER_PATTERN = /^[›»]\s+Ask Codex to do anything\s*$/;
59
+ /** Draft present: prompt glyph followed by non-whitespace text. */
60
+ export const COMPOSER_DRAFT_PATTERN = promptPattern(COMPOSER_PROMPT_CLASS, "\\s+\\S");
61
+ /** True when a line begins with any composer prompt glyph (union default). */
62
+ export const COMPOSER_PROMPT_LINE_PATTERN = promptPattern(COMPOSER_PROMPT_CLASS, "");
63
+ /**
64
+ * Index of the last composer prompt line in a capture, or -1 when the capture
65
+ * carries none. Only the last one can be the current input; everything above it
66
+ * is transcript history and a bare Enter there could drive an old prompt.
67
+ * `promptClass` scopes the glyphs to a known runtime; the union is the default
68
+ * for callers that have no runtime (the advisory classifier and CLI detector).
69
+ */
70
+ export function findComposerInputLineIndex(lines, promptClass = COMPOSER_PROMPT_CLASS) {
71
+ const pattern = promptPattern(promptClass, "");
72
+ for (let i = lines.length - 1; i >= 0; i--) {
73
+ if (pattern.test(lines[i].trimStart()))
74
+ return i;
75
+ }
76
+ return -1;
77
+ }
78
+ /** Strip a leading prompt glyph from a composer line. */
79
+ export function stripComposerPromptGlyph(line, promptClass = COMPOSER_PROMPT_CLASS) {
80
+ return line.replace(promptPattern(promptClass, ""), "");
81
+ }
82
+ /** Read the prompt once for both advisory draft recognition and cursor-bound
83
+ * input checks. Keep the one prompt-space separate from authored whitespace.
84
+ */
85
+ export function readComposerPromptLine(line, promptClass = COMPOSER_PROMPT_CLASS) {
86
+ const trimmed = line.trimStart();
87
+ const body = stripComposerPromptGlyph(trimmed, promptClass);
88
+ if (body === trimmed || (body !== "" && !/^\s/.test(body)))
89
+ return null;
90
+ const indent = line.slice(0, line.length - trimmed.length);
91
+ return { indent, glyph: trimmed[0], text: body.slice(1), prefix: indent.length + 2 };
92
+ }
93
+ /**
94
+ * Distinct prompt glyphs in the capture up to and including `inputIndex`.
95
+ * The walk does not stop at a blank line or a rule: a multi-line draft can
96
+ * hold either, and the ambiguous unknown-runtime read has to see the
97
+ * unrelated first line that precedes them.
98
+ */
99
+ export function composerGlyphKindsInBlock(lines, inputIndex) {
100
+ const kinds = new Set();
101
+ for (let i = inputIndex; i >= 0; i--) {
102
+ const first = lines[i].trimStart()[0];
103
+ if (first !== undefined && COMPOSER_PROMPT_CHARS.includes(first))
104
+ kinds.add(first);
105
+ }
106
+ return kinds;
107
+ }
108
+ /**
109
+ * True when an unknown-runtime read of this composer block is ambiguous: the
110
+ * block holds more than one prompt glyph kind, so there is no runtime to say
111
+ * which line is the live input. A caller must keep the union for unknown
112
+ * runtimes but fail closed here, exactly as the pre-shared-matcher check did.
113
+ */
114
+ export function composerPromptIsAmbiguous(lines, inputIndex, promptClass = COMPOSER_PROMPT_CLASS) {
115
+ if (promptClass !== COMPOSER_PROMPT_CLASS)
116
+ return false;
117
+ return composerGlyphKindsInBlock(lines, inputIndex).size > 1;
118
+ }
119
+ export const COMPOSER_COLLAPSED_PASTE_PATTERN = /^\[Pasted text #\d+ \+(\d+) lines\]$/;
120
+ /** Preserve characters and spaces within rows. Only a real line break, a full
121
+ * terminal row, or a word that cannot fit may explain a rendered row boundary.
122
+ */
123
+ export function composerContainsOwnedText(input, expected) {
124
+ if (input.state !== "text" || !input.cursorAtEnd || input.collapsedPaste || !input.rows.length)
125
+ return false;
126
+ const text = expected.replace(/\r\n/g, "\n");
127
+ let offsets = new Set([0]);
128
+ for (let index = 0; index < input.rows.length; index++) {
129
+ const row = input.rows[index];
130
+ const next = new Set();
131
+ for (const offset of offsets) {
132
+ if (!text.startsWith(row, offset))
133
+ continue;
134
+ const end = offset + row.length;
135
+ if (index === input.rows.length - 1) {
136
+ if (end === text.length)
137
+ return true;
138
+ continue;
139
+ }
140
+ if (text[end] === "\n")
141
+ next.add(end + 1);
142
+ if (stringWidth(row) >= input.columns)
143
+ next.add(end);
144
+ if (text[end] === " ") {
145
+ const word = /^\S+/.exec(text.slice(end + 1))?.[0] ?? "";
146
+ if (word && stringWidth(row + " " + word) > input.columns)
147
+ next.add(end + 1);
148
+ }
149
+ }
150
+ offsets = next;
151
+ if (!offsets.size)
152
+ return false;
153
+ }
154
+ return false;
155
+ }
156
+ /** An opaque label may be remembered only immediately after this lease pasted
157
+ * the text. Subsequent submission requires that same complete label and cursor.
158
+ */
159
+ export function ownCollapsedPaste(input, expected) {
160
+ if (input.collapsedPaste && input.cursorAtEnd && input.pasteMatchesExpected)
161
+ return input.collapsedPaste;
162
+ const match = input.collapsedPaste && input.cursorAtEnd ? COMPOSER_COLLAPSED_PASTE_PATTERN.exec(input.collapsedPaste) : null;
163
+ return match && Number(match[1]) === expected.split("\n").length - 1 ? input.collapsedPaste : null;
164
+ }
165
+ //# sourceMappingURL=composer-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer-prompts.js","sourceRoot":"","sources":["../../src/domain/composer-prompts.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,9 @@ export declare class ContextMonitor {
54
54
  * sample.
55
55
  */
56
56
  private maybeAutoCompact;
57
+ /** Readiness normalization changes these two fields itself; all other snapshot
58
+ * fields, including the launch event sequence, must still describe this seat. */
59
+ private isCurrentSession;
57
60
  /** Start polling at the given interval. Idempotent. */
58
61
  start(intervalMs?: number): void;
59
62
  /** Stop polling. Safe to call before start or multiple times. */
@@ -1 +1 @@
1
- {"version":3,"file":"context-monitor.d.ts","sourceRoot":"","sources":["../../src/domain/context-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAI7F,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAY/C,UAAU,wBAAwB;IAChC,sBAAsB,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5F,UAAU,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED,UAAU,uBAAuB;IAC/B,UAAU,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,wBAAwB,CAAkC;IAClE,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,iBAAiB,CAAsD;IAC/E,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,qBAAqB,CAAoD;IACjF,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,UAAU,CAA8B;gBAG9C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,iBAAiB,EACxB,wBAAwB,CAAC,EAAE,wBAAwB,EACnD,kBAAkB,CAAC,EAAE,wBAAwB,EAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,CAAC,EACvE,YAAY,CAAC,EAAE,iBAAiB,EAChC,qBAAqB,CAAC,EAAE,MAAM,yBAAyB,EAAE;IAc3D,4EAA4E;IACtE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAWjB,OAAO;IA6CrB;0FACsF;IACtF,OAAO,CAAC,0BAA0B;IAUlC;;;;;;;;;;OAUG;YACW,gBAAgB;IA+B9B,uDAAuD;IACvD,KAAK,CAAC,UAAU,GAAE,MAAiC,GAAG,IAAI;IAW1D,iEAAiE;IACjE,IAAI,IAAI,IAAI;IAOZ,wEAAwE;IACxE,OAAO,CAAC,mBAAmB;IAgC3B,OAAO,CAAC,gBAAgB;YAqBV,sBAAsB;CA0CrC"}
1
+ {"version":3,"file":"context-monitor.d.ts","sourceRoot":"","sources":["../../src/domain/context-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAI7F,4CAA4C;AAC5C,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAqB/C,UAAU,wBAAwB;IAChC,sBAAsB,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5F,UAAU,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED,UAAU,uBAAuB;IAC/B,UAAU,CAAC,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC7D;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,wBAAwB,CAAkC;IAClE,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,iBAAiB,CAAsD;IAC/E,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,qBAAqB,CAAoD;IACjF,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,UAAU,CAA8B;gBAG9C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,KAAK,EAAE,iBAAiB,EACxB,wBAAwB,CAAC,EAAE,wBAAwB,EACnD,kBAAkB,CAAC,EAAE,wBAAwB,EAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,SAAS,CAAC,EACvE,YAAY,CAAC,EAAE,iBAAiB,EAChC,qBAAqB,CAAC,EAAE,MAAM,yBAAyB,EAAE;IAc3D,4EAA4E;IACtE,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAWjB,OAAO;IAgDrB;0FACsF;IACtF,OAAO,CAAC,0BAA0B;IAUlC;;;;;;;;;;OAUG;YACW,gBAAgB;IAiC9B;qFACiF;IACjF,OAAO,CAAC,gBAAgB;IAMxB,uDAAuD;IACvD,KAAK,CAAC,UAAU,GAAE,MAAiC,GAAG,IAAI;IAW1D,iEAAiE;IACjE,IAAI,IAAI,IAAI;IAOZ,wEAAwE;IACxE,OAAO,CAAC,mBAAmB;IA4C3B,OAAO,CAAC,gBAAgB;YAqBV,sBAAsB;CAoDrC"}
@@ -1,5 +1,5 @@
1
1
  import { isAttentionRequiredReadinessCode, } from "./runtime-adapter.js";
2
- import { hasPendingFreshStartup } from "./startup-orchestrator.js";
2
+ import { readPendingStartupContext } from "./startup-orchestrator.js";
3
3
  /** Default polling interval: 30 seconds. */
4
4
  export const DEFAULT_POLL_INTERVAL_MS = 30_000;
5
5
  /**
@@ -52,6 +52,8 @@ export class ContextMonitor {
52
52
  this.compactionEnforcer?.reconcilePreparations?.();
53
53
  const sessions = this.getEligibleSessions();
54
54
  for (const session of sessions) {
55
+ if (!this.isCurrentSession(session))
56
+ continue;
55
57
  let observed = null;
56
58
  const canReadContextUsage = session.runtime !== "codex" || !!session.resume_token;
57
59
  if (canReadContextUsage) {
@@ -72,6 +74,8 @@ export class ContextMonitor {
72
74
  totalInputTokens: observed.totalInputTokens,
73
75
  totalOutputTokens: observed.totalOutputTokens,
74
76
  usedPercentage: observed.usedPercentage,
77
+ nativeSessionId: observed.sessionId,
78
+ clientCostEstimateUsd: observed.clientCostEstimateUsd ?? null,
75
79
  }, new Date().toISOString());
76
80
  }
77
81
  catch { /* series write must never break polling */ }
@@ -127,6 +131,7 @@ export class ContextMonitor {
127
131
  usedPercentage: usage.usedPercentage,
128
132
  transcriptPath: usage.transcriptPath,
129
133
  sessionId: usage.sessionId,
134
+ isObservationCurrent: () => this.isCurrentSession(session),
130
135
  });
131
136
  return;
132
137
  }
@@ -138,6 +143,7 @@ export class ContextMonitor {
138
143
  runtime: session.runtime,
139
144
  transcriptPath: usage?.transcriptPath ?? null,
140
145
  sessionId: usage?.sessionId ?? null,
146
+ isObservationCurrent: () => this.isCurrentSession(session),
141
147
  });
142
148
  }
143
149
  catch {
@@ -145,6 +151,12 @@ export class ContextMonitor {
145
151
  // polling loop continues to make progress for remaining sessions.
146
152
  }
147
153
  }
154
+ /** Readiness normalization changes these two fields itself; all other snapshot
155
+ * fields, including the launch event sequence, must still describe this seat. */
156
+ isCurrentSession(session) {
157
+ const current = this.getEligibleSessions(session.node_id)[0];
158
+ return current !== undefined && Object.entries(session).every(([key, value]) => key === "startup_status" || key === "startup_completed_at" || current[key] === value);
159
+ }
148
160
  /** Start polling at the given interval. Idempotent. */
149
161
  start(intervalMs = DEFAULT_POLL_INTERVAL_MS) {
150
162
  if (this.timer)
@@ -165,7 +177,7 @@ export class ContextMonitor {
165
177
  }
166
178
  }
167
179
  /** Query for managed runtime sessions with readable context sources. */
168
- getEligibleSessions() {
180
+ getEligibleSessions(nodeId) {
169
181
  return this.db.prepare(`
170
182
  SELECT
171
183
  n.id as node_id,
@@ -174,7 +186,18 @@ export class ContextMonitor {
174
186
  n.runtime,
175
187
  s.resume_token,
176
188
  n.cwd,
177
- s.startup_status
189
+ s.startup_status,
190
+ s.status,
191
+ s.startup_completed_at,
192
+ b.id AS binding_id,
193
+ b.tmux_session AS binding_session,
194
+ b.tmux_pane AS binding_pane,
195
+ b.tmux_window AS binding_window,
196
+ b.updated_at AS binding_updated_at,
197
+ (SELECT generation_uuid FROM occupant_tenures t WHERE t.node_id = n.id
198
+ ORDER BY generation_ordinal DESC LIMIT 1) AS generation_uuid,
199
+ (SELECT MAX(seq) FROM events e WHERE e.node_id = n.id
200
+ AND e.type IN ('node.startup_pending', 'node.startup_ready', 'node.startup_failed')) AS startup_event_seq
178
201
  FROM nodes n
179
202
  JOIN rigs r ON r.id = n.rig_id
180
203
  JOIN sessions s ON s.node_id = n.id
@@ -194,7 +217,8 @@ export class ContextMonitor {
194
217
  AND (r.archived_at IS NULL OR s.status = 'running')
195
218
  AND COALESCE(b.attachment_type, 'tmux') = 'tmux'
196
219
  AND COALESCE(b.tmux_session, s.session_name) IS NOT NULL
197
- `).all();
220
+ ${nodeId === undefined ? "" : "AND n.id = ?"}
221
+ `).all(...(nodeId === undefined ? [] : [nodeId]));
198
222
  }
199
223
  readContextUsage(session) {
200
224
  if (session.runtime === "codex") {
@@ -221,7 +245,12 @@ export class ContextMonitor {
221
245
  return;
222
246
  if (session.startup_status !== "failed" && session.startup_status !== "attention_required")
223
247
  return;
248
+ // A poll snapshot is not a lease: lifecycle work can run before or during
249
+ // the probe. The event sequence also distinguishes same-status retries.
250
+ const isCurrent = () => JSON.stringify(this.getEligibleSessions(session.node_id)[0]) === JSON.stringify(session);
224
251
  try {
252
+ if (!isCurrent())
253
+ return;
225
254
  const readiness = await checker.checkReady({
226
255
  id: `context-monitor:${session.session_id}`,
227
256
  nodeId: session.node_id,
@@ -234,26 +263,33 @@ export class ContextMonitor {
234
263
  updatedAt: "",
235
264
  cwd: session.cwd ?? "",
236
265
  });
237
- if (readiness.ready) {
238
- // A live prompt does not deliver saved context. Check after the await:
239
- // startup may have reached an attention gate while we were observing.
240
- if (hasPendingFreshStartup(this.db, session.node_id, session.session_id))
266
+ // Hold no database lock while observing the runtime. Revalidation and
267
+ // the write share an immediate transaction, reserving the writer before the
268
+ // snapshot read so WAL contention cannot fail a later read-to-write upgrade.
269
+ this.db.transaction(() => {
270
+ if (!isCurrent())
241
271
  return;
242
- this.db.prepare(`
243
- UPDATE sessions
244
- SET startup_status = 'ready',
245
- startup_completed_at = ?
246
- WHERE id = ? AND startup_status IN ('failed', 'attention_required')
247
- `).run(new Date().toISOString(), session.session_id);
248
- return;
249
- }
250
- if (isAttentionRequiredReadinessCode(readiness.code)) {
251
- this.db.prepare(`
252
- UPDATE sessions
253
- SET startup_status = 'attention_required'
254
- WHERE id = ?
255
- `).run(session.session_id);
256
- }
272
+ if (readiness.ready) {
273
+ // A live prompt does not deliver saved context. Check after the await:
274
+ // startup may have reached an attention gate while we were observing.
275
+ if (readPendingStartupContext(this.db, session.node_id, session.session_id))
276
+ return;
277
+ this.db.prepare(`
278
+ UPDATE sessions
279
+ SET startup_status = 'ready',
280
+ startup_completed_at = ?
281
+ WHERE id = ? AND startup_status IN ('failed', 'attention_required')
282
+ `).run(new Date().toISOString(), session.session_id);
283
+ return;
284
+ }
285
+ if (isAttentionRequiredReadinessCode(readiness.code)) {
286
+ this.db.prepare(`
287
+ UPDATE sessions
288
+ SET startup_status = 'attention_required'
289
+ WHERE id = ?
290
+ `).run(session.session_id);
291
+ }
292
+ }).immediate();
257
293
  }
258
294
  catch {
259
295
  // Best-effort normalization only; telemetry polling still succeeds.