@openrig/cli 0.6.11 → 0.6.13

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 (1322) hide show
  1. package/README.md +23 -13
  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 +37 -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 +93 -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 +76 -20
  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 +15 -1
  17. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +1 -1
  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 +61 -16
  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 +63 -13
  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 +160 -43
  28. package/daemon/context-packs/reference/getting-started.md +81 -18
  29. package/daemon/context-packs/reference/manifest.yaml +1 -1
  30. package/daemon/context-packs/reference/rig-spec.md +67 -6
  31. package/daemon/context-packs/reference/whats-new.md +99 -151
  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 +1 -1
  46. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  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 +15 -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 +61 -16
  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 +26 -2
  106. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  107. package/daemon/dist/adapters/claude-code-adapter.js +275 -76
  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 +38 -1
  117. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  118. package/daemon/dist/adapters/codex-runtime-adapter.js +184 -11
  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 +5 -1
  144. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  145. package/daemon/dist/adapters/pi-resume.js +6 -1
  146. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  147. package/daemon/dist/adapters/pi-runner-protocol.d.ts +13 -0
  148. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  149. package/daemon/dist/adapters/pi-runner-protocol.js +21 -0
  150. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  151. package/daemon/dist/adapters/pi-runner.d.ts +72 -4
  152. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  153. package/daemon/dist/adapters/pi-runner.js +405 -28
  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 +19 -0
  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/stub-compaction.d.ts +1 -0
  168. package/daemon/dist/adapters/stub-compaction.d.ts.map +1 -1
  169. package/daemon/dist/adapters/stub-compaction.js +2 -0
  170. package/daemon/dist/adapters/stub-compaction.js.map +1 -1
  171. package/daemon/dist/adapters/stub-refocus.d.ts +6 -0
  172. package/daemon/dist/adapters/stub-refocus.d.ts.map +1 -0
  173. package/daemon/dist/adapters/stub-refocus.js +22 -0
  174. package/daemon/dist/adapters/stub-refocus.js.map +1 -0
  175. package/daemon/dist/adapters/stub-runner.d.ts +6 -0
  176. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  177. package/daemon/dist/adapters/stub-runner.js +18 -1
  178. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  179. package/daemon/dist/adapters/stub-script.d.ts +2 -2
  180. package/daemon/dist/adapters/stub-script.d.ts.map +1 -1
  181. package/daemon/dist/adapters/stub-script.js +2 -2
  182. package/daemon/dist/adapters/stub-script.js.map +1 -1
  183. package/daemon/dist/adapters/tmux-control.d.ts +119 -0
  184. package/daemon/dist/adapters/tmux-control.d.ts.map +1 -0
  185. package/daemon/dist/adapters/tmux-control.js +547 -0
  186. package/daemon/dist/adapters/tmux-control.js.map +1 -0
  187. package/daemon/dist/adapters/tmux-exec.d.ts +18 -4
  188. package/daemon/dist/adapters/tmux-exec.d.ts.map +1 -1
  189. package/daemon/dist/adapters/tmux-exec.js +98 -17
  190. package/daemon/dist/adapters/tmux-exec.js.map +1 -1
  191. package/daemon/dist/adapters/tmux.d.ts +52 -15
  192. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  193. package/daemon/dist/adapters/tmux.js +232 -58
  194. package/daemon/dist/adapters/tmux.js.map +1 -1
  195. package/daemon/dist/build-info.js +3 -3
  196. package/daemon/dist/composer-prompts-surface.d.ts +2 -0
  197. package/daemon/dist/composer-prompts-surface.d.ts.map +1 -0
  198. package/daemon/dist/composer-prompts-surface.js +2 -0
  199. package/daemon/dist/composer-prompts-surface.js.map +1 -0
  200. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  201. package/daemon/dist/db/all-migrations.js +26 -0
  202. package/daemon/dist/db/all-migrations.js.map +1 -1
  203. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts +3 -0
  204. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts.map +1 -0
  205. package/daemon/dist/db/migrations/100_typing_guard_modes.js +10 -0
  206. package/daemon/dist/db/migrations/100_typing_guard_modes.js.map +1 -0
  207. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts +3 -0
  208. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts.map +1 -0
  209. package/daemon/dist/db/migrations/104_node_effort_choice.js +10 -0
  210. package/daemon/dist/db/migrations/104_node_effort_choice.js.map +1 -0
  211. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts +9 -0
  212. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts.map +1 -0
  213. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js +14 -0
  214. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js.map +1 -0
  215. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts +10 -0
  216. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts.map +1 -0
  217. package/daemon/dist/db/migrations/107_pi_usage_entries.js +38 -0
  218. package/daemon/dist/db/migrations/107_pi_usage_entries.js.map +1 -0
  219. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts +12 -0
  220. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts.map +1 -0
  221. package/daemon/dist/db/migrations/108_pi_usage_charges.js +39 -0
  222. package/daemon/dist/db/migrations/108_pi_usage_charges.js.map +1 -0
  223. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts +5 -0
  224. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts.map +1 -0
  225. package/daemon/dist/db/migrations/109_mode_posture_coexist.js +11 -0
  226. package/daemon/dist/db/migrations/109_mode_posture_coexist.js.map +1 -0
  227. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts +10 -0
  228. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts.map +1 -0
  229. package/daemon/dist/db/migrations/110_workflow_instance_scope.js +14 -0
  230. package/daemon/dist/db/migrations/110_workflow_instance_scope.js.map +1 -0
  231. package/daemon/dist/db/migrations/111_seat_env.d.ts +6 -0
  232. package/daemon/dist/db/migrations/111_seat_env.d.ts.map +1 -0
  233. package/daemon/dist/db/migrations/111_seat_env.js +11 -0
  234. package/daemon/dist/db/migrations/111_seat_env.js.map +1 -0
  235. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts +3 -0
  236. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts.map +1 -0
  237. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js +14 -0
  238. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js.map +1 -0
  239. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts +3 -0
  240. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts.map +1 -0
  241. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js +9 -0
  242. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js.map +1 -0
  243. package/daemon/dist/db/migrations/114_session_agent_app.d.ts +3 -0
  244. package/daemon/dist/db/migrations/114_session_agent_app.d.ts.map +1 -0
  245. package/daemon/dist/db/migrations/114_session_agent_app.js +11 -0
  246. package/daemon/dist/db/migrations/114_session_agent_app.js.map +1 -0
  247. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts +3 -0
  248. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts.map +1 -0
  249. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js +28 -0
  250. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js.map +1 -0
  251. package/daemon/dist/db/migrations/117_provider_account_readings.d.ts +3 -0
  252. package/daemon/dist/db/migrations/117_provider_account_readings.d.ts.map +1 -0
  253. package/daemon/dist/db/migrations/117_provider_account_readings.js +32 -0
  254. package/daemon/dist/db/migrations/117_provider_account_readings.js.map +1 -0
  255. package/daemon/dist/domain/activity-taxonomy.d.ts +13 -5
  256. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  257. package/daemon/dist/domain/activity-taxonomy.js +14 -2
  258. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  259. package/daemon/dist/domain/agent-activity-store.d.ts +2 -0
  260. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  261. package/daemon/dist/domain/agent-activity-store.js +14 -8
  262. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  263. package/daemon/dist/domain/agent-images/agent-image-library-service.js +1 -1
  264. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  265. package/daemon/dist/domain/agent-images/manifest-parser.js +1 -1
  266. package/daemon/dist/domain/agent-images/manifest-parser.js.map +1 -1
  267. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  268. package/daemon/dist/domain/agent-manifest.js +21 -3
  269. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  270. package/daemon/dist/domain/applied-launch-observation-store.d.ts +2 -0
  271. package/daemon/dist/domain/applied-launch-observation-store.d.ts.map +1 -1
  272. package/daemon/dist/domain/applied-launch-observation-store.js +27 -3
  273. package/daemon/dist/domain/applied-launch-observation-store.js.map +1 -1
  274. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +3 -0
  275. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  276. package/daemon/dist/domain/bootstrap-orchestrator.js +49 -16
  277. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  278. package/daemon/dist/domain/built-in-runtimes.d.ts +10 -0
  279. package/daemon/dist/domain/built-in-runtimes.d.ts.map +1 -0
  280. package/daemon/dist/domain/built-in-runtimes.js +14 -0
  281. package/daemon/dist/domain/built-in-runtimes.js.map +1 -0
  282. package/daemon/dist/domain/bundle-archive.d.ts +3 -1
  283. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  284. package/daemon/dist/domain/bundle-archive.js +5 -3
  285. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  286. package/daemon/dist/domain/bundle-behaviour.d.ts +20 -0
  287. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
  288. package/daemon/dist/domain/bundle-behaviour.js +57 -1
  289. package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
  290. package/daemon/dist/domain/bundle-integrity.d.ts +5 -2
  291. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  292. package/daemon/dist/domain/bundle-integrity.js +39 -8
  293. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  294. package/daemon/dist/domain/bundle-source-resolver.d.ts +3 -1
  295. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  296. package/daemon/dist/domain/bundle-source-resolver.js +7 -2
  297. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  298. package/daemon/dist/domain/bundle-types.d.ts +6 -0
  299. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  300. package/daemon/dist/domain/bundle-types.js +26 -0
  301. package/daemon/dist/domain/bundle-types.js.map +1 -1
  302. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  303. package/daemon/dist/domain/chat-repository.js +3 -2
  304. package/daemon/dist/domain/chat-repository.js.map +1 -1
  305. package/daemon/dist/domain/claim-service.d.ts +6 -0
  306. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  307. package/daemon/dist/domain/claim-service.js +20 -1
  308. package/daemon/dist/domain/claim-service.js.map +1 -1
  309. package/daemon/dist/domain/claude-activity-hooks.d.ts +6 -0
  310. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
  311. package/daemon/dist/domain/claude-activity-hooks.js +19 -1
  312. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
  313. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +63 -2
  314. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  315. package/daemon/dist/domain/claude-compaction-enforcer.js +154 -16
  316. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  317. package/daemon/dist/domain/claude-core-plugin-env.d.ts +28 -0
  318. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -0
  319. package/daemon/dist/domain/claude-core-plugin-env.js +90 -0
  320. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -0
  321. package/daemon/dist/domain/claude-managed-launch.d.ts +18 -6
  322. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  323. package/daemon/dist/domain/claude-managed-launch.js +104 -10
  324. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  325. package/daemon/dist/domain/claude-mcp-menu.d.ts +5 -0
  326. package/daemon/dist/domain/claude-mcp-menu.d.ts.map +1 -0
  327. package/daemon/dist/domain/claude-mcp-menu.js +25 -0
  328. package/daemon/dist/domain/claude-mcp-menu.js.map +1 -0
  329. package/daemon/dist/domain/codex-thread-id.d.ts +22 -3
  330. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  331. package/daemon/dist/domain/codex-thread-id.js +65 -16
  332. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  333. package/daemon/dist/domain/community-harness-presets.d.ts +38 -0
  334. package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -0
  335. package/daemon/dist/domain/community-harness-presets.js +155 -0
  336. package/daemon/dist/domain/community-harness-presets.js.map +1 -0
  337. package/daemon/dist/domain/composer-prompts.d.ts +118 -0
  338. package/daemon/dist/domain/composer-prompts.d.ts.map +1 -0
  339. package/daemon/dist/domain/composer-prompts.js +165 -0
  340. package/daemon/dist/domain/composer-prompts.js.map +1 -0
  341. package/daemon/dist/domain/context-monitor.d.ts +3 -0
  342. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  343. package/daemon/dist/domain/context-monitor.js +14 -2
  344. package/daemon/dist/domain/context-monitor.js.map +1 -1
  345. package/daemon/dist/domain/context-packs/context-pack-library-service.js +2 -2
  346. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  347. package/daemon/dist/domain/context-packs/manifest-parser.js +1 -1
  348. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  349. package/daemon/dist/domain/context-usage-store.d.ts +4 -0
  350. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  351. package/daemon/dist/domain/context-usage-store.js +1 -0
  352. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  353. package/daemon/dist/domain/current-work.js +2 -2
  354. package/daemon/dist/domain/current-work.js.map +1 -1
  355. package/daemon/dist/domain/draft-aware-delivery.d.ts +32 -0
  356. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -0
  357. package/daemon/dist/domain/draft-aware-delivery.js +156 -0
  358. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -0
  359. package/daemon/dist/domain/event-bus.d.ts +10 -1
  360. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  361. package/daemon/dist/domain/event-bus.js +25 -0
  362. package/daemon/dist/domain/event-bus.js.map +1 -1
  363. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  364. package/daemon/dist/domain/execution-view.js +76 -10
  365. package/daemon/dist/domain/execution-view.js.map +1 -1
  366. package/daemon/dist/domain/fresh-occupant-relation.d.ts +7 -0
  367. package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
  368. package/daemon/dist/domain/fresh-occupant-relation.js +44 -0
  369. package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
  370. package/daemon/dist/domain/frontmatter.d.ts +11 -0
  371. package/daemon/dist/domain/frontmatter.d.ts.map +1 -0
  372. package/daemon/dist/domain/frontmatter.js +20 -0
  373. package/daemon/dist/domain/frontmatter.js.map +1 -0
  374. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +11 -0
  375. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  376. package/daemon/dist/domain/gateway/gateway-subsystem.js +7 -0
  377. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  378. package/daemon/dist/domain/gateway/human-registry.d.ts +6 -1
  379. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  380. package/daemon/dist/domain/gateway/human-registry.js +7 -0
  381. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  382. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts +54 -0
  383. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts.map +1 -0
  384. package/daemon/dist/domain/gateway/slack/bot-inbox.js +86 -0
  385. package/daemon/dist/domain/gateway/slack/bot-inbox.js.map +1 -0
  386. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
  387. package/daemon/dist/domain/gateway/slack/capabilities.js +1 -0
  388. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
  389. package/daemon/dist/domain/gateway/slack/channel-map.d.ts +11 -1
  390. package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -1
  391. package/daemon/dist/domain/gateway/slack/channel-map.js +31 -6
  392. package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -1
  393. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +14 -2
  394. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -1
  395. package/daemon/dist/domain/gateway/slack/channel-recovery.js +128 -89
  396. package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -1
  397. package/daemon/dist/domain/gateway/slack/config.d.ts +14 -0
  398. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  399. package/daemon/dist/domain/gateway/slack/config.js +28 -0
  400. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  401. package/daemon/dist/domain/gateway/slack/forwarding.d.ts +32 -0
  402. package/daemon/dist/domain/gateway/slack/forwarding.d.ts.map +1 -0
  403. package/daemon/dist/domain/gateway/slack/forwarding.js +76 -0
  404. package/daemon/dist/domain/gateway/slack/forwarding.js.map +1 -0
  405. package/daemon/dist/domain/gateway/slack/inbound.d.ts +103 -1
  406. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  407. package/daemon/dist/domain/gateway/slack/inbound.js +329 -9
  408. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  409. package/daemon/dist/domain/gateway/slack/message.d.ts +28 -0
  410. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  411. package/daemon/dist/domain/gateway/slack/message.js +105 -4
  412. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  413. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  414. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  415. package/daemon/dist/domain/gateway/slack/outbound-driver.js +1 -0
  416. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  417. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -1
  418. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  419. package/daemon/dist/domain/gateway/slack/recovery-budget.d.ts +24 -0
  420. package/daemon/dist/domain/gateway/slack/recovery-budget.d.ts.map +1 -0
  421. package/daemon/dist/domain/gateway/slack/recovery-budget.js +18 -0
  422. package/daemon/dist/domain/gateway/slack/recovery-budget.js.map +1 -0
  423. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +10 -0
  424. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  425. package/daemon/dist/domain/gateway/slack/slack-api.js +13 -0
  426. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  427. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +2 -0
  428. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  429. package/daemon/dist/domain/gateway/slack/slack-delivery.js +12 -2
  430. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  431. package/daemon/dist/domain/gateway/slack/slack-recovery.d.ts +104 -0
  432. package/daemon/dist/domain/gateway/slack/slack-recovery.d.ts.map +1 -0
  433. package/daemon/dist/domain/gateway/slack/slack-recovery.js +236 -0
  434. package/daemon/dist/domain/gateway/slack/slack-recovery.js.map +1 -0
  435. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -0
  436. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  437. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +157 -21
  438. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  439. package/daemon/dist/domain/gateway/slack/state-store.d.ts +43 -2
  440. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  441. package/daemon/dist/domain/gateway/slack/state-store.js +91 -2
  442. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  443. package/daemon/dist/domain/gateway/slack/thread-recovery.d.ts +37 -0
  444. package/daemon/dist/domain/gateway/slack/thread-recovery.d.ts.map +1 -0
  445. package/daemon/dist/domain/gateway/slack/thread-recovery.js +173 -0
  446. package/daemon/dist/domain/gateway/slack/thread-recovery.js.map +1 -0
  447. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +3 -0
  448. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  449. package/daemon/dist/domain/gateway/slack/thread-routing.js +18 -7
  450. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  451. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +25 -6
  452. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  453. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +52 -23
  454. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  455. package/daemon/dist/domain/history-query.d.ts.map +1 -1
  456. package/daemon/dist/domain/history-query.js +2 -1
  457. package/daemon/dist/domain/history-query.js.map +1 -1
  458. package/daemon/dist/domain/home-isolation.d.ts +18 -0
  459. package/daemon/dist/domain/home-isolation.d.ts.map +1 -0
  460. package/daemon/dist/domain/home-isolation.js +75 -0
  461. package/daemon/dist/domain/home-isolation.js.map +1 -0
  462. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +22 -0
  463. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  464. package/daemon/dist/domain/hosts/remote-daemon-http.js +43 -3
  465. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  466. package/daemon/dist/domain/inbox-handler.d.ts.map +1 -1
  467. package/daemon/dist/domain/inbox-handler.js +34 -32
  468. package/daemon/dist/domain/inbox-handler.js.map +1 -1
  469. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +12 -2
  470. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  471. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +1 -1
  472. package/daemon/dist/domain/mission-control/notification-dispatcher.js +2 -1
  473. package/daemon/dist/domain/mission-control/notification-dispatcher.js.map +1 -1
  474. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +68 -0
  475. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  476. package/daemon/dist/domain/model-divergence/current-generation-record.js +133 -1
  477. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  478. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts +74 -0
  479. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts.map +1 -0
  480. package/daemon/dist/domain/model-divergence/current-model-reader.js +246 -0
  481. package/daemon/dist/domain/model-divergence/current-model-reader.js.map +1 -0
  482. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +60 -0
  483. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
  484. package/daemon/dist/domain/model-divergence/effective-model-readers.js +182 -11
  485. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
  486. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +8 -2
  487. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  488. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +10 -5
  489. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  490. package/daemon/dist/domain/native-process-lineage.d.ts +57 -1
  491. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  492. package/daemon/dist/domain/native-process-lineage.js +169 -41
  493. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  494. package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
  495. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  496. package/daemon/dist/domain/native-resume-probe.js +77 -14
  497. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  498. package/daemon/dist/domain/node-inventory.d.ts +1 -1
  499. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  500. package/daemon/dist/domain/node-inventory.js +110 -27
  501. package/daemon/dist/domain/node-inventory.js.map +1 -1
  502. package/daemon/dist/domain/node-launcher.d.ts +18 -0
  503. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  504. package/daemon/dist/domain/node-launcher.js +60 -2
  505. package/daemon/dist/domain/node-launcher.js.map +1 -1
  506. package/daemon/dist/domain/openrouter-charge.d.ts +42 -0
  507. package/daemon/dist/domain/openrouter-charge.d.ts.map +1 -0
  508. package/daemon/dist/domain/openrouter-charge.js +57 -0
  509. package/daemon/dist/domain/openrouter-charge.js.map +1 -0
  510. package/daemon/dist/domain/parked-query.d.ts +5 -0
  511. package/daemon/dist/domain/parked-query.d.ts.map +1 -1
  512. package/daemon/dist/domain/parked-query.js +9 -2
  513. package/daemon/dist/domain/parked-query.js.map +1 -1
  514. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  515. package/daemon/dist/domain/periodic-snapshot-scheduler.js +27 -3
  516. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  517. package/daemon/dist/domain/permission-drift.d.ts +2 -0
  518. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  519. package/daemon/dist/domain/permission-drift.js.map +1 -1
  520. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  521. package/daemon/dist/domain/permission-policy/policy-spec.js +5 -7
  522. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  523. package/daemon/dist/domain/pi-usage-entries-store.d.ts +41 -0
  524. package/daemon/dist/domain/pi-usage-entries-store.d.ts.map +1 -0
  525. package/daemon/dist/domain/pi-usage-entries-store.js +173 -0
  526. package/daemon/dist/domain/pi-usage-entries-store.js.map +1 -0
  527. package/daemon/dist/domain/pi-usage-facts.d.ts +90 -0
  528. package/daemon/dist/domain/pi-usage-facts.d.ts.map +1 -0
  529. package/daemon/dist/domain/pi-usage-facts.js +165 -0
  530. package/daemon/dist/domain/pi-usage-facts.js.map +1 -0
  531. package/daemon/dist/domain/pod-bundle-assembler.d.ts +2 -0
  532. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  533. package/daemon/dist/domain/pod-bundle-assembler.js +4 -0
  534. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  535. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
  536. package/daemon/dist/domain/policies/artifact-pool-helpers.js +6 -4
  537. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
  538. package/daemon/dist/domain/process-census.d.ts +1 -1
  539. package/daemon/dist/domain/process-census.d.ts.map +1 -1
  540. package/daemon/dist/domain/process-table.d.ts +26 -0
  541. package/daemon/dist/domain/process-table.d.ts.map +1 -0
  542. package/daemon/dist/domain/process-table.js +185 -0
  543. package/daemon/dist/domain/process-table.js.map +1 -0
  544. package/daemon/dist/domain/profile-resolver.d.ts +10 -0
  545. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  546. package/daemon/dist/domain/profile-resolver.js +15 -0
  547. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  548. package/daemon/dist/domain/progress/progress-indexer.js +1 -1
  549. package/daemon/dist/domain/progress/progress-indexer.js.map +1 -1
  550. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +4 -0
  551. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  552. package/daemon/dist/domain/project-lifecycle-compiler.js +63 -3
  553. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  554. package/daemon/dist/domain/projection-planner.js +1 -1
  555. package/daemon/dist/domain/projection-planner.js.map +1 -1
  556. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  557. package/daemon/dist/domain/proof/judgments.js +31 -2
  558. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  559. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts +33 -0
  560. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts.map +1 -0
  561. package/daemon/dist/domain/provider/claude-auth-status-reader.js +195 -0
  562. package/daemon/dist/domain/provider/claude-auth-status-reader.js.map +1 -0
  563. package/daemon/dist/domain/provider/claude-usage-windows.d.ts +70 -0
  564. package/daemon/dist/domain/provider/claude-usage-windows.d.ts.map +1 -0
  565. package/daemon/dist/domain/provider/claude-usage-windows.js +305 -0
  566. package/daemon/dist/domain/provider/claude-usage-windows.js.map +1 -0
  567. package/daemon/dist/domain/provider/codex-auth-reader.d.ts +14 -0
  568. package/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +1 -1
  569. package/daemon/dist/domain/provider/codex-auth-reader.js +41 -12
  570. package/daemon/dist/domain/provider/codex-auth-reader.js.map +1 -1
  571. package/daemon/dist/domain/provider/codex-usage-reader.d.ts +6 -1
  572. package/daemon/dist/domain/provider/codex-usage-reader.d.ts.map +1 -1
  573. package/daemon/dist/domain/provider/codex-usage-reader.js +6 -1
  574. package/daemon/dist/domain/provider/codex-usage-reader.js.map +1 -1
  575. package/daemon/dist/domain/provider/codex-usage-windows.d.ts +12 -49
  576. package/daemon/dist/domain/provider/codex-usage-windows.d.ts.map +1 -1
  577. package/daemon/dist/domain/provider/codex-usage-windows.js +16 -173
  578. package/daemon/dist/domain/provider/codex-usage-windows.js.map +1 -1
  579. package/daemon/dist/domain/provider/provider-account-readings.d.ts +42 -0
  580. package/daemon/dist/domain/provider/provider-account-readings.d.ts.map +1 -0
  581. package/daemon/dist/domain/provider/provider-account-readings.js +132 -0
  582. package/daemon/dist/domain/provider/provider-account-readings.js.map +1 -0
  583. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts +18 -0
  584. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts.map +1 -0
  585. package/daemon/dist/domain/provider/provider-seat-accounts.js +159 -0
  586. package/daemon/dist/domain/provider/provider-seat-accounts.js.map +1 -0
  587. package/daemon/dist/domain/provider/provider-service-impl.d.ts +7 -2
  588. package/daemon/dist/domain/provider/provider-service-impl.d.ts.map +1 -1
  589. package/daemon/dist/domain/provider/provider-service-impl.js +20 -2
  590. package/daemon/dist/domain/provider/provider-service-impl.js.map +1 -1
  591. package/daemon/dist/domain/provider/provider-service.d.ts +4 -2
  592. package/daemon/dist/domain/provider/provider-service.d.ts.map +1 -1
  593. package/daemon/dist/domain/provider/provider-types.d.ts +101 -4
  594. package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -1
  595. package/daemon/dist/domain/provider/reactive-tap.js +2 -0
  596. package/daemon/dist/domain/provider/reactive-tap.js.map +1 -1
  597. package/daemon/dist/domain/provider/subscription-moves.d.ts +77 -0
  598. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +1 -0
  599. package/daemon/dist/domain/provider/subscription-moves.js +140 -0
  600. package/daemon/dist/domain/provider/subscription-moves.js.map +1 -0
  601. package/daemon/dist/domain/provider/usage-across-hosts.d.ts +162 -0
  602. package/daemon/dist/domain/provider/usage-across-hosts.d.ts.map +1 -0
  603. package/daemon/dist/domain/provider/usage-across-hosts.js +569 -0
  604. package/daemon/dist/domain/provider/usage-across-hosts.js.map +1 -0
  605. package/daemon/dist/domain/provider/usage-windows.d.ts +113 -0
  606. package/daemon/dist/domain/provider/usage-windows.d.ts.map +1 -0
  607. package/daemon/dist/domain/provider/usage-windows.js +285 -0
  608. package/daemon/dist/domain/provider/usage-windows.js.map +1 -0
  609. package/daemon/dist/domain/queue-owner.d.ts +6 -0
  610. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  611. package/daemon/dist/domain/queue-owner.js +22 -0
  612. package/daemon/dist/domain/queue-owner.js.map +1 -1
  613. package/daemon/dist/domain/queue-repository.d.ts +112 -14
  614. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  615. package/daemon/dist/domain/queue-repository.js +390 -87
  616. package/daemon/dist/domain/queue-repository.js.map +1 -1
  617. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  618. package/daemon/dist/domain/queue-stuck-sweep.js +53 -22
  619. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  620. package/daemon/dist/domain/queue-transition-log.d.ts +23 -2
  621. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  622. package/daemon/dist/domain/queue-transition-log.js +98 -39
  623. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  624. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -2
  625. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  626. package/daemon/dist/domain/queue-wake-ladder.js +27 -8
  627. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  628. package/daemon/dist/domain/queue-wake-repository.d.ts +7 -1
  629. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  630. package/daemon/dist/domain/queue-wake-repository.js +54 -5
  631. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  632. package/daemon/dist/domain/reply-to-choice.d.ts +2 -0
  633. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
  634. package/daemon/dist/domain/reply-to-choice.js +2 -0
  635. package/daemon/dist/domain/reply-to-choice.js.map +1 -1
  636. package/daemon/dist/domain/restore-check-service.d.ts +10 -0
  637. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  638. package/daemon/dist/domain/restore-check-service.js +76 -12
  639. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  640. package/daemon/dist/domain/restore-guidance.d.ts +6 -0
  641. package/daemon/dist/domain/restore-guidance.d.ts.map +1 -1
  642. package/daemon/dist/domain/restore-guidance.js +21 -5
  643. package/daemon/dist/domain/restore-guidance.js.map +1 -1
  644. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  645. package/daemon/dist/domain/restore-orchestrator.js +79 -15
  646. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  647. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  648. package/daemon/dist/domain/restore-plan-preview.js +23 -19
  649. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  650. package/daemon/dist/domain/restore-policy.d.ts +26 -0
  651. package/daemon/dist/domain/restore-policy.d.ts.map +1 -0
  652. package/daemon/dist/domain/restore-policy.js +22 -0
  653. package/daemon/dist/domain/restore-policy.js.map +1 -0
  654. package/daemon/dist/domain/restore-preconditions.d.ts +2 -0
  655. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -1
  656. package/daemon/dist/domain/restore-preconditions.js +6 -1
  657. package/daemon/dist/domain/restore-preconditions.js.map +1 -1
  658. package/daemon/dist/domain/restore-runtime-compatibility.d.ts +3 -0
  659. package/daemon/dist/domain/restore-runtime-compatibility.d.ts.map +1 -0
  660. package/daemon/dist/domain/restore-runtime-compatibility.js +7 -0
  661. package/daemon/dist/domain/restore-runtime-compatibility.js.map +1 -0
  662. package/daemon/dist/domain/resume-metadata-refresher.d.ts +10 -5
  663. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  664. package/daemon/dist/domain/resume-metadata-refresher.js +115 -50
  665. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  666. package/daemon/dist/domain/resume-token-capture.d.ts +1 -1
  667. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  668. package/daemon/dist/domain/resume-token-capture.js +7 -1
  669. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  670. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  671. package/daemon/dist/domain/review/compose.js +5 -4
  672. package/daemon/dist/domain/review/compose.js.map +1 -1
  673. package/daemon/dist/domain/review/gather.d.ts +2 -1
  674. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  675. package/daemon/dist/domain/review/gather.js +25 -17
  676. package/daemon/dist/domain/review/gather.js.map +1 -1
  677. package/daemon/dist/domain/rig-lifecycle-service.d.ts +31 -8
  678. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  679. package/daemon/dist/domain/rig-lifecycle-service.js +253 -98
  680. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  681. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts +11 -1
  682. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -1
  683. package/daemon/dist/domain/rig-mode/rig-mode-store.js +69 -48
  684. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -1
  685. package/daemon/dist/domain/rig-repository.d.ts +21 -0
  686. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  687. package/daemon/dist/domain/rig-repository.js +58 -1
  688. package/daemon/dist/domain/rig-repository.js.map +1 -1
  689. package/daemon/dist/domain/rig-teardown.d.ts +4 -1
  690. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  691. package/daemon/dist/domain/rig-teardown.js +40 -2
  692. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  693. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  694. package/daemon/dist/domain/rigspec-codec.js +7 -0
  695. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  696. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  697. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  698. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  699. package/daemon/dist/domain/rigspec-instantiator.d.ts +3 -0
  700. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  701. package/daemon/dist/domain/rigspec-instantiator.js +32 -7
  702. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  703. package/daemon/dist/domain/rigspec-preflight.d.ts +4 -0
  704. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  705. package/daemon/dist/domain/rigspec-preflight.js +30 -7
  706. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  707. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  708. package/daemon/dist/domain/rigspec-schema.js +35 -2
  709. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  710. package/daemon/dist/domain/runtime-adapter.d.ts +24 -0
  711. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  712. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  713. package/daemon/dist/domain/runtime-verifier.d.ts +15 -1
  714. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  715. package/daemon/dist/domain/runtime-verifier.js +28 -4
  716. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  717. package/daemon/dist/domain/scope/logical-checkbox.js +1 -1
  718. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -1
  719. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  720. package/daemon/dist/domain/scope/scope-view-projection.js +23 -10
  721. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  722. package/daemon/dist/domain/seat-activity-service.d.ts +9 -2
  723. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  724. package/daemon/dist/domain/seat-activity-service.js +100 -15
  725. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  726. package/daemon/dist/domain/seat-attention-reconciler.d.ts +3 -0
  727. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  728. package/daemon/dist/domain/seat-attention-reconciler.js +129 -8
  729. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  730. package/daemon/dist/domain/seat-cwd-preparation.d.ts +22 -0
  731. package/daemon/dist/domain/seat-cwd-preparation.d.ts.map +1 -0
  732. package/daemon/dist/domain/seat-cwd-preparation.js +107 -0
  733. package/daemon/dist/domain/seat-cwd-preparation.js.map +1 -0
  734. package/daemon/dist/domain/seat-delivery-guard.d.ts +36 -1
  735. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  736. package/daemon/dist/domain/seat-delivery-guard.js +255 -22
  737. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  738. package/daemon/dist/domain/seat-effort.d.ts +116 -0
  739. package/daemon/dist/domain/seat-effort.d.ts.map +1 -0
  740. package/daemon/dist/domain/seat-effort.js +251 -0
  741. package/daemon/dist/domain/seat-effort.js.map +1 -0
  742. package/daemon/dist/domain/seat-env.d.ts +37 -0
  743. package/daemon/dist/domain/seat-env.d.ts.map +1 -0
  744. package/daemon/dist/domain/seat-env.js +94 -0
  745. package/daemon/dist/domain/seat-env.js.map +1 -0
  746. package/daemon/dist/domain/seat-handover-service.d.ts +5 -0
  747. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  748. package/daemon/dist/domain/seat-handover-service.js +22 -4
  749. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  750. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  751. package/daemon/dist/domain/seat-identity-reconciler.js +19 -2
  752. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  753. package/daemon/dist/domain/seat-lifecycle-service.d.ts +153 -5
  754. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  755. package/daemon/dist/domain/seat-lifecycle-service.js +509 -23
  756. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  757. package/daemon/dist/domain/seat-restart-in-place.d.ts +27 -2
  758. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
  759. package/daemon/dist/domain/seat-restart-in-place.js +82 -7
  760. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
  761. package/daemon/dist/domain/seat-status-service.d.ts +2 -0
  762. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  763. package/daemon/dist/domain/seat-status-service.js +1 -0
  764. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  765. package/daemon/dist/domain/seat-structural-activity-service.d.ts +12 -2
  766. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  767. package/daemon/dist/domain/seat-structural-activity-service.js +51 -9
  768. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  769. package/daemon/dist/domain/session-name.d.ts +8 -0
  770. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  771. package/daemon/dist/domain/session-name.js +12 -0
  772. package/daemon/dist/domain/session-name.js.map +1 -1
  773. package/daemon/dist/domain/session-registry.d.ts +13 -1
  774. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  775. package/daemon/dist/domain/session-registry.js +29 -2
  776. package/daemon/dist/domain/session-registry.js.map +1 -1
  777. package/daemon/dist/domain/session-transport.d.ts +186 -4
  778. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  779. package/daemon/dist/domain/session-transport.js +1421 -143
  780. package/daemon/dist/domain/session-transport.js.map +1 -1
  781. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +2 -0
  782. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  783. package/daemon/dist/domain/slices/slice-detail-projector.js +16 -4
  784. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  785. package/daemon/dist/domain/slices/slice-indexer.d.ts +10 -0
  786. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  787. package/daemon/dist/domain/slices/slice-indexer.js +84 -4
  788. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  789. package/daemon/dist/domain/snapshot-repository.d.ts +3 -0
  790. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  791. package/daemon/dist/domain/snapshot-repository.js +19 -2
  792. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  793. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  794. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  795. package/daemon/dist/domain/spec-library-workflow-scanner.js +24 -21
  796. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  797. package/daemon/dist/domain/spec-validation-advisory.js +1 -1
  798. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -1
  799. package/daemon/dist/domain/startup-orchestrator.d.ts +31 -3
  800. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  801. package/daemon/dist/domain/startup-orchestrator.js +218 -60
  802. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  803. package/daemon/dist/domain/startup-submission-evidence.d.ts +13 -3
  804. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  805. package/daemon/dist/domain/startup-submission-evidence.js +34 -25
  806. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  807. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  808. package/daemon/dist/domain/startup-validation.js +3 -0
  809. package/daemon/dist/domain/startup-validation.js.map +1 -1
  810. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -1
  811. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  812. package/daemon/dist/domain/successor-session-launcher.js +6 -2
  813. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  814. package/daemon/dist/domain/text-cut.d.ts +4 -0
  815. package/daemon/dist/domain/text-cut.d.ts.map +1 -0
  816. package/daemon/dist/domain/text-cut.js +7 -0
  817. package/daemon/dist/domain/text-cut.js.map +1 -0
  818. package/daemon/dist/domain/time-bound-advisory.d.ts +5 -0
  819. package/daemon/dist/domain/time-bound-advisory.d.ts.map +1 -0
  820. package/daemon/dist/domain/time-bound-advisory.js +25 -0
  821. package/daemon/dist/domain/time-bound-advisory.js.map +1 -0
  822. package/daemon/dist/domain/transcript-capture.d.ts +7 -0
  823. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  824. package/daemon/dist/domain/transcript-capture.js +22 -1
  825. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  826. package/daemon/dist/domain/transcript-rotation.d.ts +12 -4
  827. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  828. package/daemon/dist/domain/transcript-rotation.js +185 -23
  829. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  830. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  831. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  832. package/daemon/dist/domain/transcript-store.js +8 -4
  833. package/daemon/dist/domain/transcript-store.js.map +1 -1
  834. package/daemon/dist/domain/types.d.ts +67 -3
  835. package/daemon/dist/domain/types.d.ts.map +1 -1
  836. package/daemon/dist/domain/types.js.map +1 -1
  837. package/daemon/dist/domain/usage-samples-store.d.ts +8 -0
  838. package/daemon/dist/domain/usage-samples-store.d.ts.map +1 -1
  839. package/daemon/dist/domain/usage-samples-store.js +24 -5
  840. package/daemon/dist/domain/usage-samples-store.js.map +1 -1
  841. package/daemon/dist/domain/usage-series.d.ts +154 -2
  842. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  843. package/daemon/dist/domain/usage-series.js +208 -9
  844. package/daemon/dist/domain/usage-series.js.map +1 -1
  845. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  846. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  847. package/daemon/dist/domain/user-settings/settings-store.js +37 -1
  848. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  849. package/daemon/dist/domain/watchdog-delivery.d.ts +29 -0
  850. package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -0
  851. package/daemon/dist/domain/watchdog-delivery.js +113 -0
  852. package/daemon/dist/domain/watchdog-delivery.js.map +1 -0
  853. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +3 -1
  854. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  855. package/daemon/dist/domain/watchdog-jobs-repository.js +13 -1
  856. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  857. package/daemon/dist/domain/watchdog-policy-engine.d.ts +61 -1
  858. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  859. package/daemon/dist/domain/watchdog-policy-engine.js +185 -30
  860. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  861. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  862. package/daemon/dist/domain/watchdog-scheduler.js +6 -1
  863. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  864. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  865. package/daemon/dist/domain/workflow-exception-escalation.js +3 -1
  866. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  867. package/daemon/dist/domain/workflow-exception-readiness.d.ts.map +1 -1
  868. package/daemon/dist/domain/workflow-exception-readiness.js +7 -3
  869. package/daemon/dist/domain/workflow-exception-readiness.js.map +1 -1
  870. package/daemon/dist/domain/workflow-instance-store.d.ts +11 -0
  871. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  872. package/daemon/dist/domain/workflow-instance-store.js +24 -6
  873. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  874. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  875. package/daemon/dist/domain/workflow-projector.js +5 -3
  876. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  877. package/daemon/dist/domain/workflow-rig-placeholder.d.ts +24 -0
  878. package/daemon/dist/domain/workflow-rig-placeholder.d.ts.map +1 -0
  879. package/daemon/dist/domain/workflow-rig-placeholder.js +43 -0
  880. package/daemon/dist/domain/workflow-rig-placeholder.js.map +1 -0
  881. package/daemon/dist/domain/workflow-runtime.d.ts +10 -1
  882. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  883. package/daemon/dist/domain/workflow-runtime.js +26 -13
  884. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  885. package/daemon/dist/domain/workflow-scope.d.ts +50 -0
  886. package/daemon/dist/domain/workflow-scope.d.ts.map +1 -0
  887. package/daemon/dist/domain/workflow-scope.js +129 -0
  888. package/daemon/dist/domain/workflow-scope.js.map +1 -0
  889. package/daemon/dist/domain/workflow-spec-cache.d.ts +10 -0
  890. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  891. package/daemon/dist/domain/workflow-spec-cache.js +13 -0
  892. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  893. package/daemon/dist/domain/workflow-types.d.ts +4 -0
  894. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  895. package/daemon/dist/domain/workflow-types.js.map +1 -1
  896. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  897. package/daemon/dist/domain/workflow-validator.js +3 -1
  898. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  899. package/daemon/dist/domain/workspace/project-read.d.ts +2 -0
  900. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
  901. package/daemon/dist/domain/workspace/project-read.js +4 -0
  902. package/daemon/dist/domain/workspace/project-read.js.map +1 -1
  903. package/daemon/dist/index.d.ts.map +1 -1
  904. package/daemon/dist/index.js +10 -0
  905. package/daemon/dist/index.js.map +1 -1
  906. package/daemon/dist/lib/pane-envelope.js +1 -1
  907. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  908. package/daemon/dist/middleware/json-body-error.d.ts +4 -3
  909. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -1
  910. package/daemon/dist/middleware/json-body-error.js +18 -4
  911. package/daemon/dist/middleware/json-body-error.js.map +1 -1
  912. package/daemon/dist/routes/activity.d.ts.map +1 -1
  913. package/daemon/dist/routes/activity.js +78 -0
  914. package/daemon/dist/routes/activity.js.map +1 -1
  915. package/daemon/dist/routes/attention.d.ts.map +1 -1
  916. package/daemon/dist/routes/attention.js +41 -1
  917. package/daemon/dist/routes/attention.js.map +1 -1
  918. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  919. package/daemon/dist/routes/bundles.js +39 -16
  920. package/daemon/dist/routes/bundles.js.map +1 -1
  921. package/daemon/dist/routes/community-harnesses.d.ts +3 -0
  922. package/daemon/dist/routes/community-harnesses.d.ts.map +1 -0
  923. package/daemon/dist/routes/community-harnesses.js +18 -0
  924. package/daemon/dist/routes/community-harnesses.js.map +1 -0
  925. package/daemon/dist/routes/compaction.d.ts +3 -0
  926. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  927. package/daemon/dist/routes/compaction.js +14 -2
  928. package/daemon/dist/routes/compaction.js.map +1 -1
  929. package/daemon/dist/routes/events.js +26 -12
  930. package/daemon/dist/routes/events.js.map +1 -1
  931. package/daemon/dist/routes/gateway.d.ts +3 -0
  932. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  933. package/daemon/dist/routes/gateway.js +15 -0
  934. package/daemon/dist/routes/gateway.js.map +1 -1
  935. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  936. package/daemon/dist/routes/hosts.js +2 -1
  937. package/daemon/dist/routes/hosts.js.map +1 -1
  938. package/daemon/dist/routes/provider.d.ts +11 -1
  939. package/daemon/dist/routes/provider.d.ts.map +1 -1
  940. package/daemon/dist/routes/provider.js +182 -10
  941. package/daemon/dist/routes/provider.js.map +1 -1
  942. package/daemon/dist/routes/query-limit.d.ts +1 -0
  943. package/daemon/dist/routes/query-limit.d.ts.map +1 -1
  944. package/daemon/dist/routes/query-limit.js +1 -1
  945. package/daemon/dist/routes/query-limit.js.map +1 -1
  946. package/daemon/dist/routes/queue.d.ts.map +1 -1
  947. package/daemon/dist/routes/queue.js +47 -4
  948. package/daemon/dist/routes/queue.js.map +1 -1
  949. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  950. package/daemon/dist/routes/restore-check.js +19 -1
  951. package/daemon/dist/routes/restore-check.js.map +1 -1
  952. package/daemon/dist/routes/rig-mode.d.ts.map +1 -1
  953. package/daemon/dist/routes/rig-mode.js +66 -11
  954. package/daemon/dist/routes/rig-mode.js.map +1 -1
  955. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  956. package/daemon/dist/routes/scope-audit.js +10 -0
  957. package/daemon/dist/routes/scope-audit.js.map +1 -1
  958. package/daemon/dist/routes/seat.d.ts.map +1 -1
  959. package/daemon/dist/routes/seat.js +76 -12
  960. package/daemon/dist/routes/seat.js.map +1 -1
  961. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  962. package/daemon/dist/routes/sessions.js +8 -2
  963. package/daemon/dist/routes/sessions.js.map +1 -1
  964. package/daemon/dist/routes/startup.d.ts.map +1 -1
  965. package/daemon/dist/routes/startup.js +9 -2
  966. package/daemon/dist/routes/startup.js.map +1 -1
  967. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  968. package/daemon/dist/routes/telemetry.js +13 -3
  969. package/daemon/dist/routes/telemetry.js.map +1 -1
  970. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  971. package/daemon/dist/routes/transcripts.js +14 -5
  972. package/daemon/dist/routes/transcripts.js.map +1 -1
  973. package/daemon/dist/routes/transport.d.ts.map +1 -1
  974. package/daemon/dist/routes/transport.js +26 -4
  975. package/daemon/dist/routes/transport.js.map +1 -1
  976. package/daemon/dist/routes/up.d.ts.map +1 -1
  977. package/daemon/dist/routes/up.js +4 -0
  978. package/daemon/dist/routes/up.js.map +1 -1
  979. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  980. package/daemon/dist/routes/workflow.js +50 -1
  981. package/daemon/dist/routes/workflow.js.map +1 -1
  982. package/daemon/dist/server.d.ts +1 -0
  983. package/daemon/dist/server.d.ts.map +1 -1
  984. package/daemon/dist/server.js +5 -1
  985. package/daemon/dist/server.js.map +1 -1
  986. package/daemon/dist/spec-validation-surface.d.ts +1 -1
  987. package/daemon/dist/spec-validation-surface.d.ts.map +1 -1
  988. package/daemon/dist/spec-validation-surface.js +1 -1
  989. package/daemon/dist/spec-validation-surface.js.map +1 -1
  990. package/daemon/dist/startup.d.ts +3 -1
  991. package/daemon/dist/startup.d.ts.map +1 -1
  992. package/daemon/dist/startup.js +160 -148
  993. package/daemon/dist/startup.js.map +1 -1
  994. package/daemon/dist/workflow-scope-surface.d.ts +2 -0
  995. package/daemon/dist/workflow-scope-surface.d.ts.map +1 -0
  996. package/daemon/dist/workflow-scope-surface.js +2 -0
  997. package/daemon/dist/workflow-scope-surface.js.map +1 -0
  998. package/daemon/docs/reference/agent-spec.md +5 -3
  999. package/daemon/docs/reference/agent-startup-guide.md +179 -6
  1000. package/daemon/docs/reference/claude-status-line.md +69 -0
  1001. package/daemon/docs/reference/getting-started.md +81 -18
  1002. package/daemon/docs/reference/keeping-a-watch.md +102 -5
  1003. package/daemon/docs/reference/project-workspace.md +70 -1
  1004. package/daemon/docs/reference/publishing-a-rig-bundle.md +11 -3
  1005. package/daemon/docs/reference/refocus-channel.md +52 -6
  1006. package/daemon/docs/reference/rig-bundle.md +26 -2
  1007. package/daemon/docs/reference/rig-spec.md +67 -6
  1008. package/daemon/docs/reference/rosters.md +29 -2
  1009. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +105 -2
  1010. package/daemon/docs/reference/scoped-operating-posture.md +12 -2
  1011. package/daemon/docs/reference/sdlc-conventions.md +39 -1
  1012. package/daemon/docs/reference/seat-delivery.md +127 -0
  1013. package/daemon/docs/reference/slack-app-setup.md +187 -29
  1014. package/daemon/docs/reference/topology-naming.md +9 -0
  1015. package/daemon/docs/reference/whats-new.md +99 -151
  1016. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -0
  1017. package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -0
  1018. package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -0
  1019. package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -0
  1020. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -0
  1021. package/daemon/specs/agents/design/product-designer/agent.yaml +1 -0
  1022. package/daemon/specs/agents/development/implementer/agent.yaml +1 -0
  1023. package/daemon/specs/agents/development/qa/agent.yaml +1 -0
  1024. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -0
  1025. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -0
  1026. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -0
  1027. package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
  1028. package/daemon/specs/agents/research/analyst/agent.yaml +1 -0
  1029. package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -0
  1030. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -0
  1031. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -1
  1032. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +0 -1
  1033. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  1034. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  1035. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
  1036. package/daemon/specs/rigs/launch/demo/CULTURE.md +1 -1
  1037. package/daemon/specs/rigs/launch/factory/CULTURE.md +1 -1
  1038. package/daemon/specs/rigs/launch/factory/topology/rig/CRAFT.md +2 -2
  1039. package/daemon/specs/rigs/launch/first-project/CULTURE.md +2 -1
  1040. package/daemon/specs/rigs/launch/first-project-claude/CULTURE.md +2 -1
  1041. package/daemon/specs/rigs/launch/first-project-mixed/CULTURE.md +2 -1
  1042. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +9 -2
  1043. package/daemon/specs/rigs/launch/starter/CULTURE.md +2 -1
  1044. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  1045. package/dist/bin-wrapper.d.ts +2 -1
  1046. package/dist/bin-wrapper.d.ts.map +1 -1
  1047. package/dist/bin-wrapper.js +61 -4
  1048. package/dist/bin-wrapper.js.map +1 -1
  1049. package/dist/build-info.js +3 -3
  1050. package/dist/bundle-behaviour.d.ts.map +1 -1
  1051. package/dist/bundle-behaviour.js +22 -0
  1052. package/dist/bundle-behaviour.js.map +1 -1
  1053. package/dist/client.d.ts.map +1 -1
  1054. package/dist/client.js +3 -3
  1055. package/dist/client.js.map +1 -1
  1056. package/dist/commands/add.d.ts.map +1 -1
  1057. package/dist/commands/add.js +1 -1
  1058. package/dist/commands/add.js.map +1 -1
  1059. package/dist/commands/ask.d.ts.map +1 -1
  1060. package/dist/commands/ask.js +16 -5
  1061. package/dist/commands/ask.js.map +1 -1
  1062. package/dist/commands/bootstrap.d.ts.map +1 -1
  1063. package/dist/commands/bootstrap.js +9 -5
  1064. package/dist/commands/bootstrap.js.map +1 -1
  1065. package/dist/commands/bundle.d.ts.map +1 -1
  1066. package/dist/commands/bundle.js +8 -0
  1067. package/dist/commands/bundle.js.map +1 -1
  1068. package/dist/commands/capture.d.ts +4 -0
  1069. package/dist/commands/capture.d.ts.map +1 -1
  1070. package/dist/commands/capture.js +29 -2
  1071. package/dist/commands/capture.js.map +1 -1
  1072. package/dist/commands/community-harness.d.ts +4 -0
  1073. package/dist/commands/community-harness.d.ts.map +1 -0
  1074. package/dist/commands/community-harness.js +48 -0
  1075. package/dist/commands/community-harness.js.map +1 -0
  1076. package/dist/commands/compact.d.ts.map +1 -1
  1077. package/dist/commands/compact.js +8 -4
  1078. package/dist/commands/compact.js.map +1 -1
  1079. package/dist/commands/config.d.ts.map +1 -1
  1080. package/dist/commands/config.js +9 -2
  1081. package/dist/commands/config.js.map +1 -1
  1082. package/dist/commands/crash-cart.d.ts.map +1 -1
  1083. package/dist/commands/crash-cart.js +3 -5
  1084. package/dist/commands/crash-cart.js.map +1 -1
  1085. package/dist/commands/create.d.ts.map +1 -1
  1086. package/dist/commands/create.js +7 -5
  1087. package/dist/commands/create.js.map +1 -1
  1088. package/dist/commands/doctor.d.ts.map +1 -1
  1089. package/dist/commands/doctor.js +8 -7
  1090. package/dist/commands/doctor.js.map +1 -1
  1091. package/dist/commands/down.d.ts.map +1 -1
  1092. package/dist/commands/down.js +2 -1
  1093. package/dist/commands/down.js.map +1 -1
  1094. package/dist/commands/grow.d.ts.map +1 -1
  1095. package/dist/commands/grow.js +24 -7
  1096. package/dist/commands/grow.js.map +1 -1
  1097. package/dist/commands/launch.d.ts +1 -0
  1098. package/dist/commands/launch.d.ts.map +1 -1
  1099. package/dist/commands/launch.js +61 -10
  1100. package/dist/commands/launch.js.map +1 -1
  1101. package/dist/commands/policy.d.ts +2 -1
  1102. package/dist/commands/policy.d.ts.map +1 -1
  1103. package/dist/commands/policy.js +66 -7
  1104. package/dist/commands/policy.js.map +1 -1
  1105. package/dist/commands/provider.d.ts +2 -0
  1106. package/dist/commands/provider.d.ts.map +1 -1
  1107. package/dist/commands/provider.js +372 -49
  1108. package/dist/commands/provider.js.map +1 -1
  1109. package/dist/commands/ps.d.ts +13 -0
  1110. package/dist/commands/ps.d.ts.map +1 -1
  1111. package/dist/commands/ps.js +52 -7
  1112. package/dist/commands/ps.js.map +1 -1
  1113. package/dist/commands/queue.d.ts.map +1 -1
  1114. package/dist/commands/queue.js +59 -10
  1115. package/dist/commands/queue.js.map +1 -1
  1116. package/dist/commands/remove.d.ts.map +1 -1
  1117. package/dist/commands/remove.js +20 -1
  1118. package/dist/commands/remove.js.map +1 -1
  1119. package/dist/commands/requirements.d.ts.map +1 -1
  1120. package/dist/commands/requirements.js +8 -5
  1121. package/dist/commands/requirements.js.map +1 -1
  1122. package/dist/commands/restore.js +1 -1
  1123. package/dist/commands/restore.js.map +1 -1
  1124. package/dist/commands/rig-mode.d.ts.map +1 -1
  1125. package/dist/commands/rig-mode.js +106 -18
  1126. package/dist/commands/rig-mode.js.map +1 -1
  1127. package/dist/commands/roster.d.ts +2 -1
  1128. package/dist/commands/roster.d.ts.map +1 -1
  1129. package/dist/commands/roster.js +10 -5
  1130. package/dist/commands/roster.js.map +1 -1
  1131. package/dist/commands/scope.d.ts.map +1 -1
  1132. package/dist/commands/scope.js +47 -9
  1133. package/dist/commands/scope.js.map +1 -1
  1134. package/dist/commands/seat.d.ts.map +1 -1
  1135. package/dist/commands/seat.js +203 -25
  1136. package/dist/commands/seat.js.map +1 -1
  1137. package/dist/commands/send.d.ts +2 -2
  1138. package/dist/commands/send.d.ts.map +1 -1
  1139. package/dist/commands/send.js +79 -12
  1140. package/dist/commands/send.js.map +1 -1
  1141. package/dist/commands/slack.d.ts.map +1 -1
  1142. package/dist/commands/slack.js +23 -5
  1143. package/dist/commands/slack.js.map +1 -1
  1144. package/dist/commands/start.d.ts +11 -0
  1145. package/dist/commands/start.d.ts.map +1 -1
  1146. package/dist/commands/start.js +77 -3
  1147. package/dist/commands/start.js.map +1 -1
  1148. package/dist/commands/status.d.ts.map +1 -1
  1149. package/dist/commands/status.js +60 -2
  1150. package/dist/commands/status.js.map +1 -1
  1151. package/dist/commands/up.d.ts.map +1 -1
  1152. package/dist/commands/up.js +58 -0
  1153. package/dist/commands/up.js.map +1 -1
  1154. package/dist/commands/usage.d.ts +12 -0
  1155. package/dist/commands/usage.d.ts.map +1 -1
  1156. package/dist/commands/usage.js +108 -0
  1157. package/dist/commands/usage.js.map +1 -1
  1158. package/dist/commands/watchdog.d.ts.map +1 -1
  1159. package/dist/commands/watchdog.js +20 -7
  1160. package/dist/commands/watchdog.js.map +1 -1
  1161. package/dist/commands/whoami.d.ts +36 -0
  1162. package/dist/commands/whoami.d.ts.map +1 -1
  1163. package/dist/commands/whoami.js +125 -7
  1164. package/dist/commands/whoami.js.map +1 -1
  1165. package/dist/commands/workflow.d.ts.map +1 -1
  1166. package/dist/commands/workflow.js +53 -5
  1167. package/dist/commands/workflow.js.map +1 -1
  1168. package/dist/config-store.d.ts +14 -1
  1169. package/dist/config-store.d.ts.map +1 -1
  1170. package/dist/config-store.js +50 -1
  1171. package/dist/config-store.js.map +1 -1
  1172. package/dist/daemon-lifecycle.d.ts +2 -2
  1173. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1174. package/dist/daemon-lifecycle.js +5 -4
  1175. package/dist/daemon-lifecycle.js.map +1 -1
  1176. package/dist/host-registry.d.ts.map +1 -1
  1177. package/dist/host-registry.js +6 -3
  1178. package/dist/host-registry.js.map +1 -1
  1179. package/dist/index.d.ts +1 -0
  1180. package/dist/index.d.ts.map +1 -1
  1181. package/dist/index.js +4 -7
  1182. package/dist/index.js.map +1 -1
  1183. package/dist/lazy-program.d.ts +9 -0
  1184. package/dist/lazy-program.d.ts.map +1 -0
  1185. package/dist/lazy-program.js +111 -0
  1186. package/dist/lazy-program.js.map +1 -0
  1187. package/dist/lib/bundle-check.js +2 -2
  1188. package/dist/lib/bundle-check.js.map +1 -1
  1189. package/dist/lib/bundle-source.d.ts +1 -0
  1190. package/dist/lib/bundle-source.d.ts.map +1 -1
  1191. package/dist/lib/bundle-source.js +1 -0
  1192. package/dist/lib/bundle-source.js.map +1 -1
  1193. package/dist/lib/codex-auth.d.ts.map +1 -1
  1194. package/dist/lib/codex-auth.js +17 -1
  1195. package/dist/lib/codex-auth.js.map +1 -1
  1196. package/dist/lib/context-install.js +1 -1
  1197. package/dist/lib/context-install.js.map +1 -1
  1198. package/dist/lib/file-transfer.js +1 -1
  1199. package/dist/lib/file-transfer.js.map +1 -1
  1200. package/dist/lib/frontmatter.d.ts +11 -0
  1201. package/dist/lib/frontmatter.d.ts.map +1 -0
  1202. package/dist/lib/frontmatter.js +20 -0
  1203. package/dist/lib/frontmatter.js.map +1 -0
  1204. package/dist/lib/model-observation.d.ts +13 -0
  1205. package/dist/lib/model-observation.d.ts.map +1 -0
  1206. package/dist/lib/model-observation.js +25 -0
  1207. package/dist/lib/model-observation.js.map +1 -0
  1208. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1209. package/dist/lib/permission-policy/policy-spec.js +5 -7
  1210. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1211. package/dist/lib/scope/logical-checkbox.js +1 -1
  1212. package/dist/lib/scope/logical-checkbox.js.map +1 -1
  1213. package/dist/lib/scope/scope-fs.d.ts +8 -0
  1214. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1215. package/dist/lib/scope/scope-fs.js +50 -1
  1216. package/dist/lib/scope/scope-fs.js.map +1 -1
  1217. package/dist/lib/work-install.d.ts.map +1 -1
  1218. package/dist/lib/work-install.js +3 -13
  1219. package/dist/lib/work-install.js.map +1 -1
  1220. package/dist/mcp-server.d.ts.map +1 -1
  1221. package/dist/mcp-server.js +114 -0
  1222. package/dist/mcp-server.js.map +1 -1
  1223. package/dist/program-root.d.ts +5 -0
  1224. package/dist/program-root.d.ts.map +1 -0
  1225. package/dist/program-root.js +11 -0
  1226. package/dist/program-root.js.map +1 -0
  1227. package/dist/queue-read-compact.d.ts +29 -0
  1228. package/dist/queue-read-compact.d.ts.map +1 -0
  1229. package/dist/queue-read-compact.js +74 -0
  1230. package/dist/queue-read-compact.js.map +1 -0
  1231. package/dist/remote-host-ops.d.ts +21 -0
  1232. package/dist/remote-host-ops.d.ts.map +1 -1
  1233. package/dist/remote-host-ops.js +25 -12
  1234. package/dist/remote-host-ops.js.map +1 -1
  1235. package/package.json +1 -1
  1236. package/tui/dist/attention/attention-model.js +6 -5
  1237. package/tui/dist/attention/attention-model.js.map +1 -1
  1238. package/tui/dist/attention/source-continuity.d.ts.map +1 -1
  1239. package/tui/dist/attention/source-continuity.js +2 -0
  1240. package/tui/dist/attention/source-continuity.js.map +1 -1
  1241. package/tui/dist/commands/registry.d.ts.map +1 -1
  1242. package/tui/dist/commands/registry.js +3 -0
  1243. package/tui/dist/commands/registry.js.map +1 -1
  1244. package/tui/dist/config/config-model.d.ts.map +1 -1
  1245. package/tui/dist/config/config-model.js +6 -1
  1246. package/tui/dist/config/config-model.js.map +1 -1
  1247. package/tui/dist/cost/cost-model.d.ts +12 -0
  1248. package/tui/dist/cost/cost-model.d.ts.map +1 -0
  1249. package/tui/dist/cost/cost-model.js +141 -0
  1250. package/tui/dist/cost/cost-model.js.map +1 -0
  1251. package/tui/dist/cost/cost-read.d.ts +19 -0
  1252. package/tui/dist/cost/cost-read.d.ts.map +1 -0
  1253. package/tui/dist/cost/cost-read.js +4 -0
  1254. package/tui/dist/cost/cost-read.js.map +1 -0
  1255. package/tui/dist/daemon-client.d.ts +13 -0
  1256. package/tui/dist/daemon-client.d.ts.map +1 -1
  1257. package/tui/dist/daemon-client.js +77 -1
  1258. package/tui/dist/daemon-client.js.map +1 -1
  1259. package/tui/dist/detail.d.ts +2 -0
  1260. package/tui/dist/detail.d.ts.map +1 -1
  1261. package/tui/dist/detail.js +5 -0
  1262. package/tui/dist/detail.js.map +1 -1
  1263. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1264. package/tui/dist/execution/execution-model.js +38 -18
  1265. package/tui/dist/execution/execution-model.js.map +1 -1
  1266. package/tui/dist/helper-cwd.d.ts +3 -0
  1267. package/tui/dist/helper-cwd.d.ts.map +1 -0
  1268. package/tui/dist/helper-cwd.js +16 -0
  1269. package/tui/dist/helper-cwd.js.map +1 -0
  1270. package/tui/dist/hydrate.d.ts.map +1 -1
  1271. package/tui/dist/hydrate.js +32 -1
  1272. package/tui/dist/hydrate.js.map +1 -1
  1273. package/tui/dist/input.d.ts.map +1 -1
  1274. package/tui/dist/input.js +2 -1
  1275. package/tui/dist/input.js.map +1 -1
  1276. package/tui/dist/local-reading.d.ts.map +1 -1
  1277. package/tui/dist/local-reading.js +2 -1
  1278. package/tui/dist/local-reading.js.map +1 -1
  1279. package/tui/dist/main.js +6 -5
  1280. package/tui/dist/main.js.map +1 -1
  1281. package/tui/dist/pulse/render-pulse.d.ts.map +1 -1
  1282. package/tui/dist/pulse/render-pulse.js +7 -1
  1283. package/tui/dist/pulse/render-pulse.js.map +1 -1
  1284. package/tui/dist/reading.js +1 -1
  1285. package/tui/dist/reading.js.map +1 -1
  1286. package/tui/dist/render.d.ts.map +1 -1
  1287. package/tui/dist/render.js +10 -1
  1288. package/tui/dist/render.js.map +1 -1
  1289. package/tui/dist/scopes/scopes-model.d.ts +6 -1
  1290. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1291. package/tui/dist/scopes/scopes-model.js +33 -13
  1292. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1293. package/tui/dist/sections.d.ts.map +1 -1
  1294. package/tui/dist/sections.js +4 -1
  1295. package/tui/dist/sections.js.map +1 -1
  1296. package/tui/dist/socket-server.d.ts.map +1 -1
  1297. package/tui/dist/socket-server.js +2 -1
  1298. package/tui/dist/socket-server.js.map +1 -1
  1299. package/tui/dist/specs/launch.d.ts.map +1 -1
  1300. package/tui/dist/specs/launch.js +2 -1
  1301. package/tui/dist/specs/launch.js.map +1 -1
  1302. package/tui/dist/startup.js +1 -1
  1303. package/tui/dist/startup.js.map +1 -1
  1304. package/tui/dist/state.d.ts.map +1 -1
  1305. package/tui/dist/state.js +8 -4
  1306. package/tui/dist/state.js.map +1 -1
  1307. package/tui/dist/terminals/open-window.d.ts +11 -1
  1308. package/tui/dist/terminals/open-window.d.ts.map +1 -1
  1309. package/tui/dist/terminals/open-window.js +48 -2
  1310. package/tui/dist/terminals/open-window.js.map +1 -1
  1311. package/tui/dist/types.d.ts +9 -0
  1312. package/tui/dist/types.d.ts.map +1 -1
  1313. package/tui/dist/usage/usage-hosts-model.d.ts +17 -0
  1314. package/tui/dist/usage/usage-hosts-model.d.ts.map +1 -0
  1315. package/tui/dist/usage/usage-hosts-model.js +73 -0
  1316. package/tui/dist/usage/usage-hosts-model.js.map +1 -0
  1317. package/tui/dist/usage/usage-model.d.ts +41 -0
  1318. package/tui/dist/usage/usage-model.d.ts.map +1 -0
  1319. package/tui/dist/usage/usage-model.js +196 -0
  1320. package/tui/dist/usage/usage-model.js.map +1 -0
  1321. package/ui/dist/assets/{index-DhmxKuZf.js → index-CVgod3Pm.js} +2 -2
  1322. package/ui/dist/index.html +1 -1
@@ -5,11 +5,12 @@ import { createHash, randomUUID } from "node:crypto";
5
5
  import { claudePostureFlag, claudeClassicRendererEnvPrefix } from "./yolo-mode.js";
6
6
  import { resolveConcreteHint } from "../domain/runtime-adapter.js";
7
7
  import { assessNativeResumeProbe } from "../domain/native-resume-probe.js";
8
- import { observeClaudePaneProcess } from "../domain/native-process-lineage.js";
8
+ import { resolveReadinessTimeoutMs } from "../domain/readiness-timeout.js";
9
+ import { subtreeNamesClaudeExecutable, claudeCommandSessionToken, listNativeProcesses, observeClaudeDelivery, observeClaudePaneProcess, observeClaudePaneRuntime, observeCodexPaneProcess, verifyCodexPaneProcess, verifyPaneIdleShell } from "../domain/native-process-lineage.js";
9
10
  import { mergeManagedBlock, DEFAULT_CLAUDE_MANAGED_BLOCK_FILE } from "../domain/managed-blocks.js";
10
11
  import { claudeResumeLaunchEnv, claudeResumeLaunchPrefix } from "./claude-resume-launch.js";
11
12
  import { shellQuote } from "./shell-quote.js";
12
- import { validateClaudeActivityHookDelivery, claudeActivityRelayPath, CLAUDE_ACTIVITY_RELAY_RELATIVE_PATH } from "../domain/claude-activity-hooks.js";
13
+ import { validateClaudeActivityHookDelivery, claudeActivityRelayPath, CLAUDE_ACTIVITY_RELAY_RELATIVE_PATH, parseManagedClaudeNodeCommand } from "../domain/claude-activity-hooks.js";
13
14
  import { isFilesystemRoot } from "../domain/cwd-resolution.js";
14
15
  import { observeClaudePermission } from "../domain/permission-drift.js";
15
16
  import { unresolvedClaudePermissionModes } from "../domain/native-permission-selection.js";
@@ -28,8 +29,10 @@ export class ClaudeCodeAdapter {
28
29
  sleep;
29
30
  stateDir;
30
31
  collectorAssetPath;
32
+ nodeExecutable;
31
33
  autoDriveProviderPrompts;
32
34
  listProcesses;
35
+ readinessTimeoutMs;
33
36
  autoLaunches = new Map();
34
37
  claudeManagedLaunch;
35
38
  activityRelayPath;
@@ -45,8 +48,10 @@ export class ClaudeCodeAdapter {
45
48
  this.sleep = deps.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
46
49
  this.stateDir = deps.stateDir ?? null;
47
50
  this.collectorAssetPath = deps.collectorAssetPath ?? null;
51
+ this.nodeExecutable = deps.nodeExecutable ?? process.execPath;
48
52
  this.autoDriveProviderPrompts = deps.autoDriveProviderPrompts ?? false;
49
53
  this.listProcesses = deps.listProcesses;
54
+ this.readinessTimeoutMs = deps.readinessTimeoutMs;
50
55
  this.claudeManagedLaunch = deps.claudeManagedLaunch;
51
56
  this.activityRelayPath = deps.activityRelayPath ?? null;
52
57
  this.claudeHooksManifestPath = deps.claudeHooksManifestPath ?? null;
@@ -279,7 +284,9 @@ export class ClaudeCodeAdapter {
279
284
  if (!enterResult.ok) {
280
285
  return { ok: false, error: `Failed to send Enter: ${enterResult.message}` };
281
286
  }
282
- const launch = { binding, token: opts.resumeToken ?? generatedSessionId, executable: managed?.executable };
287
+ const launch = { binding, token: opts.resumeToken ?? generatedSessionId,
288
+ freshInPlace: opts.freshInPlace === true && !opts.resumeToken, executable: managed?.executable,
289
+ scriptLaunch: managed?.executableIsScript };
283
290
  this.autoLaunches.set(binding.nodeId, launch);
284
291
  if (opts.resumeToken) {
285
292
  const verification = await this.verifyResumeLaunch(binding);
@@ -304,7 +311,18 @@ export class ClaudeCodeAdapter {
304
311
  }
305
312
  const paneCommand = await this.tmux.getPaneCommand(binding.tmuxSession);
306
313
  const paneContent = (await this.tmux.capturePaneContent(binding.tmuxSession, 40)) ?? "";
307
- const probe = await this.assessManagedProbe(binding, paneCommand, paneContent);
314
+ const historyProbe = await this.assessManagedProbe(binding, paneCommand, paneContent);
315
+ const probe = await this.assessFreshInPlaceProbe(binding, paneCommand, historyProbe);
316
+ // A script-launched Claude reads as `sh` until the script hands over the foreground, so the label alone
317
+ // is not a return to a shell. Say so only for a proven idle shell (the rule Codex's checkReady uses).
318
+ if (probe.code === "returned_to_shell"
319
+ && !await verifyPaneIdleShell({ target: binding.tmuxSession, tmux: this.tmux, listProcesses: this.listProcesses })) {
320
+ return {
321
+ ready: false,
322
+ reason: "The pane shows a shell that is not a proven idle shell; a launch script may still be starting Claude.",
323
+ code: "awaiting_runtime",
324
+ };
325
+ }
308
326
  if (probe.status === "resumed")
309
327
  return { ready: true };
310
328
  return { ready: false, reason: probe.detail, code: probe.code };
@@ -318,6 +336,50 @@ export class ClaudeCodeAdapter {
318
336
  this.provisionManagedBootstrap(binding);
319
337
  }
320
338
  // -- Private helpers --
339
+ /** A fresh in-place launch keeps the retiree's scrollback. Qualify a history-based ready result
340
+ * with the current frame, only for the exact launch that requested it. Unavailable observations
341
+ * retain the old admission (including its ambiguity); visible gates and conflicting identity do not. */
342
+ async assessFreshInPlaceProbe(binding, paneCommand, historyProbe) {
343
+ const launch = this.autoLaunches.get(binding.nodeId);
344
+ if (historyProbe.status !== "resumed" || !launch?.freshInPlace || !binding.tmuxPane || !binding.tmuxSession
345
+ || launch.binding.id !== binding.id || launch.binding.tmuxPane !== binding.tmuxPane
346
+ || launch.binding.tmuxSession !== binding.tmuxSession
347
+ || launch.binding.launchGeneration !== binding.launchGeneration)
348
+ return historyProbe;
349
+ let screen = null;
350
+ try {
351
+ screen = await this.tmux.capturePaneScreen(binding.tmuxPane);
352
+ }
353
+ catch { /* unavailable */ }
354
+ // Missing process evidence is unknown, not a conflicting recipient. Reuse the launch observer's
355
+ // positive conflict distinction without requiring process proof for ordinary ready frames.
356
+ let occupant = "unknown";
357
+ try {
358
+ occupant = await this.paneOccupant(binding, false, { positiveConflictOnly: true });
359
+ }
360
+ catch { /* unavailable */ }
361
+ if (this.autoLaunches.get(binding.nodeId) !== launch)
362
+ return {
363
+ status: "inconclusive", code: "awaiting_runtime", detail: "The fresh launch changed during readiness observation.",
364
+ };
365
+ if (occupant === "another")
366
+ return {
367
+ status: "inconclusive", code: "claude_launch_identity_conflict",
368
+ detail: "A different runtime identity occupies the fresh launch's pane.",
369
+ };
370
+ if (!screen?.trim())
371
+ return historyProbe;
372
+ const current = await this.assessManagedProbe(binding, paneCommand, screen);
373
+ if (this.autoLaunches.get(binding.nodeId) !== launch)
374
+ return {
375
+ status: "inconclusive", code: "awaiting_runtime", detail: "The fresh launch changed during readiness observation.",
376
+ };
377
+ // A shell prompt can also start with ❯. Keep the headerless fallback only when process
378
+ // evidence cannot rule Claude out; a readable shell/script-only pane uses the current result.
379
+ const withIdentity = assessNativeResumeProbe({ runtime: "claude-code", paneCommand, paneContent: screen,
380
+ claudeAutoIdentityVerified: true, claudeResumeIdentityVerified: true });
381
+ return withIdentity.status === "resumed" && occupant !== "absent" ? historyProbe : current;
382
+ }
321
383
  async assessManagedProbe(binding, paneCommand, paneContent) {
322
384
  const input = { runtime: "claude-code", paneCommand, paneContent };
323
385
  const probe = assessNativeResumeProbe(input);
@@ -339,36 +401,107 @@ export class ClaudeCodeAdapter {
339
401
  if (panes.length !== 1 || panes[0]?.id !== binding.tmuxPane)
340
402
  return probe;
341
403
  const observation = { target: binding.tmuxPane, tmux: this.tmux,
342
- listProcesses: this.listProcesses, expectedToken: launch.token, selectedExecutable: launch.executable };
404
+ listProcesses: this.listProcesses, expectedToken: launch.token, selectedExecutable: launch.executable,
405
+ scriptLaunch: launch.scriptLaunch };
343
406
  const first = await observeClaudePaneProcess(observation);
344
407
  if (!first)
345
408
  return probe;
346
409
  // Pin the first exact process for this launch; retries cannot adopt a replacement. It is also
347
- // the launch's record of the process it started (#1077).
348
- if (!launch.fingerprint) {
410
+ // the launch's record of the process it started (#1077). A process found through a script launch
411
+ // is trusted on its first sight only once every other check has passed (below), so that an
412
+ // unconfirmed sample is not what the launch is held to.
413
+ const pin = () => {
349
414
  launch.fingerprint = first.fingerprint;
350
415
  if (first.process.startedAt)
351
416
  launch.process = { pid: first.process.pid, startedAt: first.process.startedAt };
352
- }
353
- if (first.fingerprint !== launch.fingerprint)
417
+ };
418
+ if (!launch.fingerprint && !first.afterScript)
419
+ pin();
420
+ if (launch.fingerprint !== undefined && first.fingerprint !== launch.fingerprint)
354
421
  return probe;
355
422
  const native = await observeClaudePaneProcess(observation);
356
- if (native?.fingerprint !== launch.fingerprint)
423
+ if (native?.fingerprint !== first.fingerprint)
357
424
  return probe;
358
425
  const currentPanes = await this.tmux.listPanes(binding.tmuxSession);
359
426
  if (this.autoLaunches.get(binding.nodeId) !== launch || currentPanes.length !== 1
360
427
  || currentPanes[0]?.id !== binding.tmuxPane
361
428
  || await this.tmux.getPanePid(binding.tmuxSession) !== native.panePid)
362
429
  return probe;
430
+ if (!launch.fingerprint)
431
+ pin();
432
+ // Another check of this launch can pin while this one awaits; only the pinned process is verified.
433
+ if (launch.fingerprint !== first.fingerprint)
434
+ return probe;
363
435
  return verifiedProbe;
364
436
  }
365
437
  catch {
366
438
  return probe;
367
439
  }
368
440
  }
441
+ /** tmux names a shell for every OpenRig launch (the launch script is `sh`), so its word alone can't say
442
+ * Claude is gone. With a bound pane, the process tree must show the pane's shell holding the terminal with
443
+ * nothing under it; Claude, or a launch script about to start it, is a slow resume. */
444
+ async paneReturnedToShell(binding, paneCommand) {
445
+ if (!paneCommand || !SHELL_COMMANDS.has(paneCommand))
446
+ return false;
447
+ if (!binding.tmuxPane)
448
+ return true;
449
+ const observed = await observeClaudeDelivery({ target: binding.tmuxPane, tmux: this.tmux, listProcesses: this.listProcesses }, { unknownKeepsIdle: false });
450
+ return observed.state === "idle_shell";
451
+ }
452
+ /** Who holds the pane, by the observations already there. "another": positively something other than this launch's own
453
+ * start: a ready screen whose lineage failed the check (with a process list that could be read), a Claude naming
454
+ * another conversation, or a stable Codex. Waiting won't make any of them this launch's, and its token is not recorded
455
+ * as an attempt. "own": this launch's Claude. "unknown": nothing seen yet (the launch script is starting it) or a
456
+ * process list that can't be read, whatever the screen shows. One process listing serves the Claude observations. */
457
+ async paneOccupant(binding, looksReady, options = {}) {
458
+ const launch = this.autoLaunches.get(binding.nodeId);
459
+ if (!binding.tmuxPane || !launch)
460
+ return looksReady ? "another" : "unknown";
461
+ let rows;
462
+ try {
463
+ rows = await (this.listProcesses ?? (() => listNativeProcesses({ claudeLaunchPaths: launch.scriptLaunch === true })))();
464
+ }
465
+ catch {
466
+ return "unknown";
467
+ }
468
+ if (looksReady)
469
+ return "another";
470
+ const observation = { target: binding.tmuxPane, tmux: this.tmux, listProcesses: () => rows, selectedExecutable: launch.executable,
471
+ scriptLaunch: launch.scriptLaunch };
472
+ if (await observeClaudePaneProcess({ ...observation, expectedToken: launch.token }))
473
+ return "own";
474
+ const native = await observeClaudePaneRuntime(observation);
475
+ if (native) {
476
+ if (!options.positiveConflictOnly)
477
+ return "another";
478
+ // Fresh readiness keeps unidentified Claude processes unknown; strict resume callers above
479
+ // retain their existing rule. Reuse the exact argv parser, not a best-effort token search.
480
+ const named = claudeCommandSessionToken(native.process.command);
481
+ return named !== null && named !== launch.token ? "another" : "unknown";
482
+ }
483
+ if (await observeCodexPaneProcess(observation)) {
484
+ return await verifyCodexPaneProcess({ ...observation, listProcesses: this.listProcesses }) ? "another" : "unknown";
485
+ }
486
+ if (!options.positiveConflictOnly)
487
+ return "unknown";
488
+ const panePid = await this.tmux.getPanePid(binding.tmuxPane);
489
+ // Missing pane identity is unavailable evidence. A Claude elsewhere in this pane's subtree
490
+ // remains unproven, rather than absent, even if it is not a foreground candidate yet.
491
+ return panePid && rows.some(row => row.pid === panePid) && !subtreeNamesClaudeExecutable(rows, panePid)
492
+ ? "absent" : "unknown";
493
+ }
369
494
  async verifyResumeLaunch(binding) {
370
495
  const tmuxSession = binding.tmuxSession;
371
- const attempts = 16;
496
+ // A quick window, then a longer one only while the boot is still in progress, as the Codex adapter does it.
497
+ // The longer one is the readiness setting less the quick window, as a number of polls counted from here; it is per
498
+ // seat, nothing is shared across the seats of a restore. A setting no longer than the quick window adds no polls, but
499
+ // an unresolved boot is still kept (attention_required) rather than failed.
500
+ const pollMs = 200;
501
+ const windowAttempts = 16;
502
+ const checkEvery = 5;
503
+ let attempts = windowAttempts;
504
+ let slowStart = false;
372
505
  for (let attempt = 0; attempt < attempts; attempt++) {
373
506
  const paneCommand = await this.tmux.getPaneCommand(tmuxSession);
374
507
  const paneContent = (await this.tmux.capturePaneContent(tmuxSession, 40)) ?? "";
@@ -396,6 +529,12 @@ export class ClaudeCodeAdapter {
396
529
  };
397
530
  }
398
531
  if (this.autoDriveProviderPrompts && probe.code === "trust_gate") {
532
+ // In the longer wait the occupant has not been looked at since the window ended: press Enter only for this launch's
533
+ // own Claude. Anything else keeps main's result, as if the loop had ended.
534
+ if (slowStart && await this.paneOccupant(binding, false) !== "own") {
535
+ slowStart = false;
536
+ break;
537
+ }
399
538
  const enterResult = await this.tmux.sendKeys(tmuxSession, ["Enter"]);
400
539
  if (!enterResult.ok) {
401
540
  return { ok: false, error: `Claude trust prompt auto-drive failed: ${enterResult.message}` };
@@ -403,8 +542,48 @@ export class ClaudeCodeAdapter {
403
542
  await this.sleep(200);
404
543
  continue;
405
544
  }
545
+ // Only a boot in progress (no verdict, no gate, a label that proves nothing) is worth waiting for; a real
546
+ // gate (login, trust or MCP approval, auto-mode identity) won't clear itself.
547
+ const booting = probe.code === "awaiting_runtime" || probe.code === "returned_to_shell";
548
+ if (slowStart && !booting) {
549
+ slowStart = false;
550
+ break;
551
+ }
552
+ // A start in progress can't have drawn Claude's ready screen. One that has, with its lineage unproven, keeps
553
+ // main's result whenever it draws: at the window's end, or at any poll of the longer wait.
554
+ const looksReady = (attempt === windowAttempts - 1 || slowStart) && booting
555
+ && assessNativeResumeProbe({ runtime: "claude-code", paneCommand, paneContent,
556
+ claudeAutoIdentityVerified: true, claudeResumeIdentityVerified: true }).status === "resumed";
557
+ if (slowStart && looksReady && await this.paneOccupant(binding, true) === "another") {
558
+ slowStart = false;
559
+ break;
560
+ }
561
+ // Checked where the window ends and then about once a second of the longer wait (two listings for the shell, one for
562
+ // the occupant), not on every poll. A shell label can't tell Claude having exited from the launch script not having
563
+ // started it yet, and the occupant can change while we wait, so the process tree decides.
564
+ const windowEnd = attempt === windowAttempts - 1;
565
+ if (booting && (windowEnd || (slowStart && (attempt - windowAttempts + 1) % checkEvery === 0))) {
566
+ if (await this.paneReturnedToShell(binding, await this.tmux.getPaneCommand(tmuxSession))) {
567
+ // Provably back at its shell: the final check reports it. If it isn't by then, the seat is kept.
568
+ if (slowStart) {
569
+ attempts = attempt + 1;
570
+ break;
571
+ }
572
+ }
573
+ else if (await this.paneOccupant(binding, looksReady) === "another") {
574
+ // Not this launch's start: keep main's result.
575
+ slowStart = false;
576
+ break;
577
+ }
578
+ else if (windowEnd) {
579
+ // A boot in progress, or one we can't see: keep the launch past the window even when the readiness setting
580
+ // leaves no room for more polls (1 to 3 s), so it ends as attention_required, not as the failure that loses the token.
581
+ attempts = windowAttempts + Math.floor(Math.max(0, resolveReadinessTimeoutMs(this.readinessTimeoutMs) - windowAttempts * pollMs) / pollMs);
582
+ slowStart = true;
583
+ }
584
+ }
406
585
  if (attempt < attempts - 1) {
407
- await this.sleep(200);
586
+ await this.sleep(pollMs);
408
587
  }
409
588
  }
410
589
  const finalCommand = await this.tmux.getPaneCommand(tmuxSession);
@@ -430,19 +609,34 @@ export class ClaudeCodeAdapter {
430
609
  missingConversation: true,
431
610
  };
432
611
  }
433
- if (finalCommand && SHELL_COMMANDS.has(finalCommand)) {
612
+ if (await this.paneReturnedToShell(binding, finalCommand)) {
434
613
  return {
435
614
  ok: false,
436
615
  error: "Claude resume failed: pane returned to shell instead of entering Claude",
437
616
  recovery: "retry_fresh",
438
617
  };
439
618
  }
619
+ // The occupant can change after the last check in the loop, so the end of the wait looks once more, with the screen
620
+ // judged as in the loop: a different occupant (or a ready-looking screen on a readable list) keeps main's result.
621
+ if (slowStart && (finalProbe.code === "awaiting_runtime" || finalProbe.code === "returned_to_shell")
622
+ && await this.paneOccupant(binding, assessNativeResumeProbe({ runtime: "claude-code", paneCommand: finalCommand, paneContent: finalContent,
623
+ claudeAutoIdentityVerified: true, claudeResumeIdentityVerified: true }).status === "resumed") !== "another") {
624
+ // Claude, or the script about to start it, may still be coming up. Keep the launch and its resume token for
625
+ // a person (or the reconciler) rather than failing a seat that may be running. Never `resumed` from this.
626
+ return {
627
+ ok: false,
628
+ error: `Claude resume did not finish within ${Math.round(attempts * pollMs / 1000)}s; Claude may still be starting, so the launch was kept`,
629
+ recovery: "attention_required",
630
+ evidence: finalContent.split("\n").slice(-12).join("\n"),
631
+ };
632
+ }
440
633
  return { ok: false, error: "Claude resume failed: timed out waiting for Claude to become active" };
441
634
  }
442
635
  projectEntry(entry, cwd, managedBlockFile, warnings) {
443
- if (entry.category === "runtime_resource" && this.applyRuntimeResource(entry, cwd)) {
444
- return true;
445
- }
636
+ // A skipped fragment is reported skipped; it never falls through to the generic extensions copy.
637
+ const handled = entry.category === "runtime_resource" ? this.applyRuntimeResource(entry, cwd, warnings) : false;
638
+ if (handled)
639
+ return handled === true;
446
640
  if (entry.category === "guidance" && entry.mergeStrategy === "managed_block") {
447
641
  const targetPath = nodePath.join(cwd, managedBlockFile);
448
642
  const content = this.fs.readFile(entry.absolutePath);
@@ -533,14 +727,13 @@ export class ClaudeCodeAdapter {
533
727
  default: return null;
534
728
  }
535
729
  }
536
- applyRuntimeResource(entry, cwd) {
730
+ /** true when applied, "skipped" when handled but not applied, false when this isn't a resource it handles. */
731
+ applyRuntimeResource(entry, cwd, warnings) {
537
732
  switch (entry.resourceType) {
538
733
  case "claude_settings_fragment":
539
- this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".claude", "settings.local.json"));
540
- return true;
734
+ return this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".claude", "settings.local.json"), warnings) || "skipped";
541
735
  case "claude_mcp_fragment":
542
- this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".mcp.json"));
543
- return true;
736
+ return this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".mcp.json"), warnings) || "skipped";
544
737
  case "claude_activity_hooks":
545
738
  // Handled (no generic .claude/extensions copy): the relay asset is
546
739
  // delivered + the settings hooks reconciled by reconcileClaudeActivityHooks
@@ -550,12 +743,43 @@ export class ClaudeCodeAdapter {
550
743
  return false;
551
744
  }
552
745
  }
553
- mergeJsonFragment(sourcePath, targetPath) {
746
+ /** Merge a JSON fragment into a project file. An existing target that can't be read, or isn't a JSON object (it
747
+ * doesn't parse, or it holds an array or a single value), belongs to its owner: it's left as it is, nothing is
748
+ * merged, and a warning says so. Returns whether the fragment was applied. */
749
+ mergeJsonFragment(sourcePath, targetPath, warnings) {
554
750
  const fragment = this.readJsonObjectStrict(sourcePath);
555
- const existing = this.readJsonObject(targetPath);
751
+ // The reasons are fixed text: a parser message can quote the file's content.
752
+ const leave = (reason) => {
753
+ warnings.push(`Left ${targetPath} as it is: ${reason}. The fragment ${sourcePath} wasn't applied; once the file is fixed, the next fresh launch applies it (resuming or restoring the session doesn't).`);
754
+ return false;
755
+ };
756
+ let existing = {};
757
+ if (this.fs.exists(targetPath)) {
758
+ let text;
759
+ try {
760
+ text = this.fs.readFile(targetPath);
761
+ }
762
+ catch {
763
+ return leave("it couldn't be read");
764
+ }
765
+ if (text.trim() !== "") {
766
+ let parsed;
767
+ try {
768
+ parsed = JSON.parse(text);
769
+ }
770
+ catch {
771
+ return leave("it isn't valid JSON");
772
+ }
773
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
774
+ return leave(`it holds ${Array.isArray(parsed) ? "a JSON array" : parsed === null ? "JSON null" : `a JSON ${typeof parsed}`}, not an object`);
775
+ }
776
+ existing = parsed;
777
+ }
778
+ }
556
779
  const merged = mergeJsonObjects(existing, fragment);
557
780
  this.fs.mkdirp(nodePath.dirname(targetPath));
558
781
  this.fs.writeFile(targetPath, JSON.stringify(merged, null, 2));
782
+ return true;
559
783
  }
560
784
  /**
561
785
  * Merge a managed block into the target guidance file. Returns `true` when
@@ -677,19 +901,6 @@ export class ClaudeCodeAdapter {
677
901
  }
678
902
  return Array.from(keys);
679
903
  }
680
- readJsonObject(path) {
681
- try {
682
- if (!this.fs.exists(path))
683
- return {};
684
- const parsed = JSON.parse(this.fs.readFile(path));
685
- return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
686
- ? parsed
687
- : {};
688
- }
689
- catch {
690
- return {};
691
- }
692
- }
693
904
  readJsonObjectStrict(path) {
694
905
  const parsed = JSON.parse(this.fs.readFile(path));
695
906
  if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
@@ -734,9 +945,9 @@ export class ClaudeCodeAdapter {
734
945
  const settingsPath = nodePath.join(binding.cwd, ".claude", "settings.local.json");
735
946
  this.fs.mkdirp(nodePath.dirname(settingsPath));
736
947
  // The seat cwd can be a shared repo whose project-local settings other sessions read (#421).
737
- // Like the activity hooks, never clobber text we cannot parse. An empty file holds no settings
738
- // and is treated as `{}`. Valid JSON that is not an object (for example `[]`) is still
739
- // replaced, as before.
948
+ // Like the activity hooks, never clobber text we cannot parse, nor valid JSON that isn't an
949
+ // object (for example `[]`): the status line isn't installed there. An empty file holds no
950
+ // settings and is treated as `{}`.
740
951
  let existing = {};
741
952
  if (this.fs.exists(settingsPath)) {
742
953
  const text = this.fs.readFile(settingsPath);
@@ -748,8 +959,9 @@ export class ClaudeCodeAdapter {
748
959
  catch {
749
960
  return;
750
961
  }
751
- if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed))
752
- existing = parsed;
962
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
963
+ return;
964
+ existing = parsed;
753
965
  }
754
966
  }
755
967
  const statusLine = typeof existing["statusLine"] === "object" && existing["statusLine"] !== null
@@ -757,10 +969,14 @@ export class ClaudeCodeAdapter {
757
969
  // A user's own status line command wins; only OpenRig's collector command is installed or refreshed.
758
970
  // If this command's shape changes, keep the old shape recognised in isOwnedCollectorCommand, or
759
971
  // seats holding it will never be refreshed.
760
- const collectorCmd = `node ${shellQuote(collectorDest)} ${shellQuote(contextDir)} ${shellQuote(providerUsageDir)}`;
972
+ const collectorCmd = managedClaudeNodeCommand(this.nodeExecutable, collectorDest, contextDir, providerUsageDir);
761
973
  const current = statusLine["command"];
762
974
  if (typeof current === "string" && current.trim() !== "" && current !== collectorCmd && !isOwnedCollectorCommand(current))
763
975
  return;
976
+ // Already installed as wanted: no write. Compared by value, so another writer's key order or spacing isn't a
977
+ // change. This avoids rewriting on every poll; it doesn't make a needed write safe against a concurrent writer.
978
+ if (statusLine["type"] === "command" && current === collectorCmd)
979
+ return;
764
980
  existing["statusLine"] = { ...statusLine, type: "command", command: collectorCmd };
765
981
  this.fs.writeFile(settingsPath, JSON.stringify(existing, null, 2));
766
982
  }
@@ -775,14 +991,14 @@ export class ClaudeCodeAdapter {
775
991
  * commands) and report `sourceMissing` so the caller can surface a warning + not claim
776
992
  * projection. DISABLE: strip owned entries and prune emptied containers.
777
993
  *
778
- * Ownership is the EXACT `node <quoted relay path>` command shape, so a stale/changed
994
+ * Ownership is the exact generated Node-command shape (legacy or pinned interpreter), so a stale/changed
779
995
  * absolute prefix is replaced (never duplicated) while a user command that merely CONTAINS
780
996
  * the path is preserved. Fail-closed: a settings file we cannot parse is left byte-for-byte
781
997
  * untouched. Not `mergeJsonFragment` (additive union-by-key can't strip on disable).
782
998
  */
783
999
  reconcileClaudeActivityHooks(cwd, enabled) {
784
1000
  const relayDest = claudeActivityRelayPath(this.stateDir ?? undefined);
785
- const ownedCmd = `node ${shellQuote(relayDest)}`;
1001
+ const ownedCmd = managedClaudeNodeCommand(this.nodeExecutable, relayDest);
786
1002
  const settingsPath = nodePath.join(cwd, ".claude", "settings.local.json");
787
1003
  // PREVALIDATE BEFORE ANY MUTATION using the SHARED delivery validation (same gate
788
1004
  // preflight uses — one parser, no drift). Enable is deliverable ONLY when BOTH the relay
@@ -873,10 +1089,16 @@ export class ClaudeCodeAdapter {
873
1089
  return { changed: true, delivered: deliverable, sourceMissing: false, manifestUnavailable: false, settingsUnparseable: false };
874
1090
  }
875
1091
  }
876
- // OpenRig-owned relay path suffix. Ownership is the EXACT `node <arg>` command whose single
1092
+ // OpenRig-owned relay path suffix. Ownership is the generated Node command whose single
877
1093
  // argument ends with this path — a changed prefix still matches (replace, not duplicate); a
878
1094
  // user command that merely contains the path (echo, or node with extra args) does NOT.
879
1095
  const LEGACY_OWNED_RELAY_SUFFIX = "/.openrig/hooks/scripts/activity-relay.cjs";
1096
+ function managedClaudeNodeCommand(executable, ...args) {
1097
+ const quotedArgs = args.map(shellQuote).join(" ");
1098
+ const pinned = `${shellQuote(executable)} ${quotedArgs}`;
1099
+ // Keep legacy PATH resolution if this runtime's name is outside our ownership grammar.
1100
+ return parseManagedClaudeNodeCommand(pinned) ? pinned : `node ${quotedArgs}`;
1101
+ }
880
1102
  function hookCommand(hook) {
881
1103
  return isPlainObject(hook) && typeof hook["command"] === "string" ? hook["command"] : undefined;
882
1104
  }
@@ -887,13 +1109,9 @@ const OWNED_COLLECTOR_SUFFIX = nodePath.sep + nodePath.join(".openrig", "context
887
1109
  function isOwnedCollectorCommand(cmd) {
888
1110
  if (/[\r\n]/.test(cmd))
889
1111
  return false;
890
- const quoted = /^node ('(?:[^']|'"'"')*') ('(?:[^']|'"'"')*')(?: ('(?:[^']|'"'"')*'))?$/.exec(cmd.trim());
891
- if (quoted) {
892
- const tokens = quoted.slice(1).filter((token) => token !== undefined);
893
- const decoded = tokens.map(unquoteSingleShellToken);
894
- if (decoded.some((value, index) => value === null || shellQuote(value) !== tokens[index]))
895
- return false;
896
- return decoded[0].endsWith(OWNED_COLLECTOR_SUFFIX);
1112
+ const parsed = parseManagedClaudeNodeCommand(cmd);
1113
+ if (parsed && (parsed.args.length === 2 || parsed.args.length === 3)) {
1114
+ return parsed.args[0].endsWith(OWNED_COLLECTOR_SUFFIX);
897
1115
  }
898
1116
  const tokens = cmd.trim().split(/\s+/);
899
1117
  if ((tokens.length !== 3 && tokens.length !== 4) || tokens[0] !== "node")
@@ -905,31 +1123,12 @@ function isOwnedCollectorCommand(cmd) {
905
1123
  function isOwnedRelayCommand(cmd) {
906
1124
  if (!cmd)
907
1125
  return false;
908
- const m = /^node\s+(.+)$/.exec(cmd.trim());
909
- if (!m)
910
- return false;
911
- const arg = m[1];
912
- const decoded = unquoteSingleShellToken(arg);
913
- if (decoded === null)
1126
+ const parsed = parseManagedClaudeNodeCommand(cmd);
1127
+ if (!parsed || parsed.args.length !== 1)
914
1128
  return false;
915
- // Canonical ONE-TOKEN round-trip: the argument must be EXACTLY one shellQuote token — re-encoding
916
- // the decoded path must reproduce the argument VERBATIM. This is the ownership test's core: the
917
- // command is `node ${shellQuote(relayDest)}`, so any owned entry re-encodes to itself (including
918
- // an apostrophe cwd O'Brien via the '"'"' escape). It REJECTS a user command whose multiple quoted
919
- // args merely concatenate to text ending in the relay suffix (e.g. `node 'x' '<relay>'`), which
920
- // must never be recognised as owned and deleted.
921
- if (shellQuote(decoded) !== arg)
922
- return false;
923
- return decoded.endsWith(LEGACY_OWNED_RELAY_SUFFIX)
924
- || decoded.endsWith(`/${CLAUDE_ACTIVITY_RELAY_RELATIVE_PATH}`);
925
- }
926
- /** Decode ONE POSIX single-quoted shell token as produced by shellQuote (outer `'…'` with an
927
- * embedded `'` escaped as `'"'"'`). Returns null when the token is not single-quote wrapped. The
928
- * caller re-encodes to confirm the token is canonical/single — this decode alone does not. */
929
- function unquoteSingleShellToken(token) {
930
- if (token.length < 2 || !token.startsWith("'") || !token.endsWith("'"))
931
- return null;
932
- return token.slice(1, -1).split(`'"'"'`).join("'");
1129
+ const relay = parsed.args[0];
1130
+ return relay.endsWith(LEGACY_OWNED_RELAY_SUFFIX)
1131
+ || relay.endsWith(`/${CLAUDE_ACTIVITY_RELAY_RELATIVE_PATH}`);
933
1132
  }
934
1133
  function hashContent(content) {
935
1134
  return createHash("sha256").update(content).digest("hex");