@openrig/cli 0.6.10 → 0.6.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1275) hide show
  1. package/README.md +7 -4
  2. package/daemon/assets/claude-statusline-context.cjs +2 -0
  3. package/daemon/assets/guidance/openrig-start.md +2 -1
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/README.md +30 -7
  7. package/daemon/assets/plugins/openrig-core/hooks/claude.json +7 -7
  8. package/daemon/assets/plugins/openrig-core/hooks/codex.json +2 -2
  9. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +77 -0
  10. package/daemon/assets/plugins/openrig-core/hooks/scripts/compaction-restore-bridge.cjs +23 -0
  11. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +4 -2
  12. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +69 -16
  13. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +24 -0
  14. package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +25 -5
  15. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -2
  16. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +10 -1
  17. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +2 -2
  18. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +172 -11
  19. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +7 -4
  20. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +8 -0
  21. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +6 -1
  22. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +5 -2
  23. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +19 -0
  24. package/daemon/assets/skills/rigs/SKILL.md +56 -10
  25. package/daemon/context-packs/help/manifest.yaml +1 -1
  26. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  27. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +131 -37
  28. package/daemon/context-packs/reference/getting-started.md +39 -6
  29. package/daemon/context-packs/reference/manifest.yaml +1 -1
  30. package/daemon/context-packs/reference/rig-spec.md +66 -5
  31. package/daemon/context-packs/reference/whats-new.md +169 -147
  32. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +24 -0
  37. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +2 -2
  46. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +3 -3
  47. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +0 -1
  48. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  50. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  56. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/delegating-work/SKILL.md +25 -5
  59. package/daemon/context-packs/skills/delegating-work/manifest.yaml +3 -3
  60. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +4 -2
  61. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +10 -1
  64. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/openrig-user/SKILL.md +172 -11
  67. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +7 -4
  69. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +1 -1
  79. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/queue-handoff/SKILL.md +8 -0
  90. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +6 -1
  93. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +5 -2
  94. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  95. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  96. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +19 -0
  97. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  99. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  100. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  101. package/daemon/dist/adapters/bounded-probe-exec.d.ts +45 -0
  102. package/daemon/dist/adapters/bounded-probe-exec.d.ts.map +1 -0
  103. package/daemon/dist/adapters/bounded-probe-exec.js +204 -0
  104. package/daemon/dist/adapters/bounded-probe-exec.js.map +1 -0
  105. package/daemon/dist/adapters/claude-code-adapter.d.ts +17 -15
  106. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  107. package/daemon/dist/adapters/claude-code-adapter.js +200 -105
  108. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  109. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  110. package/daemon/dist/adapters/claude-resume.js +14 -3
  111. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  112. package/daemon/dist/adapters/codex-resume.d.ts +5 -0
  113. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  114. package/daemon/dist/adapters/codex-resume.js +17 -3
  115. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  116. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +73 -1
  117. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  118. package/daemon/dist/adapters/codex-runtime-adapter.js +230 -48
  119. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  120. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts +46 -0
  121. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts.map +1 -0
  122. package/daemon/dist/adapters/community-harness-runtime-adapter.js +102 -0
  123. package/daemon/dist/adapters/community-harness-runtime-adapter.js.map +1 -0
  124. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  125. package/daemon/dist/adapters/compose-services-adapter.js +2 -1
  126. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  127. package/daemon/dist/adapters/kernel-authority.d.ts +8 -1
  128. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  129. package/daemon/dist/adapters/kernel-authority.js +35 -10
  130. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  131. package/daemon/dist/adapters/omp-rpc-frame.d.ts +51 -0
  132. package/daemon/dist/adapters/omp-rpc-frame.d.ts.map +1 -0
  133. package/daemon/dist/adapters/omp-rpc-frame.js +153 -0
  134. package/daemon/dist/adapters/omp-rpc-frame.js.map +1 -0
  135. package/daemon/dist/adapters/pi-openrouter-charge.d.ts +67 -0
  136. package/daemon/dist/adapters/pi-openrouter-charge.d.ts.map +1 -0
  137. package/daemon/dist/adapters/pi-openrouter-charge.js +228 -0
  138. package/daemon/dist/adapters/pi-openrouter-charge.js.map +1 -0
  139. package/daemon/dist/adapters/pi-readiness.d.ts +81 -5
  140. package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -1
  141. package/daemon/dist/adapters/pi-readiness.js +193 -27
  142. package/daemon/dist/adapters/pi-readiness.js.map +1 -1
  143. package/daemon/dist/adapters/pi-resume.d.ts +4 -0
  144. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  145. package/daemon/dist/adapters/pi-resume.js +2 -0
  146. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  147. package/daemon/dist/adapters/pi-runner-protocol.d.ts +4 -0
  148. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  149. package/daemon/dist/adapters/pi-runner-protocol.js +5 -0
  150. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  151. package/daemon/dist/adapters/pi-runner.d.ts +67 -2
  152. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  153. package/daemon/dist/adapters/pi-runner.js +336 -13
  154. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  155. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +16 -1
  156. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  157. package/daemon/dist/adapters/pi-runtime-adapter.js +18 -1
  158. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  159. package/daemon/dist/adapters/preflight-exec.d.ts +3 -0
  160. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -1
  161. package/daemon/dist/adapters/preflight-exec.js +15 -7
  162. package/daemon/dist/adapters/preflight-exec.js.map +1 -1
  163. package/daemon/dist/adapters/replace-file.d.ts +8 -0
  164. package/daemon/dist/adapters/replace-file.d.ts.map +1 -0
  165. package/daemon/dist/adapters/replace-file.js +32 -0
  166. package/daemon/dist/adapters/replace-file.js.map +1 -0
  167. package/daemon/dist/adapters/tmux-control.d.ts +119 -0
  168. package/daemon/dist/adapters/tmux-control.d.ts.map +1 -0
  169. package/daemon/dist/adapters/tmux-control.js +547 -0
  170. package/daemon/dist/adapters/tmux-control.js.map +1 -0
  171. package/daemon/dist/adapters/tmux-exec.d.ts +18 -4
  172. package/daemon/dist/adapters/tmux-exec.d.ts.map +1 -1
  173. package/daemon/dist/adapters/tmux-exec.js +98 -17
  174. package/daemon/dist/adapters/tmux-exec.js.map +1 -1
  175. package/daemon/dist/adapters/tmux.d.ts +75 -15
  176. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  177. package/daemon/dist/adapters/tmux.js +352 -57
  178. package/daemon/dist/adapters/tmux.js.map +1 -1
  179. package/daemon/dist/build-info.js +3 -3
  180. package/daemon/dist/composer-prompts-surface.d.ts +2 -0
  181. package/daemon/dist/composer-prompts-surface.d.ts.map +1 -0
  182. package/daemon/dist/composer-prompts-surface.js +2 -0
  183. package/daemon/dist/composer-prompts-surface.js.map +1 -0
  184. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  185. package/daemon/dist/db/all-migrations.js +26 -0
  186. package/daemon/dist/db/all-migrations.js.map +1 -1
  187. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts +3 -0
  188. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts.map +1 -0
  189. package/daemon/dist/db/migrations/100_typing_guard_modes.js +10 -0
  190. package/daemon/dist/db/migrations/100_typing_guard_modes.js.map +1 -0
  191. package/daemon/dist/db/migrations/103_session_stop_intent.d.ts +4 -0
  192. package/daemon/dist/db/migrations/103_session_stop_intent.d.ts.map +1 -0
  193. package/daemon/dist/db/migrations/103_session_stop_intent.js +9 -0
  194. package/daemon/dist/db/migrations/103_session_stop_intent.js.map +1 -0
  195. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts +3 -0
  196. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts.map +1 -0
  197. package/daemon/dist/db/migrations/104_node_effort_choice.js +10 -0
  198. package/daemon/dist/db/migrations/104_node_effort_choice.js.map +1 -0
  199. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts +9 -0
  200. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts.map +1 -0
  201. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js +14 -0
  202. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js.map +1 -0
  203. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts +10 -0
  204. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts.map +1 -0
  205. package/daemon/dist/db/migrations/107_pi_usage_entries.js +38 -0
  206. package/daemon/dist/db/migrations/107_pi_usage_entries.js.map +1 -0
  207. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts +12 -0
  208. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts.map +1 -0
  209. package/daemon/dist/db/migrations/108_pi_usage_charges.js +39 -0
  210. package/daemon/dist/db/migrations/108_pi_usage_charges.js.map +1 -0
  211. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts +5 -0
  212. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts.map +1 -0
  213. package/daemon/dist/db/migrations/109_mode_posture_coexist.js +11 -0
  214. package/daemon/dist/db/migrations/109_mode_posture_coexist.js.map +1 -0
  215. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts +10 -0
  216. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts.map +1 -0
  217. package/daemon/dist/db/migrations/110_workflow_instance_scope.js +14 -0
  218. package/daemon/dist/db/migrations/110_workflow_instance_scope.js.map +1 -0
  219. package/daemon/dist/db/migrations/111_seat_env.d.ts +6 -0
  220. package/daemon/dist/db/migrations/111_seat_env.d.ts.map +1 -0
  221. package/daemon/dist/db/migrations/111_seat_env.js +11 -0
  222. package/daemon/dist/db/migrations/111_seat_env.js.map +1 -0
  223. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts +3 -0
  224. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts.map +1 -0
  225. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js +14 -0
  226. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js.map +1 -0
  227. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts +3 -0
  228. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts.map +1 -0
  229. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js +9 -0
  230. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js.map +1 -0
  231. package/daemon/dist/db/migrations/114_session_agent_app.d.ts +3 -0
  232. package/daemon/dist/db/migrations/114_session_agent_app.d.ts.map +1 -0
  233. package/daemon/dist/db/migrations/114_session_agent_app.js +11 -0
  234. package/daemon/dist/db/migrations/114_session_agent_app.js.map +1 -0
  235. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts +3 -0
  236. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts.map +1 -0
  237. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js +28 -0
  238. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js.map +1 -0
  239. package/daemon/dist/domain/active-occupant.d.ts +14 -0
  240. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  241. package/daemon/dist/domain/active-occupant.js +17 -0
  242. package/daemon/dist/domain/active-occupant.js.map +1 -1
  243. package/daemon/dist/domain/activity-taxonomy.d.ts +13 -5
  244. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  245. package/daemon/dist/domain/activity-taxonomy.js +14 -2
  246. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  247. package/daemon/dist/domain/agent-activity-store.d.ts +2 -0
  248. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  249. package/daemon/dist/domain/agent-activity-store.js +14 -8
  250. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  251. package/daemon/dist/domain/agent-images/agent-image-library-service.js +1 -1
  252. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  253. package/daemon/dist/domain/agent-images/manifest-parser.js +1 -1
  254. package/daemon/dist/domain/agent-images/manifest-parser.js.map +1 -1
  255. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  256. package/daemon/dist/domain/agent-manifest.js +21 -3
  257. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  258. package/daemon/dist/domain/applied-launch-observation-store.d.ts +2 -0
  259. package/daemon/dist/domain/applied-launch-observation-store.d.ts.map +1 -1
  260. package/daemon/dist/domain/applied-launch-observation-store.js +27 -3
  261. package/daemon/dist/domain/applied-launch-observation-store.js.map +1 -1
  262. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +3 -0
  263. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  264. package/daemon/dist/domain/bootstrap-orchestrator.js +49 -16
  265. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  266. package/daemon/dist/domain/built-in-runtimes.d.ts +10 -0
  267. package/daemon/dist/domain/built-in-runtimes.d.ts.map +1 -0
  268. package/daemon/dist/domain/built-in-runtimes.js +14 -0
  269. package/daemon/dist/domain/built-in-runtimes.js.map +1 -0
  270. package/daemon/dist/domain/bundle-archive.d.ts +3 -1
  271. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  272. package/daemon/dist/domain/bundle-archive.js +5 -3
  273. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  274. package/daemon/dist/domain/bundle-behaviour.d.ts +20 -0
  275. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
  276. package/daemon/dist/domain/bundle-behaviour.js +57 -1
  277. package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
  278. package/daemon/dist/domain/bundle-integrity.d.ts +5 -2
  279. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  280. package/daemon/dist/domain/bundle-integrity.js +39 -8
  281. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  282. package/daemon/dist/domain/bundle-source-resolver.d.ts +3 -1
  283. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  284. package/daemon/dist/domain/bundle-source-resolver.js +7 -2
  285. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  286. package/daemon/dist/domain/bundle-types.d.ts +6 -0
  287. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  288. package/daemon/dist/domain/bundle-types.js +26 -0
  289. package/daemon/dist/domain/bundle-types.js.map +1 -1
  290. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  291. package/daemon/dist/domain/chat-repository.js +3 -2
  292. package/daemon/dist/domain/chat-repository.js.map +1 -1
  293. package/daemon/dist/domain/claim-service.d.ts +6 -0
  294. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  295. package/daemon/dist/domain/claim-service.js +20 -1
  296. package/daemon/dist/domain/claim-service.js.map +1 -1
  297. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +63 -2
  298. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  299. package/daemon/dist/domain/claude-compaction-enforcer.js +154 -16
  300. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  301. package/daemon/dist/domain/claude-core-plugin-env.d.ts +26 -0
  302. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -0
  303. package/daemon/dist/domain/claude-core-plugin-env.js +86 -0
  304. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -0
  305. package/daemon/dist/domain/claude-managed-launch.d.ts +13 -6
  306. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  307. package/daemon/dist/domain/claude-managed-launch.js +58 -5
  308. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  309. package/daemon/dist/domain/codex-network-default.d.ts +3 -0
  310. package/daemon/dist/domain/codex-network-default.d.ts.map +1 -1
  311. package/daemon/dist/domain/codex-network-default.js +1 -1
  312. package/daemon/dist/domain/codex-network-default.js.map +1 -1
  313. package/daemon/dist/domain/codex-pane-patterns.d.ts +2 -0
  314. package/daemon/dist/domain/codex-pane-patterns.d.ts.map +1 -0
  315. package/daemon/dist/domain/codex-pane-patterns.js +5 -0
  316. package/daemon/dist/domain/codex-pane-patterns.js.map +1 -0
  317. package/daemon/dist/domain/codex-thread-id.d.ts +22 -3
  318. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  319. package/daemon/dist/domain/codex-thread-id.js +65 -16
  320. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  321. package/daemon/dist/domain/community-harness-presets.d.ts +38 -0
  322. package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -0
  323. package/daemon/dist/domain/community-harness-presets.js +155 -0
  324. package/daemon/dist/domain/community-harness-presets.js.map +1 -0
  325. package/daemon/dist/domain/composer-prompts.d.ts +118 -0
  326. package/daemon/dist/domain/composer-prompts.d.ts.map +1 -0
  327. package/daemon/dist/domain/composer-prompts.js +165 -0
  328. package/daemon/dist/domain/composer-prompts.js.map +1 -0
  329. package/daemon/dist/domain/context-monitor.d.ts +3 -0
  330. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  331. package/daemon/dist/domain/context-monitor.js +59 -23
  332. package/daemon/dist/domain/context-monitor.js.map +1 -1
  333. package/daemon/dist/domain/context-packs/context-pack-library-service.js +2 -2
  334. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  335. package/daemon/dist/domain/context-packs/manifest-parser.js +1 -1
  336. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  337. package/daemon/dist/domain/context-usage-store.d.ts +4 -0
  338. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  339. package/daemon/dist/domain/context-usage-store.js +1 -0
  340. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  341. package/daemon/dist/domain/current-work.js +2 -2
  342. package/daemon/dist/domain/current-work.js.map +1 -1
  343. package/daemon/dist/domain/cwd-resolution.d.ts +8 -0
  344. package/daemon/dist/domain/cwd-resolution.d.ts.map +1 -1
  345. package/daemon/dist/domain/cwd-resolution.js +24 -3
  346. package/daemon/dist/domain/cwd-resolution.js.map +1 -1
  347. package/daemon/dist/domain/draft-aware-delivery.d.ts +32 -0
  348. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -0
  349. package/daemon/dist/domain/draft-aware-delivery.js +156 -0
  350. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -0
  351. package/daemon/dist/domain/event-bus.d.ts +10 -1
  352. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  353. package/daemon/dist/domain/event-bus.js +25 -0
  354. package/daemon/dist/domain/event-bus.js.map +1 -1
  355. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  356. package/daemon/dist/domain/execution-view.js +76 -10
  357. package/daemon/dist/domain/execution-view.js.map +1 -1
  358. package/daemon/dist/domain/frontmatter.d.ts +11 -0
  359. package/daemon/dist/domain/frontmatter.d.ts.map +1 -0
  360. package/daemon/dist/domain/frontmatter.js +20 -0
  361. package/daemon/dist/domain/frontmatter.js.map +1 -0
  362. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +11 -0
  363. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  364. package/daemon/dist/domain/gateway/gateway-subsystem.js +7 -0
  365. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  366. package/daemon/dist/domain/gateway/human-registry.d.ts +6 -1
  367. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  368. package/daemon/dist/domain/gateway/human-registry.js +7 -0
  369. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  370. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts +54 -0
  371. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts.map +1 -0
  372. package/daemon/dist/domain/gateway/slack/bot-inbox.js +86 -0
  373. package/daemon/dist/domain/gateway/slack/bot-inbox.js.map +1 -0
  374. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
  375. package/daemon/dist/domain/gateway/slack/capabilities.js +1 -0
  376. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
  377. package/daemon/dist/domain/gateway/slack/channel-map.d.ts +11 -1
  378. package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -1
  379. package/daemon/dist/domain/gateway/slack/channel-map.js +31 -6
  380. package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -1
  381. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -1
  382. package/daemon/dist/domain/gateway/slack/channel-recovery.js +4 -3
  383. package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -1
  384. package/daemon/dist/domain/gateway/slack/config.d.ts +14 -0
  385. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  386. package/daemon/dist/domain/gateway/slack/config.js +28 -0
  387. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  388. package/daemon/dist/domain/gateway/slack/forwarding.d.ts +32 -0
  389. package/daemon/dist/domain/gateway/slack/forwarding.d.ts.map +1 -0
  390. package/daemon/dist/domain/gateway/slack/forwarding.js +76 -0
  391. package/daemon/dist/domain/gateway/slack/forwarding.js.map +1 -0
  392. package/daemon/dist/domain/gateway/slack/inbound.d.ts +99 -1
  393. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  394. package/daemon/dist/domain/gateway/slack/inbound.js +325 -7
  395. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  396. package/daemon/dist/domain/gateway/slack/message.d.ts +28 -0
  397. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  398. package/daemon/dist/domain/gateway/slack/message.js +105 -4
  399. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  400. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  401. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  402. package/daemon/dist/domain/gateway/slack/outbound-driver.js +1 -0
  403. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  404. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -1
  405. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  406. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +10 -0
  407. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  408. package/daemon/dist/domain/gateway/slack/slack-api.js +13 -0
  409. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  410. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +2 -0
  411. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  412. package/daemon/dist/domain/gateway/slack/slack-delivery.js +12 -2
  413. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  414. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -0
  415. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  416. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +133 -20
  417. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  418. package/daemon/dist/domain/gateway/slack/state-store.d.ts +9 -2
  419. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  420. package/daemon/dist/domain/gateway/slack/state-store.js +24 -2
  421. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  422. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +3 -0
  423. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  424. package/daemon/dist/domain/gateway/slack/thread-routing.js +18 -7
  425. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  426. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +17 -6
  427. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  428. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +41 -23
  429. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  430. package/daemon/dist/domain/history-query.d.ts.map +1 -1
  431. package/daemon/dist/domain/history-query.js +2 -1
  432. package/daemon/dist/domain/history-query.js.map +1 -1
  433. package/daemon/dist/domain/home-isolation.d.ts +18 -0
  434. package/daemon/dist/domain/home-isolation.d.ts.map +1 -0
  435. package/daemon/dist/domain/home-isolation.js +75 -0
  436. package/daemon/dist/domain/home-isolation.js.map +1 -0
  437. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +22 -0
  438. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  439. package/daemon/dist/domain/hosts/remote-daemon-http.js +43 -3
  440. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  441. package/daemon/dist/domain/inbox-handler.d.ts.map +1 -1
  442. package/daemon/dist/domain/inbox-handler.js +34 -32
  443. package/daemon/dist/domain/inbox-handler.js.map +1 -1
  444. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +12 -2
  445. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  446. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +1 -1
  447. package/daemon/dist/domain/mission-control/notification-dispatcher.js +2 -1
  448. package/daemon/dist/domain/mission-control/notification-dispatcher.js.map +1 -1
  449. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +63 -0
  450. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  451. package/daemon/dist/domain/model-divergence/current-generation-record.js +130 -1
  452. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  453. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +42 -0
  454. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
  455. package/daemon/dist/domain/model-divergence/effective-model-readers.js +160 -5
  456. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
  457. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +8 -2
  458. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  459. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +10 -5
  460. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  461. package/daemon/dist/domain/native-process-lineage.d.ts +54 -0
  462. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  463. package/daemon/dist/domain/native-process-lineage.js +181 -29
  464. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  465. package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
  466. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  467. package/daemon/dist/domain/native-resume-probe.js +43 -6
  468. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  469. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  470. package/daemon/dist/domain/node-inventory.js +41 -16
  471. package/daemon/dist/domain/node-inventory.js.map +1 -1
  472. package/daemon/dist/domain/node-launcher.d.ts +18 -0
  473. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  474. package/daemon/dist/domain/node-launcher.js +62 -3
  475. package/daemon/dist/domain/node-launcher.js.map +1 -1
  476. package/daemon/dist/domain/openrouter-charge.d.ts +42 -0
  477. package/daemon/dist/domain/openrouter-charge.d.ts.map +1 -0
  478. package/daemon/dist/domain/openrouter-charge.js +57 -0
  479. package/daemon/dist/domain/openrouter-charge.js.map +1 -0
  480. package/daemon/dist/domain/pane-cutover.d.ts +27 -0
  481. package/daemon/dist/domain/pane-cutover.d.ts.map +1 -0
  482. package/daemon/dist/domain/pane-cutover.js +37 -0
  483. package/daemon/dist/domain/pane-cutover.js.map +1 -0
  484. package/daemon/dist/domain/parent-session-env.d.ts +8 -0
  485. package/daemon/dist/domain/parent-session-env.d.ts.map +1 -0
  486. package/daemon/dist/domain/parent-session-env.js +37 -0
  487. package/daemon/dist/domain/parent-session-env.js.map +1 -0
  488. package/daemon/dist/domain/parked-query.d.ts +5 -0
  489. package/daemon/dist/domain/parked-query.d.ts.map +1 -1
  490. package/daemon/dist/domain/parked-query.js +9 -2
  491. package/daemon/dist/domain/parked-query.js.map +1 -1
  492. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  493. package/daemon/dist/domain/periodic-snapshot-scheduler.js +27 -3
  494. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  495. package/daemon/dist/domain/permission-drift.d.ts +2 -0
  496. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  497. package/daemon/dist/domain/permission-drift.js.map +1 -1
  498. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  499. package/daemon/dist/domain/permission-policy/policy-spec.js +5 -7
  500. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  501. package/daemon/dist/domain/pi-usage-entries-store.d.ts +41 -0
  502. package/daemon/dist/domain/pi-usage-entries-store.d.ts.map +1 -0
  503. package/daemon/dist/domain/pi-usage-entries-store.js +173 -0
  504. package/daemon/dist/domain/pi-usage-entries-store.js.map +1 -0
  505. package/daemon/dist/domain/pi-usage-facts.d.ts +90 -0
  506. package/daemon/dist/domain/pi-usage-facts.d.ts.map +1 -0
  507. package/daemon/dist/domain/pi-usage-facts.js +165 -0
  508. package/daemon/dist/domain/pi-usage-facts.js.map +1 -0
  509. package/daemon/dist/domain/pod-bundle-assembler.d.ts +2 -0
  510. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  511. package/daemon/dist/domain/pod-bundle-assembler.js +4 -0
  512. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  513. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
  514. package/daemon/dist/domain/policies/artifact-pool-helpers.js +6 -4
  515. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
  516. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +11 -0
  517. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  518. package/daemon/dist/domain/policies/parked-owner-consumer.js +81 -11
  519. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  520. package/daemon/dist/domain/profile-resolver.d.ts +2 -0
  521. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  522. package/daemon/dist/domain/profile-resolver.js +6 -3
  523. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  524. package/daemon/dist/domain/progress/progress-indexer.js +1 -1
  525. package/daemon/dist/domain/progress/progress-indexer.js.map +1 -1
  526. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +4 -0
  527. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  528. package/daemon/dist/domain/project-lifecycle-compiler.js +63 -3
  529. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  530. package/daemon/dist/domain/proof/judgments.d.ts +10 -5
  531. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  532. package/daemon/dist/domain/proof/judgments.js +57 -20
  533. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  534. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts +33 -0
  535. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts.map +1 -0
  536. package/daemon/dist/domain/provider/claude-auth-status-reader.js +195 -0
  537. package/daemon/dist/domain/provider/claude-auth-status-reader.js.map +1 -0
  538. package/daemon/dist/domain/provider/claude-usage-windows.d.ts +68 -0
  539. package/daemon/dist/domain/provider/claude-usage-windows.d.ts.map +1 -0
  540. package/daemon/dist/domain/provider/claude-usage-windows.js +260 -0
  541. package/daemon/dist/domain/provider/claude-usage-windows.js.map +1 -0
  542. package/daemon/dist/domain/provider/codex-auth-reader.d.ts +14 -0
  543. package/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +1 -1
  544. package/daemon/dist/domain/provider/codex-auth-reader.js +41 -12
  545. package/daemon/dist/domain/provider/codex-auth-reader.js.map +1 -1
  546. package/daemon/dist/domain/provider/codex-limit-banner.d.ts +2 -2
  547. package/daemon/dist/domain/provider/codex-limit-banner.d.ts.map +1 -1
  548. package/daemon/dist/domain/provider/codex-limit-banner.js +56 -9
  549. package/daemon/dist/domain/provider/codex-limit-banner.js.map +1 -1
  550. package/daemon/dist/domain/provider/codex-usage-reader.d.ts +33 -0
  551. package/daemon/dist/domain/provider/codex-usage-reader.d.ts.map +1 -0
  552. package/daemon/dist/domain/provider/codex-usage-reader.js +117 -0
  553. package/daemon/dist/domain/provider/codex-usage-reader.js.map +1 -0
  554. package/daemon/dist/domain/provider/codex-usage-windows.d.ts +39 -0
  555. package/daemon/dist/domain/provider/codex-usage-windows.d.ts.map +1 -0
  556. package/daemon/dist/domain/provider/codex-usage-windows.js +101 -0
  557. package/daemon/dist/domain/provider/codex-usage-windows.js.map +1 -0
  558. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts +18 -0
  559. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts.map +1 -0
  560. package/daemon/dist/domain/provider/provider-seat-accounts.js +159 -0
  561. package/daemon/dist/domain/provider/provider-seat-accounts.js.map +1 -0
  562. package/daemon/dist/domain/provider/provider-service-impl.d.ts +15 -0
  563. package/daemon/dist/domain/provider/provider-service-impl.d.ts.map +1 -1
  564. package/daemon/dist/domain/provider/provider-service-impl.js +45 -1
  565. package/daemon/dist/domain/provider/provider-service-impl.js.map +1 -1
  566. package/daemon/dist/domain/provider/provider-service.d.ts +7 -0
  567. package/daemon/dist/domain/provider/provider-service.d.ts.map +1 -1
  568. package/daemon/dist/domain/provider/provider-types.d.ts +133 -0
  569. package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -1
  570. package/daemon/dist/domain/provider/reactive-tap.js +2 -0
  571. package/daemon/dist/domain/provider/reactive-tap.js.map +1 -1
  572. package/daemon/dist/domain/provider/subscription-moves.d.ts +77 -0
  573. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +1 -0
  574. package/daemon/dist/domain/provider/subscription-moves.js +140 -0
  575. package/daemon/dist/domain/provider/subscription-moves.js.map +1 -0
  576. package/daemon/dist/domain/provider/usage-across-hosts.d.ts +162 -0
  577. package/daemon/dist/domain/provider/usage-across-hosts.d.ts.map +1 -0
  578. package/daemon/dist/domain/provider/usage-across-hosts.js +563 -0
  579. package/daemon/dist/domain/provider/usage-across-hosts.js.map +1 -0
  580. package/daemon/dist/domain/provider/usage-windows.d.ts +88 -0
  581. package/daemon/dist/domain/provider/usage-windows.d.ts.map +1 -0
  582. package/daemon/dist/domain/provider/usage-windows.js +189 -0
  583. package/daemon/dist/domain/provider/usage-windows.js.map +1 -0
  584. package/daemon/dist/domain/ps-projection.d.ts +5 -2
  585. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  586. package/daemon/dist/domain/ps-projection.js +27 -25
  587. package/daemon/dist/domain/ps-projection.js.map +1 -1
  588. package/daemon/dist/domain/queue-owner.d.ts +6 -0
  589. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  590. package/daemon/dist/domain/queue-owner.js +22 -0
  591. package/daemon/dist/domain/queue-owner.js.map +1 -1
  592. package/daemon/dist/domain/queue-repository.d.ts +91 -14
  593. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  594. package/daemon/dist/domain/queue-repository.js +347 -89
  595. package/daemon/dist/domain/queue-repository.js.map +1 -1
  596. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  597. package/daemon/dist/domain/queue-stuck-sweep.js +29 -27
  598. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  599. package/daemon/dist/domain/queue-transition-log.d.ts +23 -2
  600. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  601. package/daemon/dist/domain/queue-transition-log.js +98 -39
  602. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  603. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -2
  604. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  605. package/daemon/dist/domain/queue-wake-ladder.js +27 -8
  606. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  607. package/daemon/dist/domain/queue-wake-repository.d.ts +7 -1
  608. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  609. package/daemon/dist/domain/queue-wake-repository.js +54 -5
  610. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  611. package/daemon/dist/domain/reply-to-choice.d.ts +2 -0
  612. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
  613. package/daemon/dist/domain/reply-to-choice.js +2 -0
  614. package/daemon/dist/domain/reply-to-choice.js.map +1 -1
  615. package/daemon/dist/domain/restore-check-service.d.ts +8 -0
  616. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  617. package/daemon/dist/domain/restore-check-service.js +15 -5
  618. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  619. package/daemon/dist/domain/restore-orchestrator.d.ts +4 -0
  620. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  621. package/daemon/dist/domain/restore-orchestrator.js +111 -18
  622. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  623. package/daemon/dist/domain/restore-plan-preview.d.ts +4 -0
  624. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  625. package/daemon/dist/domain/restore-plan-preview.js +35 -20
  626. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  627. package/daemon/dist/domain/restore-policy.d.ts +26 -0
  628. package/daemon/dist/domain/restore-policy.d.ts.map +1 -0
  629. package/daemon/dist/domain/restore-policy.js +22 -0
  630. package/daemon/dist/domain/restore-policy.js.map +1 -0
  631. package/daemon/dist/domain/restore-preconditions.d.ts +2 -0
  632. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -1
  633. package/daemon/dist/domain/restore-preconditions.js +6 -1
  634. package/daemon/dist/domain/restore-preconditions.js.map +1 -1
  635. package/daemon/dist/domain/restore-runtime-compatibility.d.ts +3 -0
  636. package/daemon/dist/domain/restore-runtime-compatibility.d.ts.map +1 -0
  637. package/daemon/dist/domain/restore-runtime-compatibility.js +7 -0
  638. package/daemon/dist/domain/restore-runtime-compatibility.js.map +1 -0
  639. package/daemon/dist/domain/resume-metadata-refresher.d.ts +10 -5
  640. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  641. package/daemon/dist/domain/resume-metadata-refresher.js +109 -21
  642. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  643. package/daemon/dist/domain/resume-token-capture.d.ts +1 -1
  644. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  645. package/daemon/dist/domain/resume-token-capture.js +7 -1
  646. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  647. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  648. package/daemon/dist/domain/review/compose.js +5 -4
  649. package/daemon/dist/domain/review/compose.js.map +1 -1
  650. package/daemon/dist/domain/review/gather.d.ts +2 -1
  651. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  652. package/daemon/dist/domain/review/gather.js +25 -17
  653. package/daemon/dist/domain/review/gather.js.map +1 -1
  654. package/daemon/dist/domain/rig-lifecycle-service.d.ts +31 -8
  655. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  656. package/daemon/dist/domain/rig-lifecycle-service.js +253 -98
  657. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  658. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts +11 -1
  659. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -1
  660. package/daemon/dist/domain/rig-mode/rig-mode-store.js +69 -48
  661. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -1
  662. package/daemon/dist/domain/rig-repository.d.ts +18 -0
  663. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  664. package/daemon/dist/domain/rig-repository.js +52 -1
  665. package/daemon/dist/domain/rig-repository.js.map +1 -1
  666. package/daemon/dist/domain/rig-teardown.d.ts +4 -1
  667. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  668. package/daemon/dist/domain/rig-teardown.js +40 -2
  669. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  670. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  671. package/daemon/dist/domain/rigspec-codec.js +7 -0
  672. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  673. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  674. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  675. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  676. package/daemon/dist/domain/rigspec-instantiator.d.ts +3 -0
  677. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  678. package/daemon/dist/domain/rigspec-instantiator.js +28 -5
  679. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  680. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  681. package/daemon/dist/domain/rigspec-preflight.js +25 -11
  682. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  683. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  684. package/daemon/dist/domain/rigspec-schema.js +24 -2
  685. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  686. package/daemon/dist/domain/runtime-adapter.d.ts +12 -0
  687. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  688. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  689. package/daemon/dist/domain/runtime-verifier.d.ts +15 -1
  690. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  691. package/daemon/dist/domain/runtime-verifier.js +28 -4
  692. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  693. package/daemon/dist/domain/scope/logical-checkbox.js +1 -1
  694. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -1
  695. package/daemon/dist/domain/scope/scope-view-projection.d.ts +4 -2
  696. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  697. package/daemon/dist/domain/scope/scope-view-projection.js +29 -14
  698. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  699. package/daemon/dist/domain/seat-activity-service.d.ts +9 -2
  700. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  701. package/daemon/dist/domain/seat-activity-service.js +100 -15
  702. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  703. package/daemon/dist/domain/seat-attention-reconciler.d.ts +3 -0
  704. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  705. package/daemon/dist/domain/seat-attention-reconciler.js +114 -7
  706. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  707. package/daemon/dist/domain/seat-delivery-guard.d.ts +36 -1
  708. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  709. package/daemon/dist/domain/seat-delivery-guard.js +255 -22
  710. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  711. package/daemon/dist/domain/seat-effort.d.ts +115 -0
  712. package/daemon/dist/domain/seat-effort.d.ts.map +1 -0
  713. package/daemon/dist/domain/seat-effort.js +233 -0
  714. package/daemon/dist/domain/seat-effort.js.map +1 -0
  715. package/daemon/dist/domain/seat-env.d.ts +37 -0
  716. package/daemon/dist/domain/seat-env.d.ts.map +1 -0
  717. package/daemon/dist/domain/seat-env.js +94 -0
  718. package/daemon/dist/domain/seat-env.js.map +1 -0
  719. package/daemon/dist/domain/seat-handover-service.d.ts +5 -0
  720. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  721. package/daemon/dist/domain/seat-handover-service.js +22 -4
  722. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  723. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  724. package/daemon/dist/domain/seat-identity-reconciler.js +19 -2
  725. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  726. package/daemon/dist/domain/seat-lifecycle-service.d.ts +234 -5
  727. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  728. package/daemon/dist/domain/seat-lifecycle-service.js +651 -95
  729. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  730. package/daemon/dist/domain/seat-restart-in-place.d.ts +303 -0
  731. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -0
  732. package/daemon/dist/domain/seat-restart-in-place.js +914 -0
  733. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -0
  734. package/daemon/dist/domain/seat-structural-activity-service.d.ts +7 -3
  735. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  736. package/daemon/dist/domain/seat-structural-activity-service.js +50 -15
  737. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  738. package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
  739. package/daemon/dist/domain/session-fingerprinter.js +9 -5
  740. package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
  741. package/daemon/dist/domain/session-registry.d.ts +16 -1
  742. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  743. package/daemon/dist/domain/session-registry.js +35 -3
  744. package/daemon/dist/domain/session-registry.js.map +1 -1
  745. package/daemon/dist/domain/session-transport.d.ts +141 -4
  746. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  747. package/daemon/dist/domain/session-transport.js +1496 -139
  748. package/daemon/dist/domain/session-transport.js.map +1 -1
  749. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +2 -0
  750. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  751. package/daemon/dist/domain/slices/slice-detail-projector.js +16 -4
  752. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  753. package/daemon/dist/domain/slices/slice-indexer.d.ts +10 -0
  754. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  755. package/daemon/dist/domain/slices/slice-indexer.js +84 -4
  756. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  757. package/daemon/dist/domain/snapshot-repository.d.ts +3 -0
  758. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  759. package/daemon/dist/domain/snapshot-repository.js +19 -2
  760. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  761. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  762. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  763. package/daemon/dist/domain/spec-library-workflow-scanner.js +24 -21
  764. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  765. package/daemon/dist/domain/spec-validation-advisory.js +1 -1
  766. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -1
  767. package/daemon/dist/domain/startup-orchestrator.d.ts +33 -3
  768. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  769. package/daemon/dist/domain/startup-orchestrator.js +220 -61
  770. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  771. package/daemon/dist/domain/startup-submission-evidence.d.ts +13 -3
  772. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  773. package/daemon/dist/domain/startup-submission-evidence.js +34 -25
  774. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  775. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  776. package/daemon/dist/domain/startup-validation.js +3 -0
  777. package/daemon/dist/domain/startup-validation.js.map +1 -1
  778. package/daemon/dist/domain/successor-session-launcher.d.ts +10 -8
  779. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  780. package/daemon/dist/domain/successor-session-launcher.js +11 -33
  781. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  782. package/daemon/dist/domain/text-cut.d.ts +4 -0
  783. package/daemon/dist/domain/text-cut.d.ts.map +1 -0
  784. package/daemon/dist/domain/text-cut.js +7 -0
  785. package/daemon/dist/domain/text-cut.js.map +1 -0
  786. package/daemon/dist/domain/time-bound-advisory.d.ts +5 -0
  787. package/daemon/dist/domain/time-bound-advisory.d.ts.map +1 -0
  788. package/daemon/dist/domain/time-bound-advisory.js +25 -0
  789. package/daemon/dist/domain/time-bound-advisory.js.map +1 -0
  790. package/daemon/dist/domain/transcript-capture.d.ts +7 -0
  791. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  792. package/daemon/dist/domain/transcript-capture.js +22 -1
  793. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  794. package/daemon/dist/domain/transcript-rotation.d.ts +12 -4
  795. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  796. package/daemon/dist/domain/transcript-rotation.js +185 -23
  797. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  798. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  799. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  800. package/daemon/dist/domain/transcript-store.js +8 -4
  801. package/daemon/dist/domain/transcript-store.js.map +1 -1
  802. package/daemon/dist/domain/types.d.ts +82 -3
  803. package/daemon/dist/domain/types.d.ts.map +1 -1
  804. package/daemon/dist/domain/types.js.map +1 -1
  805. package/daemon/dist/domain/usage-samples-store.d.ts +8 -0
  806. package/daemon/dist/domain/usage-samples-store.d.ts.map +1 -1
  807. package/daemon/dist/domain/usage-samples-store.js +24 -5
  808. package/daemon/dist/domain/usage-samples-store.js.map +1 -1
  809. package/daemon/dist/domain/usage-series.d.ts +154 -2
  810. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  811. package/daemon/dist/domain/usage-series.js +208 -9
  812. package/daemon/dist/domain/usage-series.js.map +1 -1
  813. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  814. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  815. package/daemon/dist/domain/user-settings/settings-store.js +67 -0
  816. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  817. package/daemon/dist/domain/wake-resolver.js +2 -2
  818. package/daemon/dist/domain/wake-resolver.js.map +1 -1
  819. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +3 -1
  820. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  821. package/daemon/dist/domain/watchdog-jobs-repository.js +32 -4
  822. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  823. package/daemon/dist/domain/watchdog-policy-engine.d.ts +1 -0
  824. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  825. package/daemon/dist/domain/watchdog-policy-engine.js +31 -2
  826. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  827. package/daemon/dist/domain/whoami-service.d.ts +4 -1
  828. package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
  829. package/daemon/dist/domain/whoami-service.js +25 -19
  830. package/daemon/dist/domain/whoami-service.js.map +1 -1
  831. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  832. package/daemon/dist/domain/workflow-exception-escalation.js +3 -1
  833. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  834. package/daemon/dist/domain/workflow-exception-readiness.d.ts.map +1 -1
  835. package/daemon/dist/domain/workflow-exception-readiness.js +7 -3
  836. package/daemon/dist/domain/workflow-exception-readiness.js.map +1 -1
  837. package/daemon/dist/domain/workflow-instance-store.d.ts +11 -0
  838. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  839. package/daemon/dist/domain/workflow-instance-store.js +18 -4
  840. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  841. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  842. package/daemon/dist/domain/workflow-projector.js +5 -3
  843. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  844. package/daemon/dist/domain/workflow-rig-placeholder.d.ts +24 -0
  845. package/daemon/dist/domain/workflow-rig-placeholder.d.ts.map +1 -0
  846. package/daemon/dist/domain/workflow-rig-placeholder.js +43 -0
  847. package/daemon/dist/domain/workflow-rig-placeholder.js.map +1 -0
  848. package/daemon/dist/domain/workflow-runtime.d.ts +10 -1
  849. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  850. package/daemon/dist/domain/workflow-runtime.js +26 -13
  851. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  852. package/daemon/dist/domain/workflow-scope.d.ts +50 -0
  853. package/daemon/dist/domain/workflow-scope.d.ts.map +1 -0
  854. package/daemon/dist/domain/workflow-scope.js +129 -0
  855. package/daemon/dist/domain/workflow-scope.js.map +1 -0
  856. package/daemon/dist/domain/workflow-spec-cache.d.ts +10 -0
  857. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  858. package/daemon/dist/domain/workflow-spec-cache.js +13 -0
  859. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  860. package/daemon/dist/domain/workflow-types.d.ts +4 -0
  861. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  862. package/daemon/dist/domain/workflow-types.js.map +1 -1
  863. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  864. package/daemon/dist/domain/workflow-validator.js +3 -1
  865. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  866. package/daemon/dist/domain/workspace/project-read.d.ts +4 -0
  867. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
  868. package/daemon/dist/domain/workspace/project-read.js +23 -8
  869. package/daemon/dist/domain/workspace/project-read.js.map +1 -1
  870. package/daemon/dist/index.d.ts.map +1 -1
  871. package/daemon/dist/index.js +16 -0
  872. package/daemon/dist/index.js.map +1 -1
  873. package/daemon/dist/lib/pane-envelope.js +1 -1
  874. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  875. package/daemon/dist/middleware/json-body-error.d.ts +4 -3
  876. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -1
  877. package/daemon/dist/middleware/json-body-error.js +18 -4
  878. package/daemon/dist/middleware/json-body-error.js.map +1 -1
  879. package/daemon/dist/routes/activity.d.ts.map +1 -1
  880. package/daemon/dist/routes/activity.js +78 -0
  881. package/daemon/dist/routes/activity.js.map +1 -1
  882. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  883. package/daemon/dist/routes/bundles.js +39 -16
  884. package/daemon/dist/routes/bundles.js.map +1 -1
  885. package/daemon/dist/routes/chat.d.ts.map +1 -1
  886. package/daemon/dist/routes/chat.js +23 -2
  887. package/daemon/dist/routes/chat.js.map +1 -1
  888. package/daemon/dist/routes/community-harnesses.d.ts +3 -0
  889. package/daemon/dist/routes/community-harnesses.d.ts.map +1 -0
  890. package/daemon/dist/routes/community-harnesses.js +18 -0
  891. package/daemon/dist/routes/community-harnesses.js.map +1 -0
  892. package/daemon/dist/routes/compaction.d.ts +3 -0
  893. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  894. package/daemon/dist/routes/compaction.js +14 -2
  895. package/daemon/dist/routes/compaction.js.map +1 -1
  896. package/daemon/dist/routes/events.js +26 -12
  897. package/daemon/dist/routes/events.js.map +1 -1
  898. package/daemon/dist/routes/gateway.d.ts +3 -0
  899. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  900. package/daemon/dist/routes/gateway.js +15 -0
  901. package/daemon/dist/routes/gateway.js.map +1 -1
  902. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  903. package/daemon/dist/routes/hosts.js +2 -1
  904. package/daemon/dist/routes/hosts.js.map +1 -1
  905. package/daemon/dist/routes/proof.d.ts.map +1 -1
  906. package/daemon/dist/routes/proof.js +99 -10
  907. package/daemon/dist/routes/proof.js.map +1 -1
  908. package/daemon/dist/routes/provider.d.ts +11 -1
  909. package/daemon/dist/routes/provider.d.ts.map +1 -1
  910. package/daemon/dist/routes/provider.js +204 -1
  911. package/daemon/dist/routes/provider.js.map +1 -1
  912. package/daemon/dist/routes/query-limit.d.ts +1 -0
  913. package/daemon/dist/routes/query-limit.d.ts.map +1 -1
  914. package/daemon/dist/routes/query-limit.js +1 -1
  915. package/daemon/dist/routes/query-limit.js.map +1 -1
  916. package/daemon/dist/routes/queue.d.ts.map +1 -1
  917. package/daemon/dist/routes/queue.js +62 -9
  918. package/daemon/dist/routes/queue.js.map +1 -1
  919. package/daemon/dist/routes/rig-mode.d.ts.map +1 -1
  920. package/daemon/dist/routes/rig-mode.js +66 -11
  921. package/daemon/dist/routes/rig-mode.js.map +1 -1
  922. package/daemon/dist/routes/rigs.js +5 -3
  923. package/daemon/dist/routes/rigs.js.map +1 -1
  924. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  925. package/daemon/dist/routes/scope-audit.js +10 -0
  926. package/daemon/dist/routes/scope-audit.js.map +1 -1
  927. package/daemon/dist/routes/scopes.d.ts.map +1 -1
  928. package/daemon/dist/routes/scopes.js +5 -3
  929. package/daemon/dist/routes/scopes.js.map +1 -1
  930. package/daemon/dist/routes/seat.d.ts.map +1 -1
  931. package/daemon/dist/routes/seat.js +95 -12
  932. package/daemon/dist/routes/seat.js.map +1 -1
  933. package/daemon/dist/routes/sessions.js +1 -1
  934. package/daemon/dist/routes/startup.d.ts.map +1 -1
  935. package/daemon/dist/routes/startup.js +9 -2
  936. package/daemon/dist/routes/startup.js.map +1 -1
  937. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  938. package/daemon/dist/routes/telemetry.js +13 -3
  939. package/daemon/dist/routes/telemetry.js.map +1 -1
  940. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  941. package/daemon/dist/routes/transcripts.js +14 -5
  942. package/daemon/dist/routes/transcripts.js.map +1 -1
  943. package/daemon/dist/routes/transport.d.ts.map +1 -1
  944. package/daemon/dist/routes/transport.js +13 -2
  945. package/daemon/dist/routes/transport.js.map +1 -1
  946. package/daemon/dist/routes/up.d.ts.map +1 -1
  947. package/daemon/dist/routes/up.js +4 -0
  948. package/daemon/dist/routes/up.js.map +1 -1
  949. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  950. package/daemon/dist/routes/workflow.js +50 -1
  951. package/daemon/dist/routes/workflow.js.map +1 -1
  952. package/daemon/dist/server.d.ts.map +1 -1
  953. package/daemon/dist/server.js +4 -1
  954. package/daemon/dist/server.js.map +1 -1
  955. package/daemon/dist/spec-validation-surface.d.ts +1 -1
  956. package/daemon/dist/spec-validation-surface.d.ts.map +1 -1
  957. package/daemon/dist/spec-validation-surface.js +1 -1
  958. package/daemon/dist/spec-validation-surface.js.map +1 -1
  959. package/daemon/dist/startup.d.ts +3 -1
  960. package/daemon/dist/startup.d.ts.map +1 -1
  961. package/daemon/dist/startup.js +150 -54
  962. package/daemon/dist/startup.js.map +1 -1
  963. package/daemon/dist/workflow-scope-surface.d.ts +2 -0
  964. package/daemon/dist/workflow-scope-surface.d.ts.map +1 -0
  965. package/daemon/dist/workflow-scope-surface.js +2 -0
  966. package/daemon/dist/workflow-scope-surface.js.map +1 -0
  967. package/daemon/docs/reference/agent-spec.md +4 -2
  968. package/daemon/docs/reference/agent-startup-guide.md +114 -6
  969. package/daemon/docs/reference/claude-status-line.md +69 -0
  970. package/daemon/docs/reference/getting-started.md +39 -6
  971. package/daemon/docs/reference/keeping-a-watch.md +253 -0
  972. package/daemon/docs/reference/project-workspace.md +70 -1
  973. package/daemon/docs/reference/publishing-a-rig-bundle.md +6 -1
  974. package/daemon/docs/reference/refocus-channel.md +41 -5
  975. package/daemon/docs/reference/rig-bundle.md +26 -2
  976. package/daemon/docs/reference/rig-spec.md +66 -5
  977. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +105 -2
  978. package/daemon/docs/reference/scoped-operating-posture.md +12 -2
  979. package/daemon/docs/reference/sdlc-conventions.md +50 -2
  980. package/daemon/docs/reference/seat-delivery.md +127 -0
  981. package/daemon/docs/reference/slack-app-setup.md +147 -17
  982. package/daemon/docs/reference/topology-naming.md +9 -0
  983. package/daemon/docs/reference/whats-new.md +169 -147
  984. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +2 -2
  985. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +0 -1
  986. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  987. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  988. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
  989. package/daemon/specs/rigs/launch/demo/CULTURE.md +1 -1
  990. package/daemon/specs/rigs/launch/factory/CULTURE.md +1 -1
  991. package/daemon/specs/rigs/launch/factory/topology/rig/CRAFT.md +2 -2
  992. package/daemon/specs/rigs/launch/first-project/CULTURE.md +2 -1
  993. package/daemon/specs/rigs/launch/first-project-claude/CULTURE.md +2 -1
  994. package/daemon/specs/rigs/launch/first-project-mixed/CULTURE.md +2 -1
  995. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +9 -2
  996. package/daemon/specs/rigs/launch/starter/CULTURE.md +2 -1
  997. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  998. package/dist/bin-wrapper.d.ts +2 -1
  999. package/dist/bin-wrapper.d.ts.map +1 -1
  1000. package/dist/bin-wrapper.js +61 -4
  1001. package/dist/bin-wrapper.js.map +1 -1
  1002. package/dist/build-info.js +3 -3
  1003. package/dist/bundle-behaviour.d.ts.map +1 -1
  1004. package/dist/bundle-behaviour.js +22 -0
  1005. package/dist/bundle-behaviour.js.map +1 -1
  1006. package/dist/client.d.ts.map +1 -1
  1007. package/dist/client.js +3 -3
  1008. package/dist/client.js.map +1 -1
  1009. package/dist/commands/add.d.ts.map +1 -1
  1010. package/dist/commands/add.js +1 -1
  1011. package/dist/commands/add.js.map +1 -1
  1012. package/dist/commands/ask.d.ts.map +1 -1
  1013. package/dist/commands/ask.js +16 -5
  1014. package/dist/commands/ask.js.map +1 -1
  1015. package/dist/commands/bootstrap.d.ts.map +1 -1
  1016. package/dist/commands/bootstrap.js +9 -5
  1017. package/dist/commands/bootstrap.js.map +1 -1
  1018. package/dist/commands/bundle.d.ts.map +1 -1
  1019. package/dist/commands/bundle.js +8 -0
  1020. package/dist/commands/bundle.js.map +1 -1
  1021. package/dist/commands/capture.d.ts +4 -0
  1022. package/dist/commands/capture.d.ts.map +1 -1
  1023. package/dist/commands/capture.js +15 -2
  1024. package/dist/commands/capture.js.map +1 -1
  1025. package/dist/commands/community-harness.d.ts +4 -0
  1026. package/dist/commands/community-harness.d.ts.map +1 -0
  1027. package/dist/commands/community-harness.js +48 -0
  1028. package/dist/commands/community-harness.js.map +1 -0
  1029. package/dist/commands/compact.d.ts.map +1 -1
  1030. package/dist/commands/compact.js +8 -4
  1031. package/dist/commands/compact.js.map +1 -1
  1032. package/dist/commands/config.d.ts.map +1 -1
  1033. package/dist/commands/config.js +8 -0
  1034. package/dist/commands/config.js.map +1 -1
  1035. package/dist/commands/crash-cart.d.ts.map +1 -1
  1036. package/dist/commands/crash-cart.js +3 -5
  1037. package/dist/commands/crash-cart.js.map +1 -1
  1038. package/dist/commands/create.d.ts.map +1 -1
  1039. package/dist/commands/create.js +7 -5
  1040. package/dist/commands/create.js.map +1 -1
  1041. package/dist/commands/daemon.d.ts.map +1 -1
  1042. package/dist/commands/daemon.js +7 -0
  1043. package/dist/commands/daemon.js.map +1 -1
  1044. package/dist/commands/down.d.ts.map +1 -1
  1045. package/dist/commands/down.js +2 -1
  1046. package/dist/commands/down.js.map +1 -1
  1047. package/dist/commands/launch.d.ts +1 -0
  1048. package/dist/commands/launch.d.ts.map +1 -1
  1049. package/dist/commands/launch.js +61 -10
  1050. package/dist/commands/launch.js.map +1 -1
  1051. package/dist/commands/policy.d.ts +2 -1
  1052. package/dist/commands/policy.d.ts.map +1 -1
  1053. package/dist/commands/policy.js +66 -7
  1054. package/dist/commands/policy.js.map +1 -1
  1055. package/dist/commands/proof.d.ts.map +1 -1
  1056. package/dist/commands/proof.js +11 -5
  1057. package/dist/commands/proof.js.map +1 -1
  1058. package/dist/commands/provider.d.ts +2 -0
  1059. package/dist/commands/provider.d.ts.map +1 -1
  1060. package/dist/commands/provider.js +360 -1
  1061. package/dist/commands/provider.js.map +1 -1
  1062. package/dist/commands/ps.d.ts +15 -0
  1063. package/dist/commands/ps.d.ts.map +1 -1
  1064. package/dist/commands/ps.js +53 -10
  1065. package/dist/commands/ps.js.map +1 -1
  1066. package/dist/commands/queue.d.ts +15 -5
  1067. package/dist/commands/queue.d.ts.map +1 -1
  1068. package/dist/commands/queue.js +172 -47
  1069. package/dist/commands/queue.js.map +1 -1
  1070. package/dist/commands/requirements.d.ts.map +1 -1
  1071. package/dist/commands/requirements.js +8 -5
  1072. package/dist/commands/requirements.js.map +1 -1
  1073. package/dist/commands/restore.js +1 -1
  1074. package/dist/commands/restore.js.map +1 -1
  1075. package/dist/commands/rig-mode.d.ts.map +1 -1
  1076. package/dist/commands/rig-mode.js +106 -18
  1077. package/dist/commands/rig-mode.js.map +1 -1
  1078. package/dist/commands/scope.d.ts.map +1 -1
  1079. package/dist/commands/scope.js +103 -44
  1080. package/dist/commands/scope.js.map +1 -1
  1081. package/dist/commands/seat.d.ts.map +1 -1
  1082. package/dist/commands/seat.js +290 -28
  1083. package/dist/commands/seat.js.map +1 -1
  1084. package/dist/commands/send.d.ts +2 -2
  1085. package/dist/commands/send.d.ts.map +1 -1
  1086. package/dist/commands/send.js +79 -12
  1087. package/dist/commands/send.js.map +1 -1
  1088. package/dist/commands/slack.d.ts.map +1 -1
  1089. package/dist/commands/slack.js +9 -4
  1090. package/dist/commands/slack.js.map +1 -1
  1091. package/dist/commands/start.d.ts +11 -0
  1092. package/dist/commands/start.d.ts.map +1 -1
  1093. package/dist/commands/start.js +81 -6
  1094. package/dist/commands/start.js.map +1 -1
  1095. package/dist/commands/status.d.ts.map +1 -1
  1096. package/dist/commands/status.js +60 -2
  1097. package/dist/commands/status.js.map +1 -1
  1098. package/dist/commands/up.d.ts.map +1 -1
  1099. package/dist/commands/up.js +68 -0
  1100. package/dist/commands/up.js.map +1 -1
  1101. package/dist/commands/usage.d.ts +12 -0
  1102. package/dist/commands/usage.d.ts.map +1 -1
  1103. package/dist/commands/usage.js +107 -0
  1104. package/dist/commands/usage.js.map +1 -1
  1105. package/dist/commands/watchdog.d.ts.map +1 -1
  1106. package/dist/commands/watchdog.js +20 -7
  1107. package/dist/commands/watchdog.js.map +1 -1
  1108. package/dist/commands/whoami.d.ts +36 -0
  1109. package/dist/commands/whoami.d.ts.map +1 -1
  1110. package/dist/commands/whoami.js +125 -7
  1111. package/dist/commands/whoami.js.map +1 -1
  1112. package/dist/commands/workflow.d.ts.map +1 -1
  1113. package/dist/commands/workflow.js +53 -5
  1114. package/dist/commands/workflow.js.map +1 -1
  1115. package/dist/config-store.d.ts +20 -1
  1116. package/dist/config-store.d.ts.map +1 -1
  1117. package/dist/config-store.js +92 -0
  1118. package/dist/config-store.js.map +1 -1
  1119. package/dist/daemon-lifecycle.d.ts +2 -2
  1120. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1121. package/dist/daemon-lifecycle.js +5 -4
  1122. package/dist/daemon-lifecycle.js.map +1 -1
  1123. package/dist/host-registry.d.ts.map +1 -1
  1124. package/dist/host-registry.js +6 -3
  1125. package/dist/host-registry.js.map +1 -1
  1126. package/dist/index.d.ts +1 -0
  1127. package/dist/index.d.ts.map +1 -1
  1128. package/dist/index.js +4 -7
  1129. package/dist/index.js.map +1 -1
  1130. package/dist/lazy-program.d.ts +9 -0
  1131. package/dist/lazy-program.d.ts.map +1 -0
  1132. package/dist/lazy-program.js +111 -0
  1133. package/dist/lazy-program.js.map +1 -0
  1134. package/dist/lib/bundle-check.js +2 -2
  1135. package/dist/lib/bundle-check.js.map +1 -1
  1136. package/dist/lib/bundle-source.d.ts +1 -0
  1137. package/dist/lib/bundle-source.d.ts.map +1 -1
  1138. package/dist/lib/bundle-source.js +1 -0
  1139. package/dist/lib/bundle-source.js.map +1 -1
  1140. package/dist/lib/codex-auth.d.ts.map +1 -1
  1141. package/dist/lib/codex-auth.js +17 -1
  1142. package/dist/lib/codex-auth.js.map +1 -1
  1143. package/dist/lib/context-install.js +1 -1
  1144. package/dist/lib/context-install.js.map +1 -1
  1145. package/dist/lib/file-transfer.js +1 -1
  1146. package/dist/lib/file-transfer.js.map +1 -1
  1147. package/dist/lib/frontmatter.d.ts +11 -0
  1148. package/dist/lib/frontmatter.d.ts.map +1 -0
  1149. package/dist/lib/frontmatter.js +20 -0
  1150. package/dist/lib/frontmatter.js.map +1 -0
  1151. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1152. package/dist/lib/permission-policy/policy-spec.js +5 -7
  1153. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1154. package/dist/lib/scope/logical-checkbox.js +1 -1
  1155. package/dist/lib/scope/logical-checkbox.js.map +1 -1
  1156. package/dist/lib/scope/mission-composition.d.ts +5 -1
  1157. package/dist/lib/scope/mission-composition.d.ts.map +1 -1
  1158. package/dist/lib/scope/mission-composition.js +61 -1
  1159. package/dist/lib/scope/mission-composition.js.map +1 -1
  1160. package/dist/lib/scope/scope-fs.d.ts +10 -1
  1161. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1162. package/dist/lib/scope/scope-fs.js +54 -5
  1163. package/dist/lib/scope/scope-fs.js.map +1 -1
  1164. package/dist/lib/scope/slice-claims.d.ts +8 -0
  1165. package/dist/lib/scope/slice-claims.d.ts.map +1 -0
  1166. package/dist/lib/scope/slice-claims.js +88 -0
  1167. package/dist/lib/scope/slice-claims.js.map +1 -0
  1168. package/dist/lib/work-install.d.ts.map +1 -1
  1169. package/dist/lib/work-install.js +3 -13
  1170. package/dist/lib/work-install.js.map +1 -1
  1171. package/dist/mcp-server.d.ts.map +1 -1
  1172. package/dist/mcp-server.js +113 -0
  1173. package/dist/mcp-server.js.map +1 -1
  1174. package/dist/program-root.d.ts +5 -0
  1175. package/dist/program-root.d.ts.map +1 -0
  1176. package/dist/program-root.js +11 -0
  1177. package/dist/program-root.js.map +1 -0
  1178. package/dist/queue-read-compact.d.ts +29 -0
  1179. package/dist/queue-read-compact.d.ts.map +1 -0
  1180. package/dist/queue-read-compact.js +74 -0
  1181. package/dist/queue-read-compact.js.map +1 -0
  1182. package/dist/queue-receipt.d.ts +41 -0
  1183. package/dist/queue-receipt.d.ts.map +1 -0
  1184. package/dist/queue-receipt.js +272 -0
  1185. package/dist/queue-receipt.js.map +1 -0
  1186. package/dist/remote-host-ops.d.ts +21 -0
  1187. package/dist/remote-host-ops.d.ts.map +1 -1
  1188. package/dist/remote-host-ops.js +25 -12
  1189. package/dist/remote-host-ops.js.map +1 -1
  1190. package/package.json +1 -1
  1191. package/tui/dist/commands/registry.d.ts.map +1 -1
  1192. package/tui/dist/commands/registry.js +3 -0
  1193. package/tui/dist/commands/registry.js.map +1 -1
  1194. package/tui/dist/config/config-model.d.ts.map +1 -1
  1195. package/tui/dist/config/config-model.js +7 -0
  1196. package/tui/dist/config/config-model.js.map +1 -1
  1197. package/tui/dist/cost/cost-model.d.ts +12 -0
  1198. package/tui/dist/cost/cost-model.d.ts.map +1 -0
  1199. package/tui/dist/cost/cost-model.js +141 -0
  1200. package/tui/dist/cost/cost-model.js.map +1 -0
  1201. package/tui/dist/cost/cost-read.d.ts +19 -0
  1202. package/tui/dist/cost/cost-read.d.ts.map +1 -0
  1203. package/tui/dist/cost/cost-read.js +4 -0
  1204. package/tui/dist/cost/cost-read.js.map +1 -0
  1205. package/tui/dist/daemon-client.d.ts +13 -0
  1206. package/tui/dist/daemon-client.d.ts.map +1 -1
  1207. package/tui/dist/daemon-client.js +77 -1
  1208. package/tui/dist/daemon-client.js.map +1 -1
  1209. package/tui/dist/detail.d.ts +2 -0
  1210. package/tui/dist/detail.d.ts.map +1 -1
  1211. package/tui/dist/detail.js +5 -0
  1212. package/tui/dist/detail.js.map +1 -1
  1213. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1214. package/tui/dist/execution/execution-model.js +38 -18
  1215. package/tui/dist/execution/execution-model.js.map +1 -1
  1216. package/tui/dist/helper-cwd.d.ts +3 -0
  1217. package/tui/dist/helper-cwd.d.ts.map +1 -0
  1218. package/tui/dist/helper-cwd.js +16 -0
  1219. package/tui/dist/helper-cwd.js.map +1 -0
  1220. package/tui/dist/hydrate.d.ts.map +1 -1
  1221. package/tui/dist/hydrate.js +43 -5
  1222. package/tui/dist/hydrate.js.map +1 -1
  1223. package/tui/dist/input.d.ts.map +1 -1
  1224. package/tui/dist/input.js +2 -1
  1225. package/tui/dist/input.js.map +1 -1
  1226. package/tui/dist/local-reading.d.ts.map +1 -1
  1227. package/tui/dist/local-reading.js +2 -1
  1228. package/tui/dist/local-reading.js.map +1 -1
  1229. package/tui/dist/main.js +6 -5
  1230. package/tui/dist/main.js.map +1 -1
  1231. package/tui/dist/pulse/pulse-model.d.ts +1 -0
  1232. package/tui/dist/pulse/pulse-model.d.ts.map +1 -1
  1233. package/tui/dist/pulse/pulse-model.js +7 -3
  1234. package/tui/dist/pulse/pulse-model.js.map +1 -1
  1235. package/tui/dist/pulse/render-pulse.d.ts.map +1 -1
  1236. package/tui/dist/pulse/render-pulse.js +10 -2
  1237. package/tui/dist/pulse/render-pulse.js.map +1 -1
  1238. package/tui/dist/reading.js +1 -1
  1239. package/tui/dist/reading.js.map +1 -1
  1240. package/tui/dist/render.d.ts.map +1 -1
  1241. package/tui/dist/render.js +36 -12
  1242. package/tui/dist/render.js.map +1 -1
  1243. package/tui/dist/scopes/scopes-model.d.ts +6 -1
  1244. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1245. package/tui/dist/scopes/scopes-model.js +33 -13
  1246. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1247. package/tui/dist/sections.d.ts.map +1 -1
  1248. package/tui/dist/sections.js +4 -1
  1249. package/tui/dist/sections.js.map +1 -1
  1250. package/tui/dist/socket-server.d.ts.map +1 -1
  1251. package/tui/dist/socket-server.js +2 -1
  1252. package/tui/dist/socket-server.js.map +1 -1
  1253. package/tui/dist/specs/launch.d.ts.map +1 -1
  1254. package/tui/dist/specs/launch.js +2 -1
  1255. package/tui/dist/specs/launch.js.map +1 -1
  1256. package/tui/dist/startup.js +1 -1
  1257. package/tui/dist/startup.js.map +1 -1
  1258. package/tui/dist/state.d.ts.map +1 -1
  1259. package/tui/dist/state.js +8 -4
  1260. package/tui/dist/state.js.map +1 -1
  1261. package/tui/dist/terminals/open-window.d.ts.map +1 -1
  1262. package/tui/dist/terminals/open-window.js +2 -1
  1263. package/tui/dist/terminals/open-window.js.map +1 -1
  1264. package/tui/dist/types.d.ts +12 -0
  1265. package/tui/dist/types.d.ts.map +1 -1
  1266. package/tui/dist/usage/usage-hosts-model.d.ts +17 -0
  1267. package/tui/dist/usage/usage-hosts-model.d.ts.map +1 -0
  1268. package/tui/dist/usage/usage-hosts-model.js +73 -0
  1269. package/tui/dist/usage/usage-hosts-model.js.map +1 -0
  1270. package/tui/dist/usage/usage-model.d.ts +39 -0
  1271. package/tui/dist/usage/usage-model.d.ts.map +1 -0
  1272. package/tui/dist/usage/usage-model.js +161 -0
  1273. package/tui/dist/usage/usage-model.js.map +1 -0
  1274. package/ui/dist/assets/{index-D5n8EwkG.js → index-Cfbtfd9G.js} +159 -159
  1275. package/ui/dist/index.html +1 -1
@@ -35,6 +35,7 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
35
35
  private collectorAssetPath;
36
36
  private autoDriveProviderPrompts;
37
37
  private listProcesses?;
38
+ private readinessTimeoutMs?;
38
39
  private autoLaunches;
39
40
  readonly claudeManagedLaunch?: ClaudeManagedLaunch;
40
41
  private activityRelayPath;
@@ -52,6 +53,8 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
52
53
  collectorAssetPath?: string;
53
54
  autoDriveProviderPrompts?: boolean;
54
55
  listProcesses?: NativeProcessLister;
56
+ /** Bound on a slow resume's wait, from the launch (default: runtime.readiness_timeout_seconds). */
57
+ readinessTimeoutMs?: number;
55
58
  claudeManagedLaunch?: ClaudeManagedLaunch;
56
59
  /** DI source of the activity-relay.cjs asset (parity with the Codex adapter). */
57
60
  activityRelayPath?: string;
@@ -84,6 +87,16 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
84
87
  permissionMode?: NodeBinding["permissionMode"];
85
88
  }): void;
86
89
  private assessManagedProbe;
90
+ /** tmux names a shell for every OpenRig launch (the launch script is `sh`), so its word alone can't say
91
+ * Claude is gone. With a bound pane, the process tree must show the pane's shell holding the terminal with
92
+ * nothing under it; Claude, or a launch script about to start it, is a slow resume. */
93
+ private paneReturnedToShell;
94
+ /** Who holds the pane, by the observations already there. "another": positively something other than this launch's own
95
+ * start: a ready screen whose lineage failed the check (with a process list that could be read), a Claude naming
96
+ * another conversation, or a stable Codex. Waiting won't make any of them this launch's, and its token is not recorded
97
+ * as an attempt. "own": this launch's Claude. "unknown": nothing seen yet (the launch script is starting it) or a
98
+ * process list that can't be read, whatever the screen shows. One process listing serves the Claude observations. */
99
+ private paneOccupant;
87
100
  private verifyResumeLaunch;
88
101
  private projectEntry;
89
102
  /**
@@ -96,7 +109,11 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
96
109
  private preserveMode;
97
110
  private pluginAppliesToClaude;
98
111
  private resolveTargetDir;
112
+ /** true when applied, "skipped" when handled but not applied, false when this isn't a resource it handles. */
99
113
  private applyRuntimeResource;
114
+ /** Merge a JSON fragment into a project file. An existing target that can't be read, or isn't a JSON object (it
115
+ * doesn't parse, or it holds an array or a single value), belongs to its owner: it's left as it is, nothing is
116
+ * merged, and a warning says so. Returns whether the fragment was applied. */
100
117
  private mergeJsonFragment;
101
118
  /**
102
119
  * Merge a managed block into the target guidance file. Returns `true` when
@@ -106,25 +123,10 @@ export declare class ClaudeCodeAdapter implements RuntimeAdapter {
106
123
  * of claiming a merge that never landed.
107
124
  */
108
125
  private mergeGuidance;
109
- /**
110
- * Best-effort token capture from ~/.claude/sessions/*.json.
111
- * Finds the session file whose name matches the expected session name.
112
- * Returns the sessionId if found, undefined otherwise.
113
- */
114
- /**
115
- * PL-016 hardening v0+1 — poll captureResumeToken on the
116
- * verifyResumeLaunch cadence. Returns the token as soon as the
117
- * session file appears, or undefined after attempts × delayMs ceiling.
118
- * Used by the fork branch where the new session-name file appears
119
- * 1-3s after the Enter key is sent (cold-start fork-file write).
120
- */
121
- private pollForResumeToken;
122
- private captureResumeToken;
123
126
  private detectDeliveryHint;
124
127
  private provisionManagedBootstrap;
125
128
  private provisionClaudeState;
126
129
  private workspaceTrustKeys;
127
- private readJsonObject;
128
130
  private readJsonObjectStrict;
129
131
  private readJsonObjectField;
130
132
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-code-adapter.ts"],"names":[],"mappings":"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"}
@@ -5,21 +5,17 @@ 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 { 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
13
  import { validateClaudeActivityHookDelivery, claudeActivityRelayPath, CLAUDE_ACTIVITY_RELAY_RELATIVE_PATH } from "../domain/claude-activity-hooks.js";
14
+ import { isFilesystemRoot } from "../domain/cwd-resolution.js";
13
15
  import { observeClaudePermission } from "../domain/permission-drift.js";
14
16
  import { unresolvedClaudePermissionModes } from "../domain/native-permission-selection.js";
15
17
  import { contextUsageDirectory, providerUsageDirectory } from "../domain/telemetry-state-paths.js";
16
18
  const SHELL_COMMANDS = new Set(["bash", "fish", "nu", "sh", "tmux", "zsh"]);
17
- // Real Claude Code binary needs 1-3s to write the new fork session-name
18
- // file under ~/.claude/sessions/. Poll instead of single-shot lookup.
19
- // 12 × 500ms = 6s ceiling — comfortably above the observed cold-start
20
- // fork-file write window without making a bad-token error feel slow.
21
- const FORK_POLL_ATTEMPTS = 12;
22
- const FORK_POLL_DELAY_MS = 500;
23
19
  /**
24
20
  * Claude Code runtime adapter. Projects resources to .claude/ targets
25
21
  * and delivers startup files via guidance merge, skill install, or tmux send-text.
@@ -35,6 +31,7 @@ export class ClaudeCodeAdapter {
35
31
  collectorAssetPath;
36
32
  autoDriveProviderPrompts;
37
33
  listProcesses;
34
+ readinessTimeoutMs;
38
35
  autoLaunches = new Map();
39
36
  claudeManagedLaunch;
40
37
  activityRelayPath;
@@ -52,6 +49,7 @@ export class ClaudeCodeAdapter {
52
49
  this.collectorAssetPath = deps.collectorAssetPath ?? null;
53
50
  this.autoDriveProviderPrompts = deps.autoDriveProviderPrompts ?? false;
54
51
  this.listProcesses = deps.listProcesses;
52
+ this.readinessTimeoutMs = deps.readinessTimeoutMs;
55
53
  this.claudeManagedLaunch = deps.claudeManagedLaunch;
56
54
  this.activityRelayPath = deps.activityRelayPath ?? null;
57
55
  this.claudeHooksManifestPath = deps.claudeHooksManifestPath ?? null;
@@ -100,7 +98,12 @@ export class ClaudeCodeAdapter {
100
98
  activityOutcome = this.reconcileClaudeActivityHooks(binding.cwd, activityEntries.length > 0);
101
99
  }
102
100
  catch (err) {
103
- console.error(`[openrig] claude activity-hook reconcile warning: ${err.message}`);
101
+ // #226: delivery at '/' is still attempted (it works where '/' is writable); when it fails there, say why.
102
+ // A binding without a cwd (startup bootstraps the stored node's selection) gets the plain warning.
103
+ const atRoot = binding.cwd && isFilesystemRoot(binding.cwd)
104
+ ? ` (cwd '${binding.cwd}' resolves to the filesystem root, not a project workspace)`
105
+ : "";
106
+ console.error(`[openrig] claude activity-hook reconcile warning${atRoot}: ${err.message}`);
104
107
  activityOutcome = { changed: false, delivered: false, sourceMissing: false, manifestUnavailable: false, settingsUnparseable: false };
105
108
  }
106
109
  // Never claim a resource as PROJECTED when delivery could not happen (missing
@@ -225,9 +228,10 @@ export class ClaudeCodeAdapter {
225
228
  const modelArg = model ? ` --model ${shellQuote(model)}` : "";
226
229
  const effort = binding.effort?.trim();
227
230
  const effortArg = effort ? ` --effort ${shellQuote(effort)}` : "";
228
- // Fork branch: build `claude --resume <parent> --fork-session --name <seat>`
229
- // and capture the NEW post-fork session id. The parent token is NEVER
230
- // persisted onto the new seat record (identity-honesty bedrock).
231
+ // Fork branch: `claude --resume <parent> --fork-session --session-id <fork> --name <seat>`
232
+ // (Claude Code 2.0.73 or later). The fork's own id is chosen here, like a fresh launch's,
233
+ // so the parent token is NEVER persisted onto the new seat record (identity-honesty
234
+ // bedrock) and the fork's argv names the conversation it runs.
231
235
  if (opts.forkSource) {
232
236
  if (opts.forkSource.kind !== "native_id") {
233
237
  return {
@@ -239,12 +243,13 @@ export class ClaudeCodeAdapter {
239
243
  if (!parentId) {
240
244
  return { ok: false, error: "claude-code fork: forkSource.value is required (parent native_id)" };
241
245
  }
246
+ const forkSessionId = this.sessionIdFactory();
242
247
  const cmd = managed ? managed.command(["--permission-mode", binding.permissionMode, ...operationalLaunchArgs(this.runtime, binding), ...(model ? ["--model", model] : []), ...(effort ? ["--effort", effort] : []),
243
- "--resume", parentId, "--fork-session", "--name", opts.name])
248
+ "--resume", parentId, "--fork-session", "--session-id", forkSessionId, "--name", opts.name])
244
249
  // The non-managed command text is parsed by the pane shell, so the
245
250
  // parent id needs the same quoting as --model/--effort above (and as
246
251
  // the codex fork path) — a hostile id must not leave --resume.
247
- : `${rendererPrefix}claude ${permissionMode}${modelArg}${effortArg} --resume ${shellQuote(parentId)} --fork-session --name ${opts.name}`;
252
+ : `${rendererPrefix}claude ${permissionMode}${modelArg}${effortArg} --resume ${shellQuote(parentId)} --fork-session --session-id ${forkSessionId} --name ${opts.name}`;
248
253
  const textResult = managed ? await this.tmux.sendShellCommand(binding.tmuxSession, cmd, managed.assertCurrent)
249
254
  : this.seatLaunchEnvironment
250
255
  ? await this.tmux.sendShellCommand(binding.tmuxSession, await this.seatLaunchEnvironment.command(binding.tmuxSession, cmd, { nodeId: binding.nodeId, generation: binding.launchGeneration, runtime: this.runtime }), undefined, { sourceInPane: true })
@@ -256,19 +261,9 @@ export class ClaudeCodeAdapter {
256
261
  if (!enterResult.ok) {
257
262
  return { ok: false, error: `Failed to send Enter: ${enterResult.message}` };
258
263
  }
259
- // claude needs 1-3s to write the new fork session-name file under
260
- // ~/.claude/sessions/. The original implementation captured the
261
- // token IMMEDIATELY after Enter, which always returned undefined
262
- // against a real binary. Poll on the
263
- // verifyResumeLaunch cadence (12 × 500ms = 6s ceiling).
264
- const newToken = await this.pollForResumeToken(opts.name, FORK_POLL_ATTEMPTS, FORK_POLL_DELAY_MS, managed?.configDir);
265
- if (!newToken) {
266
- return {
267
- ok: false,
268
- error: `claude-code fork: could not capture new post-fork session id from claude session storage after ${FORK_POLL_ATTEMPTS} polls (${(FORK_POLL_ATTEMPTS * FORK_POLL_DELAY_MS) / 1000}s ceiling)`,
269
- };
270
- }
271
- return { ok: true, resumeToken: newToken, resumeType: "claude_id", appliedLaunch };
264
+ // As with a fresh launch, nothing is read back from Claude's session files: a same-name
265
+ // file can belong to an earlier occupant or another seat sharing the config directory.
266
+ return { ok: true, resumeToken: forkSessionId, resumeType: "claude_id", appliedLaunch };
272
267
  }
273
268
  const generatedSessionId = opts.resumeToken ? null : this.sessionIdFactory();
274
269
  const cmd = managed ? managed.command(["--permission-mode", binding.permissionMode, ...operationalLaunchArgs(this.runtime, binding), ...(model ? ["--model", model] : []), ...(effort ? ["--effort", effort] : []),
@@ -313,6 +308,16 @@ export class ClaudeCodeAdapter {
313
308
  const paneCommand = await this.tmux.getPaneCommand(binding.tmuxSession);
314
309
  const paneContent = (await this.tmux.capturePaneContent(binding.tmuxSession, 40)) ?? "";
315
310
  const probe = await this.assessManagedProbe(binding, paneCommand, paneContent);
311
+ // A script-launched Claude reads as `sh` until the script hands over the foreground, so the label alone
312
+ // is not a return to a shell. Say so only for a proven idle shell (the rule Codex's checkReady uses).
313
+ if (probe.code === "returned_to_shell"
314
+ && !await verifyPaneIdleShell({ target: binding.tmuxSession, tmux: this.tmux, listProcesses: this.listProcesses })) {
315
+ return {
316
+ ready: false,
317
+ reason: "The pane shows a shell that is not a proven idle shell; a launch script may still be starting Claude.",
318
+ code: "awaiting_runtime",
319
+ };
320
+ }
316
321
  if (probe.status === "resumed")
317
322
  return { ready: true };
318
323
  return { ready: false, reason: probe.detail, code: probe.code };
@@ -374,9 +379,54 @@ export class ClaudeCodeAdapter {
374
379
  return probe;
375
380
  }
376
381
  }
382
+ /** tmux names a shell for every OpenRig launch (the launch script is `sh`), so its word alone can't say
383
+ * Claude is gone. With a bound pane, the process tree must show the pane's shell holding the terminal with
384
+ * nothing under it; Claude, or a launch script about to start it, is a slow resume. */
385
+ async paneReturnedToShell(binding, paneCommand) {
386
+ if (!paneCommand || !SHELL_COMMANDS.has(paneCommand))
387
+ return false;
388
+ if (!binding.tmuxPane)
389
+ return true;
390
+ const observed = await observeClaudeDelivery({ target: binding.tmuxPane, tmux: this.tmux, listProcesses: this.listProcesses }, { unknownKeepsIdle: false });
391
+ return observed.state === "idle_shell";
392
+ }
393
+ /** Who holds the pane, by the observations already there. "another": positively something other than this launch's own
394
+ * start: a ready screen whose lineage failed the check (with a process list that could be read), a Claude naming
395
+ * another conversation, or a stable Codex. Waiting won't make any of them this launch's, and its token is not recorded
396
+ * as an attempt. "own": this launch's Claude. "unknown": nothing seen yet (the launch script is starting it) or a
397
+ * process list that can't be read, whatever the screen shows. One process listing serves the Claude observations. */
398
+ async paneOccupant(binding, looksReady) {
399
+ const launch = this.autoLaunches.get(binding.nodeId);
400
+ if (!binding.tmuxPane || !launch)
401
+ return looksReady ? "another" : "unknown";
402
+ let rows;
403
+ try {
404
+ rows = await (this.listProcesses ?? listNativeProcesses)();
405
+ }
406
+ catch {
407
+ return "unknown";
408
+ }
409
+ if (looksReady)
410
+ return "another";
411
+ const observation = { target: binding.tmuxPane, tmux: this.tmux, listProcesses: () => rows, selectedExecutable: launch.executable };
412
+ if (await observeClaudePaneProcess({ ...observation, expectedToken: launch.token }))
413
+ return "own";
414
+ if (await observeClaudePaneRuntime(observation))
415
+ return "another";
416
+ return await observeCodexPaneProcess(observation) && await verifyCodexPaneProcess({ ...observation, listProcesses: this.listProcesses })
417
+ ? "another" : "unknown";
418
+ }
377
419
  async verifyResumeLaunch(binding) {
378
420
  const tmuxSession = binding.tmuxSession;
379
- const attempts = 16;
421
+ // A quick window, then a longer one only while the boot is still in progress, as the Codex adapter does it.
422
+ // The longer one is the readiness setting less the quick window, as a number of polls counted from here; it is per
423
+ // seat, nothing is shared across the seats of a restore. A setting no longer than the quick window adds no polls, but
424
+ // an unresolved boot is still kept (attention_required) rather than failed.
425
+ const pollMs = 200;
426
+ const windowAttempts = 16;
427
+ const checkEvery = 5;
428
+ let attempts = windowAttempts;
429
+ let slowStart = false;
380
430
  for (let attempt = 0; attempt < attempts; attempt++) {
381
431
  const paneCommand = await this.tmux.getPaneCommand(tmuxSession);
382
432
  const paneContent = (await this.tmux.capturePaneContent(tmuxSession, 40)) ?? "";
@@ -386,6 +436,7 @@ export class ClaudeCodeAdapter {
386
436
  ok: false,
387
437
  error: "Claude resume failed: no conversation found for the requested session",
388
438
  recovery: "retry_fresh",
439
+ missingConversation: true,
389
440
  };
390
441
  }
391
442
  if (probe.status === "resumed") {
@@ -403,6 +454,12 @@ export class ClaudeCodeAdapter {
403
454
  };
404
455
  }
405
456
  if (this.autoDriveProviderPrompts && probe.code === "trust_gate") {
457
+ // In the longer wait the occupant has not been looked at since the window ended: press Enter only for this launch's
458
+ // own Claude. Anything else keeps main's result, as if the loop had ended.
459
+ if (slowStart && await this.paneOccupant(binding, false) !== "own") {
460
+ slowStart = false;
461
+ break;
462
+ }
406
463
  const enterResult = await this.tmux.sendKeys(tmuxSession, ["Enter"]);
407
464
  if (!enterResult.ok) {
408
465
  return { ok: false, error: `Claude trust prompt auto-drive failed: ${enterResult.message}` };
@@ -410,8 +467,48 @@ export class ClaudeCodeAdapter {
410
467
  await this.sleep(200);
411
468
  continue;
412
469
  }
470
+ // Only a boot in progress (no verdict, no gate, a label that proves nothing) is worth waiting for; a real
471
+ // gate (login, trust or MCP approval, auto-mode identity) won't clear itself.
472
+ const booting = probe.code === "awaiting_runtime" || probe.code === "returned_to_shell";
473
+ if (slowStart && !booting) {
474
+ slowStart = false;
475
+ break;
476
+ }
477
+ // A start in progress can't have drawn Claude's ready screen. One that has, with its lineage unproven, keeps
478
+ // main's result whenever it draws: at the window's end, or at any poll of the longer wait.
479
+ const looksReady = (attempt === windowAttempts - 1 || slowStart) && booting
480
+ && assessNativeResumeProbe({ runtime: "claude-code", paneCommand, paneContent,
481
+ claudeAutoIdentityVerified: true, claudeResumeIdentityVerified: true }).status === "resumed";
482
+ if (slowStart && looksReady && await this.paneOccupant(binding, true) === "another") {
483
+ slowStart = false;
484
+ break;
485
+ }
486
+ // Checked where the window ends and then about once a second of the longer wait (two listings for the shell, one for
487
+ // the occupant), not on every poll. A shell label can't tell Claude having exited from the launch script not having
488
+ // started it yet, and the occupant can change while we wait, so the process tree decides.
489
+ const windowEnd = attempt === windowAttempts - 1;
490
+ if (booting && (windowEnd || (slowStart && (attempt - windowAttempts + 1) % checkEvery === 0))) {
491
+ if (await this.paneReturnedToShell(binding, await this.tmux.getPaneCommand(tmuxSession))) {
492
+ // Provably back at its shell: the final check reports it. If it isn't by then, the seat is kept.
493
+ if (slowStart) {
494
+ attempts = attempt + 1;
495
+ break;
496
+ }
497
+ }
498
+ else if (await this.paneOccupant(binding, looksReady) === "another") {
499
+ // Not this launch's start: keep main's result.
500
+ slowStart = false;
501
+ break;
502
+ }
503
+ else if (windowEnd) {
504
+ // A boot in progress, or one we can't see: keep the launch past the window even when the readiness setting
505
+ // leaves no room for more polls (1 to 3 s), so it ends as attention_required, not as the failure that loses the token.
506
+ attempts = windowAttempts + Math.floor(Math.max(0, resolveReadinessTimeoutMs(this.readinessTimeoutMs) - windowAttempts * pollMs) / pollMs);
507
+ slowStart = true;
508
+ }
509
+ }
413
510
  if (attempt < attempts - 1) {
414
- await this.sleep(200);
511
+ await this.sleep(pollMs);
415
512
  }
416
513
  }
417
514
  const finalCommand = await this.tmux.getPaneCommand(tmuxSession);
@@ -428,19 +525,43 @@ export class ClaudeCodeAdapter {
428
525
  evidence: finalContent.split("\n").slice(-12).join("\n"),
429
526
  };
430
527
  }
431
- if (finalCommand && SHELL_COMMANDS.has(finalCommand)) {
528
+ // The wait can end on the read that first shows Claude's missing-conversation report.
529
+ if (finalProbe.code === "no_conversation_found") {
530
+ return {
531
+ ok: false,
532
+ error: "Claude resume failed: no conversation found for the requested session",
533
+ recovery: "retry_fresh",
534
+ missingConversation: true,
535
+ };
536
+ }
537
+ if (await this.paneReturnedToShell(binding, finalCommand)) {
432
538
  return {
433
539
  ok: false,
434
540
  error: "Claude resume failed: pane returned to shell instead of entering Claude",
435
541
  recovery: "retry_fresh",
436
542
  };
437
543
  }
544
+ // The occupant can change after the last check in the loop, so the end of the wait looks once more, with the screen
545
+ // judged as in the loop: a different occupant (or a ready-looking screen on a readable list) keeps main's result.
546
+ if (slowStart && (finalProbe.code === "awaiting_runtime" || finalProbe.code === "returned_to_shell")
547
+ && await this.paneOccupant(binding, assessNativeResumeProbe({ runtime: "claude-code", paneCommand: finalCommand, paneContent: finalContent,
548
+ claudeAutoIdentityVerified: true, claudeResumeIdentityVerified: true }).status === "resumed") !== "another") {
549
+ // Claude, or the script about to start it, may still be coming up. Keep the launch and its resume token for
550
+ // a person (or the reconciler) rather than failing a seat that may be running. Never `resumed` from this.
551
+ return {
552
+ ok: false,
553
+ error: `Claude resume did not finish within ${Math.round(attempts * pollMs / 1000)}s; Claude may still be starting, so the launch was kept`,
554
+ recovery: "attention_required",
555
+ evidence: finalContent.split("\n").slice(-12).join("\n"),
556
+ };
557
+ }
438
558
  return { ok: false, error: "Claude resume failed: timed out waiting for Claude to become active" };
439
559
  }
440
560
  projectEntry(entry, cwd, managedBlockFile, warnings) {
441
- if (entry.category === "runtime_resource" && this.applyRuntimeResource(entry, cwd)) {
442
- return true;
443
- }
561
+ // A skipped fragment is reported skipped; it never falls through to the generic extensions copy.
562
+ const handled = entry.category === "runtime_resource" ? this.applyRuntimeResource(entry, cwd, warnings) : false;
563
+ if (handled)
564
+ return handled === true;
444
565
  if (entry.category === "guidance" && entry.mergeStrategy === "managed_block") {
445
566
  const targetPath = nodePath.join(cwd, managedBlockFile);
446
567
  const content = this.fs.readFile(entry.absolutePath);
@@ -531,14 +652,13 @@ export class ClaudeCodeAdapter {
531
652
  default: return null;
532
653
  }
533
654
  }
534
- applyRuntimeResource(entry, cwd) {
655
+ /** true when applied, "skipped" when handled but not applied, false when this isn't a resource it handles. */
656
+ applyRuntimeResource(entry, cwd, warnings) {
535
657
  switch (entry.resourceType) {
536
658
  case "claude_settings_fragment":
537
- this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".claude", "settings.local.json"));
538
- return true;
659
+ return this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".claude", "settings.local.json"), warnings) || "skipped";
539
660
  case "claude_mcp_fragment":
540
- this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".mcp.json"));
541
- return true;
661
+ return this.mergeJsonFragment(entry.absolutePath, nodePath.join(cwd, ".mcp.json"), warnings) || "skipped";
542
662
  case "claude_activity_hooks":
543
663
  // Handled (no generic .claude/extensions copy): the relay asset is
544
664
  // delivered + the settings hooks reconciled by reconcileClaudeActivityHooks
@@ -548,12 +668,43 @@ export class ClaudeCodeAdapter {
548
668
  return false;
549
669
  }
550
670
  }
551
- mergeJsonFragment(sourcePath, targetPath) {
671
+ /** Merge a JSON fragment into a project file. An existing target that can't be read, or isn't a JSON object (it
672
+ * doesn't parse, or it holds an array or a single value), belongs to its owner: it's left as it is, nothing is
673
+ * merged, and a warning says so. Returns whether the fragment was applied. */
674
+ mergeJsonFragment(sourcePath, targetPath, warnings) {
552
675
  const fragment = this.readJsonObjectStrict(sourcePath);
553
- const existing = this.readJsonObject(targetPath);
676
+ // The reasons are fixed text: a parser message can quote the file's content.
677
+ const leave = (reason) => {
678
+ 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).`);
679
+ return false;
680
+ };
681
+ let existing = {};
682
+ if (this.fs.exists(targetPath)) {
683
+ let text;
684
+ try {
685
+ text = this.fs.readFile(targetPath);
686
+ }
687
+ catch {
688
+ return leave("it couldn't be read");
689
+ }
690
+ if (text.trim() !== "") {
691
+ let parsed;
692
+ try {
693
+ parsed = JSON.parse(text);
694
+ }
695
+ catch {
696
+ return leave("it isn't valid JSON");
697
+ }
698
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
699
+ return leave(`it holds ${Array.isArray(parsed) ? "a JSON array" : parsed === null ? "JSON null" : `a JSON ${typeof parsed}`}, not an object`);
700
+ }
701
+ existing = parsed;
702
+ }
703
+ }
554
704
  const merged = mergeJsonObjects(existing, fragment);
555
705
  this.fs.mkdirp(nodePath.dirname(targetPath));
556
706
  this.fs.writeFile(targetPath, JSON.stringify(merged, null, 2));
707
+ return true;
557
708
  }
558
709
  /**
559
710
  * Merge a managed block into the target guidance file. Returns `true` when
@@ -579,54 +730,6 @@ export class ClaudeCodeAdapter {
579
730
  });
580
731
  return true;
581
732
  }
582
- /**
583
- * Best-effort token capture from ~/.claude/sessions/*.json.
584
- * Finds the session file whose name matches the expected session name.
585
- * Returns the sessionId if found, undefined otherwise.
586
- */
587
- /**
588
- * PL-016 hardening v0+1 — poll captureResumeToken on the
589
- * verifyResumeLaunch cadence. Returns the token as soon as the
590
- * session file appears, or undefined after attempts × delayMs ceiling.
591
- * Used by the fork branch where the new session-name file appears
592
- * 1-3s after the Enter key is sent (cold-start fork-file write).
593
- */
594
- async pollForResumeToken(expectedName, attempts, delayMs, configDir) {
595
- for (let attempt = 0; attempt < attempts; attempt++) {
596
- const token = this.captureResumeToken(expectedName, configDir);
597
- if (token)
598
- return token;
599
- if (attempt < attempts - 1) {
600
- await this.sleep(delayMs);
601
- }
602
- }
603
- return undefined;
604
- }
605
- captureResumeToken(expectedName, configDir) {
606
- try {
607
- const home = this.fs.homedir ?? (typeof process !== "undefined" ? process.env.HOME : undefined);
608
- if ((!home && !configDir) || !this.fs.readdir)
609
- return undefined;
610
- const sessDir = nodePath.join(configDir ?? nodePath.join(home, ".claude"), "sessions");
611
- if (!this.fs.exists(sessDir))
612
- return undefined;
613
- const files = this.fs.readdir(sessDir);
614
- for (const file of files) {
615
- if (!file.endsWith(".json"))
616
- continue;
617
- try {
618
- const content = this.fs.readFile(nodePath.join(sessDir, file));
619
- const data = JSON.parse(content);
620
- if (data.name === expectedName && data.sessionId) {
621
- return data.sessionId;
622
- }
623
- }
624
- catch { /* skip malformed files */ }
625
- }
626
- }
627
- catch { /* best-effort */ }
628
- return undefined;
629
- }
630
733
  detectDeliveryHint(path, content) {
631
734
  return resolveConcreteHint(path, content);
632
735
  }
@@ -723,19 +826,6 @@ export class ClaudeCodeAdapter {
723
826
  }
724
827
  return Array.from(keys);
725
828
  }
726
- readJsonObject(path) {
727
- try {
728
- if (!this.fs.exists(path))
729
- return {};
730
- const parsed = JSON.parse(this.fs.readFile(path));
731
- return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
732
- ? parsed
733
- : {};
734
- }
735
- catch {
736
- return {};
737
- }
738
- }
739
829
  readJsonObjectStrict(path) {
740
830
  const parsed = JSON.parse(this.fs.readFile(path));
741
831
  if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
@@ -780,9 +870,9 @@ export class ClaudeCodeAdapter {
780
870
  const settingsPath = nodePath.join(binding.cwd, ".claude", "settings.local.json");
781
871
  this.fs.mkdirp(nodePath.dirname(settingsPath));
782
872
  // The seat cwd can be a shared repo whose project-local settings other sessions read (#421).
783
- // Like the activity hooks, never clobber text we cannot parse. An empty file holds no settings
784
- // and is treated as `{}`. Valid JSON that is not an object (for example `[]`) is still
785
- // replaced, as before.
873
+ // Like the activity hooks, never clobber text we cannot parse, nor valid JSON that isn't an
874
+ // object (for example `[]`): the status line isn't installed there. An empty file holds no
875
+ // settings and is treated as `{}`.
786
876
  let existing = {};
787
877
  if (this.fs.exists(settingsPath)) {
788
878
  const text = this.fs.readFile(settingsPath);
@@ -794,8 +884,9 @@ export class ClaudeCodeAdapter {
794
884
  catch {
795
885
  return;
796
886
  }
797
- if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed))
798
- existing = parsed;
887
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed))
888
+ return;
889
+ existing = parsed;
799
890
  }
800
891
  }
801
892
  const statusLine = typeof existing["statusLine"] === "object" && existing["statusLine"] !== null
@@ -807,6 +898,10 @@ export class ClaudeCodeAdapter {
807
898
  const current = statusLine["command"];
808
899
  if (typeof current === "string" && current.trim() !== "" && current !== collectorCmd && !isOwnedCollectorCommand(current))
809
900
  return;
901
+ // Already installed as wanted: no write. Compared by value, so another writer's key order or spacing isn't a
902
+ // change. This avoids rewriting on every poll; it doesn't make a needed write safe against a concurrent writer.
903
+ if (statusLine["type"] === "command" && current === collectorCmd)
904
+ return;
810
905
  existing["statusLine"] = { ...statusLine, type: "command", command: collectorCmd };
811
906
  this.fs.writeFile(settingsPath, JSON.stringify(existing, null, 2));
812
907
  }