@openrig/cli 0.6.11 → 0.6.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1182) hide show
  1. package/README.md +7 -4
  2. package/daemon/assets/claude-statusline-context.cjs +2 -0
  3. package/daemon/assets/guidance/openrig-start.md +2 -1
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/README.md +30 -7
  7. package/daemon/assets/plugins/openrig-core/hooks/claude.json +7 -7
  8. package/daemon/assets/plugins/openrig-core/hooks/codex.json +2 -2
  9. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +77 -0
  10. package/daemon/assets/plugins/openrig-core/hooks/scripts/compaction-restore-bridge.cjs +23 -0
  11. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +4 -2
  12. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +69 -16
  13. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +24 -0
  14. package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +25 -5
  15. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +4 -2
  16. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +10 -1
  17. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +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/retiring-and-inheriting-a-seat/SKILL.md +5 -2
  22. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +19 -0
  23. package/daemon/assets/skills/rigs/SKILL.md +55 -9
  24. package/daemon/context-packs/help/manifest.yaml +1 -1
  25. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  26. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +106 -37
  27. package/daemon/context-packs/reference/getting-started.md +39 -6
  28. package/daemon/context-packs/reference/manifest.yaml +1 -1
  29. package/daemon/context-packs/reference/rig-spec.md +64 -3
  30. package/daemon/context-packs/reference/whats-new.md +167 -146
  31. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  34. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +24 -0
  36. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +1 -1
  45. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +0 -1
  47. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  49. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  55. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/delegating-work/SKILL.md +25 -5
  58. package/daemon/context-packs/skills/delegating-work/manifest.yaml +3 -3
  59. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +4 -2
  60. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +10 -1
  63. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/openrig-user/SKILL.md +172 -11
  66. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +7 -4
  68. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +1 -1
  78. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/queue-handoff/SKILL.md +8 -0
  89. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/SKILL.md +5 -2
  92. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  94. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +19 -0
  95. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  96. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  97. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  98. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  99. package/daemon/dist/adapters/bounded-probe-exec.d.ts +45 -0
  100. package/daemon/dist/adapters/bounded-probe-exec.d.ts.map +1 -0
  101. package/daemon/dist/adapters/bounded-probe-exec.js +204 -0
  102. package/daemon/dist/adapters/bounded-probe-exec.js.map +1 -0
  103. package/daemon/dist/adapters/claude-code-adapter.d.ts +17 -1
  104. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  105. package/daemon/dist/adapters/claude-code-adapter.js +173 -32
  106. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  107. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  108. package/daemon/dist/adapters/claude-resume.js +14 -3
  109. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  110. package/daemon/dist/adapters/codex-resume.d.ts +5 -0
  111. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  112. package/daemon/dist/adapters/codex-resume.js +17 -3
  113. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  114. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +38 -1
  115. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  116. package/daemon/dist/adapters/codex-runtime-adapter.js +137 -5
  117. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  118. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts +46 -0
  119. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts.map +1 -0
  120. package/daemon/dist/adapters/community-harness-runtime-adapter.js +102 -0
  121. package/daemon/dist/adapters/community-harness-runtime-adapter.js.map +1 -0
  122. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  123. package/daemon/dist/adapters/compose-services-adapter.js +2 -1
  124. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  125. package/daemon/dist/adapters/kernel-authority.d.ts +8 -1
  126. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  127. package/daemon/dist/adapters/kernel-authority.js +35 -10
  128. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  129. package/daemon/dist/adapters/omp-rpc-frame.d.ts +51 -0
  130. package/daemon/dist/adapters/omp-rpc-frame.d.ts.map +1 -0
  131. package/daemon/dist/adapters/omp-rpc-frame.js +153 -0
  132. package/daemon/dist/adapters/omp-rpc-frame.js.map +1 -0
  133. package/daemon/dist/adapters/pi-openrouter-charge.d.ts +67 -0
  134. package/daemon/dist/adapters/pi-openrouter-charge.d.ts.map +1 -0
  135. package/daemon/dist/adapters/pi-openrouter-charge.js +228 -0
  136. package/daemon/dist/adapters/pi-openrouter-charge.js.map +1 -0
  137. package/daemon/dist/adapters/pi-readiness.d.ts +81 -5
  138. package/daemon/dist/adapters/pi-readiness.d.ts.map +1 -1
  139. package/daemon/dist/adapters/pi-readiness.js +193 -27
  140. package/daemon/dist/adapters/pi-readiness.js.map +1 -1
  141. package/daemon/dist/adapters/pi-resume.d.ts +4 -0
  142. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  143. package/daemon/dist/adapters/pi-resume.js +2 -0
  144. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  145. package/daemon/dist/adapters/pi-runner-protocol.d.ts +4 -0
  146. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  147. package/daemon/dist/adapters/pi-runner-protocol.js +5 -0
  148. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  149. package/daemon/dist/adapters/pi-runner.d.ts +67 -2
  150. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  151. package/daemon/dist/adapters/pi-runner.js +333 -13
  152. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  153. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +16 -1
  154. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  155. package/daemon/dist/adapters/pi-runtime-adapter.js +17 -0
  156. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  157. package/daemon/dist/adapters/preflight-exec.d.ts +3 -0
  158. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -1
  159. package/daemon/dist/adapters/preflight-exec.js +15 -7
  160. package/daemon/dist/adapters/preflight-exec.js.map +1 -1
  161. package/daemon/dist/adapters/replace-file.d.ts +8 -0
  162. package/daemon/dist/adapters/replace-file.d.ts.map +1 -0
  163. package/daemon/dist/adapters/replace-file.js +32 -0
  164. package/daemon/dist/adapters/replace-file.js.map +1 -0
  165. package/daemon/dist/adapters/tmux-control.d.ts +119 -0
  166. package/daemon/dist/adapters/tmux-control.d.ts.map +1 -0
  167. package/daemon/dist/adapters/tmux-control.js +547 -0
  168. package/daemon/dist/adapters/tmux-control.js.map +1 -0
  169. package/daemon/dist/adapters/tmux-exec.d.ts +18 -4
  170. package/daemon/dist/adapters/tmux-exec.d.ts.map +1 -1
  171. package/daemon/dist/adapters/tmux-exec.js +98 -17
  172. package/daemon/dist/adapters/tmux-exec.js.map +1 -1
  173. package/daemon/dist/adapters/tmux.d.ts +52 -15
  174. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  175. package/daemon/dist/adapters/tmux.js +232 -58
  176. package/daemon/dist/adapters/tmux.js.map +1 -1
  177. package/daemon/dist/build-info.js +3 -3
  178. package/daemon/dist/composer-prompts-surface.d.ts +2 -0
  179. package/daemon/dist/composer-prompts-surface.d.ts.map +1 -0
  180. package/daemon/dist/composer-prompts-surface.js +2 -0
  181. package/daemon/dist/composer-prompts-surface.js.map +1 -0
  182. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  183. package/daemon/dist/db/all-migrations.js +24 -0
  184. package/daemon/dist/db/all-migrations.js.map +1 -1
  185. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts +3 -0
  186. package/daemon/dist/db/migrations/100_typing_guard_modes.d.ts.map +1 -0
  187. package/daemon/dist/db/migrations/100_typing_guard_modes.js +10 -0
  188. package/daemon/dist/db/migrations/100_typing_guard_modes.js.map +1 -0
  189. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts +3 -0
  190. package/daemon/dist/db/migrations/104_node_effort_choice.d.ts.map +1 -0
  191. package/daemon/dist/db/migrations/104_node_effort_choice.js +10 -0
  192. package/daemon/dist/db/migrations/104_node_effort_choice.js.map +1 -0
  193. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts +9 -0
  194. package/daemon/dist/db/migrations/105_usage_samples_client_cost.d.ts.map +1 -0
  195. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js +14 -0
  196. package/daemon/dist/db/migrations/105_usage_samples_client_cost.js.map +1 -0
  197. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts +10 -0
  198. package/daemon/dist/db/migrations/107_pi_usage_entries.d.ts.map +1 -0
  199. package/daemon/dist/db/migrations/107_pi_usage_entries.js +38 -0
  200. package/daemon/dist/db/migrations/107_pi_usage_entries.js.map +1 -0
  201. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts +12 -0
  202. package/daemon/dist/db/migrations/108_pi_usage_charges.d.ts.map +1 -0
  203. package/daemon/dist/db/migrations/108_pi_usage_charges.js +39 -0
  204. package/daemon/dist/db/migrations/108_pi_usage_charges.js.map +1 -0
  205. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts +5 -0
  206. package/daemon/dist/db/migrations/109_mode_posture_coexist.d.ts.map +1 -0
  207. package/daemon/dist/db/migrations/109_mode_posture_coexist.js +11 -0
  208. package/daemon/dist/db/migrations/109_mode_posture_coexist.js.map +1 -0
  209. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts +10 -0
  210. package/daemon/dist/db/migrations/110_workflow_instance_scope.d.ts.map +1 -0
  211. package/daemon/dist/db/migrations/110_workflow_instance_scope.js +14 -0
  212. package/daemon/dist/db/migrations/110_workflow_instance_scope.js.map +1 -0
  213. package/daemon/dist/db/migrations/111_seat_env.d.ts +6 -0
  214. package/daemon/dist/db/migrations/111_seat_env.d.ts.map +1 -0
  215. package/daemon/dist/db/migrations/111_seat_env.js +11 -0
  216. package/daemon/dist/db/migrations/111_seat_env.js.map +1 -0
  217. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts +3 -0
  218. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.d.ts.map +1 -0
  219. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js +14 -0
  220. package/daemon/dist/db/migrations/112_queue_transitions_ts_qitem.js.map +1 -0
  221. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts +3 -0
  222. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.d.ts.map +1 -0
  223. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js +9 -0
  224. package/daemon/dist/db/migrations/113_applied_launch_daemon_opt_out.js.map +1 -0
  225. package/daemon/dist/db/migrations/114_session_agent_app.d.ts +3 -0
  226. package/daemon/dist/db/migrations/114_session_agent_app.d.ts.map +1 -0
  227. package/daemon/dist/db/migrations/114_session_agent_app.js +11 -0
  228. package/daemon/dist/db/migrations/114_session_agent_app.js.map +1 -0
  229. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts +3 -0
  230. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.d.ts.map +1 -0
  231. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js +28 -0
  232. package/daemon/dist/db/migrations/115_thread_seat_map_channel_key.js.map +1 -0
  233. package/daemon/dist/domain/activity-taxonomy.d.ts +13 -5
  234. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  235. package/daemon/dist/domain/activity-taxonomy.js +14 -2
  236. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  237. package/daemon/dist/domain/agent-activity-store.d.ts +2 -0
  238. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  239. package/daemon/dist/domain/agent-activity-store.js +14 -8
  240. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  241. package/daemon/dist/domain/agent-images/agent-image-library-service.js +1 -1
  242. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  243. package/daemon/dist/domain/agent-images/manifest-parser.js +1 -1
  244. package/daemon/dist/domain/agent-images/manifest-parser.js.map +1 -1
  245. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  246. package/daemon/dist/domain/agent-manifest.js +21 -3
  247. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  248. package/daemon/dist/domain/applied-launch-observation-store.d.ts +2 -0
  249. package/daemon/dist/domain/applied-launch-observation-store.d.ts.map +1 -1
  250. package/daemon/dist/domain/applied-launch-observation-store.js +27 -3
  251. package/daemon/dist/domain/applied-launch-observation-store.js.map +1 -1
  252. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +3 -0
  253. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  254. package/daemon/dist/domain/bootstrap-orchestrator.js +49 -16
  255. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  256. package/daemon/dist/domain/built-in-runtimes.d.ts +10 -0
  257. package/daemon/dist/domain/built-in-runtimes.d.ts.map +1 -0
  258. package/daemon/dist/domain/built-in-runtimes.js +14 -0
  259. package/daemon/dist/domain/built-in-runtimes.js.map +1 -0
  260. package/daemon/dist/domain/bundle-archive.d.ts +3 -1
  261. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  262. package/daemon/dist/domain/bundle-archive.js +5 -3
  263. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  264. package/daemon/dist/domain/bundle-behaviour.d.ts +20 -0
  265. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
  266. package/daemon/dist/domain/bundle-behaviour.js +57 -1
  267. package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
  268. package/daemon/dist/domain/bundle-integrity.d.ts +5 -2
  269. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  270. package/daemon/dist/domain/bundle-integrity.js +39 -8
  271. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  272. package/daemon/dist/domain/bundle-source-resolver.d.ts +3 -1
  273. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  274. package/daemon/dist/domain/bundle-source-resolver.js +7 -2
  275. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  276. package/daemon/dist/domain/bundle-types.d.ts +6 -0
  277. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  278. package/daemon/dist/domain/bundle-types.js +26 -0
  279. package/daemon/dist/domain/bundle-types.js.map +1 -1
  280. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  281. package/daemon/dist/domain/chat-repository.js +3 -2
  282. package/daemon/dist/domain/chat-repository.js.map +1 -1
  283. package/daemon/dist/domain/claim-service.d.ts +6 -0
  284. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  285. package/daemon/dist/domain/claim-service.js +20 -1
  286. package/daemon/dist/domain/claim-service.js.map +1 -1
  287. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +63 -2
  288. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  289. package/daemon/dist/domain/claude-compaction-enforcer.js +154 -16
  290. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  291. package/daemon/dist/domain/claude-core-plugin-env.d.ts +26 -0
  292. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -0
  293. package/daemon/dist/domain/claude-core-plugin-env.js +86 -0
  294. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -0
  295. package/daemon/dist/domain/claude-managed-launch.d.ts +13 -6
  296. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  297. package/daemon/dist/domain/claude-managed-launch.js +58 -5
  298. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  299. package/daemon/dist/domain/codex-thread-id.d.ts +22 -3
  300. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  301. package/daemon/dist/domain/codex-thread-id.js +65 -16
  302. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  303. package/daemon/dist/domain/community-harness-presets.d.ts +38 -0
  304. package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -0
  305. package/daemon/dist/domain/community-harness-presets.js +155 -0
  306. package/daemon/dist/domain/community-harness-presets.js.map +1 -0
  307. package/daemon/dist/domain/composer-prompts.d.ts +118 -0
  308. package/daemon/dist/domain/composer-prompts.d.ts.map +1 -0
  309. package/daemon/dist/domain/composer-prompts.js +165 -0
  310. package/daemon/dist/domain/composer-prompts.js.map +1 -0
  311. package/daemon/dist/domain/context-monitor.d.ts +3 -0
  312. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  313. package/daemon/dist/domain/context-monitor.js +14 -2
  314. package/daemon/dist/domain/context-monitor.js.map +1 -1
  315. package/daemon/dist/domain/context-packs/context-pack-library-service.js +2 -2
  316. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  317. package/daemon/dist/domain/context-packs/manifest-parser.js +1 -1
  318. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  319. package/daemon/dist/domain/context-usage-store.d.ts +4 -0
  320. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  321. package/daemon/dist/domain/context-usage-store.js +1 -0
  322. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  323. package/daemon/dist/domain/current-work.js +2 -2
  324. package/daemon/dist/domain/current-work.js.map +1 -1
  325. package/daemon/dist/domain/draft-aware-delivery.d.ts +32 -0
  326. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -0
  327. package/daemon/dist/domain/draft-aware-delivery.js +156 -0
  328. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -0
  329. package/daemon/dist/domain/event-bus.d.ts +10 -1
  330. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  331. package/daemon/dist/domain/event-bus.js +25 -0
  332. package/daemon/dist/domain/event-bus.js.map +1 -1
  333. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  334. package/daemon/dist/domain/execution-view.js +76 -10
  335. package/daemon/dist/domain/execution-view.js.map +1 -1
  336. package/daemon/dist/domain/frontmatter.d.ts +11 -0
  337. package/daemon/dist/domain/frontmatter.d.ts.map +1 -0
  338. package/daemon/dist/domain/frontmatter.js +20 -0
  339. package/daemon/dist/domain/frontmatter.js.map +1 -0
  340. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +11 -0
  341. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  342. package/daemon/dist/domain/gateway/gateway-subsystem.js +7 -0
  343. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  344. package/daemon/dist/domain/gateway/human-registry.d.ts +6 -1
  345. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  346. package/daemon/dist/domain/gateway/human-registry.js +7 -0
  347. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  348. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts +54 -0
  349. package/daemon/dist/domain/gateway/slack/bot-inbox.d.ts.map +1 -0
  350. package/daemon/dist/domain/gateway/slack/bot-inbox.js +86 -0
  351. package/daemon/dist/domain/gateway/slack/bot-inbox.js.map +1 -0
  352. package/daemon/dist/domain/gateway/slack/capabilities.d.ts.map +1 -1
  353. package/daemon/dist/domain/gateway/slack/capabilities.js +1 -0
  354. package/daemon/dist/domain/gateway/slack/capabilities.js.map +1 -1
  355. package/daemon/dist/domain/gateway/slack/channel-map.d.ts +11 -1
  356. package/daemon/dist/domain/gateway/slack/channel-map.d.ts.map +1 -1
  357. package/daemon/dist/domain/gateway/slack/channel-map.js +31 -6
  358. package/daemon/dist/domain/gateway/slack/channel-map.js.map +1 -1
  359. package/daemon/dist/domain/gateway/slack/config.d.ts +14 -0
  360. package/daemon/dist/domain/gateway/slack/config.d.ts.map +1 -1
  361. package/daemon/dist/domain/gateway/slack/config.js +28 -0
  362. package/daemon/dist/domain/gateway/slack/config.js.map +1 -1
  363. package/daemon/dist/domain/gateway/slack/forwarding.d.ts +32 -0
  364. package/daemon/dist/domain/gateway/slack/forwarding.d.ts.map +1 -0
  365. package/daemon/dist/domain/gateway/slack/forwarding.js +76 -0
  366. package/daemon/dist/domain/gateway/slack/forwarding.js.map +1 -0
  367. package/daemon/dist/domain/gateway/slack/inbound.d.ts +99 -1
  368. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  369. package/daemon/dist/domain/gateway/slack/inbound.js +325 -7
  370. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  371. package/daemon/dist/domain/gateway/slack/message.d.ts +28 -0
  372. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  373. package/daemon/dist/domain/gateway/slack/message.js +105 -4
  374. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  375. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  376. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  377. package/daemon/dist/domain/gateway/slack/outbound-driver.js +1 -0
  378. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  379. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +1 -1
  380. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  381. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +10 -0
  382. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  383. package/daemon/dist/domain/gateway/slack/slack-api.js +13 -0
  384. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  385. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +2 -0
  386. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  387. package/daemon/dist/domain/gateway/slack/slack-delivery.js +12 -2
  388. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  389. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -0
  390. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  391. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +133 -20
  392. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  393. package/daemon/dist/domain/gateway/slack/state-store.d.ts +9 -2
  394. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  395. package/daemon/dist/domain/gateway/slack/state-store.js +24 -2
  396. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  397. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts +3 -0
  398. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  399. package/daemon/dist/domain/gateway/slack/thread-routing.js +18 -7
  400. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  401. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +17 -6
  402. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  403. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +41 -23
  404. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  405. package/daemon/dist/domain/history-query.d.ts.map +1 -1
  406. package/daemon/dist/domain/history-query.js +2 -1
  407. package/daemon/dist/domain/history-query.js.map +1 -1
  408. package/daemon/dist/domain/home-isolation.d.ts +18 -0
  409. package/daemon/dist/domain/home-isolation.d.ts.map +1 -0
  410. package/daemon/dist/domain/home-isolation.js +75 -0
  411. package/daemon/dist/domain/home-isolation.js.map +1 -0
  412. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +22 -0
  413. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  414. package/daemon/dist/domain/hosts/remote-daemon-http.js +43 -3
  415. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  416. package/daemon/dist/domain/inbox-handler.d.ts.map +1 -1
  417. package/daemon/dist/domain/inbox-handler.js +34 -32
  418. package/daemon/dist/domain/inbox-handler.js.map +1 -1
  419. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +12 -2
  420. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  421. package/daemon/dist/domain/mission-control/notification-dispatcher.d.ts.map +1 -1
  422. package/daemon/dist/domain/mission-control/notification-dispatcher.js +2 -1
  423. package/daemon/dist/domain/mission-control/notification-dispatcher.js.map +1 -1
  424. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +63 -0
  425. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  426. package/daemon/dist/domain/model-divergence/current-generation-record.js +130 -1
  427. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  428. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +42 -0
  429. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -1
  430. package/daemon/dist/domain/model-divergence/effective-model-readers.js +160 -5
  431. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -1
  432. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +8 -2
  433. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  434. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +10 -5
  435. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  436. package/daemon/dist/domain/native-process-lineage.d.ts +49 -0
  437. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  438. package/daemon/dist/domain/native-process-lineage.js +129 -15
  439. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  440. package/daemon/dist/domain/native-resume-probe.d.ts +3 -1
  441. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  442. package/daemon/dist/domain/native-resume-probe.js +43 -6
  443. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  444. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  445. package/daemon/dist/domain/node-inventory.js +26 -9
  446. package/daemon/dist/domain/node-inventory.js.map +1 -1
  447. package/daemon/dist/domain/node-launcher.d.ts +18 -0
  448. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  449. package/daemon/dist/domain/node-launcher.js +60 -2
  450. package/daemon/dist/domain/node-launcher.js.map +1 -1
  451. package/daemon/dist/domain/openrouter-charge.d.ts +42 -0
  452. package/daemon/dist/domain/openrouter-charge.d.ts.map +1 -0
  453. package/daemon/dist/domain/openrouter-charge.js +57 -0
  454. package/daemon/dist/domain/openrouter-charge.js.map +1 -0
  455. package/daemon/dist/domain/parked-query.d.ts +5 -0
  456. package/daemon/dist/domain/parked-query.d.ts.map +1 -1
  457. package/daemon/dist/domain/parked-query.js +9 -2
  458. package/daemon/dist/domain/parked-query.js.map +1 -1
  459. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  460. package/daemon/dist/domain/periodic-snapshot-scheduler.js +27 -3
  461. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  462. package/daemon/dist/domain/permission-drift.d.ts +2 -0
  463. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  464. package/daemon/dist/domain/permission-drift.js.map +1 -1
  465. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  466. package/daemon/dist/domain/permission-policy/policy-spec.js +5 -7
  467. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  468. package/daemon/dist/domain/pi-usage-entries-store.d.ts +41 -0
  469. package/daemon/dist/domain/pi-usage-entries-store.d.ts.map +1 -0
  470. package/daemon/dist/domain/pi-usage-entries-store.js +173 -0
  471. package/daemon/dist/domain/pi-usage-entries-store.js.map +1 -0
  472. package/daemon/dist/domain/pi-usage-facts.d.ts +90 -0
  473. package/daemon/dist/domain/pi-usage-facts.d.ts.map +1 -0
  474. package/daemon/dist/domain/pi-usage-facts.js +165 -0
  475. package/daemon/dist/domain/pi-usage-facts.js.map +1 -0
  476. package/daemon/dist/domain/pod-bundle-assembler.d.ts +2 -0
  477. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  478. package/daemon/dist/domain/pod-bundle-assembler.js +4 -0
  479. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  480. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
  481. package/daemon/dist/domain/policies/artifact-pool-helpers.js +6 -4
  482. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
  483. package/daemon/dist/domain/profile-resolver.d.ts +2 -0
  484. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  485. package/daemon/dist/domain/profile-resolver.js +4 -0
  486. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  487. package/daemon/dist/domain/progress/progress-indexer.js +1 -1
  488. package/daemon/dist/domain/progress/progress-indexer.js.map +1 -1
  489. package/daemon/dist/domain/project-lifecycle-compiler.d.ts +4 -0
  490. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  491. package/daemon/dist/domain/project-lifecycle-compiler.js +63 -3
  492. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  493. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  494. package/daemon/dist/domain/proof/judgments.js +31 -2
  495. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  496. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts +33 -0
  497. package/daemon/dist/domain/provider/claude-auth-status-reader.d.ts.map +1 -0
  498. package/daemon/dist/domain/provider/claude-auth-status-reader.js +195 -0
  499. package/daemon/dist/domain/provider/claude-auth-status-reader.js.map +1 -0
  500. package/daemon/dist/domain/provider/claude-usage-windows.d.ts +68 -0
  501. package/daemon/dist/domain/provider/claude-usage-windows.d.ts.map +1 -0
  502. package/daemon/dist/domain/provider/claude-usage-windows.js +260 -0
  503. package/daemon/dist/domain/provider/claude-usage-windows.js.map +1 -0
  504. package/daemon/dist/domain/provider/codex-auth-reader.d.ts +14 -0
  505. package/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +1 -1
  506. package/daemon/dist/domain/provider/codex-auth-reader.js +41 -12
  507. package/daemon/dist/domain/provider/codex-auth-reader.js.map +1 -1
  508. package/daemon/dist/domain/provider/codex-usage-reader.d.ts +2 -0
  509. package/daemon/dist/domain/provider/codex-usage-reader.d.ts.map +1 -1
  510. package/daemon/dist/domain/provider/codex-usage-reader.js +3 -1
  511. package/daemon/dist/domain/provider/codex-usage-reader.js.map +1 -1
  512. package/daemon/dist/domain/provider/codex-usage-windows.d.ts +10 -49
  513. package/daemon/dist/domain/provider/codex-usage-windows.d.ts.map +1 -1
  514. package/daemon/dist/domain/provider/codex-usage-windows.js +15 -173
  515. package/daemon/dist/domain/provider/codex-usage-windows.js.map +1 -1
  516. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts +18 -0
  517. package/daemon/dist/domain/provider/provider-seat-accounts.d.ts.map +1 -0
  518. package/daemon/dist/domain/provider/provider-seat-accounts.js +159 -0
  519. package/daemon/dist/domain/provider/provider-seat-accounts.js.map +1 -0
  520. package/daemon/dist/domain/provider/provider-service-impl.d.ts +7 -2
  521. package/daemon/dist/domain/provider/provider-service-impl.d.ts.map +1 -1
  522. package/daemon/dist/domain/provider/provider-service-impl.js +20 -2
  523. package/daemon/dist/domain/provider/provider-service-impl.js.map +1 -1
  524. package/daemon/dist/domain/provider/provider-service.d.ts +4 -2
  525. package/daemon/dist/domain/provider/provider-service.d.ts.map +1 -1
  526. package/daemon/dist/domain/provider/provider-types.d.ts +72 -4
  527. package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -1
  528. package/daemon/dist/domain/provider/reactive-tap.js +2 -0
  529. package/daemon/dist/domain/provider/reactive-tap.js.map +1 -1
  530. package/daemon/dist/domain/provider/subscription-moves.d.ts +77 -0
  531. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +1 -0
  532. package/daemon/dist/domain/provider/subscription-moves.js +140 -0
  533. package/daemon/dist/domain/provider/subscription-moves.js.map +1 -0
  534. package/daemon/dist/domain/provider/usage-across-hosts.d.ts +162 -0
  535. package/daemon/dist/domain/provider/usage-across-hosts.d.ts.map +1 -0
  536. package/daemon/dist/domain/provider/usage-across-hosts.js +563 -0
  537. package/daemon/dist/domain/provider/usage-across-hosts.js.map +1 -0
  538. package/daemon/dist/domain/provider/usage-windows.d.ts +88 -0
  539. package/daemon/dist/domain/provider/usage-windows.d.ts.map +1 -0
  540. package/daemon/dist/domain/provider/usage-windows.js +189 -0
  541. package/daemon/dist/domain/provider/usage-windows.js.map +1 -0
  542. package/daemon/dist/domain/queue-owner.d.ts +6 -0
  543. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  544. package/daemon/dist/domain/queue-owner.js +22 -0
  545. package/daemon/dist/domain/queue-owner.js.map +1 -1
  546. package/daemon/dist/domain/queue-repository.d.ts +89 -14
  547. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  548. package/daemon/dist/domain/queue-repository.js +331 -86
  549. package/daemon/dist/domain/queue-repository.js.map +1 -1
  550. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  551. package/daemon/dist/domain/queue-stuck-sweep.js +9 -21
  552. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  553. package/daemon/dist/domain/queue-transition-log.d.ts +23 -2
  554. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  555. package/daemon/dist/domain/queue-transition-log.js +98 -39
  556. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  557. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -2
  558. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  559. package/daemon/dist/domain/queue-wake-ladder.js +27 -8
  560. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  561. package/daemon/dist/domain/queue-wake-repository.d.ts +7 -1
  562. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  563. package/daemon/dist/domain/queue-wake-repository.js +54 -5
  564. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  565. package/daemon/dist/domain/reply-to-choice.d.ts +2 -0
  566. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -1
  567. package/daemon/dist/domain/reply-to-choice.js +2 -0
  568. package/daemon/dist/domain/reply-to-choice.js.map +1 -1
  569. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  570. package/daemon/dist/domain/restore-check-service.js +3 -2
  571. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  572. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  573. package/daemon/dist/domain/restore-orchestrator.js +78 -14
  574. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  575. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  576. package/daemon/dist/domain/restore-plan-preview.js +23 -19
  577. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  578. package/daemon/dist/domain/restore-policy.d.ts +26 -0
  579. package/daemon/dist/domain/restore-policy.d.ts.map +1 -0
  580. package/daemon/dist/domain/restore-policy.js +22 -0
  581. package/daemon/dist/domain/restore-policy.js.map +1 -0
  582. package/daemon/dist/domain/restore-preconditions.d.ts +2 -0
  583. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -1
  584. package/daemon/dist/domain/restore-preconditions.js +6 -1
  585. package/daemon/dist/domain/restore-preconditions.js.map +1 -1
  586. package/daemon/dist/domain/restore-runtime-compatibility.d.ts +3 -0
  587. package/daemon/dist/domain/restore-runtime-compatibility.d.ts.map +1 -0
  588. package/daemon/dist/domain/restore-runtime-compatibility.js +7 -0
  589. package/daemon/dist/domain/restore-runtime-compatibility.js.map +1 -0
  590. package/daemon/dist/domain/resume-metadata-refresher.d.ts +10 -5
  591. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  592. package/daemon/dist/domain/resume-metadata-refresher.js +109 -21
  593. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  594. package/daemon/dist/domain/resume-token-capture.d.ts +1 -1
  595. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  596. package/daemon/dist/domain/resume-token-capture.js +7 -1
  597. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  598. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  599. package/daemon/dist/domain/review/compose.js +5 -4
  600. package/daemon/dist/domain/review/compose.js.map +1 -1
  601. package/daemon/dist/domain/review/gather.d.ts +2 -1
  602. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  603. package/daemon/dist/domain/review/gather.js +25 -17
  604. package/daemon/dist/domain/review/gather.js.map +1 -1
  605. package/daemon/dist/domain/rig-lifecycle-service.d.ts +31 -8
  606. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -1
  607. package/daemon/dist/domain/rig-lifecycle-service.js +253 -98
  608. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -1
  609. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts +11 -1
  610. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -1
  611. package/daemon/dist/domain/rig-mode/rig-mode-store.js +69 -48
  612. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -1
  613. package/daemon/dist/domain/rig-repository.d.ts +18 -0
  614. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  615. package/daemon/dist/domain/rig-repository.js +52 -1
  616. package/daemon/dist/domain/rig-repository.js.map +1 -1
  617. package/daemon/dist/domain/rig-teardown.d.ts +4 -1
  618. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  619. package/daemon/dist/domain/rig-teardown.js +40 -2
  620. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  621. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  622. package/daemon/dist/domain/rigspec-codec.js +7 -0
  623. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  624. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  625. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  626. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  627. package/daemon/dist/domain/rigspec-instantiator.d.ts +3 -0
  628. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  629. package/daemon/dist/domain/rigspec-instantiator.js +28 -5
  630. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  631. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  632. package/daemon/dist/domain/rigspec-preflight.js +18 -5
  633. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  634. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  635. package/daemon/dist/domain/rigspec-schema.js +24 -2
  636. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  637. package/daemon/dist/domain/runtime-adapter.d.ts +11 -0
  638. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  639. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  640. package/daemon/dist/domain/runtime-verifier.d.ts +15 -1
  641. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  642. package/daemon/dist/domain/runtime-verifier.js +28 -4
  643. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  644. package/daemon/dist/domain/scope/logical-checkbox.js +1 -1
  645. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -1
  646. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  647. package/daemon/dist/domain/scope/scope-view-projection.js +23 -10
  648. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  649. package/daemon/dist/domain/seat-activity-service.d.ts +9 -2
  650. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  651. package/daemon/dist/domain/seat-activity-service.js +100 -15
  652. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  653. package/daemon/dist/domain/seat-attention-reconciler.d.ts +3 -0
  654. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  655. package/daemon/dist/domain/seat-attention-reconciler.js +114 -7
  656. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  657. package/daemon/dist/domain/seat-delivery-guard.d.ts +36 -1
  658. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  659. package/daemon/dist/domain/seat-delivery-guard.js +255 -22
  660. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  661. package/daemon/dist/domain/seat-effort.d.ts +115 -0
  662. package/daemon/dist/domain/seat-effort.d.ts.map +1 -0
  663. package/daemon/dist/domain/seat-effort.js +233 -0
  664. package/daemon/dist/domain/seat-effort.js.map +1 -0
  665. package/daemon/dist/domain/seat-env.d.ts +37 -0
  666. package/daemon/dist/domain/seat-env.d.ts.map +1 -0
  667. package/daemon/dist/domain/seat-env.js +94 -0
  668. package/daemon/dist/domain/seat-env.js.map +1 -0
  669. package/daemon/dist/domain/seat-handover-service.d.ts +5 -0
  670. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  671. package/daemon/dist/domain/seat-handover-service.js +22 -4
  672. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  673. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  674. package/daemon/dist/domain/seat-identity-reconciler.js +19 -2
  675. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  676. package/daemon/dist/domain/seat-lifecycle-service.d.ts +119 -5
  677. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  678. package/daemon/dist/domain/seat-lifecycle-service.js +318 -23
  679. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  680. package/daemon/dist/domain/seat-restart-in-place.d.ts +13 -2
  681. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
  682. package/daemon/dist/domain/seat-restart-in-place.js +23 -4
  683. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
  684. package/daemon/dist/domain/seat-structural-activity-service.d.ts +6 -2
  685. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  686. package/daemon/dist/domain/seat-structural-activity-service.js +45 -9
  687. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  688. package/daemon/dist/domain/session-registry.d.ts +13 -1
  689. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  690. package/daemon/dist/domain/session-registry.js +29 -2
  691. package/daemon/dist/domain/session-registry.js.map +1 -1
  692. package/daemon/dist/domain/session-transport.d.ts +108 -1
  693. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  694. package/daemon/dist/domain/session-transport.js +1116 -129
  695. package/daemon/dist/domain/session-transport.js.map +1 -1
  696. package/daemon/dist/domain/slices/slice-detail-projector.d.ts +2 -0
  697. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  698. package/daemon/dist/domain/slices/slice-detail-projector.js +16 -4
  699. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  700. package/daemon/dist/domain/slices/slice-indexer.d.ts +10 -0
  701. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  702. package/daemon/dist/domain/slices/slice-indexer.js +84 -4
  703. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  704. package/daemon/dist/domain/snapshot-repository.d.ts +3 -0
  705. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  706. package/daemon/dist/domain/snapshot-repository.js +19 -2
  707. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  708. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  709. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  710. package/daemon/dist/domain/spec-library-workflow-scanner.js +24 -21
  711. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  712. package/daemon/dist/domain/spec-validation-advisory.js +1 -1
  713. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -1
  714. package/daemon/dist/domain/startup-orchestrator.d.ts +31 -3
  715. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  716. package/daemon/dist/domain/startup-orchestrator.js +218 -60
  717. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  718. package/daemon/dist/domain/startup-submission-evidence.d.ts +13 -3
  719. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  720. package/daemon/dist/domain/startup-submission-evidence.js +34 -25
  721. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  722. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  723. package/daemon/dist/domain/startup-validation.js +3 -0
  724. package/daemon/dist/domain/startup-validation.js.map +1 -1
  725. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -1
  726. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  727. package/daemon/dist/domain/successor-session-launcher.js +5 -1
  728. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  729. package/daemon/dist/domain/text-cut.d.ts +4 -0
  730. package/daemon/dist/domain/text-cut.d.ts.map +1 -0
  731. package/daemon/dist/domain/text-cut.js +7 -0
  732. package/daemon/dist/domain/text-cut.js.map +1 -0
  733. package/daemon/dist/domain/time-bound-advisory.d.ts +5 -0
  734. package/daemon/dist/domain/time-bound-advisory.d.ts.map +1 -0
  735. package/daemon/dist/domain/time-bound-advisory.js +25 -0
  736. package/daemon/dist/domain/time-bound-advisory.js.map +1 -0
  737. package/daemon/dist/domain/transcript-capture.d.ts +7 -0
  738. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  739. package/daemon/dist/domain/transcript-capture.js +22 -1
  740. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  741. package/daemon/dist/domain/transcript-rotation.d.ts +12 -4
  742. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  743. package/daemon/dist/domain/transcript-rotation.js +185 -23
  744. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  745. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  746. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  747. package/daemon/dist/domain/transcript-store.js +8 -4
  748. package/daemon/dist/domain/transcript-store.js.map +1 -1
  749. package/daemon/dist/domain/types.d.ts +53 -3
  750. package/daemon/dist/domain/types.d.ts.map +1 -1
  751. package/daemon/dist/domain/types.js.map +1 -1
  752. package/daemon/dist/domain/usage-samples-store.d.ts +8 -0
  753. package/daemon/dist/domain/usage-samples-store.d.ts.map +1 -1
  754. package/daemon/dist/domain/usage-samples-store.js +24 -5
  755. package/daemon/dist/domain/usage-samples-store.js.map +1 -1
  756. package/daemon/dist/domain/usage-series.d.ts +154 -2
  757. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  758. package/daemon/dist/domain/usage-series.js +208 -9
  759. package/daemon/dist/domain/usage-series.js.map +1 -1
  760. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  761. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  762. package/daemon/dist/domain/user-settings/settings-store.js +37 -1
  763. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  764. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +3 -1
  765. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  766. package/daemon/dist/domain/watchdog-jobs-repository.js +13 -1
  767. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  768. package/daemon/dist/domain/watchdog-policy-engine.d.ts +1 -0
  769. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  770. package/daemon/dist/domain/watchdog-policy-engine.js +31 -2
  771. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  772. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  773. package/daemon/dist/domain/workflow-exception-escalation.js +3 -1
  774. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  775. package/daemon/dist/domain/workflow-exception-readiness.d.ts.map +1 -1
  776. package/daemon/dist/domain/workflow-exception-readiness.js +7 -3
  777. package/daemon/dist/domain/workflow-exception-readiness.js.map +1 -1
  778. package/daemon/dist/domain/workflow-instance-store.d.ts +11 -0
  779. package/daemon/dist/domain/workflow-instance-store.d.ts.map +1 -1
  780. package/daemon/dist/domain/workflow-instance-store.js +18 -4
  781. package/daemon/dist/domain/workflow-instance-store.js.map +1 -1
  782. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  783. package/daemon/dist/domain/workflow-projector.js +5 -3
  784. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  785. package/daemon/dist/domain/workflow-rig-placeholder.d.ts +24 -0
  786. package/daemon/dist/domain/workflow-rig-placeholder.d.ts.map +1 -0
  787. package/daemon/dist/domain/workflow-rig-placeholder.js +43 -0
  788. package/daemon/dist/domain/workflow-rig-placeholder.js.map +1 -0
  789. package/daemon/dist/domain/workflow-runtime.d.ts +10 -1
  790. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  791. package/daemon/dist/domain/workflow-runtime.js +26 -13
  792. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  793. package/daemon/dist/domain/workflow-scope.d.ts +50 -0
  794. package/daemon/dist/domain/workflow-scope.d.ts.map +1 -0
  795. package/daemon/dist/domain/workflow-scope.js +129 -0
  796. package/daemon/dist/domain/workflow-scope.js.map +1 -0
  797. package/daemon/dist/domain/workflow-spec-cache.d.ts +10 -0
  798. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  799. package/daemon/dist/domain/workflow-spec-cache.js +13 -0
  800. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  801. package/daemon/dist/domain/workflow-types.d.ts +4 -0
  802. package/daemon/dist/domain/workflow-types.d.ts.map +1 -1
  803. package/daemon/dist/domain/workflow-types.js.map +1 -1
  804. package/daemon/dist/domain/workflow-validator.d.ts.map +1 -1
  805. package/daemon/dist/domain/workflow-validator.js +3 -1
  806. package/daemon/dist/domain/workflow-validator.js.map +1 -1
  807. package/daemon/dist/domain/workspace/project-read.d.ts +2 -0
  808. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
  809. package/daemon/dist/domain/workspace/project-read.js +4 -0
  810. package/daemon/dist/domain/workspace/project-read.js.map +1 -1
  811. package/daemon/dist/index.d.ts.map +1 -1
  812. package/daemon/dist/index.js +10 -0
  813. package/daemon/dist/index.js.map +1 -1
  814. package/daemon/dist/lib/pane-envelope.js +1 -1
  815. package/daemon/dist/lib/pane-envelope.js.map +1 -1
  816. package/daemon/dist/middleware/json-body-error.d.ts +4 -3
  817. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -1
  818. package/daemon/dist/middleware/json-body-error.js +18 -4
  819. package/daemon/dist/middleware/json-body-error.js.map +1 -1
  820. package/daemon/dist/routes/activity.d.ts.map +1 -1
  821. package/daemon/dist/routes/activity.js +78 -0
  822. package/daemon/dist/routes/activity.js.map +1 -1
  823. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  824. package/daemon/dist/routes/bundles.js +39 -16
  825. package/daemon/dist/routes/bundles.js.map +1 -1
  826. package/daemon/dist/routes/community-harnesses.d.ts +3 -0
  827. package/daemon/dist/routes/community-harnesses.d.ts.map +1 -0
  828. package/daemon/dist/routes/community-harnesses.js +18 -0
  829. package/daemon/dist/routes/community-harnesses.js.map +1 -0
  830. package/daemon/dist/routes/compaction.d.ts +3 -0
  831. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  832. package/daemon/dist/routes/compaction.js +14 -2
  833. package/daemon/dist/routes/compaction.js.map +1 -1
  834. package/daemon/dist/routes/events.js +26 -12
  835. package/daemon/dist/routes/events.js.map +1 -1
  836. package/daemon/dist/routes/gateway.d.ts +3 -0
  837. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  838. package/daemon/dist/routes/gateway.js +15 -0
  839. package/daemon/dist/routes/gateway.js.map +1 -1
  840. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  841. package/daemon/dist/routes/hosts.js +2 -1
  842. package/daemon/dist/routes/hosts.js.map +1 -1
  843. package/daemon/dist/routes/provider.d.ts +11 -1
  844. package/daemon/dist/routes/provider.d.ts.map +1 -1
  845. package/daemon/dist/routes/provider.js +182 -10
  846. package/daemon/dist/routes/provider.js.map +1 -1
  847. package/daemon/dist/routes/query-limit.d.ts +1 -0
  848. package/daemon/dist/routes/query-limit.d.ts.map +1 -1
  849. package/daemon/dist/routes/query-limit.js +1 -1
  850. package/daemon/dist/routes/query-limit.js.map +1 -1
  851. package/daemon/dist/routes/queue.d.ts.map +1 -1
  852. package/daemon/dist/routes/queue.js +44 -3
  853. package/daemon/dist/routes/queue.js.map +1 -1
  854. package/daemon/dist/routes/rig-mode.d.ts.map +1 -1
  855. package/daemon/dist/routes/rig-mode.js +66 -11
  856. package/daemon/dist/routes/rig-mode.js.map +1 -1
  857. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  858. package/daemon/dist/routes/scope-audit.js +10 -0
  859. package/daemon/dist/routes/scope-audit.js.map +1 -1
  860. package/daemon/dist/routes/seat.d.ts.map +1 -1
  861. package/daemon/dist/routes/seat.js +63 -12
  862. package/daemon/dist/routes/seat.js.map +1 -1
  863. package/daemon/dist/routes/sessions.js +1 -1
  864. package/daemon/dist/routes/startup.d.ts.map +1 -1
  865. package/daemon/dist/routes/startup.js +9 -2
  866. package/daemon/dist/routes/startup.js.map +1 -1
  867. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  868. package/daemon/dist/routes/telemetry.js +13 -3
  869. package/daemon/dist/routes/telemetry.js.map +1 -1
  870. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  871. package/daemon/dist/routes/transcripts.js +14 -5
  872. package/daemon/dist/routes/transcripts.js.map +1 -1
  873. package/daemon/dist/routes/transport.d.ts.map +1 -1
  874. package/daemon/dist/routes/transport.js +13 -2
  875. package/daemon/dist/routes/transport.js.map +1 -1
  876. package/daemon/dist/routes/up.d.ts.map +1 -1
  877. package/daemon/dist/routes/up.js +4 -0
  878. package/daemon/dist/routes/up.js.map +1 -1
  879. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  880. package/daemon/dist/routes/workflow.js +50 -1
  881. package/daemon/dist/routes/workflow.js.map +1 -1
  882. package/daemon/dist/server.d.ts.map +1 -1
  883. package/daemon/dist/server.js +4 -1
  884. package/daemon/dist/server.js.map +1 -1
  885. package/daemon/dist/spec-validation-surface.d.ts +1 -1
  886. package/daemon/dist/spec-validation-surface.d.ts.map +1 -1
  887. package/daemon/dist/spec-validation-surface.js +1 -1
  888. package/daemon/dist/spec-validation-surface.js.map +1 -1
  889. package/daemon/dist/startup.d.ts +3 -1
  890. package/daemon/dist/startup.d.ts.map +1 -1
  891. package/daemon/dist/startup.js +140 -54
  892. package/daemon/dist/startup.js.map +1 -1
  893. package/daemon/dist/workflow-scope-surface.d.ts +2 -0
  894. package/daemon/dist/workflow-scope-surface.d.ts.map +1 -0
  895. package/daemon/dist/workflow-scope-surface.js +2 -0
  896. package/daemon/dist/workflow-scope-surface.js.map +1 -0
  897. package/daemon/docs/reference/agent-spec.md +4 -2
  898. package/daemon/docs/reference/agent-startup-guide.md +95 -6
  899. package/daemon/docs/reference/claude-status-line.md +69 -0
  900. package/daemon/docs/reference/getting-started.md +39 -6
  901. package/daemon/docs/reference/keeping-a-watch.md +102 -5
  902. package/daemon/docs/reference/project-workspace.md +70 -1
  903. package/daemon/docs/reference/publishing-a-rig-bundle.md +6 -1
  904. package/daemon/docs/reference/refocus-channel.md +41 -5
  905. package/daemon/docs/reference/rig-bundle.md +26 -2
  906. package/daemon/docs/reference/rig-spec.md +64 -3
  907. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +105 -2
  908. package/daemon/docs/reference/scoped-operating-posture.md +12 -2
  909. package/daemon/docs/reference/sdlc-conventions.md +39 -1
  910. package/daemon/docs/reference/seat-delivery.md +127 -0
  911. package/daemon/docs/reference/slack-app-setup.md +141 -13
  912. package/daemon/docs/reference/topology-naming.md +9 -0
  913. package/daemon/docs/reference/whats-new.md +167 -146
  914. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +1 -1
  915. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +0 -1
  916. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +7 -4
  917. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +1 -1
  918. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
  919. package/daemon/specs/rigs/launch/demo/CULTURE.md +1 -1
  920. package/daemon/specs/rigs/launch/factory/CULTURE.md +1 -1
  921. package/daemon/specs/rigs/launch/factory/topology/rig/CRAFT.md +2 -2
  922. package/daemon/specs/rigs/launch/first-project/CULTURE.md +2 -1
  923. package/daemon/specs/rigs/launch/first-project-claude/CULTURE.md +2 -1
  924. package/daemon/specs/rigs/launch/first-project-mixed/CULTURE.md +2 -1
  925. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +9 -2
  926. package/daemon/specs/rigs/launch/starter/CULTURE.md +2 -1
  927. package/daemon/specs/rigs/preview/product-team/CULTURE.md +1 -1
  928. package/dist/bin-wrapper.d.ts +2 -1
  929. package/dist/bin-wrapper.d.ts.map +1 -1
  930. package/dist/bin-wrapper.js +61 -4
  931. package/dist/bin-wrapper.js.map +1 -1
  932. package/dist/build-info.js +3 -3
  933. package/dist/bundle-behaviour.d.ts.map +1 -1
  934. package/dist/bundle-behaviour.js +22 -0
  935. package/dist/bundle-behaviour.js.map +1 -1
  936. package/dist/client.d.ts.map +1 -1
  937. package/dist/client.js +3 -3
  938. package/dist/client.js.map +1 -1
  939. package/dist/commands/add.d.ts.map +1 -1
  940. package/dist/commands/add.js +1 -1
  941. package/dist/commands/add.js.map +1 -1
  942. package/dist/commands/ask.d.ts.map +1 -1
  943. package/dist/commands/ask.js +16 -5
  944. package/dist/commands/ask.js.map +1 -1
  945. package/dist/commands/bootstrap.d.ts.map +1 -1
  946. package/dist/commands/bootstrap.js +9 -5
  947. package/dist/commands/bootstrap.js.map +1 -1
  948. package/dist/commands/bundle.d.ts.map +1 -1
  949. package/dist/commands/bundle.js +8 -0
  950. package/dist/commands/bundle.js.map +1 -1
  951. package/dist/commands/capture.d.ts +4 -0
  952. package/dist/commands/capture.d.ts.map +1 -1
  953. package/dist/commands/capture.js +15 -2
  954. package/dist/commands/capture.js.map +1 -1
  955. package/dist/commands/community-harness.d.ts +4 -0
  956. package/dist/commands/community-harness.d.ts.map +1 -0
  957. package/dist/commands/community-harness.js +48 -0
  958. package/dist/commands/community-harness.js.map +1 -0
  959. package/dist/commands/compact.d.ts.map +1 -1
  960. package/dist/commands/compact.js +8 -4
  961. package/dist/commands/compact.js.map +1 -1
  962. package/dist/commands/config.d.ts.map +1 -1
  963. package/dist/commands/config.js +8 -2
  964. package/dist/commands/config.js.map +1 -1
  965. package/dist/commands/crash-cart.d.ts.map +1 -1
  966. package/dist/commands/crash-cart.js +3 -5
  967. package/dist/commands/crash-cart.js.map +1 -1
  968. package/dist/commands/create.d.ts.map +1 -1
  969. package/dist/commands/create.js +7 -5
  970. package/dist/commands/create.js.map +1 -1
  971. package/dist/commands/down.d.ts.map +1 -1
  972. package/dist/commands/down.js +2 -1
  973. package/dist/commands/down.js.map +1 -1
  974. package/dist/commands/launch.d.ts +1 -0
  975. package/dist/commands/launch.d.ts.map +1 -1
  976. package/dist/commands/launch.js +61 -10
  977. package/dist/commands/launch.js.map +1 -1
  978. package/dist/commands/policy.d.ts +2 -1
  979. package/dist/commands/policy.d.ts.map +1 -1
  980. package/dist/commands/policy.js +66 -7
  981. package/dist/commands/policy.js.map +1 -1
  982. package/dist/commands/provider.d.ts +2 -0
  983. package/dist/commands/provider.d.ts.map +1 -1
  984. package/dist/commands/provider.js +336 -49
  985. package/dist/commands/provider.js.map +1 -1
  986. package/dist/commands/ps.d.ts +11 -0
  987. package/dist/commands/ps.d.ts.map +1 -1
  988. package/dist/commands/ps.js +40 -6
  989. package/dist/commands/ps.js.map +1 -1
  990. package/dist/commands/queue.d.ts.map +1 -1
  991. package/dist/commands/queue.js +59 -10
  992. package/dist/commands/queue.js.map +1 -1
  993. package/dist/commands/requirements.d.ts.map +1 -1
  994. package/dist/commands/requirements.js +8 -5
  995. package/dist/commands/requirements.js.map +1 -1
  996. package/dist/commands/restore.js +1 -1
  997. package/dist/commands/restore.js.map +1 -1
  998. package/dist/commands/rig-mode.d.ts.map +1 -1
  999. package/dist/commands/rig-mode.js +106 -18
  1000. package/dist/commands/rig-mode.js.map +1 -1
  1001. package/dist/commands/scope.d.ts.map +1 -1
  1002. package/dist/commands/scope.js +47 -9
  1003. package/dist/commands/scope.js.map +1 -1
  1004. package/dist/commands/seat.d.ts.map +1 -1
  1005. package/dist/commands/seat.js +131 -20
  1006. package/dist/commands/seat.js.map +1 -1
  1007. package/dist/commands/send.d.ts +2 -2
  1008. package/dist/commands/send.d.ts.map +1 -1
  1009. package/dist/commands/send.js +79 -12
  1010. package/dist/commands/send.js.map +1 -1
  1011. package/dist/commands/slack.d.ts.map +1 -1
  1012. package/dist/commands/slack.js +9 -4
  1013. package/dist/commands/slack.js.map +1 -1
  1014. package/dist/commands/start.d.ts +11 -0
  1015. package/dist/commands/start.d.ts.map +1 -1
  1016. package/dist/commands/start.js +77 -3
  1017. package/dist/commands/start.js.map +1 -1
  1018. package/dist/commands/status.d.ts.map +1 -1
  1019. package/dist/commands/status.js +60 -2
  1020. package/dist/commands/status.js.map +1 -1
  1021. package/dist/commands/up.d.ts.map +1 -1
  1022. package/dist/commands/up.js +58 -0
  1023. package/dist/commands/up.js.map +1 -1
  1024. package/dist/commands/usage.d.ts +12 -0
  1025. package/dist/commands/usage.d.ts.map +1 -1
  1026. package/dist/commands/usage.js +107 -0
  1027. package/dist/commands/usage.js.map +1 -1
  1028. package/dist/commands/watchdog.d.ts.map +1 -1
  1029. package/dist/commands/watchdog.js +20 -7
  1030. package/dist/commands/watchdog.js.map +1 -1
  1031. package/dist/commands/whoami.d.ts +36 -0
  1032. package/dist/commands/whoami.d.ts.map +1 -1
  1033. package/dist/commands/whoami.js +125 -7
  1034. package/dist/commands/whoami.js.map +1 -1
  1035. package/dist/commands/workflow.d.ts.map +1 -1
  1036. package/dist/commands/workflow.js +53 -5
  1037. package/dist/commands/workflow.js.map +1 -1
  1038. package/dist/config-store.d.ts +14 -1
  1039. package/dist/config-store.d.ts.map +1 -1
  1040. package/dist/config-store.js +50 -1
  1041. package/dist/config-store.js.map +1 -1
  1042. package/dist/daemon-lifecycle.d.ts +2 -2
  1043. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1044. package/dist/daemon-lifecycle.js +5 -4
  1045. package/dist/daemon-lifecycle.js.map +1 -1
  1046. package/dist/host-registry.d.ts.map +1 -1
  1047. package/dist/host-registry.js +6 -3
  1048. package/dist/host-registry.js.map +1 -1
  1049. package/dist/index.d.ts +1 -0
  1050. package/dist/index.d.ts.map +1 -1
  1051. package/dist/index.js +4 -7
  1052. package/dist/index.js.map +1 -1
  1053. package/dist/lazy-program.d.ts +9 -0
  1054. package/dist/lazy-program.d.ts.map +1 -0
  1055. package/dist/lazy-program.js +111 -0
  1056. package/dist/lazy-program.js.map +1 -0
  1057. package/dist/lib/bundle-check.js +2 -2
  1058. package/dist/lib/bundle-check.js.map +1 -1
  1059. package/dist/lib/bundle-source.d.ts +1 -0
  1060. package/dist/lib/bundle-source.d.ts.map +1 -1
  1061. package/dist/lib/bundle-source.js +1 -0
  1062. package/dist/lib/bundle-source.js.map +1 -1
  1063. package/dist/lib/codex-auth.d.ts.map +1 -1
  1064. package/dist/lib/codex-auth.js +17 -1
  1065. package/dist/lib/codex-auth.js.map +1 -1
  1066. package/dist/lib/context-install.js +1 -1
  1067. package/dist/lib/context-install.js.map +1 -1
  1068. package/dist/lib/file-transfer.js +1 -1
  1069. package/dist/lib/file-transfer.js.map +1 -1
  1070. package/dist/lib/frontmatter.d.ts +11 -0
  1071. package/dist/lib/frontmatter.d.ts.map +1 -0
  1072. package/dist/lib/frontmatter.js +20 -0
  1073. package/dist/lib/frontmatter.js.map +1 -0
  1074. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1075. package/dist/lib/permission-policy/policy-spec.js +5 -7
  1076. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1077. package/dist/lib/scope/logical-checkbox.js +1 -1
  1078. package/dist/lib/scope/logical-checkbox.js.map +1 -1
  1079. package/dist/lib/scope/scope-fs.d.ts +8 -0
  1080. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1081. package/dist/lib/scope/scope-fs.js +50 -1
  1082. package/dist/lib/scope/scope-fs.js.map +1 -1
  1083. package/dist/lib/work-install.d.ts.map +1 -1
  1084. package/dist/lib/work-install.js +3 -13
  1085. package/dist/lib/work-install.js.map +1 -1
  1086. package/dist/mcp-server.d.ts.map +1 -1
  1087. package/dist/mcp-server.js +113 -0
  1088. package/dist/mcp-server.js.map +1 -1
  1089. package/dist/program-root.d.ts +5 -0
  1090. package/dist/program-root.d.ts.map +1 -0
  1091. package/dist/program-root.js +11 -0
  1092. package/dist/program-root.js.map +1 -0
  1093. package/dist/queue-read-compact.d.ts +29 -0
  1094. package/dist/queue-read-compact.d.ts.map +1 -0
  1095. package/dist/queue-read-compact.js +74 -0
  1096. package/dist/queue-read-compact.js.map +1 -0
  1097. package/dist/remote-host-ops.d.ts +21 -0
  1098. package/dist/remote-host-ops.d.ts.map +1 -1
  1099. package/dist/remote-host-ops.js +25 -12
  1100. package/dist/remote-host-ops.js.map +1 -1
  1101. package/package.json +1 -1
  1102. package/tui/dist/commands/registry.d.ts.map +1 -1
  1103. package/tui/dist/commands/registry.js +3 -0
  1104. package/tui/dist/commands/registry.js.map +1 -1
  1105. package/tui/dist/config/config-model.d.ts.map +1 -1
  1106. package/tui/dist/config/config-model.js +6 -1
  1107. package/tui/dist/config/config-model.js.map +1 -1
  1108. package/tui/dist/cost/cost-model.d.ts +12 -0
  1109. package/tui/dist/cost/cost-model.d.ts.map +1 -0
  1110. package/tui/dist/cost/cost-model.js +141 -0
  1111. package/tui/dist/cost/cost-model.js.map +1 -0
  1112. package/tui/dist/cost/cost-read.d.ts +19 -0
  1113. package/tui/dist/cost/cost-read.d.ts.map +1 -0
  1114. package/tui/dist/cost/cost-read.js +4 -0
  1115. package/tui/dist/cost/cost-read.js.map +1 -0
  1116. package/tui/dist/daemon-client.d.ts +13 -0
  1117. package/tui/dist/daemon-client.d.ts.map +1 -1
  1118. package/tui/dist/daemon-client.js +77 -1
  1119. package/tui/dist/daemon-client.js.map +1 -1
  1120. package/tui/dist/detail.d.ts +2 -0
  1121. package/tui/dist/detail.d.ts.map +1 -1
  1122. package/tui/dist/detail.js +5 -0
  1123. package/tui/dist/detail.js.map +1 -1
  1124. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1125. package/tui/dist/execution/execution-model.js +38 -18
  1126. package/tui/dist/execution/execution-model.js.map +1 -1
  1127. package/tui/dist/helper-cwd.d.ts +3 -0
  1128. package/tui/dist/helper-cwd.d.ts.map +1 -0
  1129. package/tui/dist/helper-cwd.js +16 -0
  1130. package/tui/dist/helper-cwd.js.map +1 -0
  1131. package/tui/dist/hydrate.d.ts.map +1 -1
  1132. package/tui/dist/hydrate.js +32 -1
  1133. package/tui/dist/hydrate.js.map +1 -1
  1134. package/tui/dist/input.d.ts.map +1 -1
  1135. package/tui/dist/input.js +2 -1
  1136. package/tui/dist/input.js.map +1 -1
  1137. package/tui/dist/local-reading.d.ts.map +1 -1
  1138. package/tui/dist/local-reading.js +2 -1
  1139. package/tui/dist/local-reading.js.map +1 -1
  1140. package/tui/dist/main.js +6 -5
  1141. package/tui/dist/main.js.map +1 -1
  1142. package/tui/dist/pulse/render-pulse.d.ts.map +1 -1
  1143. package/tui/dist/pulse/render-pulse.js +7 -1
  1144. package/tui/dist/pulse/render-pulse.js.map +1 -1
  1145. package/tui/dist/reading.js +1 -1
  1146. package/tui/dist/reading.js.map +1 -1
  1147. package/tui/dist/render.d.ts.map +1 -1
  1148. package/tui/dist/render.js +10 -1
  1149. package/tui/dist/render.js.map +1 -1
  1150. package/tui/dist/scopes/scopes-model.d.ts +6 -1
  1151. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1152. package/tui/dist/scopes/scopes-model.js +33 -13
  1153. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1154. package/tui/dist/sections.d.ts.map +1 -1
  1155. package/tui/dist/sections.js +4 -1
  1156. package/tui/dist/sections.js.map +1 -1
  1157. package/tui/dist/socket-server.d.ts.map +1 -1
  1158. package/tui/dist/socket-server.js +2 -1
  1159. package/tui/dist/socket-server.js.map +1 -1
  1160. package/tui/dist/specs/launch.d.ts.map +1 -1
  1161. package/tui/dist/specs/launch.js +2 -1
  1162. package/tui/dist/specs/launch.js.map +1 -1
  1163. package/tui/dist/startup.js +1 -1
  1164. package/tui/dist/startup.js.map +1 -1
  1165. package/tui/dist/state.d.ts.map +1 -1
  1166. package/tui/dist/state.js +8 -4
  1167. package/tui/dist/state.js.map +1 -1
  1168. package/tui/dist/terminals/open-window.d.ts.map +1 -1
  1169. package/tui/dist/terminals/open-window.js +2 -1
  1170. package/tui/dist/terminals/open-window.js.map +1 -1
  1171. package/tui/dist/types.d.ts +9 -0
  1172. package/tui/dist/types.d.ts.map +1 -1
  1173. package/tui/dist/usage/usage-hosts-model.d.ts +17 -0
  1174. package/tui/dist/usage/usage-hosts-model.d.ts.map +1 -0
  1175. package/tui/dist/usage/usage-hosts-model.js +73 -0
  1176. package/tui/dist/usage/usage-hosts-model.js.map +1 -0
  1177. package/tui/dist/usage/usage-model.d.ts +39 -0
  1178. package/tui/dist/usage/usage-model.d.ts.map +1 -0
  1179. package/tui/dist/usage/usage-model.js +161 -0
  1180. package/tui/dist/usage/usage-model.js.map +1 -0
  1181. package/ui/dist/assets/{index-DhmxKuZf.js → index-Cfbtfd9G.js} +2 -2
  1182. package/ui/dist/index.html +1 -1
@@ -0,0 +1,51 @@
1
+ /** OMP's documented reassembly ceiling; an advertised limit above it is not trusted. */
2
+ export declare const OMP_MAX_REASSEMBLED_FRAME_BYTES: number;
3
+ /** OMP's documented physical frame limit, the line's LF included. Under v2 no stdout line may exceed it. */
4
+ export declare const OMP_MAX_FRAME_BYTES: number;
5
+ /** The most chunks one sequence can have: OMP v18.5.0 sends 256 KiB payloads, so 64 MiB is 256 chunks. */
6
+ export declare const OMP_MAX_CHUNKS = 256;
7
+ /** The reassembly limit to negotiate under, when the ready frame advertises protocol v2; otherwise null (stay on v1). */
8
+ export declare function ompProtocolV2Limit(ready: Record<string, unknown>): number | null;
9
+ export type OmpFrameResult =
10
+ /** A whole frame: a plain line, or a completed chunk sequence. `dropped` names a sequence the frame interrupted. */
11
+ {
12
+ frame: Record<string, unknown>;
13
+ dropped?: string;
14
+ }
15
+ /** A chunk was accepted; the sequence isn't complete yet. */
16
+ | {
17
+ pending: true;
18
+ }
19
+ /** A chunk sequence was rejected and discarded. Its remaining chunks are skipped without another error. */
20
+ | {
21
+ dropped: string;
22
+ }
23
+ /** A chunk of a sequence already rejected. */
24
+ | {
25
+ skipped: true;
26
+ };
27
+ /** Reassembles protocol v2 `rpc_chunk` sequences from parsed stdout lines. Holds at most one sequence, never more
28
+ * than `limitBytes` of it, and checks each chunk's declared length against the limit before keeping any of it. */
29
+ export declare class OmpFrameDecoder {
30
+ private readonly limitBytes;
31
+ private pending;
32
+ /** Sequences already reported as rejected (at most two: an interleaving pair); their later chunks are skipped until
33
+ * a frame or line outside any sequence arrives. */
34
+ private readonly rejected;
35
+ /** A chunk without a usable chunkId was rejected: later chunks without one are skipped, not reported again. */
36
+ private rejectedAnonymous;
37
+ constructor(limitBytes: number);
38
+ /** The sequence still waiting for chunks, if any: at end of stream it can never complete. */
39
+ incomplete(): string | null;
40
+ /** A stdout line that isn't a frame (not JSON, or not an object) arrived: a pending sequence is interrupted. */
41
+ interrupt(what: string): string | null;
42
+ /** A line rejected before it was parsed (over the physical frame limit). A pending sequence is dropped with it, and
43
+ * so is the line's own sequence when its chunkId is known, so its later chunks aren't reported again. */
44
+ rejectLine(reason: string, chunkId?: string): string | null;
45
+ /** A frame or line outside any sequence ends the skipping of a rejected one: OMP writes each sequence
46
+ * uninterrupted, so its chunks can't continue past it. A stray late chunk then gets one "index 0" error. */
47
+ private endSkipping;
48
+ private drop;
49
+ push(value: Record<string, unknown>): OmpFrameResult;
50
+ }
51
+ //# sourceMappingURL=omp-rpc-frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omp-rpc-frame.d.ts","sourceRoot":"","sources":["../../src/adapters/omp-rpc-frame.ts"],"names":[],"mappings":"AAUA,wFAAwF;AACxF,eAAO,MAAM,+BAA+B,QAAmB,CAAC;AAChE,4GAA4G;AAC5G,eAAO,MAAM,mBAAmB,QAAc,CAAC;AAC/C,0GAA0G;AAC1G,eAAO,MAAM,cAAc,MAAM,CAAC;AAIlC,yHAAyH;AACzH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAOhF;AAED,MAAM,MAAM,cAAc;AACxB,oHAAoH;AAClH;IAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;AACtD,6DAA6D;GAC3D;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE;AACnB,2GAA2G;GACzG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;AACrB,8CAA8C;GAC5C;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAItB;mHACmH;AACnH,qBAAa,eAAe;IAQd,OAAO,CAAC,QAAQ,CAAC,UAAU;IAPvC,OAAO,CAAC,OAAO,CAAwB;IACvC;wDACoD;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,+GAA+G;IAC/G,OAAO,CAAC,iBAAiB,CAAS;gBAEL,UAAU,EAAE,MAAM;IAE/C,6FAA6F;IAC7F,UAAU,IAAI,MAAM,GAAG,IAAI;IAI3B,gHAAgH;IAChH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOtC;8GAC0G;IAC1G,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAS3D;iHAC6G;IAC7G,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,IAAI;IAOZ,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc;CA2DrD"}
@@ -0,0 +1,153 @@
1
+ // OMP RPC protocol v2 framing, from the client side (#1275).
2
+ //
3
+ // OMP caps each stdout line at 1 MiB in protocol v1, and answers a larger response with
4
+ // `success: false, error: "RPC response exceeded the transport limit"`. Its `ready` frame can advertise
5
+ // protocol v2: after `negotiate_protocol`, a larger frame (response or event) arrives as a sequence of
6
+ // `rpc_chunk` lines carrying base64 segments of one JSON object, up to `maxReassembledFrameBytes`.
7
+ // This decoder follows OMP's documented contract (docs/rpc.md "Transport and Framing", checked against
8
+ // v18.5.0): validate chunkId, index, count and byteLength, reject interrupted or interleaved sequences,
9
+ // enforce the reassembly limit, concatenate in index order, decode strict UTF-8, parse one JSON object.
10
+ /** OMP's documented reassembly ceiling; an advertised limit above it is not trusted. */
11
+ export const OMP_MAX_REASSEMBLED_FRAME_BYTES = 64 * 1024 * 1024;
12
+ /** OMP's documented physical frame limit, the line's LF included. Under v2 no stdout line may exceed it. */
13
+ export const OMP_MAX_FRAME_BYTES = 1024 * 1024;
14
+ /** The most chunks one sequence can have: OMP v18.5.0 sends 256 KiB payloads, so 64 MiB is 256 chunks. */
15
+ export const OMP_MAX_CHUNKS = 256;
16
+ const BASE64 = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;
17
+ /** The reassembly limit to negotiate under, when the ready frame advertises protocol v2; otherwise null (stay on v1). */
18
+ export function ompProtocolV2Limit(ready) {
19
+ const versions = ready.supportedProtocolVersions;
20
+ if (!Array.isArray(versions) || !versions.includes(2))
21
+ return null;
22
+ const advertised = ready.maxReassembledFrameBytes;
23
+ return typeof advertised === "number" && Number.isSafeInteger(advertised) && advertised > 0
24
+ ? Math.min(advertised, OMP_MAX_REASSEMBLED_FRAME_BYTES)
25
+ : OMP_MAX_REASSEMBLED_FRAME_BYTES;
26
+ }
27
+ /** Reassembles protocol v2 `rpc_chunk` sequences from parsed stdout lines. Holds at most one sequence, never more
28
+ * than `limitBytes` of it, and checks each chunk's declared length against the limit before keeping any of it. */
29
+ export class OmpFrameDecoder {
30
+ limitBytes;
31
+ pending = null;
32
+ /** Sequences already reported as rejected (at most two: an interleaving pair); their later chunks are skipped until
33
+ * a frame or line outside any sequence arrives. */
34
+ rejected = new Set();
35
+ /** A chunk without a usable chunkId was rejected: later chunks without one are skipped, not reported again. */
36
+ rejectedAnonymous = false;
37
+ constructor(limitBytes) {
38
+ this.limitBytes = limitBytes;
39
+ }
40
+ /** The sequence still waiting for chunks, if any: at end of stream it can never complete. */
41
+ incomplete() {
42
+ return this.pending ? `chunk sequence ${this.pending.chunkId} ended after ${this.pending.nextIndex} of ${this.pending.count} chunks` : null;
43
+ }
44
+ /** A stdout line that isn't a frame (not JSON, or not an object) arrived: a pending sequence is interrupted. */
45
+ interrupt(what) {
46
+ if (!this.pending) {
47
+ this.endSkipping();
48
+ return null;
49
+ }
50
+ const { chunkId } = this.pending;
51
+ this.drop(chunkId);
52
+ return `chunk sequence ${chunkId} was interrupted by ${what}`;
53
+ }
54
+ /** A line rejected before it was parsed (over the physical frame limit). A pending sequence is dropped with it, and
55
+ * so is the line's own sequence when its chunkId is known, so its later chunks aren't reported again. */
56
+ rejectLine(reason, chunkId) {
57
+ // Another line of a sequence already reported: skipped, as push() skips its chunks.
58
+ if (chunkId && !this.pending && this.rejected.has(chunkId))
59
+ return null;
60
+ const interrupted = this.pending?.chunkId;
61
+ this.drop(interrupted);
62
+ if (chunkId)
63
+ this.rejected.add(chunkId);
64
+ return interrupted && interrupted !== chunkId ? `${reason}; chunk sequence ${interrupted} was interrupted by it` : reason;
65
+ }
66
+ /** A frame or line outside any sequence ends the skipping of a rejected one: OMP writes each sequence
67
+ * uninterrupted, so its chunks can't continue past it. A stray late chunk then gets one "index 0" error. */
68
+ endSkipping() {
69
+ this.rejected.clear();
70
+ this.rejectedAnonymous = false;
71
+ }
72
+ drop(chunkId) {
73
+ this.pending = null;
74
+ this.rejected.clear();
75
+ this.rejectedAnonymous = false;
76
+ if (chunkId)
77
+ this.rejected.add(chunkId);
78
+ }
79
+ push(value) {
80
+ if (value.type !== "rpc_chunk") {
81
+ if (!this.pending) {
82
+ this.endSkipping();
83
+ return { frame: value };
84
+ }
85
+ const { chunkId } = this.pending;
86
+ this.drop(chunkId);
87
+ return { frame: value, dropped: `chunk sequence ${chunkId} was interrupted by a ${String(value.type)} frame` };
88
+ }
89
+ const { chunkId, index, count, byteLength, data } = value;
90
+ const validId = typeof chunkId === "string" && chunkId.length > 0 && chunkId.length <= 128;
91
+ if (validId ? this.rejected.has(chunkId) : this.rejectedAnonymous)
92
+ return { skipped: true };
93
+ const reject = (reason) => {
94
+ this.drop(validId ? chunkId : undefined);
95
+ if (!validId)
96
+ this.rejectedAnonymous = true;
97
+ return { dropped: reason };
98
+ };
99
+ if (!validId || !Number.isSafeInteger(index) || !Number.isSafeInteger(count) || !Number.isSafeInteger(byteLength)) {
100
+ return reject("a chunk with invalid metadata");
101
+ }
102
+ const at = index, of = count, length = byteLength;
103
+ if (length > this.limitBytes)
104
+ return reject(`chunk sequence ${chunkId} declares ${length} bytes, above the ${this.limitBytes}-byte reassembly limit`);
105
+ if (of < 2 || of > OMP_MAX_CHUNKS || at < 0 || at >= of || length < 1 || of > length)
106
+ return reject(`chunk sequence ${chunkId} has invalid metadata`);
107
+ if (typeof data !== "string" || data.length === 0 || data.length > OMP_MAX_FRAME_BYTES || !BASE64.test(data)) {
108
+ return reject(`chunk sequence ${chunkId} has invalid chunk data`);
109
+ }
110
+ const bytes = Buffer.from(data, "base64");
111
+ if (bytes.toString("base64") !== data)
112
+ return reject(`chunk sequence ${chunkId} has invalid chunk data`);
113
+ if (!this.pending) {
114
+ if (at !== 0)
115
+ return reject(`chunk sequence ${chunkId} did not start at index 0`);
116
+ this.rejected.clear();
117
+ this.rejectedAnonymous = false;
118
+ this.pending = { chunkId, count: of, byteLength: length, nextIndex: 0, chunks: [], received: 0 };
119
+ }
120
+ else if (this.pending.chunkId !== chunkId) {
121
+ const interrupted = this.pending.chunkId;
122
+ // Both sequences are unusable: the interrupted one is incomplete, and the newcomer interleaved it.
123
+ this.drop(interrupted);
124
+ this.rejected.add(chunkId);
125
+ return { dropped: `chunk sequence ${interrupted} was interleaved with ${chunkId}` };
126
+ }
127
+ const pending = this.pending;
128
+ if (pending.count !== of || pending.byteLength !== length || pending.nextIndex !== at) {
129
+ return reject(`chunk sequence ${chunkId} is out of order or changed its metadata`);
130
+ }
131
+ if (pending.received + bytes.byteLength > pending.byteLength)
132
+ return reject(`chunk sequence ${chunkId} exceeds its declared length`);
133
+ pending.chunks.push(bytes);
134
+ pending.received += bytes.byteLength;
135
+ pending.nextIndex++;
136
+ if (pending.nextIndex < pending.count)
137
+ return { pending: true };
138
+ this.pending = null;
139
+ if (pending.received !== pending.byteLength)
140
+ return reject(`chunk sequence ${chunkId} is shorter than its declared length`);
141
+ let frame;
142
+ try {
143
+ frame = JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(Buffer.concat(pending.chunks)));
144
+ }
145
+ catch {
146
+ return reject(`chunk sequence ${chunkId} is not one UTF-8 JSON object`);
147
+ }
148
+ if (frame === null || typeof frame !== "object" || Array.isArray(frame))
149
+ return reject(`chunk sequence ${chunkId} is not one JSON object`);
150
+ return { frame: frame };
151
+ }
152
+ }
153
+ //# sourceMappingURL=omp-rpc-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omp-rpc-frame.js","sourceRoot":"","sources":["../../src/adapters/omp-rpc-frame.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { type PiProviderCharge } from "../domain/openrouter-charge.js";
2
+ import type { PiUsageFact } from "../domain/pi-usage-facts.js";
3
+ /** Whether a request's credential is established (from pi-readiness judgeChargeProvenance). */
4
+ export type ChargeProvenance = {
5
+ ok: true;
6
+ credentialSource: string;
7
+ } | {
8
+ ok: false;
9
+ reason: string;
10
+ };
11
+ export type GenerationReply = {
12
+ status: number;
13
+ body: unknown;
14
+ } | {
15
+ status: number;
16
+ malformed: true;
17
+ } | {
18
+ status: number;
19
+ tooLarge: true;
20
+ } | {
21
+ error: "timeout" | "network";
22
+ };
23
+ export interface ChargeLookupIo {
24
+ /** GET /api/v1/generation?id=… with the forwarded key. Never throws. */
25
+ fetchGeneration(generationId: string): Promise<GenerationReply>;
26
+ /** POST the outcomes to the daemon; the entry ids it stored or already had (false when the post failed). */
27
+ postCharges(piSessionId: string, charges: PiProviderCharge[]): Promise<ReadonlySet<string> | false>;
28
+ schedule(fn: () => void, ms: number): void;
29
+ /** A line for the seat's pane (an outcome the daemon kept refusing). */
30
+ notice?(line: string): void;
31
+ }
32
+ /** The largest generation reply read; a larger one is an explicit "unavailable", never parsed. */
33
+ export declare const OPENROUTER_REPLY_LIMIT_BYTES: number;
34
+ /** The production lookup: GET /api/v1/generation?id=… with the given key, bounded by one timeout that covers the
35
+ * headers and the body, and by a byte limit on the body. Never throws; the key goes only into the Authorization
36
+ * header and is scrubbed from the reply. A body cut off by the timeout is a timeout; a complete body that isn't
37
+ * JSON is "malformed"; a body over the limit is "too large". */
38
+ export declare function openRouterGenerationFetcher(key: () => string | undefined, fetchImpl?: typeof fetch | undefined, timeoutMs?: number, limitBytes?: number): (generationId: string) => Promise<GenerationReply>;
39
+ export declare const OPENROUTER_CHARGE_MAX_ATTEMPTS = 5;
40
+ /** How often an outcome the daemon didn't acknowledge is posted again before it is given up (with a notice). */
41
+ export declare const OPENROUTER_CHARGE_MAX_POSTS = 5;
42
+ export declare class OpenRouterChargeLookup {
43
+ private readonly io;
44
+ private readonly retryDelaysMs;
45
+ private readonly queue;
46
+ /** Keys queued, being looked up, or finished (stored by the daemon). */
47
+ private readonly known;
48
+ private readonly unposted;
49
+ private running;
50
+ private flushScheduled;
51
+ constructor(io: ChargeLookupIo, retryDelaysMs?: number[]);
52
+ private delay;
53
+ /** Queue the own OpenRouter requests among facts the daemon has stored, each with its credential provenance;
54
+ * `charged` already have a charge there. */
55
+ enqueue(piSessionId: string, items: Array<{
56
+ fact: PiUsageFact;
57
+ provenance: ChargeProvenance;
58
+ }>, charged: ReadonlySet<string>): void;
59
+ private pump;
60
+ /** Post the outcomes not yet acknowledged, per Pi session. What the daemon didn't acknowledge is posted again
61
+ * later on its own schedule (never looked up again), up to a cap, then given up with a notice. */
62
+ private flush;
63
+ /** A scheduled post retry on a quiet seat: posts only, never another lookup. */
64
+ private flushAlone;
65
+ private lookUp;
66
+ }
67
+ //# sourceMappingURL=pi-openrouter-charge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-openrouter-charge.d.ts","sourceRoot":"","sources":["../../src/adapters/pi-openrouter-charge.ts"],"names":[],"mappings":"AAeA,OAAO,EAAgF,KAAK,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACrJ,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D,+FAA+F;AAC/F,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACjC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClC;IAAE,KAAK,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,CAAC;AAErC,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAChE,4GAA4G;IAC5G,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC;IACpG,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,wEAAwE;IACxE,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,kGAAkG;AAClG,eAAO,MAAM,4BAA4B,QAAY,CAAC;AAatD;;;iEAGiE;AACjE,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,MAAM,MAAM,GAAG,SAAS,EAC7B,SAAS,GAAE,OAAO,KAAK,GAAG,SAA2D,EACrF,SAAS,SAAO,EAChB,UAAU,SAA+B,GACxC,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CA0CpD;AAED,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,gHAAgH;AAChH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAM7C,qBAAa,sBAAsB;IAQrB,OAAO,CAAC,QAAQ,CAAC,EAAE;IAAkB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAP/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;gBAEF,EAAE,EAAE,cAAc,EAAmB,aAAa,WAAkB;IAEjG,OAAO,CAAC,KAAK;IAIb;iDAC6C;IAC7C,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,gBAAgB,CAAA;KAAE,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;YAYrH,IAAI;IAkBlB;uGACmG;YACrF,KAAK;IAuBnB,gFAAgF;YAClE,UAAU;YAMV,MAAM;CA0BrB"}
@@ -0,0 +1,228 @@
1
+ // OPR.0.7.0.2 (cost reporting, K4): the Pi runner's lookup of OpenRouter's actual charge for its own requests.
2
+ //
3
+ // Only with --openrouter-charge (usage.pi_openrouter_charge on, which needs usage.pi_cost_facts). The charge is
4
+ // looked up with the credential that generated the request, and only when that is established: Pi records no
5
+ // per-request credential, so the runner observes Pi's credential metadata at launch and at every refresh, and
6
+ // a request is eligible only when the observations before and after it both show the OPENROUTER_API_KEY OpenRig
7
+ // forwarded, no extension that could replace it, and no change in between (pi-readiness judgeChargeProvenance).
8
+ // Anything else records "unavailable" with that reason; no other credential is used, and nothing is decided
9
+ // from a later read.
10
+ //
11
+ // One lookup at a time, with a timeout covering the reply and a byte limit on it. "Not there yet" answers (404,
12
+ // 408, 429, 5xx, timeout, network) are retried later up to a cap; then, like a refusal, a malformed or
13
+ // oversized reply, they record "unavailable" with the reason. An outcome is done only once the daemon says it
14
+ // stored it (or already had it); an unacknowledged one is posted again on its own bounded schedule, without
15
+ // another lookup. Work never waits on any of this.
16
+ import { OPENROUTER_GENERATION_URL, openRouterChargeTarget, parseOpenRouterGeneration } from "../domain/openrouter-charge.js";
17
+ /** The largest generation reply read; a larger one is an explicit "unavailable", never parsed. */
18
+ export const OPENROUTER_REPLY_LIMIT_BYTES = 64 * 1024;
19
+ /** Replace any string that contains `secret` (anywhere in the reply) with null, so a reply that reflects the key
20
+ * can never be stored or shown. */
21
+ function scrub(value, secret) {
22
+ if (typeof value === "string")
23
+ return value.includes(secret) ? null : value;
24
+ if (Array.isArray(value))
25
+ return value.map((item) => scrub(item, secret));
26
+ if (value !== null && typeof value === "object") {
27
+ return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, scrub(v, secret)]));
28
+ }
29
+ return value;
30
+ }
31
+ /** The production lookup: GET /api/v1/generation?id=… with the given key, bounded by one timeout that covers the
32
+ * headers and the body, and by a byte limit on the body. Never throws; the key goes only into the Authorization
33
+ * header and is scrubbed from the reply. A body cut off by the timeout is a timeout; a complete body that isn't
34
+ * JSON is "malformed"; a body over the limit is "too large". */
35
+ export function openRouterGenerationFetcher(key, fetchImpl = typeof fetch === "function" ? fetch : undefined, timeoutMs = 5000, limitBytes = OPENROUTER_REPLY_LIMIT_BYTES) {
36
+ return async (generationId) => {
37
+ const apiKey = key()?.trim();
38
+ if (!apiKey || !fetchImpl)
39
+ return { error: "network" };
40
+ const controller = new AbortController();
41
+ const timeout = setTimeout(() => controller.abort(), timeoutMs);
42
+ try {
43
+ const res = await fetchImpl(`${OPENROUTER_GENERATION_URL}?id=${encodeURIComponent(generationId)}`, {
44
+ headers: { authorization: `Bearer ${apiKey}` }, signal: controller.signal, redirect: "error",
45
+ });
46
+ if (!res.ok) {
47
+ await res.body?.cancel().catch(() => { });
48
+ return { status: res.status, body: null };
49
+ }
50
+ const declared = Number(res.headers.get("content-length"));
51
+ if (Number.isFinite(declared) && declared > limitBytes) {
52
+ await res.body?.cancel().catch(() => { });
53
+ return { status: res.status, tooLarge: true };
54
+ }
55
+ const chunks = [];
56
+ let size = 0;
57
+ const reader = res.body?.getReader();
58
+ if (reader) {
59
+ for (;;) {
60
+ const { done, value } = await reader.read();
61
+ if (done)
62
+ break;
63
+ size += value.byteLength;
64
+ if (size > limitBytes) {
65
+ await reader.cancel().catch(() => { });
66
+ return { status: res.status, tooLarge: true };
67
+ }
68
+ chunks.push(value);
69
+ }
70
+ }
71
+ const text = new TextDecoder().decode(Buffer.concat(chunks));
72
+ let body;
73
+ try {
74
+ body = JSON.parse(text);
75
+ }
76
+ catch {
77
+ return { status: res.status, malformed: true };
78
+ }
79
+ return { status: res.status, body: scrub(body, apiKey) };
80
+ }
81
+ catch {
82
+ return { error: controller.signal.aborted ? "timeout" : "network" };
83
+ }
84
+ finally {
85
+ clearTimeout(timeout);
86
+ }
87
+ };
88
+ }
89
+ export const OPENROUTER_CHARGE_MAX_ATTEMPTS = 5;
90
+ /** How often an outcome the daemon didn't acknowledge is posted again before it is given up (with a notice). */
91
+ export const OPENROUTER_CHARGE_MAX_POSTS = 5;
92
+ const RETRY_DELAYS_MS = [5_000, 15_000, 30_000, 60_000];
93
+ export class OpenRouterChargeLookup {
94
+ io;
95
+ retryDelaysMs;
96
+ queue = [];
97
+ /** Keys queued, being looked up, or finished (stored by the daemon). */
98
+ known = new Set();
99
+ unposted = new Map();
100
+ running = false;
101
+ flushScheduled = false;
102
+ constructor(io, retryDelaysMs = RETRY_DELAYS_MS) {
103
+ this.io = io;
104
+ this.retryDelaysMs = retryDelaysMs;
105
+ }
106
+ delay(attempt) {
107
+ return this.retryDelaysMs[Math.min(attempt - 1, this.retryDelaysMs.length - 1)] ?? 60_000;
108
+ }
109
+ /** Queue the own OpenRouter requests among facts the daemon has stored, each with its credential provenance;
110
+ * `charged` already have a charge there. */
111
+ enqueue(piSessionId, items, charged) {
112
+ for (const { fact, provenance } of items) {
113
+ if (fact.origin !== "own")
114
+ continue; // a fork's history belongs to its parent occupant
115
+ const target = openRouterChargeTarget(fact);
116
+ const key = `${piSessionId}\u0000${fact.entryId}`;
117
+ if (!("generationId" in target) || charged.has(fact.entryId) || this.known.has(key))
118
+ continue;
119
+ this.known.add(key);
120
+ this.queue.push({ piSessionId, entryId: fact.entryId, generationId: target.generationId, attempts: 0, provenance });
121
+ }
122
+ void this.pump();
123
+ }
124
+ async pump() {
125
+ if (this.running)
126
+ return;
127
+ this.running = true;
128
+ try {
129
+ for (let next = this.queue.shift(); next; next = this.queue.shift()) {
130
+ const outcome = await this.lookUp(next);
131
+ if (outcome === "retry") {
132
+ this.io.schedule(() => { this.queue.push(next); void this.pump(); }, this.delay(next.attempts));
133
+ continue;
134
+ }
135
+ this.unposted.set(`${next.piSessionId}\u0000${next.entryId}`, { piSessionId: next.piSessionId, charge: outcome, posts: 0 });
136
+ await this.flush();
137
+ }
138
+ }
139
+ finally {
140
+ this.running = false;
141
+ }
142
+ }
143
+ /** Post the outcomes not yet acknowledged, per Pi session. What the daemon didn't acknowledge is posted again
144
+ * later on its own schedule (never looked up again), up to a cap, then given up with a notice. */
145
+ async flush() {
146
+ const bySession = new Map();
147
+ for (const item of this.unposted.values())
148
+ bySession.set(item.piSessionId, [...(bySession.get(item.piSessionId) ?? []), item]);
149
+ for (const [piSessionId, items] of bySession) {
150
+ let acknowledged = false;
151
+ try {
152
+ acknowledged = await this.io.postCharges(piSessionId, items.map((item) => item.charge));
153
+ }
154
+ catch {
155
+ acknowledged = false;
156
+ }
157
+ for (const item of items) {
158
+ const key = `${piSessionId}\u0000${item.charge.entryId}`;
159
+ if (acknowledged && acknowledged.has(item.charge.entryId)) {
160
+ this.unposted.delete(key);
161
+ continue;
162
+ }
163
+ item.posts += 1;
164
+ if (item.posts >= OPENROUTER_CHARGE_MAX_POSTS) {
165
+ this.unposted.delete(key);
166
+ this.io.notice?.(`[pi-runner] OpenRouter charge outcome for entry ${item.charge.entryId}: the daemon didn't acknowledge storing it after ${item.posts} posts, so storage couldn't be confirmed; no further posts`);
167
+ }
168
+ }
169
+ }
170
+ const remaining = Math.max(0, ...[...this.unposted.values()].map((item) => item.posts));
171
+ if (this.unposted.size > 0 && !this.flushScheduled) {
172
+ this.flushScheduled = true;
173
+ this.io.schedule(() => { this.flushScheduled = false; void this.flushAlone(); }, this.delay(remaining));
174
+ }
175
+ }
176
+ /** A scheduled post retry on a quiet seat: posts only, never another lookup. */
177
+ async flushAlone() {
178
+ if (this.running)
179
+ return; // the pump in progress flushes on its own
180
+ this.running = true;
181
+ try {
182
+ await this.flush();
183
+ }
184
+ finally {
185
+ this.running = false;
186
+ }
187
+ }
188
+ async lookUp(p) {
189
+ const unavailable = (reason, credentialSource) => ({
190
+ entryId: p.entryId, generationId: p.generationId, status: "unavailable", totalCostUsd: null, upstreamInferenceCostUsd: null,
191
+ cacheDiscountUsd: null, isByok: null, providerName: null, model: null, apiType: null, workspaceId: null,
192
+ generationCreatedAt: null, credentialSource, reason,
193
+ });
194
+ if (!p.provenance.ok)
195
+ return unavailable(`the generating credential isn't established: ${p.provenance.reason}`, "not established");
196
+ const credentialSource = p.provenance.credentialSource;
197
+ p.attempts += 1;
198
+ let reply;
199
+ try {
200
+ reply = await this.io.fetchGeneration(p.generationId);
201
+ }
202
+ catch {
203
+ reply = { error: "network" };
204
+ }
205
+ const status = "error" in reply ? null : reply.status;
206
+ if (status === null || status === 404 || status === 408 || status === 429 || status >= 500) {
207
+ p.last = "error" in reply ? reply.error : `HTTP ${status}`;
208
+ if (p.attempts < OPENROUTER_CHARGE_MAX_ATTEMPTS)
209
+ return "retry";
210
+ return unavailable(`not available after ${p.attempts} lookups (last: ${p.last})`, credentialSource);
211
+ }
212
+ if ("error" in reply)
213
+ return unavailable("lookup failed", credentialSource);
214
+ if (status === 401 || status === 403)
215
+ return unavailable(`the generating key can't read this generation (HTTP ${status})`, credentialSource);
216
+ if (status !== 200)
217
+ return unavailable(`lookup refused (HTTP ${status})`, credentialSource);
218
+ if ("tooLarge" in reply)
219
+ return unavailable(`reply larger than ${OPENROUTER_REPLY_LIMIT_BYTES} bytes`, credentialSource);
220
+ if ("malformed" in reply)
221
+ return unavailable("malformed reply: not JSON", credentialSource);
222
+ const parsed = parseOpenRouterGeneration(reply.body, p.generationId);
223
+ if (!parsed.ok)
224
+ return unavailable(parsed.reason, credentialSource);
225
+ return { entryId: p.entryId, generationId: p.generationId, status: "charged", credentialSource, reason: null, ...parsed.fields };
226
+ }
227
+ }
228
+ //# sourceMappingURL=pi-openrouter-charge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pi-openrouter-charge.js","sourceRoot":"","sources":["../../src/adapters/pi-openrouter-charge.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,91 @@
1
1
  /** The daemon and pane may resolve different executables. Never turn a
2
2
  * version observation into a new launch refusal or echo arbitrary stdout. */
3
3
  export declare function piVersionNotice(output: string): string;
4
- /** Metadata-only, advisory check of the EXACT managed child environment and
5
- * agent directory. No global login read, credential command, refresh or API
6
- * request. Presence is not a successful authentication claim. Pi's own loader
7
- * remains authoritative (including extension/custom-provider credentials).
8
- * Shapes: earendil-works/pi v0.87.1 auth-storage.ts and docs/models.md. */
4
+ /** Which credential Pi will resolve for a provider in the EXACT managed child environment and agent directory,
5
+ * in Pi's own order: a stored sign-in or key in auth.json, then a models.json provider key, then the provider's
6
+ * environment key. Metadata only: no global login read, credential command, refresh or API request, and never a
7
+ * credential value. Presence is not a successful authentication claim. Pi's own loader remains authoritative
8
+ * (including extension/custom-provider credentials). Shapes: earendil-works/pi v0.87.1 auth-storage.ts and
9
+ * docs/models.md. */
10
+ /** Whether a models.json provider entry can change how Pi authenticates for that provider (Pi 0.87.1
11
+ * provider-composer.js): a key, OAuth, headers, an auth header, or a base URL (where the key is sent), on the
12
+ * entry or on any of its custom models or model overrides. An entry that only adds or adjusts models without
13
+ * these keeps the inherited credential (for OpenRouter, the environment key). */
14
+ export declare function providerEntryAuth(entry: unknown): "none" | "bearing" | "unknown";
15
+ /** Pi 0.87.1 parses models.json as JSON.parse(stripJsonComments(stripBom(text))) (model-config.js, utils/json.js):
16
+ * `//` line comments outside strings and trailing commas are removed. The same here, so a file Pi reads is read. */
17
+ export declare function parsePiModelsJson(text: string): unknown;
18
+ export type PiCredentialSource = {
19
+ kind: "stored-sign-in" | "stored-key" | "models-key";
20
+ provider: string;
21
+ } | {
22
+ kind: "managed-env";
23
+ provider: string;
24
+ envVar: string;
25
+ } | {
26
+ kind: "none";
27
+ provider: string;
28
+ envVar: string | undefined;
29
+ } | {
30
+ kind: "unknown";
31
+ };
32
+ export declare function piCredentialSource(opts: {
33
+ model?: string;
34
+ agentDir: string;
35
+ env: Readonly<Record<string, string | undefined>>;
36
+ readFile: (file: string) => string;
37
+ }): PiCredentialSource;
38
+ /** Advisory launch notice from {@link piCredentialSource}. */
9
39
  export declare function piCredentialNotice(opts: {
10
40
  model?: string;
11
41
  agentDir: string;
12
42
  env: Readonly<Record<string, string | undefined>>;
13
43
  readFile: (file: string) => string;
14
44
  }): string;
45
+ /** OPR.0.7.0.2 K4: what metadata shows about Pi's OpenRouter credential at one moment. Pi records no
46
+ * per-request credential, so a request's credential is established by two of these, taken before and after
47
+ * it (see judgeChargeProvenance). Metadata only: credential files are classified, never used; settings are
48
+ * read only for extension entries; extension directories are listed, never loaded. */
49
+ export type PiCredentialEvidence = {
50
+ at: number;
51
+ source: PiCredentialSource;
52
+ /** Whether a Pi extension could load (and so register a provider or a runtime key): Pi 0.87.1 discovers
53
+ * <agentDir>/extensions, <cwd>/.pi/extensions, and `packages`/`extensions` entries in either settings.json.
54
+ * OpenRig passes no -e flags. */
55
+ extensions: "none" | "present" | "unknown";
56
+ /** Whether models.json has an OpenRouter provider entry that can change authentication (providerEntryAuth),
57
+ * whichever credential wins and whether or not its key is literal: Pi's provider composer holds it from load
58
+ * until a reload. A credential-free entry (models only) is "none". */
59
+ modelsOpenRouterEntry: "none" | "present" | "unknown";
60
+ /** Identity of every file and directory above, so a change between two observations is visible. */
61
+ fingerprint: string;
62
+ };
63
+ export declare function piCredentialEvidence(opts: {
64
+ agentDir: string;
65
+ cwd: string;
66
+ env: Readonly<Record<string, string | undefined>>;
67
+ now: () => number;
68
+ /** "absent", or a stable identity for a file (e.g. ino:size:mtime). */
69
+ statId: (file: string) => string;
70
+ /** Entry names of a directory; [] when it doesn't exist. Throws when it can't be read. */
71
+ listDir: (dir: string) => string[];
72
+ readFile: (file: string) => string;
73
+ }): PiCredentialEvidence;
74
+ /** What, seen in any observation of this runner process, Pi may still hold until it restarts: an extension
75
+ * (Pi 0.87.1 loads extensions at start and again only on an explicit /reload) or a models.json OpenRouter key
76
+ * (Pi loads models.json at start and again only on an explicit refresh). Clean files later don't change what
77
+ * the running Pi loaded, so once seen, this is sticky for the process. */
78
+ export declare function credentialTaint(e: PiCredentialEvidence): {
79
+ sticky: string;
80
+ } | null;
81
+ /** Whether a request's credential is established as the key OpenRig forwarded: it was persisted after `before`
82
+ * and observed by `after`, both show Pi's OpenRouter credential as that key with no extension able to replace
83
+ * it, and nothing changed in between. Otherwise the reason it isn't. */
84
+ export declare function judgeChargeProvenance(before: PiCredentialEvidence | null, after: PiCredentialEvidence, entryTimestamp: string): {
85
+ ok: true;
86
+ credentialSource: string;
87
+ } | {
88
+ ok: false;
89
+ reason: string;
90
+ };
15
91
  //# sourceMappingURL=pi-readiness.d.ts.map