@openrig/cli 0.6.11 → 0.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1322) hide show
  1. package/README.md +23 -13
  2. package/daemon/assets/claude-statusline-context.cjs +2 -0
  3. package/daemon/assets/guidance/openrig-start.md +2 -1
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/README.md +37 -7
  7. package/daemon/assets/plugins/openrig-core/hooks/claude.json +7 -7
  8. package/daemon/assets/plugins/openrig-core/hooks/codex.json +2 -2
  9. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +93 -0
  10. package/daemon/assets/plugins/openrig-core/hooks/scripts/compaction-restore-bridge.cjs +23 -0
  11. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +4 -2
  12. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +76 -20
  13. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +24 -0
  14. package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +25 -5
  15. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -2
  16. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +15 -1
  17. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +1 -1
  18. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +172 -11
  19. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +7 -4
  20. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +8 -0
  21. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +61 -16
  22. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +5 -2
  23. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +19 -0
  24. package/daemon/assets/skills/rigs/SKILL.md +63 -13
  25. package/daemon/context-packs/help/manifest.yaml +1 -1
  26. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  27. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +160 -43
  28. package/daemon/context-packs/reference/getting-started.md +81 -18
  29. package/daemon/context-packs/reference/manifest.yaml +1 -1
  30. package/daemon/context-packs/reference/rig-spec.md +67 -6
  31. package/daemon/context-packs/reference/whats-new.md +99 -151
  32. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +24 -0
  37. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +1 -1
  46. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +0 -1
  48. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  50. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  56. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/delegating-work/SKILL.md +25 -5
  59. package/daemon/context-packs/skills/delegating-work/manifest.yaml +3 -3
  60. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +4 -2
  61. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +15 -1
  64. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/openrig-user/SKILL.md +172 -11
  67. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +7 -4
  69. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +1 -1
  79. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/queue-handoff/SKILL.md +8 -0
  90. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +61 -16
  93. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +5 -2
  94. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  95. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  96. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +19 -0
  97. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  99. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  100. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  101. package/daemon/dist/adapters/bounded-probe-exec.d.ts +45 -0
  102. package/daemon/dist/adapters/bounded-probe-exec.d.ts.map +1 -0
  103. package/daemon/dist/adapters/bounded-probe-exec.js +204 -0
  104. package/daemon/dist/adapters/bounded-probe-exec.js.map +1 -0
  105. package/daemon/dist/adapters/claude-code-adapter.d.ts +26 -2
  106. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  107. package/daemon/dist/adapters/claude-code-adapter.js +275 -76
  108. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  109. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  110. package/daemon/dist/adapters/claude-resume.js +14 -3
  111. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  112. package/daemon/dist/adapters/codex-resume.d.ts +5 -0
  113. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  114. package/daemon/dist/adapters/codex-resume.js +17 -3
  115. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  116. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +38 -1
  117. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  118. package/daemon/dist/adapters/codex-runtime-adapter.js +184 -11
  119. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  120. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts +46 -0
  121. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts.map +1 -0
  122. package/daemon/dist/adapters/community-harness-runtime-adapter.js +102 -0
  123. package/daemon/dist/adapters/community-harness-runtime-adapter.js.map +1 -0
  124. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  125. package/daemon/dist/adapters/compose-services-adapter.js +2 -1
  126. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  127. package/daemon/dist/adapters/kernel-authority.d.ts +8 -1
  128. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  129. package/daemon/dist/adapters/kernel-authority.js +35 -10
  130. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  131. package/daemon/dist/adapters/omp-rpc-frame.d.ts +51 -0
  132. package/daemon/dist/adapters/omp-rpc-frame.d.ts.map +1 -0
  133. package/daemon/dist/adapters/omp-rpc-frame.js +153 -0
  134. package/daemon/dist/adapters/omp-rpc-frame.js.map +1 -0
  135. package/daemon/dist/adapters/pi-openrouter-charge.d.ts +67 -0
  136. package/daemon/dist/adapters/pi-openrouter-charge.d.ts.map +1 -0
  137. package/daemon/dist/adapters/pi-openrouter-charge.js +228 -0
  138. package/daemon/dist/adapters/pi-openrouter-charge.js.map +1 -0
  139. package/daemon/dist/adapters/pi-readiness.d.ts +81 -5
  140. package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -1
  141. package/daemon/dist/adapters/pi-readiness.js +193 -27
  142. package/daemon/dist/adapters/pi-readiness.js.map +1 -1
  143. package/daemon/dist/adapters/pi-resume.d.ts +5 -1
  144. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  145. package/daemon/dist/adapters/pi-resume.js +6 -1
  146. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  147. package/daemon/dist/adapters/pi-runner-protocol.d.ts +13 -0
  148. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  149. package/daemon/dist/adapters/pi-runner-protocol.js +21 -0
  150. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  151. package/daemon/dist/adapters/pi-runner.d.ts +72 -4
  152. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  153. package/daemon/dist/adapters/pi-runner.js +405 -28
  154. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  155. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +16 -1
  156. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  157. package/daemon/dist/adapters/pi-runtime-adapter.js +19 -0
  158. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  159. package/daemon/dist/adapters/preflight-exec.d.ts +3 -0
  160. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -1
  161. package/daemon/dist/adapters/preflight-exec.js +15 -7
  162. package/daemon/dist/adapters/preflight-exec.js.map +1 -1
  163. package/daemon/dist/adapters/replace-file.d.ts +8 -0
  164. package/daemon/dist/adapters/replace-file.d.ts.map +1 -0
  165. package/daemon/dist/adapters/replace-file.js +32 -0
  166. package/daemon/dist/adapters/replace-file.js.map +1 -0
  167. package/daemon/dist/adapters/stub-compaction.d.ts +1 -0
  168. package/daemon/dist/adapters/stub-compaction.d.ts.map +1 -1
  169. package/daemon/dist/adapters/stub-compaction.js +2 -0
  170. package/daemon/dist/adapters/stub-compaction.js.map +1 -1
  171. package/daemon/dist/adapters/stub-refocus.d.ts +6 -0
  172. package/daemon/dist/adapters/stub-refocus.d.ts.map +1 -0
  173. package/daemon/dist/adapters/stub-refocus.js +22 -0
  174. package/daemon/dist/adapters/stub-refocus.js.map +1 -0
  175. package/daemon/dist/adapters/stub-runner.d.ts +6 -0
  176. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  177. package/daemon/dist/adapters/stub-runner.js +18 -1
  178. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  179. package/daemon/dist/adapters/stub-script.d.ts +2 -2
  180. package/daemon/dist/adapters/stub-script.d.ts.map +1 -1
  181. package/daemon/dist/adapters/stub-script.js +2 -2
  182. package/daemon/dist/adapters/stub-script.js.map +1 -1
  183. package/daemon/dist/adapters/tmux-control.d.ts +119 -0
  184. package/daemon/dist/adapters/tmux-control.d.ts.map +1 -0
  185. package/daemon/dist/adapters/tmux-control.js +547 -0
  186. package/daemon/dist/adapters/tmux-control.js.map +1 -0
  187. package/daemon/dist/adapters/tmux-exec.d.ts +18 -4
  188. package/daemon/dist/adapters/tmux-exec.d.ts.map +1 -1
  189. package/daemon/dist/adapters/tmux-exec.js +98 -17
  190. package/daemon/dist/adapters/tmux-exec.js.map +1 -1
  191. package/daemon/dist/adapters/tmux.d.ts +52 -15
  192. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  193. package/daemon/dist/adapters/tmux.js +232 -58
  194. package/daemon/dist/adapters/tmux.js.map +1 -1
  195. package/daemon/dist/build-info.js +3 -3
  196. package/daemon/dist/composer-prompts-surface.d.ts +2 -0
  197. package/daemon/dist/composer-prompts-surface.d.ts.map +1 -0
  198. package/daemon/dist/composer-prompts-surface.js +2 -0
  199. package/daemon/dist/composer-prompts-surface.js.map +1 -0
  200. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  201. package/daemon/dist/db/all-migrations.js +26 -0
  202. package/daemon/dist/db/all-migrations.js.map +1 -1
  203. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts +3 -0
  204. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts.map +1 -0
  205. package/daemon/dist/db/migrations/100_typing_guard_modes.js +10 -0
  206. package/daemon/dist/db/migrations/100_typing_guard_modes.js.map +1 -0
  207. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts +3 -0
  208. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts.map +1 -0
  209. package/daemon/dist/db/migrations/104_node_effort_choice.js +10 -0
  210. package/daemon/dist/db/migrations/104_node_effort_choice.js.map +1 -0
  211. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts +9 -0
  212. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts.map +1 -0
  213. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js +14 -0
  214. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js.map +1 -0
  215. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts +10 -0
  216. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts.map +1 -0
  217. package/daemon/dist/db/migrations/107_pi_usage_entries.js +38 -0
  218. package/daemon/dist/db/migrations/107_pi_usage_entries.js.map +1 -0
  219. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts +12 -0
  220. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts.map +1 -0
  221. package/daemon/dist/db/migrations/108_pi_usage_charges.js +39 -0
  222. package/daemon/dist/db/migrations/108_pi_usage_charges.js.map +1 -0
  223. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts +5 -0
  224. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts.map +1 -0
  225. package/daemon/dist/db/migrations/109_mode_posture_coexist.js +11 -0
  226. package/daemon/dist/db/migrations/109_mode_posture_coexist.js.map +1 -0
  227. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts +10 -0
  228. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts.map +1 -0
  229. package/daemon/dist/db/migrations/110_workflow_instance_scope.js +14 -0
  230. package/daemon/dist/db/migrations/110_workflow_instance_scope.js.map +1 -0
  231. package/daemon/dist/db/migrations/111_seat_env.d.ts +6 -0
  232. package/daemon/dist/db/migrations/111_seat_env.d.ts.map +1 -0
  233. package/daemon/dist/db/migrations/111_seat_env.js +11 -0
  234. package/daemon/dist/db/migrations/111_seat_env.js.map +1 -0
  235. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts +3 -0
  236. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts.map +1 -0
  237. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js +14 -0
  238. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js.map +1 -0
  239. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts +3 -0
  240. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts.map +1 -0
  241. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js +9 -0
  242. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js.map +1 -0
  243. package/daemon/dist/db/migrations/114_session_agent_app.d.ts +3 -0
  244. package/daemon/dist/db/migrations/114_session_agent_app.d.ts.map +1 -0
  245. package/daemon/dist/db/migrations/114_session_agent_app.js +11 -0
  246. package/daemon/dist/db/migrations/114_session_agent_app.js.map +1 -0
  247. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts +3 -0
  248. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts.map +1 -0
  249. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js +28 -0
  250. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js.map +1 -0
  251. package/daemon/dist/db/migrations/117_provider_account_readings.d.ts +3 -0
  252. package/daemon/dist/db/migrations/117_provider_account_readings.d.ts.map +1 -0
  253. package/daemon/dist/db/migrations/117_provider_account_readings.js +32 -0
  254. package/daemon/dist/db/migrations/117_provider_account_readings.js.map +1 -0
  255. package/daemon/dist/domain/activity-taxonomy.d.ts +13 -5
  256. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  257. package/daemon/dist/domain/activity-taxonomy.js +14 -2
  258. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  259. package/daemon/dist/domain/agent-activity-store.d.ts +2 -0
  260. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  261. package/daemon/dist/domain/agent-activity-store.js +14 -8
  262. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  263. package/daemon/dist/domain/agent-images/agent-image-library-service.js +1 -1
  264. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  265. package/daemon/dist/domain/agent-images/manifest-parser.js +1 -1
  266. package/daemon/dist/domain/agent-images/manifest-parser.js.map +1 -1
  267. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  268. package/daemon/dist/domain/agent-manifest.js +21 -3
  269. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  270. package/daemon/dist/domain/applied-launch-observation-store.d.ts +2 -0
  271. package/daemon/dist/domain/applied-launch-observation-store.d.ts.map +1 -1
  272. package/daemon/dist/domain/applied-launch-observation-store.js +27 -3
  273. package/daemon/dist/domain/applied-launch-observation-store.js.map +1 -1
  274. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +3 -0
  275. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  276. package/daemon/dist/domain/bootstrap-orchestrator.js +49 -16
  277. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  278. package/daemon/dist/domain/built-in-runtimes.d.ts +10 -0
  279. package/daemon/dist/domain/built-in-runtimes.d.ts.map +1 -0
  280. package/daemon/dist/domain/built-in-runtimes.js +14 -0
  281. package/daemon/dist/domain/built-in-runtimes.js.map +1 -0
  282. package/daemon/dist/domain/bundle-archive.d.ts +3 -1
  283. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  284. package/daemon/dist/domain/bundle-archive.js +5 -3
  285. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  286. package/daemon/dist/domain/bundle-behaviour.d.ts +20 -0
  287. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
  288. package/daemon/dist/domain/bundle-behaviour.js +57 -1
  289. package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
  290. package/daemon/dist/domain/bundle-integrity.d.ts +5 -2
  291. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  292. package/daemon/dist/domain/bundle-integrity.js +39 -8
  293. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  294. package/daemon/dist/domain/bundle-source-resolver.d.ts +3 -1
  295. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  296. package/daemon/dist/domain/bundle-source-resolver.js +7 -2
  297. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  298. package/daemon/dist/domain/bundle-types.d.ts +6 -0
  299. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  300. package/daemon/dist/domain/bundle-types.js +26 -0
  301. package/daemon/dist/domain/bundle-types.js.map +1 -1
  302. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  303. package/daemon/dist/domain/chat-repository.js +3 -2
  304. package/daemon/dist/domain/chat-repository.js.map +1 -1
  305. package/daemon/dist/domain/claim-service.d.ts +6 -0
  306. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  307. package/daemon/dist/domain/claim-service.js +20 -1
  308. package/daemon/dist/domain/claim-service.js.map +1 -1
  309. package/daemon/dist/domain/claude-activity-hooks.d.ts +6 -0
  310. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
  311. package/daemon/dist/domain/claude-activity-hooks.js +19 -1
  312. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
  313. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +63 -2
  314. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  315. package/daemon/dist/domain/claude-compaction-enforcer.js +154 -16
  316. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  317. package/daemon/dist/domain/claude-core-plugin-env.d.ts +28 -0
  318. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -0
  319. package/daemon/dist/domain/claude-core-plugin-env.js +90 -0
  320. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -0
  321. package/daemon/dist/domain/claude-managed-launch.d.ts +18 -6
  322. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  323. package/daemon/dist/domain/claude-managed-launch.js +104 -10
  324. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  325. package/daemon/dist/domain/claude-mcp-menu.d.ts +5 -0
  326. package/daemon/dist/domain/claude-mcp-menu.d.ts.map +1 -0
  327. package/daemon/dist/domain/claude-mcp-menu.js +25 -0
  328. package/daemon/dist/domain/claude-mcp-menu.js.map +1 -0
  329. package/daemon/dist/domain/codex-thread-id.d.ts +22 -3
  330. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  331. package/daemon/dist/domain/codex-thread-id.js +65 -16
  332. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  333. package/daemon/dist/domain/community-harness-presets.d.ts +38 -0
  334. package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -0
  335. package/daemon/dist/domain/community-harness-presets.js +155 -0
  336. package/daemon/dist/domain/community-harness-presets.js.map +1 -0
  337. package/daemon/dist/domain/composer-prompts.d.ts +118 -0
  338. package/daemon/dist/domain/composer-prompts.d.ts.map +1 -0
  339. package/daemon/dist/domain/composer-prompts.js +165 -0
  340. package/daemon/dist/domain/composer-prompts.js.map +1 -0
  341. package/daemon/dist/domain/context-monitor.d.ts +3 -0
  342. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  343. package/daemon/dist/domain/context-monitor.js +14 -2
  344. package/daemon/dist/domain/context-monitor.js.map +1 -1
  345. package/daemon/dist/domain/context-packs/context-pack-library-service.js +2 -2
  346. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  347. package/daemon/dist/domain/context-packs/manifest-parser.js +1 -1
  348. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  349. package/daemon/dist/domain/context-usage-store.d.ts +4 -0
  350. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  351. package/daemon/dist/domain/context-usage-store.js +1 -0
  352. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  353. package/daemon/dist/domain/current-work.js +2 -2
  354. package/daemon/dist/domain/current-work.js.map +1 -1
  355. package/daemon/dist/domain/draft-aware-delivery.d.ts +32 -0
  356. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -0
  357. package/daemon/dist/domain/draft-aware-delivery.js +156 -0
  358. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -0
  359. package/daemon/dist/domain/event-bus.d.ts +10 -1
  360. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  361. package/daemon/dist/domain/event-bus.js +25 -0
  362. package/daemon/dist/domain/event-bus.js.map +1 -1
  363. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  364. package/daemon/dist/domain/execution-view.js +76 -10
  365. package/daemon/dist/domain/execution-view.js.map +1 -1
  366. package/daemon/dist/domain/fresh-occupant-relation.d.ts +7 -0
  367. package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
  368. package/daemon/dist/domain/fresh-occupant-relation.js +44 -0
  369. package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
  370. package/daemon/dist/domain/frontmatter.d.ts +11 -0
  371. package/daemon/dist/domain/frontmatter.d.ts.map +1 -0
  372. package/daemon/dist/domain/frontmatter.js +20 -0
  373. package/daemon/dist/domain/frontmatter.js.map +1 -0
  374. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +11 -0
  375. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  376. package/daemon/dist/domain/gateway/gateway-subsystem.js +7 -0
  377. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  378. package/daemon/dist/domain/gateway/human-registry.d.ts +6 -1
  379. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  380. package/daemon/dist/domain/gateway/human-registry.js +7 -0
  381. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  382. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts +54 -0
  383. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts.map +1 -0
  384. package/daemon/dist/domain/gateway/slack/bot-inbox.js +86 -0
  385. package/daemon/dist/domain/gateway/slack/bot-inbox.js.map +1 -0
  386. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
  387. package/daemon/dist/domain/gateway/slack/capabilities.js +1 -0
  388. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
  389. package/daemon/dist/domain/gateway/slack/channel-map.d.ts +11 -1
  390. package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -1
  391. package/daemon/dist/domain/gateway/slack/channel-map.js +31 -6
  392. package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -1
  393. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +14 -2
  394. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -1
  395. package/daemon/dist/domain/gateway/slack/channel-recovery.js +128 -89
  396. package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -1
  397. package/daemon/dist/domain/gateway/slack/config.d.ts +14 -0
  398. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  399. package/daemon/dist/domain/gateway/slack/config.js +28 -0
  400. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  401. package/daemon/dist/domain/gateway/slack/forwarding.d.ts +32 -0
  402. package/daemon/dist/domain/gateway/slack/forwarding.d.ts.map +1 -0
  403. package/daemon/dist/domain/gateway/slack/forwarding.js +76 -0
  404. package/daemon/dist/domain/gateway/slack/forwarding.js.map +1 -0
  405. package/daemon/dist/domain/gateway/slack/inbound.d.ts +103 -1
  406. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  407. package/daemon/dist/domain/gateway/slack/inbound.js +329 -9
  408. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  409. package/daemon/dist/domain/gateway/slack/message.d.ts +28 -0
  410. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  411. package/daemon/dist/domain/gateway/slack/message.js +105 -4
  412. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  413. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  414. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  415. package/daemon/dist/domain/gateway/slack/outbound-driver.js +1 -0
  416. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  417. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -1
  418. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  419. package/daemon/dist/domain/gateway/slack/recovery-budget.d.ts +24 -0
  420. package/daemon/dist/domain/gateway/slack/recovery-budget.d.ts.map +1 -0
  421. package/daemon/dist/domain/gateway/slack/recovery-budget.js +18 -0
  422. package/daemon/dist/domain/gateway/slack/recovery-budget.js.map +1 -0
  423. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +10 -0
  424. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  425. package/daemon/dist/domain/gateway/slack/slack-api.js +13 -0
  426. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  427. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +2 -0
  428. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  429. package/daemon/dist/domain/gateway/slack/slack-delivery.js +12 -2
  430. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  431. package/daemon/dist/domain/gateway/slack/slack-recovery.d.ts +104 -0
  432. package/daemon/dist/domain/gateway/slack/slack-recovery.d.ts.map +1 -0
  433. package/daemon/dist/domain/gateway/slack/slack-recovery.js +236 -0
  434. package/daemon/dist/domain/gateway/slack/slack-recovery.js.map +1 -0
  435. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -0
  436. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  437. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +157 -21
  438. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  439. package/daemon/dist/domain/gateway/slack/state-store.d.ts +43 -2
  440. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  441. package/daemon/dist/domain/gateway/slack/state-store.js +91 -2
  442. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  443. package/daemon/dist/domain/gateway/slack/thread-recovery.d.ts +37 -0
  444. package/daemon/dist/domain/gateway/slack/thread-recovery.d.ts.map +1 -0
  445. package/daemon/dist/domain/gateway/slack/thread-recovery.js +173 -0
  446. package/daemon/dist/domain/gateway/slack/thread-recovery.js.map +1 -0
  447. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +3 -0
  448. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  449. package/daemon/dist/domain/gateway/slack/thread-routing.js +18 -7
  450. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  451. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +25 -6
  452. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  453. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +52 -23
  454. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  455. package/daemon/dist/domain/history-query.d.ts.map +1 -1
  456. package/daemon/dist/domain/history-query.js +2 -1
  457. package/daemon/dist/domain/history-query.js.map +1 -1
  458. package/daemon/dist/domain/home-isolation.d.ts +18 -0
  459. package/daemon/dist/domain/home-isolation.d.ts.map +1 -0
  460. package/daemon/dist/domain/home-isolation.js +75 -0
  461. package/daemon/dist/domain/home-isolation.js.map +1 -0
  462. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +22 -0
  463. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  464. package/daemon/dist/domain/hosts/remote-daemon-http.js +43 -3
  465. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  466. package/daemon/dist/domain/inbox-handler.d.ts.map +1 -1
  467. package/daemon/dist/domain/inbox-handler.js +34 -32
  468. package/daemon/dist/domain/inbox-handler.js.map +1 -1
  469. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +12 -2
  470. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  471. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +1 -1
  472. package/daemon/dist/domain/mission-control/notification-dispatcher.js +2 -1
  473. package/daemon/dist/domain/mission-control/notification-dispatcher.js.map +1 -1
  474. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +68 -0
  475. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  476. package/daemon/dist/domain/model-divergence/current-generation-record.js +133 -1
  477. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  478. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts +74 -0
  479. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts.map +1 -0
  480. package/daemon/dist/domain/model-divergence/current-model-reader.js +246 -0
  481. package/daemon/dist/domain/model-divergence/current-model-reader.js.map +1 -0
  482. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +60 -0
  483. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
  484. package/daemon/dist/domain/model-divergence/effective-model-readers.js +182 -11
  485. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
  486. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +8 -2
  487. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  488. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +10 -5
  489. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  490. package/daemon/dist/domain/native-process-lineage.d.ts +57 -1
  491. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  492. package/daemon/dist/domain/native-process-lineage.js +169 -41
  493. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  494. package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
  495. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  496. package/daemon/dist/domain/native-resume-probe.js +77 -14
  497. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  498. package/daemon/dist/domain/node-inventory.d.ts +1 -1
  499. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  500. package/daemon/dist/domain/node-inventory.js +110 -27
  501. package/daemon/dist/domain/node-inventory.js.map +1 -1
  502. package/daemon/dist/domain/node-launcher.d.ts +18 -0
  503. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  504. package/daemon/dist/domain/node-launcher.js +60 -2
  505. package/daemon/dist/domain/node-launcher.js.map +1 -1
  506. package/daemon/dist/domain/openrouter-charge.d.ts +42 -0
  507. package/daemon/dist/domain/openrouter-charge.d.ts.map +1 -0
  508. package/daemon/dist/domain/openrouter-charge.js +57 -0
  509. package/daemon/dist/domain/openrouter-charge.js.map +1 -0
  510. package/daemon/dist/domain/parked-query.d.ts +5 -0
  511. package/daemon/dist/domain/parked-query.d.ts.map +1 -1
  512. package/daemon/dist/domain/parked-query.js +9 -2
  513. package/daemon/dist/domain/parked-query.js.map +1 -1
  514. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  515. package/daemon/dist/domain/periodic-snapshot-scheduler.js +27 -3
  516. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  517. package/daemon/dist/domain/permission-drift.d.ts +2 -0
  518. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  519. package/daemon/dist/domain/permission-drift.js.map +1 -1
  520. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  521. package/daemon/dist/domain/permission-policy/policy-spec.js +5 -7
  522. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  523. package/daemon/dist/domain/pi-usage-entries-store.d.ts +41 -0
  524. package/daemon/dist/domain/pi-usage-entries-store.d.ts.map +1 -0
  525. package/daemon/dist/domain/pi-usage-entries-store.js +173 -0
  526. package/daemon/dist/domain/pi-usage-entries-store.js.map +1 -0
  527. package/daemon/dist/domain/pi-usage-facts.d.ts +90 -0
  528. package/daemon/dist/domain/pi-usage-facts.d.ts.map +1 -0
  529. package/daemon/dist/domain/pi-usage-facts.js +165 -0
  530. package/daemon/dist/domain/pi-usage-facts.js.map +1 -0
  531. package/daemon/dist/domain/pod-bundle-assembler.d.ts +2 -0
  532. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  533. package/daemon/dist/domain/pod-bundle-assembler.js +4 -0
  534. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  535. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
  536. package/daemon/dist/domain/policies/artifact-pool-helpers.js +6 -4
  537. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
  538. package/daemon/dist/domain/process-census.d.ts +1 -1
  539. package/daemon/dist/domain/process-census.d.ts.map +1 -1
  540. package/daemon/dist/domain/process-table.d.ts +26 -0
  541. package/daemon/dist/domain/process-table.d.ts.map +1 -0
  542. package/daemon/dist/domain/process-table.js +185 -0
  543. package/daemon/dist/domain/process-table.js.map +1 -0
  544. package/daemon/dist/domain/profile-resolver.d.ts +10 -0
  545. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  546. package/daemon/dist/domain/profile-resolver.js +15 -0
  547. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  548. package/daemon/dist/domain/progress/progress-indexer.js +1 -1
  549. package/daemon/dist/domain/progress/progress-indexer.js.map +1 -1
  550. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +4 -0
  551. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  552. package/daemon/dist/domain/project-lifecycle-compiler.js +63 -3
  553. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  554. package/daemon/dist/domain/projection-planner.js +1 -1
  555. package/daemon/dist/domain/projection-planner.js.map +1 -1
  556. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  557. package/daemon/dist/domain/proof/judgments.js +31 -2
  558. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  559. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts +33 -0
  560. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts.map +1 -0
  561. package/daemon/dist/domain/provider/claude-auth-status-reader.js +195 -0
  562. package/daemon/dist/domain/provider/claude-auth-status-reader.js.map +1 -0
  563. package/daemon/dist/domain/provider/claude-usage-windows.d.ts +70 -0
  564. package/daemon/dist/domain/provider/claude-usage-windows.d.ts.map +1 -0
  565. package/daemon/dist/domain/provider/claude-usage-windows.js +305 -0
  566. package/daemon/dist/domain/provider/claude-usage-windows.js.map +1 -0
  567. package/daemon/dist/domain/provider/codex-auth-reader.d.ts +14 -0
  568. package/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +1 -1
  569. package/daemon/dist/domain/provider/codex-auth-reader.js +41 -12
  570. package/daemon/dist/domain/provider/codex-auth-reader.js.map +1 -1
  571. package/daemon/dist/domain/provider/codex-usage-reader.d.ts +6 -1
  572. package/daemon/dist/domain/provider/codex-usage-reader.d.ts.map +1 -1
  573. package/daemon/dist/domain/provider/codex-usage-reader.js +6 -1
  574. package/daemon/dist/domain/provider/codex-usage-reader.js.map +1 -1
  575. package/daemon/dist/domain/provider/codex-usage-windows.d.ts +12 -49
  576. package/daemon/dist/domain/provider/codex-usage-windows.d.ts.map +1 -1
  577. package/daemon/dist/domain/provider/codex-usage-windows.js +16 -173
  578. package/daemon/dist/domain/provider/codex-usage-windows.js.map +1 -1
  579. package/daemon/dist/domain/provider/provider-account-readings.d.ts +42 -0
  580. package/daemon/dist/domain/provider/provider-account-readings.d.ts.map +1 -0
  581. package/daemon/dist/domain/provider/provider-account-readings.js +132 -0
  582. package/daemon/dist/domain/provider/provider-account-readings.js.map +1 -0
  583. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts +18 -0
  584. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts.map +1 -0
  585. package/daemon/dist/domain/provider/provider-seat-accounts.js +159 -0
  586. package/daemon/dist/domain/provider/provider-seat-accounts.js.map +1 -0
  587. package/daemon/dist/domain/provider/provider-service-impl.d.ts +7 -2
  588. package/daemon/dist/domain/provider/provider-service-impl.d.ts.map +1 -1
  589. package/daemon/dist/domain/provider/provider-service-impl.js +20 -2
  590. package/daemon/dist/domain/provider/provider-service-impl.js.map +1 -1
  591. package/daemon/dist/domain/provider/provider-service.d.ts +4 -2
  592. package/daemon/dist/domain/provider/provider-service.d.ts.map +1 -1
  593. package/daemon/dist/domain/provider/provider-types.d.ts +101 -4
  594. package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -1
  595. package/daemon/dist/domain/provider/reactive-tap.js +2 -0
  596. package/daemon/dist/domain/provider/reactive-tap.js.map +1 -1
  597. package/daemon/dist/domain/provider/subscription-moves.d.ts +77 -0
  598. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +1 -0
  599. package/daemon/dist/domain/provider/subscription-moves.js +140 -0
  600. package/daemon/dist/domain/provider/subscription-moves.js.map +1 -0
  601. package/daemon/dist/domain/provider/usage-across-hosts.d.ts +162 -0
  602. package/daemon/dist/domain/provider/usage-across-hosts.d.ts.map +1 -0
  603. package/daemon/dist/domain/provider/usage-across-hosts.js +569 -0
  604. package/daemon/dist/domain/provider/usage-across-hosts.js.map +1 -0
  605. package/daemon/dist/domain/provider/usage-windows.d.ts +113 -0
  606. package/daemon/dist/domain/provider/usage-windows.d.ts.map +1 -0
  607. package/daemon/dist/domain/provider/usage-windows.js +285 -0
  608. package/daemon/dist/domain/provider/usage-windows.js.map +1 -0
  609. package/daemon/dist/domain/queue-owner.d.ts +6 -0
  610. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  611. package/daemon/dist/domain/queue-owner.js +22 -0
  612. package/daemon/dist/domain/queue-owner.js.map +1 -1
  613. package/daemon/dist/domain/queue-repository.d.ts +112 -14
  614. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  615. package/daemon/dist/domain/queue-repository.js +390 -87
  616. package/daemon/dist/domain/queue-repository.js.map +1 -1
  617. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  618. package/daemon/dist/domain/queue-stuck-sweep.js +53 -22
  619. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  620. package/daemon/dist/domain/queue-transition-log.d.ts +23 -2
  621. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  622. package/daemon/dist/domain/queue-transition-log.js +98 -39
  623. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  624. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -2
  625. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  626. package/daemon/dist/domain/queue-wake-ladder.js +27 -8
  627. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  628. package/daemon/dist/domain/queue-wake-repository.d.ts +7 -1
  629. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  630. package/daemon/dist/domain/queue-wake-repository.js +54 -5
  631. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  632. package/daemon/dist/domain/reply-to-choice.d.ts +2 -0
  633. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
  634. package/daemon/dist/domain/reply-to-choice.js +2 -0
  635. package/daemon/dist/domain/reply-to-choice.js.map +1 -1
  636. package/daemon/dist/domain/restore-check-service.d.ts +10 -0
  637. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  638. package/daemon/dist/domain/restore-check-service.js +76 -12
  639. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  640. package/daemon/dist/domain/restore-guidance.d.ts +6 -0
  641. package/daemon/dist/domain/restore-guidance.d.ts.map +1 -1
  642. package/daemon/dist/domain/restore-guidance.js +21 -5
  643. package/daemon/dist/domain/restore-guidance.js.map +1 -1
  644. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  645. package/daemon/dist/domain/restore-orchestrator.js +79 -15
  646. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  647. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  648. package/daemon/dist/domain/restore-plan-preview.js +23 -19
  649. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  650. package/daemon/dist/domain/restore-policy.d.ts +26 -0
  651. package/daemon/dist/domain/restore-policy.d.ts.map +1 -0
  652. package/daemon/dist/domain/restore-policy.js +22 -0
  653. package/daemon/dist/domain/restore-policy.js.map +1 -0
  654. package/daemon/dist/domain/restore-preconditions.d.ts +2 -0
  655. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -1
  656. package/daemon/dist/domain/restore-preconditions.js +6 -1
  657. package/daemon/dist/domain/restore-preconditions.js.map +1 -1
  658. package/daemon/dist/domain/restore-runtime-compatibility.d.ts +3 -0
  659. package/daemon/dist/domain/restore-runtime-compatibility.d.ts.map +1 -0
  660. package/daemon/dist/domain/restore-runtime-compatibility.js +7 -0
  661. package/daemon/dist/domain/restore-runtime-compatibility.js.map +1 -0
  662. package/daemon/dist/domain/resume-metadata-refresher.d.ts +10 -5
  663. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  664. package/daemon/dist/domain/resume-metadata-refresher.js +115 -50
  665. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  666. package/daemon/dist/domain/resume-token-capture.d.ts +1 -1
  667. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  668. package/daemon/dist/domain/resume-token-capture.js +7 -1
  669. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  670. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  671. package/daemon/dist/domain/review/compose.js +5 -4
  672. package/daemon/dist/domain/review/compose.js.map +1 -1
  673. package/daemon/dist/domain/review/gather.d.ts +2 -1
  674. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  675. package/daemon/dist/domain/review/gather.js +25 -17
  676. package/daemon/dist/domain/review/gather.js.map +1 -1
  677. package/daemon/dist/domain/rig-lifecycle-service.d.ts +31 -8
  678. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  679. package/daemon/dist/domain/rig-lifecycle-service.js +253 -98
  680. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  681. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts +11 -1
  682. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -1
  683. package/daemon/dist/domain/rig-mode/rig-mode-store.js +69 -48
  684. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -1
  685. package/daemon/dist/domain/rig-repository.d.ts +21 -0
  686. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  687. package/daemon/dist/domain/rig-repository.js +58 -1
  688. package/daemon/dist/domain/rig-repository.js.map +1 -1
  689. package/daemon/dist/domain/rig-teardown.d.ts +4 -1
  690. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  691. package/daemon/dist/domain/rig-teardown.js +40 -2
  692. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  693. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  694. package/daemon/dist/domain/rigspec-codec.js +7 -0
  695. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  696. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  697. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  698. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  699. package/daemon/dist/domain/rigspec-instantiator.d.ts +3 -0
  700. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  701. package/daemon/dist/domain/rigspec-instantiator.js +32 -7
  702. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  703. package/daemon/dist/domain/rigspec-preflight.d.ts +4 -0
  704. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  705. package/daemon/dist/domain/rigspec-preflight.js +30 -7
  706. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  707. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  708. package/daemon/dist/domain/rigspec-schema.js +35 -2
  709. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  710. package/daemon/dist/domain/runtime-adapter.d.ts +24 -0
  711. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  712. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  713. package/daemon/dist/domain/runtime-verifier.d.ts +15 -1
  714. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  715. package/daemon/dist/domain/runtime-verifier.js +28 -4
  716. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  717. package/daemon/dist/domain/scope/logical-checkbox.js +1 -1
  718. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -1
  719. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  720. package/daemon/dist/domain/scope/scope-view-projection.js +23 -10
  721. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  722. package/daemon/dist/domain/seat-activity-service.d.ts +9 -2
  723. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  724. package/daemon/dist/domain/seat-activity-service.js +100 -15
  725. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  726. package/daemon/dist/domain/seat-attention-reconciler.d.ts +3 -0
  727. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  728. package/daemon/dist/domain/seat-attention-reconciler.js +129 -8
  729. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  730. package/daemon/dist/domain/seat-cwd-preparation.d.ts +22 -0
  731. package/daemon/dist/domain/seat-cwd-preparation.d.ts.map +1 -0
  732. package/daemon/dist/domain/seat-cwd-preparation.js +107 -0
  733. package/daemon/dist/domain/seat-cwd-preparation.js.map +1 -0
  734. package/daemon/dist/domain/seat-delivery-guard.d.ts +36 -1
  735. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  736. package/daemon/dist/domain/seat-delivery-guard.js +255 -22
  737. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  738. package/daemon/dist/domain/seat-effort.d.ts +116 -0
  739. package/daemon/dist/domain/seat-effort.d.ts.map +1 -0
  740. package/daemon/dist/domain/seat-effort.js +251 -0
  741. package/daemon/dist/domain/seat-effort.js.map +1 -0
  742. package/daemon/dist/domain/seat-env.d.ts +37 -0
  743. package/daemon/dist/domain/seat-env.d.ts.map +1 -0
  744. package/daemon/dist/domain/seat-env.js +94 -0
  745. package/daemon/dist/domain/seat-env.js.map +1 -0
  746. package/daemon/dist/domain/seat-handover-service.d.ts +5 -0
  747. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  748. package/daemon/dist/domain/seat-handover-service.js +22 -4
  749. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  750. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  751. package/daemon/dist/domain/seat-identity-reconciler.js +19 -2
  752. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  753. package/daemon/dist/domain/seat-lifecycle-service.d.ts +153 -5
  754. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  755. package/daemon/dist/domain/seat-lifecycle-service.js +509 -23
  756. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  757. package/daemon/dist/domain/seat-restart-in-place.d.ts +27 -2
  758. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
  759. package/daemon/dist/domain/seat-restart-in-place.js +82 -7
  760. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
  761. package/daemon/dist/domain/seat-status-service.d.ts +2 -0
  762. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  763. package/daemon/dist/domain/seat-status-service.js +1 -0
  764. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  765. package/daemon/dist/domain/seat-structural-activity-service.d.ts +12 -2
  766. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  767. package/daemon/dist/domain/seat-structural-activity-service.js +51 -9
  768. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  769. package/daemon/dist/domain/session-name.d.ts +8 -0
  770. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  771. package/daemon/dist/domain/session-name.js +12 -0
  772. package/daemon/dist/domain/session-name.js.map +1 -1
  773. package/daemon/dist/domain/session-registry.d.ts +13 -1
  774. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  775. package/daemon/dist/domain/session-registry.js +29 -2
  776. package/daemon/dist/domain/session-registry.js.map +1 -1
  777. package/daemon/dist/domain/session-transport.d.ts +186 -4
  778. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  779. package/daemon/dist/domain/session-transport.js +1421 -143
  780. package/daemon/dist/domain/session-transport.js.map +1 -1
  781. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +2 -0
  782. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  783. package/daemon/dist/domain/slices/slice-detail-projector.js +16 -4
  784. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  785. package/daemon/dist/domain/slices/slice-indexer.d.ts +10 -0
  786. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  787. package/daemon/dist/domain/slices/slice-indexer.js +84 -4
  788. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  789. package/daemon/dist/domain/snapshot-repository.d.ts +3 -0
  790. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  791. package/daemon/dist/domain/snapshot-repository.js +19 -2
  792. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  793. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  794. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  795. package/daemon/dist/domain/spec-library-workflow-scanner.js +24 -21
  796. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  797. package/daemon/dist/domain/spec-validation-advisory.js +1 -1
  798. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -1
  799. package/daemon/dist/domain/startup-orchestrator.d.ts +31 -3
  800. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  801. package/daemon/dist/domain/startup-orchestrator.js +218 -60
  802. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  803. package/daemon/dist/domain/startup-submission-evidence.d.ts +13 -3
  804. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  805. package/daemon/dist/domain/startup-submission-evidence.js +34 -25
  806. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  807. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  808. package/daemon/dist/domain/startup-validation.js +3 -0
  809. package/daemon/dist/domain/startup-validation.js.map +1 -1
  810. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -1
  811. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  812. package/daemon/dist/domain/successor-session-launcher.js +6 -2
  813. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  814. package/daemon/dist/domain/text-cut.d.ts +4 -0
  815. package/daemon/dist/domain/text-cut.d.ts.map +1 -0
  816. package/daemon/dist/domain/text-cut.js +7 -0
  817. package/daemon/dist/domain/text-cut.js.map +1 -0
  818. package/daemon/dist/domain/time-bound-advisory.d.ts +5 -0
  819. package/daemon/dist/domain/time-bound-advisory.d.ts.map +1 -0
  820. package/daemon/dist/domain/time-bound-advisory.js +25 -0
  821. package/daemon/dist/domain/time-bound-advisory.js.map +1 -0
  822. package/daemon/dist/domain/transcript-capture.d.ts +7 -0
  823. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  824. package/daemon/dist/domain/transcript-capture.js +22 -1
  825. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  826. package/daemon/dist/domain/transcript-rotation.d.ts +12 -4
  827. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  828. package/daemon/dist/domain/transcript-rotation.js +185 -23
  829. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  830. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  831. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  832. package/daemon/dist/domain/transcript-store.js +8 -4
  833. package/daemon/dist/domain/transcript-store.js.map +1 -1
  834. package/daemon/dist/domain/types.d.ts +67 -3
  835. package/daemon/dist/domain/types.d.ts.map +1 -1
  836. package/daemon/dist/domain/types.js.map +1 -1
  837. package/daemon/dist/domain/usage-samples-store.d.ts +8 -0
  838. package/daemon/dist/domain/usage-samples-store.d.ts.map +1 -1
  839. package/daemon/dist/domain/usage-samples-store.js +24 -5
  840. package/daemon/dist/domain/usage-samples-store.js.map +1 -1
  841. package/daemon/dist/domain/usage-series.d.ts +154 -2
  842. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  843. package/daemon/dist/domain/usage-series.js +208 -9
  844. package/daemon/dist/domain/usage-series.js.map +1 -1
  845. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  846. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  847. package/daemon/dist/domain/user-settings/settings-store.js +37 -1
  848. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  849. package/daemon/dist/domain/watchdog-delivery.d.ts +29 -0
  850. package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -0
  851. package/daemon/dist/domain/watchdog-delivery.js +113 -0
  852. package/daemon/dist/domain/watchdog-delivery.js.map +1 -0
  853. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +3 -1
  854. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  855. package/daemon/dist/domain/watchdog-jobs-repository.js +13 -1
  856. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  857. package/daemon/dist/domain/watchdog-policy-engine.d.ts +61 -1
  858. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  859. package/daemon/dist/domain/watchdog-policy-engine.js +185 -30
  860. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  861. package/daemon/dist/domain/watchdog-scheduler.d.ts.map +1 -1
  862. package/daemon/dist/domain/watchdog-scheduler.js +6 -1
  863. package/daemon/dist/domain/watchdog-scheduler.js.map +1 -1
  864. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  865. package/daemon/dist/domain/workflow-exception-escalation.js +3 -1
  866. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  867. package/daemon/dist/domain/workflow-exception-readiness.d.ts.map +1 -1
  868. package/daemon/dist/domain/workflow-exception-readiness.js +7 -3
  869. package/daemon/dist/domain/workflow-exception-readiness.js.map +1 -1
  870. package/daemon/dist/domain/workflow-instance-store.d.ts +11 -0
  871. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  872. package/daemon/dist/domain/workflow-instance-store.js +24 -6
  873. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  874. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  875. package/daemon/dist/domain/workflow-projector.js +5 -3
  876. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  877. package/daemon/dist/domain/workflow-rig-placeholder.d.ts +24 -0
  878. package/daemon/dist/domain/workflow-rig-placeholder.d.ts.map +1 -0
  879. package/daemon/dist/domain/workflow-rig-placeholder.js +43 -0
  880. package/daemon/dist/domain/workflow-rig-placeholder.js.map +1 -0
  881. package/daemon/dist/domain/workflow-runtime.d.ts +10 -1
  882. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  883. package/daemon/dist/domain/workflow-runtime.js +26 -13
  884. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  885. package/daemon/dist/domain/workflow-scope.d.ts +50 -0
  886. package/daemon/dist/domain/workflow-scope.d.ts.map +1 -0
  887. package/daemon/dist/domain/workflow-scope.js +129 -0
  888. package/daemon/dist/domain/workflow-scope.js.map +1 -0
  889. package/daemon/dist/domain/workflow-spec-cache.d.ts +10 -0
  890. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  891. package/daemon/dist/domain/workflow-spec-cache.js +13 -0
  892. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  893. package/daemon/dist/domain/workflow-types.d.ts +4 -0
  894. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  895. package/daemon/dist/domain/workflow-types.js.map +1 -1
  896. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  897. package/daemon/dist/domain/workflow-validator.js +3 -1
  898. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  899. package/daemon/dist/domain/workspace/project-read.d.ts +2 -0
  900. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
  901. package/daemon/dist/domain/workspace/project-read.js +4 -0
  902. package/daemon/dist/domain/workspace/project-read.js.map +1 -1
  903. package/daemon/dist/index.d.ts.map +1 -1
  904. package/daemon/dist/index.js +10 -0
  905. package/daemon/dist/index.js.map +1 -1
  906. package/daemon/dist/lib/pane-envelope.js +1 -1
  907. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  908. package/daemon/dist/middleware/json-body-error.d.ts +4 -3
  909. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -1
  910. package/daemon/dist/middleware/json-body-error.js +18 -4
  911. package/daemon/dist/middleware/json-body-error.js.map +1 -1
  912. package/daemon/dist/routes/activity.d.ts.map +1 -1
  913. package/daemon/dist/routes/activity.js +78 -0
  914. package/daemon/dist/routes/activity.js.map +1 -1
  915. package/daemon/dist/routes/attention.d.ts.map +1 -1
  916. package/daemon/dist/routes/attention.js +41 -1
  917. package/daemon/dist/routes/attention.js.map +1 -1
  918. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  919. package/daemon/dist/routes/bundles.js +39 -16
  920. package/daemon/dist/routes/bundles.js.map +1 -1
  921. package/daemon/dist/routes/community-harnesses.d.ts +3 -0
  922. package/daemon/dist/routes/community-harnesses.d.ts.map +1 -0
  923. package/daemon/dist/routes/community-harnesses.js +18 -0
  924. package/daemon/dist/routes/community-harnesses.js.map +1 -0
  925. package/daemon/dist/routes/compaction.d.ts +3 -0
  926. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  927. package/daemon/dist/routes/compaction.js +14 -2
  928. package/daemon/dist/routes/compaction.js.map +1 -1
  929. package/daemon/dist/routes/events.js +26 -12
  930. package/daemon/dist/routes/events.js.map +1 -1
  931. package/daemon/dist/routes/gateway.d.ts +3 -0
  932. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  933. package/daemon/dist/routes/gateway.js +15 -0
  934. package/daemon/dist/routes/gateway.js.map +1 -1
  935. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  936. package/daemon/dist/routes/hosts.js +2 -1
  937. package/daemon/dist/routes/hosts.js.map +1 -1
  938. package/daemon/dist/routes/provider.d.ts +11 -1
  939. package/daemon/dist/routes/provider.d.ts.map +1 -1
  940. package/daemon/dist/routes/provider.js +182 -10
  941. package/daemon/dist/routes/provider.js.map +1 -1
  942. package/daemon/dist/routes/query-limit.d.ts +1 -0
  943. package/daemon/dist/routes/query-limit.d.ts.map +1 -1
  944. package/daemon/dist/routes/query-limit.js +1 -1
  945. package/daemon/dist/routes/query-limit.js.map +1 -1
  946. package/daemon/dist/routes/queue.d.ts.map +1 -1
  947. package/daemon/dist/routes/queue.js +47 -4
  948. package/daemon/dist/routes/queue.js.map +1 -1
  949. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  950. package/daemon/dist/routes/restore-check.js +19 -1
  951. package/daemon/dist/routes/restore-check.js.map +1 -1
  952. package/daemon/dist/routes/rig-mode.d.ts.map +1 -1
  953. package/daemon/dist/routes/rig-mode.js +66 -11
  954. package/daemon/dist/routes/rig-mode.js.map +1 -1
  955. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  956. package/daemon/dist/routes/scope-audit.js +10 -0
  957. package/daemon/dist/routes/scope-audit.js.map +1 -1
  958. package/daemon/dist/routes/seat.d.ts.map +1 -1
  959. package/daemon/dist/routes/seat.js +76 -12
  960. package/daemon/dist/routes/seat.js.map +1 -1
  961. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  962. package/daemon/dist/routes/sessions.js +8 -2
  963. package/daemon/dist/routes/sessions.js.map +1 -1
  964. package/daemon/dist/routes/startup.d.ts.map +1 -1
  965. package/daemon/dist/routes/startup.js +9 -2
  966. package/daemon/dist/routes/startup.js.map +1 -1
  967. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  968. package/daemon/dist/routes/telemetry.js +13 -3
  969. package/daemon/dist/routes/telemetry.js.map +1 -1
  970. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  971. package/daemon/dist/routes/transcripts.js +14 -5
  972. package/daemon/dist/routes/transcripts.js.map +1 -1
  973. package/daemon/dist/routes/transport.d.ts.map +1 -1
  974. package/daemon/dist/routes/transport.js +26 -4
  975. package/daemon/dist/routes/transport.js.map +1 -1
  976. package/daemon/dist/routes/up.d.ts.map +1 -1
  977. package/daemon/dist/routes/up.js +4 -0
  978. package/daemon/dist/routes/up.js.map +1 -1
  979. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  980. package/daemon/dist/routes/workflow.js +50 -1
  981. package/daemon/dist/routes/workflow.js.map +1 -1
  982. package/daemon/dist/server.d.ts +1 -0
  983. package/daemon/dist/server.d.ts.map +1 -1
  984. package/daemon/dist/server.js +5 -1
  985. package/daemon/dist/server.js.map +1 -1
  986. package/daemon/dist/spec-validation-surface.d.ts +1 -1
  987. package/daemon/dist/spec-validation-surface.d.ts.map +1 -1
  988. package/daemon/dist/spec-validation-surface.js +1 -1
  989. package/daemon/dist/spec-validation-surface.js.map +1 -1
  990. package/daemon/dist/startup.d.ts +3 -1
  991. package/daemon/dist/startup.d.ts.map +1 -1
  992. package/daemon/dist/startup.js +160 -148
  993. package/daemon/dist/startup.js.map +1 -1
  994. package/daemon/dist/workflow-scope-surface.d.ts +2 -0
  995. package/daemon/dist/workflow-scope-surface.d.ts.map +1 -0
  996. package/daemon/dist/workflow-scope-surface.js +2 -0
  997. package/daemon/dist/workflow-scope-surface.js.map +1 -0
  998. package/daemon/docs/reference/agent-spec.md +5 -3
  999. package/daemon/docs/reference/agent-startup-guide.md +179 -6
  1000. package/daemon/docs/reference/claude-status-line.md +69 -0
  1001. package/daemon/docs/reference/getting-started.md +81 -18
  1002. package/daemon/docs/reference/keeping-a-watch.md +102 -5
  1003. package/daemon/docs/reference/project-workspace.md +70 -1
  1004. package/daemon/docs/reference/publishing-a-rig-bundle.md +11 -3
  1005. package/daemon/docs/reference/refocus-channel.md +52 -6
  1006. package/daemon/docs/reference/rig-bundle.md +26 -2
  1007. package/daemon/docs/reference/rig-spec.md +67 -6
  1008. package/daemon/docs/reference/rosters.md +29 -2
  1009. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +105 -2
  1010. package/daemon/docs/reference/scoped-operating-posture.md +12 -2
  1011. package/daemon/docs/reference/sdlc-conventions.md +39 -1
  1012. package/daemon/docs/reference/seat-delivery.md +127 -0
  1013. package/daemon/docs/reference/slack-app-setup.md +187 -29
  1014. package/daemon/docs/reference/topology-naming.md +9 -0
  1015. package/daemon/docs/reference/whats-new.md +99 -151
  1016. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -0
  1017. package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -0
  1018. package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -0
  1019. package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -0
  1020. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -0
  1021. package/daemon/specs/agents/design/product-designer/agent.yaml +1 -0
  1022. package/daemon/specs/agents/development/implementer/agent.yaml +1 -0
  1023. package/daemon/specs/agents/development/qa/agent.yaml +1 -0
  1024. package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -0
  1025. package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -0
  1026. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -0
  1027. package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
  1028. package/daemon/specs/agents/research/analyst/agent.yaml +1 -0
  1029. package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -0
  1030. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -0
  1031. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -1
  1032. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +0 -1
  1033. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  1034. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  1035. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
  1036. package/daemon/specs/rigs/launch/demo/CULTURE.md +1 -1
  1037. package/daemon/specs/rigs/launch/factory/CULTURE.md +1 -1
  1038. package/daemon/specs/rigs/launch/factory/topology/rig/CRAFT.md +2 -2
  1039. package/daemon/specs/rigs/launch/first-project/CULTURE.md +2 -1
  1040. package/daemon/specs/rigs/launch/first-project-claude/CULTURE.md +2 -1
  1041. package/daemon/specs/rigs/launch/first-project-mixed/CULTURE.md +2 -1
  1042. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +9 -2
  1043. package/daemon/specs/rigs/launch/starter/CULTURE.md +2 -1
  1044. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  1045. package/dist/bin-wrapper.d.ts +2 -1
  1046. package/dist/bin-wrapper.d.ts.map +1 -1
  1047. package/dist/bin-wrapper.js +61 -4
  1048. package/dist/bin-wrapper.js.map +1 -1
  1049. package/dist/build-info.js +3 -3
  1050. package/dist/bundle-behaviour.d.ts.map +1 -1
  1051. package/dist/bundle-behaviour.js +22 -0
  1052. package/dist/bundle-behaviour.js.map +1 -1
  1053. package/dist/client.d.ts.map +1 -1
  1054. package/dist/client.js +3 -3
  1055. package/dist/client.js.map +1 -1
  1056. package/dist/commands/add.d.ts.map +1 -1
  1057. package/dist/commands/add.js +1 -1
  1058. package/dist/commands/add.js.map +1 -1
  1059. package/dist/commands/ask.d.ts.map +1 -1
  1060. package/dist/commands/ask.js +16 -5
  1061. package/dist/commands/ask.js.map +1 -1
  1062. package/dist/commands/bootstrap.d.ts.map +1 -1
  1063. package/dist/commands/bootstrap.js +9 -5
  1064. package/dist/commands/bootstrap.js.map +1 -1
  1065. package/dist/commands/bundle.d.ts.map +1 -1
  1066. package/dist/commands/bundle.js +8 -0
  1067. package/dist/commands/bundle.js.map +1 -1
  1068. package/dist/commands/capture.d.ts +4 -0
  1069. package/dist/commands/capture.d.ts.map +1 -1
  1070. package/dist/commands/capture.js +29 -2
  1071. package/dist/commands/capture.js.map +1 -1
  1072. package/dist/commands/community-harness.d.ts +4 -0
  1073. package/dist/commands/community-harness.d.ts.map +1 -0
  1074. package/dist/commands/community-harness.js +48 -0
  1075. package/dist/commands/community-harness.js.map +1 -0
  1076. package/dist/commands/compact.d.ts.map +1 -1
  1077. package/dist/commands/compact.js +8 -4
  1078. package/dist/commands/compact.js.map +1 -1
  1079. package/dist/commands/config.d.ts.map +1 -1
  1080. package/dist/commands/config.js +9 -2
  1081. package/dist/commands/config.js.map +1 -1
  1082. package/dist/commands/crash-cart.d.ts.map +1 -1
  1083. package/dist/commands/crash-cart.js +3 -5
  1084. package/dist/commands/crash-cart.js.map +1 -1
  1085. package/dist/commands/create.d.ts.map +1 -1
  1086. package/dist/commands/create.js +7 -5
  1087. package/dist/commands/create.js.map +1 -1
  1088. package/dist/commands/doctor.d.ts.map +1 -1
  1089. package/dist/commands/doctor.js +8 -7
  1090. package/dist/commands/doctor.js.map +1 -1
  1091. package/dist/commands/down.d.ts.map +1 -1
  1092. package/dist/commands/down.js +2 -1
  1093. package/dist/commands/down.js.map +1 -1
  1094. package/dist/commands/grow.d.ts.map +1 -1
  1095. package/dist/commands/grow.js +24 -7
  1096. package/dist/commands/grow.js.map +1 -1
  1097. package/dist/commands/launch.d.ts +1 -0
  1098. package/dist/commands/launch.d.ts.map +1 -1
  1099. package/dist/commands/launch.js +61 -10
  1100. package/dist/commands/launch.js.map +1 -1
  1101. package/dist/commands/policy.d.ts +2 -1
  1102. package/dist/commands/policy.d.ts.map +1 -1
  1103. package/dist/commands/policy.js +66 -7
  1104. package/dist/commands/policy.js.map +1 -1
  1105. package/dist/commands/provider.d.ts +2 -0
  1106. package/dist/commands/provider.d.ts.map +1 -1
  1107. package/dist/commands/provider.js +372 -49
  1108. package/dist/commands/provider.js.map +1 -1
  1109. package/dist/commands/ps.d.ts +13 -0
  1110. package/dist/commands/ps.d.ts.map +1 -1
  1111. package/dist/commands/ps.js +52 -7
  1112. package/dist/commands/ps.js.map +1 -1
  1113. package/dist/commands/queue.d.ts.map +1 -1
  1114. package/dist/commands/queue.js +59 -10
  1115. package/dist/commands/queue.js.map +1 -1
  1116. package/dist/commands/remove.d.ts.map +1 -1
  1117. package/dist/commands/remove.js +20 -1
  1118. package/dist/commands/remove.js.map +1 -1
  1119. package/dist/commands/requirements.d.ts.map +1 -1
  1120. package/dist/commands/requirements.js +8 -5
  1121. package/dist/commands/requirements.js.map +1 -1
  1122. package/dist/commands/restore.js +1 -1
  1123. package/dist/commands/restore.js.map +1 -1
  1124. package/dist/commands/rig-mode.d.ts.map +1 -1
  1125. package/dist/commands/rig-mode.js +106 -18
  1126. package/dist/commands/rig-mode.js.map +1 -1
  1127. package/dist/commands/roster.d.ts +2 -1
  1128. package/dist/commands/roster.d.ts.map +1 -1
  1129. package/dist/commands/roster.js +10 -5
  1130. package/dist/commands/roster.js.map +1 -1
  1131. package/dist/commands/scope.d.ts.map +1 -1
  1132. package/dist/commands/scope.js +47 -9
  1133. package/dist/commands/scope.js.map +1 -1
  1134. package/dist/commands/seat.d.ts.map +1 -1
  1135. package/dist/commands/seat.js +203 -25
  1136. package/dist/commands/seat.js.map +1 -1
  1137. package/dist/commands/send.d.ts +2 -2
  1138. package/dist/commands/send.d.ts.map +1 -1
  1139. package/dist/commands/send.js +79 -12
  1140. package/dist/commands/send.js.map +1 -1
  1141. package/dist/commands/slack.d.ts.map +1 -1
  1142. package/dist/commands/slack.js +23 -5
  1143. package/dist/commands/slack.js.map +1 -1
  1144. package/dist/commands/start.d.ts +11 -0
  1145. package/dist/commands/start.d.ts.map +1 -1
  1146. package/dist/commands/start.js +77 -3
  1147. package/dist/commands/start.js.map +1 -1
  1148. package/dist/commands/status.d.ts.map +1 -1
  1149. package/dist/commands/status.js +60 -2
  1150. package/dist/commands/status.js.map +1 -1
  1151. package/dist/commands/up.d.ts.map +1 -1
  1152. package/dist/commands/up.js +58 -0
  1153. package/dist/commands/up.js.map +1 -1
  1154. package/dist/commands/usage.d.ts +12 -0
  1155. package/dist/commands/usage.d.ts.map +1 -1
  1156. package/dist/commands/usage.js +108 -0
  1157. package/dist/commands/usage.js.map +1 -1
  1158. package/dist/commands/watchdog.d.ts.map +1 -1
  1159. package/dist/commands/watchdog.js +20 -7
  1160. package/dist/commands/watchdog.js.map +1 -1
  1161. package/dist/commands/whoami.d.ts +36 -0
  1162. package/dist/commands/whoami.d.ts.map +1 -1
  1163. package/dist/commands/whoami.js +125 -7
  1164. package/dist/commands/whoami.js.map +1 -1
  1165. package/dist/commands/workflow.d.ts.map +1 -1
  1166. package/dist/commands/workflow.js +53 -5
  1167. package/dist/commands/workflow.js.map +1 -1
  1168. package/dist/config-store.d.ts +14 -1
  1169. package/dist/config-store.d.ts.map +1 -1
  1170. package/dist/config-store.js +50 -1
  1171. package/dist/config-store.js.map +1 -1
  1172. package/dist/daemon-lifecycle.d.ts +2 -2
  1173. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1174. package/dist/daemon-lifecycle.js +5 -4
  1175. package/dist/daemon-lifecycle.js.map +1 -1
  1176. package/dist/host-registry.d.ts.map +1 -1
  1177. package/dist/host-registry.js +6 -3
  1178. package/dist/host-registry.js.map +1 -1
  1179. package/dist/index.d.ts +1 -0
  1180. package/dist/index.d.ts.map +1 -1
  1181. package/dist/index.js +4 -7
  1182. package/dist/index.js.map +1 -1
  1183. package/dist/lazy-program.d.ts +9 -0
  1184. package/dist/lazy-program.d.ts.map +1 -0
  1185. package/dist/lazy-program.js +111 -0
  1186. package/dist/lazy-program.js.map +1 -0
  1187. package/dist/lib/bundle-check.js +2 -2
  1188. package/dist/lib/bundle-check.js.map +1 -1
  1189. package/dist/lib/bundle-source.d.ts +1 -0
  1190. package/dist/lib/bundle-source.d.ts.map +1 -1
  1191. package/dist/lib/bundle-source.js +1 -0
  1192. package/dist/lib/bundle-source.js.map +1 -1
  1193. package/dist/lib/codex-auth.d.ts.map +1 -1
  1194. package/dist/lib/codex-auth.js +17 -1
  1195. package/dist/lib/codex-auth.js.map +1 -1
  1196. package/dist/lib/context-install.js +1 -1
  1197. package/dist/lib/context-install.js.map +1 -1
  1198. package/dist/lib/file-transfer.js +1 -1
  1199. package/dist/lib/file-transfer.js.map +1 -1
  1200. package/dist/lib/frontmatter.d.ts +11 -0
  1201. package/dist/lib/frontmatter.d.ts.map +1 -0
  1202. package/dist/lib/frontmatter.js +20 -0
  1203. package/dist/lib/frontmatter.js.map +1 -0
  1204. package/dist/lib/model-observation.d.ts +13 -0
  1205. package/dist/lib/model-observation.d.ts.map +1 -0
  1206. package/dist/lib/model-observation.js +25 -0
  1207. package/dist/lib/model-observation.js.map +1 -0
  1208. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1209. package/dist/lib/permission-policy/policy-spec.js +5 -7
  1210. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1211. package/dist/lib/scope/logical-checkbox.js +1 -1
  1212. package/dist/lib/scope/logical-checkbox.js.map +1 -1
  1213. package/dist/lib/scope/scope-fs.d.ts +8 -0
  1214. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1215. package/dist/lib/scope/scope-fs.js +50 -1
  1216. package/dist/lib/scope/scope-fs.js.map +1 -1
  1217. package/dist/lib/work-install.d.ts.map +1 -1
  1218. package/dist/lib/work-install.js +3 -13
  1219. package/dist/lib/work-install.js.map +1 -1
  1220. package/dist/mcp-server.d.ts.map +1 -1
  1221. package/dist/mcp-server.js +114 -0
  1222. package/dist/mcp-server.js.map +1 -1
  1223. package/dist/program-root.d.ts +5 -0
  1224. package/dist/program-root.d.ts.map +1 -0
  1225. package/dist/program-root.js +11 -0
  1226. package/dist/program-root.js.map +1 -0
  1227. package/dist/queue-read-compact.d.ts +29 -0
  1228. package/dist/queue-read-compact.d.ts.map +1 -0
  1229. package/dist/queue-read-compact.js +74 -0
  1230. package/dist/queue-read-compact.js.map +1 -0
  1231. package/dist/remote-host-ops.d.ts +21 -0
  1232. package/dist/remote-host-ops.d.ts.map +1 -1
  1233. package/dist/remote-host-ops.js +25 -12
  1234. package/dist/remote-host-ops.js.map +1 -1
  1235. package/package.json +1 -1
  1236. package/tui/dist/attention/attention-model.js +6 -5
  1237. package/tui/dist/attention/attention-model.js.map +1 -1
  1238. package/tui/dist/attention/source-continuity.d.ts.map +1 -1
  1239. package/tui/dist/attention/source-continuity.js +2 -0
  1240. package/tui/dist/attention/source-continuity.js.map +1 -1
  1241. package/tui/dist/commands/registry.d.ts.map +1 -1
  1242. package/tui/dist/commands/registry.js +3 -0
  1243. package/tui/dist/commands/registry.js.map +1 -1
  1244. package/tui/dist/config/config-model.d.ts.map +1 -1
  1245. package/tui/dist/config/config-model.js +6 -1
  1246. package/tui/dist/config/config-model.js.map +1 -1
  1247. package/tui/dist/cost/cost-model.d.ts +12 -0
  1248. package/tui/dist/cost/cost-model.d.ts.map +1 -0
  1249. package/tui/dist/cost/cost-model.js +141 -0
  1250. package/tui/dist/cost/cost-model.js.map +1 -0
  1251. package/tui/dist/cost/cost-read.d.ts +19 -0
  1252. package/tui/dist/cost/cost-read.d.ts.map +1 -0
  1253. package/tui/dist/cost/cost-read.js +4 -0
  1254. package/tui/dist/cost/cost-read.js.map +1 -0
  1255. package/tui/dist/daemon-client.d.ts +13 -0
  1256. package/tui/dist/daemon-client.d.ts.map +1 -1
  1257. package/tui/dist/daemon-client.js +77 -1
  1258. package/tui/dist/daemon-client.js.map +1 -1
  1259. package/tui/dist/detail.d.ts +2 -0
  1260. package/tui/dist/detail.d.ts.map +1 -1
  1261. package/tui/dist/detail.js +5 -0
  1262. package/tui/dist/detail.js.map +1 -1
  1263. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1264. package/tui/dist/execution/execution-model.js +38 -18
  1265. package/tui/dist/execution/execution-model.js.map +1 -1
  1266. package/tui/dist/helper-cwd.d.ts +3 -0
  1267. package/tui/dist/helper-cwd.d.ts.map +1 -0
  1268. package/tui/dist/helper-cwd.js +16 -0
  1269. package/tui/dist/helper-cwd.js.map +1 -0
  1270. package/tui/dist/hydrate.d.ts.map +1 -1
  1271. package/tui/dist/hydrate.js +32 -1
  1272. package/tui/dist/hydrate.js.map +1 -1
  1273. package/tui/dist/input.d.ts.map +1 -1
  1274. package/tui/dist/input.js +2 -1
  1275. package/tui/dist/input.js.map +1 -1
  1276. package/tui/dist/local-reading.d.ts.map +1 -1
  1277. package/tui/dist/local-reading.js +2 -1
  1278. package/tui/dist/local-reading.js.map +1 -1
  1279. package/tui/dist/main.js +6 -5
  1280. package/tui/dist/main.js.map +1 -1
  1281. package/tui/dist/pulse/render-pulse.d.ts.map +1 -1
  1282. package/tui/dist/pulse/render-pulse.js +7 -1
  1283. package/tui/dist/pulse/render-pulse.js.map +1 -1
  1284. package/tui/dist/reading.js +1 -1
  1285. package/tui/dist/reading.js.map +1 -1
  1286. package/tui/dist/render.d.ts.map +1 -1
  1287. package/tui/dist/render.js +10 -1
  1288. package/tui/dist/render.js.map +1 -1
  1289. package/tui/dist/scopes/scopes-model.d.ts +6 -1
  1290. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1291. package/tui/dist/scopes/scopes-model.js +33 -13
  1292. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1293. package/tui/dist/sections.d.ts.map +1 -1
  1294. package/tui/dist/sections.js +4 -1
  1295. package/tui/dist/sections.js.map +1 -1
  1296. package/tui/dist/socket-server.d.ts.map +1 -1
  1297. package/tui/dist/socket-server.js +2 -1
  1298. package/tui/dist/socket-server.js.map +1 -1
  1299. package/tui/dist/specs/launch.d.ts.map +1 -1
  1300. package/tui/dist/specs/launch.js +2 -1
  1301. package/tui/dist/specs/launch.js.map +1 -1
  1302. package/tui/dist/startup.js +1 -1
  1303. package/tui/dist/startup.js.map +1 -1
  1304. package/tui/dist/state.d.ts.map +1 -1
  1305. package/tui/dist/state.js +8 -4
  1306. package/tui/dist/state.js.map +1 -1
  1307. package/tui/dist/terminals/open-window.d.ts +11 -1
  1308. package/tui/dist/terminals/open-window.d.ts.map +1 -1
  1309. package/tui/dist/terminals/open-window.js +48 -2
  1310. package/tui/dist/terminals/open-window.js.map +1 -1
  1311. package/tui/dist/types.d.ts +9 -0
  1312. package/tui/dist/types.d.ts.map +1 -1
  1313. package/tui/dist/usage/usage-hosts-model.d.ts +17 -0
  1314. package/tui/dist/usage/usage-hosts-model.d.ts.map +1 -0
  1315. package/tui/dist/usage/usage-hosts-model.js +73 -0
  1316. package/tui/dist/usage/usage-hosts-model.js.map +1 -0
  1317. package/tui/dist/usage/usage-model.d.ts +41 -0
  1318. package/tui/dist/usage/usage-model.d.ts.map +1 -0
  1319. package/tui/dist/usage/usage-model.js +196 -0
  1320. package/tui/dist/usage/usage-model.js.map +1 -0
  1321. package/ui/dist/assets/{index-DhmxKuZf.js → index-CVgod3Pm.js} +2 -2
  1322. package/ui/dist/index.html +1 -1
@@ -26,7 +26,10 @@ import { execFileSync, spawn, spawnSync } from "node:child_process";
26
26
  import { pathToFileURL } from "node:url";
27
27
  import { stripVTControlCharacters } from "node:util";
28
28
  import { formatDaemonHostForUrl } from "./daemon-url.js";
29
- import { piCredentialNotice } from "./pi-readiness.js";
29
+ import { credentialTaint, judgeChargeProvenance, piCredentialEvidence, piCredentialNotice } from "./pi-readiness.js";
30
+ import { extractPiUsageFacts, parsePiSessionHeader, tiesPiForkHeader } from "../domain/pi-usage-facts.js";
31
+ import { OpenRouterChargeLookup, openRouterGenerationFetcher } from "./pi-openrouter-charge.js";
32
+ import { OMP_MAX_FRAME_BYTES, OmpFrameDecoder, ompProtocolV2Limit } from "./omp-rpc-frame.js";
30
33
  import { piSeatPaths, buildPiChildArgs, buildPiChildEnv, buildPendingRunnerState, parsePiRunnerState, PI_RUNNER_READY_MARKER, PI_RUNNER_ERROR_MARKER, PI_PROVIDER_ENV_VARS, } from "./pi-runner-protocol.js";
31
34
  // ── Submitted input boundaries ─────────────────────────────────────────────
32
35
  // Canonical TTY buffers can overflow before Node sees even the paste terminator.
@@ -157,10 +160,11 @@ function piCredentialHint(message) {
157
160
  ? ` For managed Pi, set ${key} in the daemon environment and add ${key} to recovery.provider_auth_env_allowlist. Use model ${provider}/<id>, then restart the daemon and relaunch the seat. Default Pi logins are not automatically shared.`
158
161
  : " For managed Pi, configure this provider in the seat's PI_CODING_AGENT_DIR (auth.json or models.json). Its key is not in OpenRig's Pi environment passthrough map; default Pi logins are not automatically shared.";
159
162
  }
160
- function errorNotice(detail, runtime) {
161
- const text = typeof detail === "string"
163
+ function errorNotice(details, runtime) {
164
+ // Empty or control-only fields must not hide a later usable diagnostic.
165
+ const text = details.map(detail => typeof detail === "string"
162
166
  ? stripVTControlCharacters(detail).replace(/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/gu, " ").replace(/\s+/g, " ").trim()
163
- : "";
167
+ : "").find(Boolean) ?? "";
164
168
  const marker = runtime === "omp" ? "[omp-runner] ERROR" : PI_RUNNER_ERROR_MARKER;
165
169
  return `${marker} ${text.slice(0, 400) || "request failed"}${runtime === "pi" ? piCredentialHint(text) : ""}`;
166
170
  }
@@ -171,12 +175,11 @@ function errorNotice(detail, runtime) {
171
175
  * repeats into one notice per failure. */
172
176
  function modelErrorNotice(event, runtime) {
173
177
  if (event.type === "auto_retry_end") {
174
- return event.success === false ? { errorNotice: errorNotice(event.finalError ?? event.error, runtime) } : {};
178
+ return event.success === false ? { errorNotice: errorNotice([event.finalError, event.error], runtime) } : {};
175
179
  }
176
180
  const message = event.message;
177
181
  if (message?.role === "assistant" && message.stopReason === "error") {
178
- const detail = message.errorMessage ?? message.error ?? event.error;
179
- return { errorNotice: errorNotice(detail, runtime) };
182
+ return { errorNotice: errorNotice([message.errorMessage, message.error, event.error], runtime) };
180
183
  }
181
184
  return {};
182
185
  }
@@ -203,8 +206,11 @@ export function mapPiEvent(event, runtime = "pi") {
203
206
  // same deltas, so appending it repeated the growing text. Thinking and
204
207
  // tool-call argument deltas stay out of the pane; tool calls get their
205
208
  // own one-line summaries from tool_execution_*.
209
+ // OMP and Pi both provide text_delta frames. The enclosing message is a
210
+ // cumulative snapshot, not another delta: appending it duplicates replies.
206
211
  const update = event.assistantMessageEvent;
207
- const delta = update?.type === "text_delta" && typeof update.delta === "string" ? update.delta : "";
212
+ const hasDelta = update?.type === "text_delta" && typeof update.delta === "string";
213
+ const delta = hasDelta ? update.delta : "";
208
214
  return delta ? { mirrorLines: [], mirrorAppend: delta } : { mirrorLines: [] };
209
215
  }
210
216
  case "message_end":
@@ -253,9 +259,76 @@ export function mapPiEvent(event, runtime = "pi") {
253
259
  const GET_STATE_ID = "pi-runner-get-state";
254
260
  const CATCH_UP_ID = "pi-runner-catch-up";
255
261
  const CURSOR_REFRESH_ID = "pi-runner-cursor-refresh";
262
+ const NEGOTIATE_ID = "omp-runner-negotiate";
256
263
  /** RPC commands that carry operator input. Their failure means the seat
257
264
  * cannot do the requested work; other command failures are not attention. */
258
265
  const INPUT_COMMANDS = { prompt: true, steer: true, follow_up: true };
266
+ /** OPR.0.7.0.2: the largest fork parent read to decide a header tie; a larger parent leaves the tie unknown. */
267
+ const PARENT_SESSION_READ_LIMIT_BYTES = 64 * 1024 * 1024;
268
+ /**
269
+ * OPR.0.7.0.2: the entry ids of a fork's parent session file, read only to decide a tie with the fork header.
270
+ * Absence from the result is a claim that the parent doesn't have the entry, so only a complete, valid file
271
+ * answers: a regular file (checked on the opened handle, opened non-blocking so a FIFO or device can't stall the
272
+ * runner), at most `limitBytes` actually read from that handle, a session header first, every line a whole
273
+ * entry with an id, and no torn last line. Anything else is null (the tie stays unknown and is retried). Ids only.
274
+ */
275
+ export async function readPiSessionEntryIds(path, limitBytes = PARENT_SESSION_READ_LIMIT_BYTES,
276
+ /** Test seam only: called after the stat and after the read, to change the file at those points. */
277
+ testHooks) {
278
+ let handle;
279
+ try {
280
+ handle = await fs.promises.open(path, fs.constants.O_RDONLY | fs.constants.O_NONBLOCK);
281
+ const stat = await handle.stat();
282
+ if (!stat.isFile() || stat.size > limitBytes)
283
+ return null;
284
+ await testHooks?.afterStat?.();
285
+ // Complete only with evidence: the read reaches end of file (a read returns 0 bytes) before filling a buffer
286
+ // one byte larger than the stat, it got exactly the stat's size, and the size is unchanged afterwards. A parent
287
+ // that grew, shrank or is still being written answers nothing (the tie stays unknown and is read again later).
288
+ const buffer = Buffer.alloc(stat.size + 1);
289
+ let length = 0;
290
+ let reachedEnd = false;
291
+ while (length < buffer.length) {
292
+ const { bytesRead } = await handle.read(buffer, length, buffer.length - length, length);
293
+ if (bytesRead === 0) {
294
+ reachedEnd = true;
295
+ break;
296
+ }
297
+ length += bytesRead;
298
+ }
299
+ if (!reachedEnd || length !== stat.size || length === 0)
300
+ return null;
301
+ await testHooks?.afterRead?.();
302
+ if ((await handle.stat()).size !== length)
303
+ return null;
304
+ const text = buffer.subarray(0, length).toString("utf8");
305
+ if (!text.endsWith("\n"))
306
+ return null; // Pi ends every entry with a newline: a torn or partial write
307
+ const lines = text.slice(0, -1).split("\n");
308
+ const ids = new Set();
309
+ for (const [index, line] of lines.entries()) {
310
+ const entry = JSON.parse(line); // a malformed line throws: incomplete, so null
311
+ if (entry === null || typeof entry !== "object" || Array.isArray(entry))
312
+ return null;
313
+ const { type, id } = entry;
314
+ if (index === 0) {
315
+ if (type !== "session")
316
+ return null;
317
+ continue;
318
+ }
319
+ if (typeof id !== "string" || !id)
320
+ return null;
321
+ ids.add(id);
322
+ }
323
+ return ids;
324
+ }
325
+ catch {
326
+ return null;
327
+ }
328
+ finally {
329
+ await handle?.close().catch(() => { });
330
+ }
331
+ }
259
332
  export class RunnerCore {
260
333
  io;
261
334
  identity;
@@ -267,15 +340,37 @@ export class RunnerCore {
267
340
  ready = false;
268
341
  assistantErrorShown = false;
269
342
  started = false;
270
- /** OMP attention (runtime_error | permission_prompt) that must survive the
271
- * end of the turn; cleared by the next agent_start. */
343
+ /** OMP failures/approvals survive the turn until agent_start, except typed
344
+ * transient assistant failures, released only when agent_end completes. */
272
345
  attention = null;
273
346
  /** Whether the last activity posted is that attention. Later activity in
274
347
  * the same turn (a tool call after a denied approval) replaces it. */
275
348
  attentionIsLatest = false;
349
+ // Native OMP retry summaries have no message/status. Correlate only within
350
+ // the announced attempt, using the latest typed assistant failure's exact
351
+ // diagnostic as an identity check, never as a transient-error classifier.
352
+ retryAttempt = null;
353
+ retryFailure = null;
276
354
  /** Set once the daemon confirms it persisted the resume token. */
277
355
  identityPersisted = false;
278
356
  identityInFlight = false;
357
+ /** OPR.0.7.0.2: the session header boundary; null until it has been read (read again until it can be). */
358
+ usageBoundary = null;
359
+ /** OPR.0.7.0.2 K4: the last credential observation, and each entry's provenance judged when first observed. */
360
+ lastCredentialEvidence = null;
361
+ /** Sticky for this process: what an observation showed Pi may have loaded (see credentialTaint). */
362
+ credentialTainted = null;
363
+ chargeProvenance = new Map();
364
+ /** OPR.0.7.0.2: a fork parent read is under way (at most one at a time). */
365
+ parentReadInFlight = false;
366
+ /** OPR.0.7.0.2: the last get_entries batch reported, replayed when a parent read completes. */
367
+ latestUsageEntries = [];
368
+ /** Entry ids the daemon has accepted with a known origin. Anything else is sent again on the next refresh;
369
+ * the daemon stores each (session, entry) once regardless. */
370
+ postedUsageEntryIds = new Set();
371
+ /** #1275: OMP protocol v2. The limit offered while negotiating, then the decoder once OMP accepts. */
372
+ v2Limit = null;
373
+ frameDecoder = null;
279
374
  constructor(io, identity, opts = {}) {
280
375
  this.io = io;
281
376
  this.identity = identity;
@@ -287,14 +382,25 @@ export class RunnerCore {
287
382
  }
288
383
  /** Runner readiness is the sidecar's acknowledged get_state, not RPC transport ready. */
289
384
  isReady() { return this.ready; }
290
- /** Kick off identity capture. Called once pi's RPC stream is up. */
291
- start() {
385
+ /** Kick off identity capture. Called once pi's RPC stream is up; for OMP, with its `ready` frame. */
386
+ start(ready) {
387
+ // K4: the first credential observation, before Pi can make any request of this runner's.
388
+ if (this.opts.openRouterCharge && this.runtime === "pi" && this.io.credentialEvidence) {
389
+ // The production runner observes before it spawns Pi (launchCredentialEvidence), so Pi loads after it.
390
+ this.lastCredentialEvidence = this.opts.launchCredentialEvidence ?? this.io.credentialEvidence();
391
+ this.noteTaint(this.lastCredentialEvidence);
392
+ }
292
393
  // OMP's start is driven by the transport `ready` frame and must run once;
293
394
  // Pi keeps main's unconditional start.
294
395
  if (this.runtime === "omp") {
295
396
  if (this.started)
296
397
  return;
297
398
  this.started = true;
399
+ // #1275: v1 caps a stdout line at 1 MiB, so a longer history fails get_entries. When OMP advertises
400
+ // protocol v2, negotiate it first: OMP runs commands in order, so the replies below can then arrive chunked.
401
+ this.v2Limit = ready ? ompProtocolV2Limit(ready) : null;
402
+ if (this.v2Limit !== null)
403
+ this.io.sendRpc({ type: "negotiate_protocol", protocolVersion: 2, id: NEGOTIATE_ID });
298
404
  }
299
405
  this.io.sendRpc({ type: "get_state", id: GET_STATE_ID });
300
406
  if (this.opts.catchUpSince) {
@@ -306,27 +412,58 @@ export class RunnerCore {
306
412
  }
307
413
  /** One LF-delimited JSONL record from pi stdout. */
308
414
  handlePiLine(rawLine) {
415
+ // #1275: under OMP's protocol v2 no stdout line may exceed the 1 MiB physical frame (its LF included); a longer
416
+ // one is refused before it is parsed. Its chunkId, if any, is read from the line's start only, so the rest of
417
+ // its sequence isn't reported again.
418
+ if (this.frameDecoder) {
419
+ const bytes = Buffer.byteLength(rawLine, "utf8") + 1;
420
+ if (bytes > OMP_MAX_FRAME_BYTES) {
421
+ const chunkId = /^\{"type":"rpc_chunk","chunkId":"([^"\\]{1,128})"/.exec(rawLine.slice(0, 200))?.[1];
422
+ this.reportDroppedFrame(this.frameDecoder.rejectLine(`a ${bytes}-byte line exceeds OMP's ${OMP_MAX_FRAME_BYTES}-byte frame limit`, chunkId));
423
+ return;
424
+ }
425
+ }
309
426
  const line = rawLine.trim();
310
- if (!line)
427
+ if (!line) {
428
+ // Ignored as before, but a blank line still interrupts a pending v2 sequence: OMP never writes one inside it.
429
+ this.reportDroppedFrame(this.frameDecoder?.interrupt("a blank line"));
311
430
  return;
431
+ }
312
432
  let record;
313
433
  try {
314
434
  const parsed = JSON.parse(line);
315
- if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed))
435
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
436
+ // Not a frame: ignored as before, but it still interrupts a pending v2 sequence.
437
+ this.reportDroppedFrame(this.frameDecoder?.interrupt(`a ${parsed === null ? "null" : Array.isArray(parsed) ? "array" : typeof parsed} line`));
316
438
  return;
439
+ }
317
440
  record = parsed;
318
441
  }
319
442
  catch {
443
+ this.reportDroppedFrame(this.frameDecoder?.interrupt("a non-JSON line"));
320
444
  // Non-JSON noise on pi stdout — mirror it verbatim so nothing hides.
321
445
  this.io.mirrorLine(line);
322
446
  return;
323
447
  }
448
+ if (this.frameDecoder) {
449
+ const result = this.frameDecoder.push(record);
450
+ if ("dropped" in result)
451
+ this.reportDroppedFrame(result.dropped);
452
+ if (!("frame" in result))
453
+ return;
454
+ record = result.frame;
455
+ }
324
456
  if (record.type === "response") {
325
457
  this.handleResponse(record);
326
458
  return;
327
459
  }
328
460
  this.handleEvent(record);
329
461
  }
462
+ /** A frame that can't be reassembled is lost, and said so. If it was a get_entries reply, the cursor stays where it was. */
463
+ reportDroppedFrame(reason) {
464
+ if (reason)
465
+ this.io.mirrorLine(`[omp-runner] ERROR rpc frame: ${reason}; the chunked frame was dropped`);
466
+ }
330
467
  get runtime() { return this.opts.runtime ?? "pi"; }
331
468
  /** One aggregated paste block from pane stdin. */
332
469
  handleUserBlock(block) {
@@ -354,11 +491,23 @@ export class RunnerCore {
354
491
  /** Child process exit — honest, loud, durable. */
355
492
  handlePiExit(code) {
356
493
  this.ready = false;
494
+ this.reportDroppedFrame(this.frameDecoder?.incomplete());
357
495
  this.io.mirrorLine(`[${this.runtime}-runner] EXITED ${this.runtime} exited (code ${code ?? "unknown"})`);
358
496
  this.writeSidecar({ exited: { code, at: this.io.now() } });
359
497
  this.io.postActivity(this.activityPayload("Stop", `${this.runtime}_exited`));
360
498
  }
361
499
  handleResponse(record) {
500
+ if (record.id === NEGOTIATE_ID && this.v2Limit !== null) {
501
+ if (record.success === true) {
502
+ this.frameDecoder = new OmpFrameDecoder(this.v2Limit);
503
+ }
504
+ else {
505
+ // Advertised but refused: v1 as before, so a reply over 1 MiB still fails, visibly.
506
+ const detail = typeof record.error === "string" ? record.error : "refused";
507
+ this.io.mirrorLine(`[omp-runner] RPC protocol v2 not negotiated (${detail}); replies over 1 MiB will fail`);
508
+ }
509
+ return;
510
+ }
362
511
  if (record.success === false || record.error != null) {
363
512
  const detail = typeof record.error === "string" ? record.error : "request failed";
364
513
  const message = detail + (this.runtime === "pi" ? piCredentialHint(detail) : "");
@@ -386,6 +535,7 @@ export class RunnerCore {
386
535
  const sessionId = typeof data.sessionId === "string" ? data.sessionId : undefined;
387
536
  this.sessionFile = sessionFile ?? this.sessionFile;
388
537
  this.sessionId = sessionId ?? this.sessionId;
538
+ const wasReady = this.ready;
389
539
  this.ready = this.runtime === "pi" || !!this.sessionFile;
390
540
  if (!this.ready) {
391
541
  this.io.mirrorLine("[omp-runner] ERROR rpc get_state returned no session file; cannot provide a resume token");
@@ -393,7 +543,14 @@ export class RunnerCore {
393
543
  return;
394
544
  }
395
545
  this.writeSidecar({});
396
- this.io.mirrorLine(`${this.runtime === "omp" ? "[omp-runner] READY" : PI_RUNNER_READY_MARKER} session=${this.sessionFile ?? "unknown"}`);
546
+ if (!wasReady) {
547
+ // Only the initial transition to ready announces READY in the pane.
548
+ // Subsequent get_state evaluations confirm liveness silently to avoid
549
+ // terminal output spam while preserving state updates.
550
+ this.io.mirrorLine(`${this.runtime === "omp" ? "[omp-runner] READY" : PI_RUNNER_READY_MARKER} session=${this.sessionFile ?? "unknown"}`);
551
+ }
552
+ // Re-post session identity on every successful get_state reply so the
553
+ // daemon can discover replacement runners and keep session records current.
397
554
  this.postSessionIdentity();
398
555
  return;
399
556
  }
@@ -408,18 +565,96 @@ export class RunnerCore {
408
565
  this.lastEntryId = lastId;
409
566
  this.writeSidecar({});
410
567
  }
568
+ this.reportUsageFacts(entries);
411
569
  return;
412
570
  }
413
571
  }
572
+ /** OPR.0.7.0.2: report usage from the persisted entries a get_entries response returned (catch-up after a
573
+ * restart, or the refresh after each agent_end). Pi only, and only with --usage-facts. Never live updates. */
574
+ /** K4: what an observation shows Pi may hold for the rest of the process (an extension, a credential-bearing
575
+ * models.json entry, or a reading that couldn't be made) is sticky at once. */
576
+ noteTaint(e) {
577
+ this.credentialTainted ??= credentialTaint(e)?.sticky ?? null;
578
+ }
579
+ reportUsageFacts(entries) {
580
+ if (!this.opts.usageFacts || this.runtime !== "pi" || !this.io.postUsageFacts)
581
+ return;
582
+ if (this.usageBoundary === null) {
583
+ const firstLine = this.sessionFile && this.io.readFirstLine ? this.io.readFirstLine(this.sessionFile) : null;
584
+ this.usageBoundary = firstLine ? parsePiSessionHeader(firstLine) : null;
585
+ }
586
+ this.latestUsageEntries = entries;
587
+ const { facts, malformed } = extractPiUsageFacts(entries, this.usageBoundary);
588
+ if (this.opts.openRouterCharge && this.io.credentialEvidence) {
589
+ // Each entry's credential is judged once, from the observations before and after it was first seen.
590
+ const now = this.io.credentialEvidence();
591
+ this.noteTaint(now);
592
+ for (const fact of facts) {
593
+ if (!this.chargeProvenance.has(fact.entryId)) {
594
+ this.chargeProvenance.set(fact.entryId, this.credentialTainted
595
+ ? { ok: false, reason: this.credentialTainted }
596
+ : judgeChargeProvenance(this.lastCredentialEvidence, now, fact.entryTimestamp));
597
+ }
598
+ }
599
+ this.lastCredentialEvidence = now;
600
+ }
601
+ // A new entry often shares the fork header's millisecond, and so can a copied one: only the parent session's
602
+ // entry ids tell them apart. Read them in the background, only when such a tie needs deciding; meanwhile the
603
+ // tie goes as unknown. A complete answer is kept and these entries are reported again with it; anything
604
+ // else leaves the tie unknown, to be read again on a later refresh.
605
+ const boundary = this.usageBoundary;
606
+ if (boundary?.parentSession && !boundary.parentEntryIds && !this.parentReadInFlight && this.io.readSessionEntryIds
607
+ && facts.some((fact) => !this.postedUsageEntryIds.has(fact.entryId) && tiesPiForkHeader(fact.entryTimestamp, boundary))) {
608
+ this.parentReadInFlight = true;
609
+ void this.io.readSessionEntryIds(boundary.parentSession).then((parentEntryIds) => {
610
+ this.parentReadInFlight = false;
611
+ if (!parentEntryIds || this.usageBoundary !== boundary)
612
+ return;
613
+ this.usageBoundary = { ...boundary, parentEntryIds };
614
+ // The latest batch, so a tie that arrived while the read was under way settles now too.
615
+ this.reportUsageFacts(this.latestUsageEntries);
616
+ }, () => { this.parentReadInFlight = false; });
617
+ }
618
+ const fresh = facts.filter((fact) => !this.postedUsageEntryIds.has(fact.entryId));
619
+ if (fresh.length === 0 && malformed === 0)
620
+ return;
621
+ void this.io.postUsageFacts({
622
+ sessionName: this.identity.sessionName,
623
+ nodeId: this.identity.nodeId,
624
+ generation: this.identity.generation,
625
+ piSessionId: this.sessionId,
626
+ sessionCreatedAt: this.usageBoundary?.createdAt ?? null,
627
+ forked: this.usageBoundary ? this.usageBoundary.parentSession !== null : null,
628
+ facts: fresh,
629
+ malformed,
630
+ ...(this.opts.openRouterCharge ? { wantCharged: true } : {}),
631
+ }).then((result) => {
632
+ // Only a stored fact with a known origin is done: a failed post, or an origin not settled yet (no readable
633
+ // header, or a tie with an unreadable parent), is sent again with the next refresh (the store upgrades an
634
+ // unknown origin once it is known).
635
+ if (result === false)
636
+ return;
637
+ for (const fact of fresh)
638
+ if (fact.origin !== "unknown")
639
+ this.postedUsageEntryIds.add(fact.entryId);
640
+ // K4: the charge is looked up only for facts the daemon has stored, never for one it already has.
641
+ if (this.opts.openRouterCharge && this.sessionId && this.io.enqueueChargeLookups) {
642
+ this.io.enqueueChargeLookups(this.sessionId, fresh.map((fact) => ({
643
+ fact, provenance: this.chargeProvenance.get(fact.entryId) ?? { ok: false, reason: "its credential wasn't observed" },
644
+ })), new Set(typeof result === "object" ? result.charged : []));
645
+ }
646
+ }, () => { });
647
+ }
414
648
  raiseAttention(subtype) {
415
- // Runtime failures outrank denied approvals. Only emit when the visible
416
- // attention changes or intervening activity replaced it.
417
- const next = this.attention === "runtime_error" ? this.attention : subtype;
649
+ // Persistent failures and denied approvals outrank transient failures.
650
+ // Only emit when attention changes or intervening activity replaced it.
651
+ const next = this.attention === "runtime_error" ? this.attention
652
+ : this.attention === "permission_prompt" && subtype === "transient_turn_error" ? this.attention : subtype;
418
653
  if (this.attention === next && this.attentionIsLatest)
419
654
  return;
420
655
  this.attention = next;
421
656
  this.attentionIsLatest = true;
422
- this.io.postActivity(this.activityPayload("Notification", next));
657
+ this.io.postActivity(this.activityPayload("Notification", next === "transient_turn_error" ? "runtime_error" : next));
423
658
  }
424
659
  clearAttention() {
425
660
  this.attention = null;
@@ -452,8 +687,17 @@ export class RunnerCore {
452
687
  if (this.runtime === "omp") {
453
688
  if (event.type === "agent_start")
454
689
  this.clearAttention();
690
+ if (event.type === "agent_start" || event.type === "turn_start"
691
+ || (event.type === "message_start" && message?.role === "assistant")
692
+ || ((event.type === "message_end" || event.type === "turn_end")
693
+ && message?.role === "assistant" && message.stopReason !== "error"))
694
+ this.retryFailure = null;
695
+ if (event.type === "auto_retry_start") {
696
+ this.retryAttempt = Number.isInteger(event.attempt) && event.attempt > 0 ? event.attempt : null;
697
+ this.retryFailure = null;
698
+ }
455
699
  // A successful automatic retry supersedes the failed attempt.
456
- if (event.type === "auto_retry_start" && this.attention === "runtime_error")
700
+ if (event.type === "auto_retry_start" && (this.attention === "runtime_error" || this.attention === "transient_turn_error"))
457
701
  this.clearAttention();
458
702
  // Some paths omit agent_start; turn_start still opens a new turn.
459
703
  if (event.type === "turn_start")
@@ -487,13 +731,37 @@ export class RunnerCore {
487
731
  this.io.mirrorLine(mapped.errorNotice);
488
732
  }
489
733
  this.assistantErrorShown = true;
490
- // OMP still ends the turn normally after a model failure; the operator
491
- // has to act, so the seat shows attention rather than idle.
492
- if (this.runtime === "omp")
493
- this.raiseAttention("runtime_error");
734
+ // Only typed, explicitly transient HTTP failures may release the send
735
+ // guard at agent_end. Unknown/auth/configuration failures stay attention;
736
+ // diagnostic prose is never used to decide whether a retry is safe.
737
+ const status = message?.errorStatus;
738
+ const transient = (event.type === "message_end" || event.type === "turn_end")
739
+ && message?.role === "assistant" && message.stopReason === "error"
740
+ && typeof status === "number" && [408, 429, 500, 502, 503, 504, 529].includes(status);
741
+ if (this.runtime === "omp") {
742
+ const retrySummary = event.type === "auto_retry_end" && event.success === false
743
+ && this.retryAttempt !== null && event.attempt === this.retryAttempt
744
+ && this.retryFailure !== null && event.finalError === this.retryFailure
745
+ && event.message === undefined && event.error === undefined;
746
+ if (event.type !== "auto_retry_end") {
747
+ this.retryFailure = transient && this.retryAttempt !== null && typeof message?.errorMessage === "string"
748
+ && message.errorMessage.length > 0 ? message.errorMessage : null;
749
+ }
750
+ else if (!retrySummary) {
751
+ this.retryFailure = null;
752
+ }
753
+ this.raiseAttention(transient || retrySummary ? "transient_turn_error" : "runtime_error");
754
+ }
755
+ }
756
+ if (this.runtime === "omp" && (event.type === "auto_retry_end" && event.success === true
757
+ || event.type === "agent_end" && event.isTerminal !== false)) {
758
+ this.retryAttempt = null;
759
+ this.retryFailure = null;
494
760
  }
495
761
  if (!mapped.activity)
496
762
  return;
763
+ if (event.type === "agent_end" && this.attention === "transient_turn_error")
764
+ this.clearAttention();
497
765
  if (mapped.activity.hookEvent === "Stop" && this.attention) {
498
766
  // The turn ended, but the operator still has to act. Drop the Stop; if
499
767
  // later activity replaced the attention, restore it as the final state.
@@ -561,8 +829,11 @@ export class RunnerCore {
561
829
  }
562
830
  export function parseRunnerArgs(argv) {
563
831
  const args = {};
832
+ // The tokens read as flags; a value, such as a --thinking of "--approval-mode", never counts as one.
833
+ const flags = new Set();
564
834
  for (let i = 0; i < argv.length; i++) {
565
835
  const flag = argv[i];
836
+ flags.add(flag);
566
837
  const next = () => {
567
838
  const value = argv[++i];
568
839
  if (value === undefined)
@@ -592,12 +863,21 @@ export function parseRunnerArgs(argv) {
592
863
  case "--model":
593
864
  args.model = next();
594
865
  break;
866
+ case "--thinking":
867
+ args.thinking = next();
868
+ break;
595
869
  case "--session":
596
870
  args.sessionFile = next();
597
871
  break;
598
872
  case "--fork":
599
873
  args.forkRef = next();
600
874
  break;
875
+ case "--usage-facts":
876
+ args.usageFacts = true;
877
+ break;
878
+ case "--openrouter-charge":
879
+ args.openRouterCharge = true;
880
+ break;
601
881
  case "--approve":
602
882
  args.trust = "approve";
603
883
  break;
@@ -623,11 +903,11 @@ export function parseRunnerArgs(argv) {
623
903
  if (!args.launchId)
624
904
  throw new Error("--launch-id is required (launch-attempt scoping)");
625
905
  if (args.runtime === "omp") {
626
- if (!argv.includes("--approval-mode") || argv.some((flag) => flag === "--approve" || flag === "--no-approve")) {
906
+ if (!flags.has("--approval-mode") || flags.has("--approve") || flags.has("--no-approve")) {
627
907
  throw new Error("OMP requires --approval-mode yolo or always-ask, not Pi trust flags");
628
908
  }
629
909
  }
630
- else if (!args.trust || argv.includes("--approval-mode")) {
910
+ else if (!args.trust || flags.has("--approval-mode")) {
631
911
  throw new Error("an explicit trust flag is required: --approve or --no-approve");
632
912
  }
633
913
  if (args.sessionFile && args.forkRef)
@@ -776,6 +1056,7 @@ export async function main(argv = process.argv.slice(2)) {
776
1056
  sessionsDir: paths.sessionsDir,
777
1057
  sessionName: args.sessionName,
778
1058
  model: args.model,
1059
+ thinking: args.thinking,
779
1060
  trust: args.trust,
780
1061
  sessionFile: args.sessionFile,
781
1062
  forkRef: args.forkRef,
@@ -815,6 +1096,40 @@ export async function main(argv = process.argv.slice(2)) {
815
1096
  }
816
1097
  command = resolved.path;
817
1098
  }
1099
+ // OPR.0.7.0.2 K4: OpenRouter's charge, looked up with the key this runner forwarded to Pi, only for requests whose
1100
+ // credential is established as that key by the observations before and after them.
1101
+ const readMetadata = (file) => {
1102
+ if (fs.statSync(file).size > 1024 * 1024)
1103
+ throw new Error("Unbounded metadata");
1104
+ return fs.readFileSync(file, "utf8");
1105
+ };
1106
+ const credentialEvidence = () => piCredentialEvidence({
1107
+ agentDir: paths.agentDir, cwd: args.cwd, env: childEnv, now: () => Date.now(), readFile: readMetadata,
1108
+ statId: (file) => {
1109
+ try {
1110
+ const st = fs.statSync(file);
1111
+ return `${st.dev}:${st.ino}:${st.size}:${st.mtimeMs}`;
1112
+ }
1113
+ catch (error) {
1114
+ if (error?.code === "ENOENT")
1115
+ return "absent";
1116
+ throw error;
1117
+ }
1118
+ },
1119
+ listDir: (dir) => {
1120
+ try {
1121
+ return fs.readdirSync(dir);
1122
+ }
1123
+ catch (error) {
1124
+ if (error?.code === "ENOENT")
1125
+ return [];
1126
+ throw error;
1127
+ }
1128
+ },
1129
+ });
1130
+ // Observed before Pi is spawned, so whatever Pi loads at its start was there for this observation to see
1131
+ // (or was added after it, and is then seen by the next one).
1132
+ const launchCredentialEvidence = args.openRouterCharge === true && runtime === "pi" ? credentialEvidence() : undefined;
818
1133
  const child = spawn(command, childArgs, {
819
1134
  cwd: args.cwd,
820
1135
  env: childEnv,
@@ -822,6 +1137,28 @@ export async function main(argv = process.argv.slice(2)) {
822
1137
  });
823
1138
  // The child may close its pipe before the first RPC write completes.
824
1139
  child.stdin.on("error", () => { });
1140
+ const chargeLookup = new OpenRouterChargeLookup({
1141
+ fetchGeneration: openRouterGenerationFetcher(() => childEnv["OPENROUTER_API_KEY"]),
1142
+ postCharges: async (piSessionId, charges) => {
1143
+ if (!endpoint || typeof fetch !== "function")
1144
+ return false;
1145
+ const controller = new AbortController();
1146
+ const timeout = setTimeout(() => controller.abort(), 3000);
1147
+ return fetch(new URL("/api/activity/pi-usage-charges", endpoint.baseUrl).toString(), {
1148
+ method: "POST",
1149
+ headers: { "content-type": "application/json", authorization: `Bearer ${endpoint.token}` },
1150
+ body: JSON.stringify({ sessionName: args.sessionName, nodeId: process.env.OPENRIG_NODE_ID, piSessionId, charges }),
1151
+ signal: controller.signal,
1152
+ }).then(async (res) => {
1153
+ if (!res.ok)
1154
+ return false;
1155
+ const reply = await res.json().catch(() => null);
1156
+ return new Set(Array.isArray(reply?.acknowledged) ? reply.acknowledged.filter((id) => typeof id === "string") : []);
1157
+ }, () => false).finally(() => clearTimeout(timeout));
1158
+ },
1159
+ schedule: (fn, ms) => { setTimeout(fn, ms).unref(); },
1160
+ notice: (line) => { process.stdout.write(`${line}\n`); },
1161
+ });
825
1162
  const io = {
826
1163
  sendRpc: (cmd) => {
827
1164
  try {
@@ -862,12 +1199,52 @@ export async function main(argv = process.argv.slice(2)) {
862
1199
  now: () => new Date().toISOString(),
863
1200
  stopChild: () => { child.kill(); },
864
1201
  sessionFileExists: (path) => fs.existsSync(path),
1202
+ postUsageFacts: async (payload) => {
1203
+ if (!endpoint || typeof fetch !== "function")
1204
+ return false;
1205
+ const controller = new AbortController();
1206
+ const timeout = setTimeout(() => controller.abort(), 3000);
1207
+ return fetch(new URL("/api/activity/pi-usage", endpoint.baseUrl).toString(), {
1208
+ method: "POST",
1209
+ headers: { "content-type": "application/json", authorization: `Bearer ${endpoint.token}` },
1210
+ body: JSON.stringify(payload),
1211
+ signal: controller.signal,
1212
+ }).then(async (res) => {
1213
+ if (!res.ok)
1214
+ return false;
1215
+ const reply = await res.json().catch(() => null);
1216
+ return { charged: Array.isArray(reply?.charged) ? reply.charged.filter((id) => typeof id === "string") : [] };
1217
+ }, () => false /* best-effort: a later refresh re-sends what wasn't stored */).finally(() => clearTimeout(timeout));
1218
+ },
1219
+ ...(args.openRouterCharge === true && runtime === "pi" ? {
1220
+ enqueueChargeLookups: (piSessionId, items, charged) => chargeLookup.enqueue(piSessionId, items, charged),
1221
+ credentialEvidence,
1222
+ } : {}),
1223
+ readFirstLine: (path) => {
1224
+ try {
1225
+ const fd = fs.openSync(path, "r");
1226
+ try {
1227
+ const buffer = Buffer.alloc(8192);
1228
+ const read = fs.readSync(fd, buffer, 0, buffer.length, 0);
1229
+ const text = buffer.subarray(0, read).toString("utf8");
1230
+ const end = text.indexOf("\n");
1231
+ return end >= 0 ? text.slice(0, end) : null;
1232
+ }
1233
+ finally {
1234
+ fs.closeSync(fd);
1235
+ }
1236
+ }
1237
+ catch {
1238
+ return null;
1239
+ }
1240
+ },
1241
+ readSessionEntryIds: (path) => readPiSessionEntryIds(path),
865
1242
  };
866
1243
  const core = new RunnerCore(io, {
867
1244
  sessionName: args.sessionName, nodeId: process.env.OPENRIG_NODE_ID, launchId: args.launchId,
868
1245
  // Carry the emitting tenure; never infer it from a later daemon read or Pi event.
869
1246
  generation: process.env.OPENRIG_OCCUPANT_GENERATION,
870
- }, { catchUpSince, runtime });
1247
+ }, { catchUpSince, runtime, usageFacts: args.usageFacts === true, openRouterCharge: args.openRouterCharge === true, launchCredentialEvidence });
871
1248
  let transportUp = runtime === "pi";
872
1249
  readline.createInterface({ input: child.stdout }).on("line", (line) => {
873
1250
  if (runtime === "omp" && !core.isReady()) {
@@ -875,7 +1252,7 @@ export async function main(argv = process.argv.slice(2)) {
875
1252
  const frame = JSON.parse(line);
876
1253
  if (frame.type === "ready") {
877
1254
  transportUp = true;
878
- core.start();
1255
+ core.start(frame);
879
1256
  }
880
1257
  }
881
1258
  catch { /* surface non-JSON stdout through the core */ }