@openrig/cli 0.6.4 → 0.6.6

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 (1443) hide show
  1. package/README.md +405 -0
  2. package/daemon/assets/onboarding/02-self-and-competent-action.md +42 -0
  3. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  4. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +100 -20
  6. package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +41 -21
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +207 -132
  8. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  9. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
  10. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  11. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
  12. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
  15. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +9 -4
  16. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +54 -23
  17. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  18. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
  19. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
  20. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
  21. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
  22. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
  23. package/daemon/context-packs/help/help.md +40 -10
  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 +26 -12
  27. package/daemon/context-packs/reference/getting-started.md +426 -111
  28. package/daemon/context-packs/reference/instance-layout.md +11 -0
  29. package/daemon/context-packs/reference/manifest.yaml +1 -1
  30. package/daemon/context-packs/reference/rig-spec.md +180 -29
  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/SKILL.md +41 -21
  34. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +207 -132
  36. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
  37. package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  38. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +0 -6
  39. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
  41. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
  45. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +5 -5
  47. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +3 -3
  48. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +9 -4
  51. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/openrig-software-factory/SKILL.md +12 -9
  53. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +29 -29
  55. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
  57. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  58. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +0 -5
  60. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  63. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
  64. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +12 -12
  67. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  70. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
  71. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
  73. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
  75. package/daemon/context-packs/skills/openrig-user/SKILL.md +54 -23
  76. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  78. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  89. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +1 -1
  91. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  94. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  95. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +0 -2
  96. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  97. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  99. package/daemon/context-packs/skills/queue-handoff/SKILL.md +1 -19
  100. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  101. package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
  102. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  103. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
  104. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  105. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +0 -5
  106. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  107. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +5 -6
  108. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  109. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  110. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  111. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  112. package/daemon/dist/adapters/claude-code-adapter.d.ts +18 -4
  113. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  114. package/daemon/dist/adapters/claude-code-adapter.js +179 -63
  115. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  116. package/daemon/dist/adapters/claude-resume.d.ts +7 -1
  117. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  118. package/daemon/dist/adapters/claude-resume.js +44 -10
  119. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  120. package/daemon/dist/adapters/codex-resume.d.ts +9 -1
  121. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  122. package/daemon/dist/adapters/codex-resume.js +22 -8
  123. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  124. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -0
  125. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  126. package/daemon/dist/adapters/codex-runtime-adapter.js +93 -73
  127. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  128. package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
  129. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  130. package/daemon/dist/adapters/compose-services-adapter.js +6 -3
  131. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  132. package/daemon/dist/adapters/daemon-url.d.ts +7 -0
  133. package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
  134. package/daemon/dist/adapters/daemon-url.js +12 -0
  135. package/daemon/dist/adapters/daemon-url.js.map +1 -0
  136. package/daemon/dist/adapters/kernel-authority.d.ts +10 -0
  137. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -0
  138. package/daemon/dist/adapters/kernel-authority.js +53 -0
  139. package/daemon/dist/adapters/kernel-authority.js.map +1 -0
  140. package/daemon/dist/adapters/non-interruptive.d.ts +14 -0
  141. package/daemon/dist/adapters/non-interruptive.d.ts.map +1 -0
  142. package/daemon/dist/adapters/non-interruptive.js +38 -0
  143. package/daemon/dist/adapters/non-interruptive.js.map +1 -0
  144. package/daemon/dist/adapters/omp-resume.d.ts +6 -0
  145. package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
  146. package/daemon/dist/adapters/omp-resume.js +6 -0
  147. package/daemon/dist/adapters/omp-resume.js.map +1 -0
  148. package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
  149. package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
  150. package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
  151. package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
  152. package/daemon/dist/adapters/pi-resume.d.ts +7 -1
  153. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  154. package/daemon/dist/adapters/pi-resume.js +27 -18
  155. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  156. package/daemon/dist/adapters/pi-runner-protocol.d.ts +29 -2
  157. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  158. package/daemon/dist/adapters/pi-runner-protocol.js +89 -5
  159. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  160. package/daemon/dist/adapters/pi-runner.d.ts +52 -5
  161. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  162. package/daemon/dist/adapters/pi-runner.js +429 -68
  163. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  164. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +11 -2
  165. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  166. package/daemon/dist/adapters/pi-runtime-adapter.js +85 -40
  167. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  168. package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
  169. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
  170. package/daemon/dist/adapters/preflight-exec.js +52 -0
  171. package/daemon/dist/adapters/preflight-exec.js.map +1 -0
  172. package/daemon/dist/adapters/stub-runner-protocol.d.ts +1 -1
  173. package/daemon/dist/adapters/stub-runner-protocol.d.ts.map +1 -1
  174. package/daemon/dist/adapters/stub-runner.d.ts +1 -1
  175. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  176. package/daemon/dist/adapters/stub-runner.js +3 -1
  177. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  178. package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
  179. package/daemon/dist/adapters/stub-runtime-adapter.js +11 -8
  180. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  181. package/daemon/dist/adapters/tmux.d.ts +52 -6
  182. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  183. package/daemon/dist/adapters/tmux.js +313 -57
  184. package/daemon/dist/adapters/tmux.js.map +1 -1
  185. package/daemon/dist/adapters/yolo-mode.d.ts +1 -1
  186. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  187. package/daemon/dist/adapters/yolo-mode.js +3 -0
  188. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  189. package/daemon/dist/build-info.js +3 -3
  190. package/daemon/dist/bundle-behaviour-surface.d.ts +2 -0
  191. package/daemon/dist/bundle-behaviour-surface.d.ts.map +1 -0
  192. package/daemon/dist/bundle-behaviour-surface.js +2 -0
  193. package/daemon/dist/bundle-behaviour-surface.js.map +1 -0
  194. package/daemon/dist/bundle-identity-surface.d.ts +2 -0
  195. package/daemon/dist/bundle-identity-surface.d.ts.map +1 -0
  196. package/daemon/dist/bundle-identity-surface.js +4 -0
  197. package/daemon/dist/bundle-identity-surface.js.map +1 -0
  198. package/daemon/dist/daemon-shutdown.d.ts +19 -0
  199. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  200. package/daemon/dist/daemon-shutdown.js +85 -0
  201. package/daemon/dist/daemon-shutdown.js.map +1 -1
  202. package/daemon/dist/db/all-migrations.d.ts +1 -1
  203. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  204. package/daemon/dist/db/all-migrations.js +12 -2
  205. package/daemon/dist/db/all-migrations.js.map +1 -1
  206. package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
  207. package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
  208. package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
  209. package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
  210. package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
  211. package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
  212. package/daemon/dist/db/migrations/091_human_questions.js +9 -0
  213. package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
  214. package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
  215. package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
  216. package/daemon/dist/db/migrations/092_node_effort.js +8 -0
  217. package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
  218. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
  219. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
  220. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
  221. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
  222. package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts +3 -0
  223. package/daemon/dist/db/migrations/095_rig_non_interruptive.d.ts.map +1 -0
  224. package/daemon/dist/db/migrations/095_rig_non_interruptive.js +5 -0
  225. package/daemon/dist/db/migrations/095_rig_non_interruptive.js.map +1 -0
  226. package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
  227. package/daemon/dist/domain/activity-endpoint.js +3 -1
  228. package/daemon/dist/domain/activity-endpoint.js.map +1 -1
  229. package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
  230. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  231. package/daemon/dist/domain/agent-activity-store.js +13 -3
  232. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  233. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
  234. package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
  235. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  236. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  237. package/daemon/dist/domain/agent-manifest.js +28 -5
  238. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  239. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +10 -0
  240. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  241. package/daemon/dist/domain/bootstrap-orchestrator.js +136 -33
  242. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  243. package/daemon/dist/domain/builtin-policy-reference.d.ts +1 -1
  244. package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -1
  245. package/daemon/dist/domain/builtin-policy-reference.js +2 -2
  246. package/daemon/dist/domain/builtin-policy-reference.js.map +1 -1
  247. package/daemon/dist/domain/bundle-archive.d.ts +24 -0
  248. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  249. package/daemon/dist/domain/bundle-archive.js +66 -21
  250. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  251. package/daemon/dist/domain/bundle-audit.d.ts +5 -0
  252. package/daemon/dist/domain/bundle-audit.d.ts.map +1 -1
  253. package/daemon/dist/domain/bundle-audit.js.map +1 -1
  254. package/daemon/dist/domain/bundle-behaviour-inspect.d.ts +4 -0
  255. package/daemon/dist/domain/bundle-behaviour-inspect.d.ts.map +1 -0
  256. package/daemon/dist/domain/bundle-behaviour-inspect.js +56 -0
  257. package/daemon/dist/domain/bundle-behaviour-inspect.js.map +1 -0
  258. package/daemon/dist/domain/bundle-behaviour.d.ts +118 -0
  259. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -0
  260. package/daemon/dist/domain/bundle-behaviour.js +364 -0
  261. package/daemon/dist/domain/bundle-behaviour.js.map +1 -0
  262. package/daemon/dist/domain/bundle-carried-context-pack.d.ts +16 -0
  263. package/daemon/dist/domain/bundle-carried-context-pack.d.ts.map +1 -0
  264. package/daemon/dist/domain/bundle-carried-context-pack.js +67 -0
  265. package/daemon/dist/domain/bundle-carried-context-pack.js.map +1 -0
  266. package/daemon/dist/domain/bundle-carried-project.d.ts +13 -0
  267. package/daemon/dist/domain/bundle-carried-project.d.ts.map +1 -0
  268. package/daemon/dist/domain/bundle-carried-project.js +71 -0
  269. package/daemon/dist/domain/bundle-carried-project.js.map +1 -0
  270. package/daemon/dist/domain/bundle-conflict-detector.js +3 -3
  271. package/daemon/dist/domain/bundle-conflict-detector.js.map +1 -1
  272. package/daemon/dist/domain/bundle-content-routing.d.ts +49 -0
  273. package/daemon/dist/domain/bundle-content-routing.d.ts.map +1 -0
  274. package/daemon/dist/domain/bundle-content-routing.js +246 -0
  275. package/daemon/dist/domain/bundle-content-routing.js.map +1 -0
  276. package/daemon/dist/domain/bundle-context-packs-router.d.ts +7 -2
  277. package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -1
  278. package/daemon/dist/domain/bundle-context-packs-router.js +19 -0
  279. package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -1
  280. package/daemon/dist/domain/bundle-identity.d.ts +27 -0
  281. package/daemon/dist/domain/bundle-identity.d.ts.map +1 -0
  282. package/daemon/dist/domain/bundle-identity.js +34 -0
  283. package/daemon/dist/domain/bundle-identity.js.map +1 -0
  284. package/daemon/dist/domain/bundle-install-context.d.ts +22 -0
  285. package/daemon/dist/domain/bundle-install-context.d.ts.map +1 -0
  286. package/daemon/dist/domain/bundle-install-context.js +51 -0
  287. package/daemon/dist/domain/bundle-install-context.js.map +1 -0
  288. package/daemon/dist/domain/bundle-integrity.d.ts +1 -0
  289. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -1
  290. package/daemon/dist/domain/bundle-integrity.js +1 -1
  291. package/daemon/dist/domain/bundle-integrity.js.map +1 -1
  292. package/daemon/dist/domain/bundle-source-resolver.d.ts +4 -1
  293. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -1
  294. package/daemon/dist/domain/bundle-source-resolver.js +73 -19
  295. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -1
  296. package/daemon/dist/domain/bundle-types.d.ts +37 -0
  297. package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
  298. package/daemon/dist/domain/bundle-types.js +78 -0
  299. package/daemon/dist/domain/bundle-types.js.map +1 -1
  300. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  301. package/daemon/dist/domain/chat-repository.js +3 -1
  302. package/daemon/dist/domain/chat-repository.js.map +1 -1
  303. package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
  304. package/daemon/dist/domain/checkpoint-store.js +2 -2
  305. package/daemon/dist/domain/checkpoint-store.js.map +1 -1
  306. package/daemon/dist/domain/claim-service.d.ts +7 -0
  307. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  308. package/daemon/dist/domain/claim-service.js +6 -2
  309. package/daemon/dist/domain/claim-service.js.map +1 -1
  310. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +38 -12
  311. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  312. package/daemon/dist/domain/claude-compaction-enforcer.js +291 -128
  313. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  314. package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
  315. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  316. package/daemon/dist/domain/claude-managed-launch.js +31 -4
  317. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  318. package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
  319. package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
  320. package/daemon/dist/domain/codex-daemon-support.js +2 -2
  321. package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
  322. package/daemon/dist/domain/codex-network-default.d.ts +42 -0
  323. package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
  324. package/daemon/dist/domain/codex-network-default.js +230 -0
  325. package/daemon/dist/domain/codex-network-default.js.map +1 -0
  326. package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
  327. package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
  328. package/daemon/dist/domain/codex-profile-preflight.js +3 -3
  329. package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
  330. package/daemon/dist/domain/codex-team-workspace.d.ts +8 -0
  331. package/daemon/dist/domain/codex-team-workspace.d.ts.map +1 -0
  332. package/daemon/dist/domain/codex-team-workspace.js +54 -0
  333. package/daemon/dist/domain/codex-team-workspace.js.map +1 -0
  334. package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
  335. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  336. package/daemon/dist/domain/codex-thread-id.js +10 -6
  337. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  338. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  339. package/daemon/dist/domain/context-monitor.js +9 -2
  340. package/daemon/dist/domain/context-monitor.js.map +1 -1
  341. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  342. package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
  343. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  344. package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
  345. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  346. package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
  347. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  348. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
  349. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  350. package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
  351. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  352. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
  353. package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
  354. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
  355. package/daemon/dist/domain/context-usage-store.d.ts +3 -0
  356. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  357. package/daemon/dist/domain/context-usage-store.js +4 -2
  358. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  359. package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
  360. package/daemon/dist/domain/crash-cart-detect.js +2 -1
  361. package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
  362. package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
  363. package/daemon/dist/domain/crash-cart-discovery.js +4 -2
  364. package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
  365. package/daemon/dist/domain/current-work.d.ts +17 -0
  366. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  367. package/daemon/dist/domain/current-work.js +46 -0
  368. package/daemon/dist/domain/current-work.js.map +1 -1
  369. package/daemon/dist/domain/cwd-resolution.js +1 -1
  370. package/daemon/dist/domain/cwd-resolution.js.map +1 -1
  371. package/daemon/dist/domain/daemon-url.d.ts +7 -0
  372. package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
  373. package/daemon/dist/domain/daemon-url.js +12 -0
  374. package/daemon/dist/domain/daemon-url.js.map +1 -0
  375. package/daemon/dist/domain/daemon-version.d.ts +3 -1
  376. package/daemon/dist/domain/daemon-version.d.ts.map +1 -1
  377. package/daemon/dist/domain/daemon-version.js +6 -1
  378. package/daemon/dist/domain/daemon-version.js.map +1 -1
  379. package/daemon/dist/domain/discovery-types.d.ts +1 -1
  380. package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
  381. package/daemon/dist/domain/event-bus.d.ts +1 -0
  382. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  383. package/daemon/dist/domain/event-bus.js +18 -7
  384. package/daemon/dist/domain/event-bus.js.map +1 -1
  385. package/daemon/dist/domain/event-loop-monitor.d.ts +6 -0
  386. package/daemon/dist/domain/event-loop-monitor.d.ts.map +1 -1
  387. package/daemon/dist/domain/event-loop-monitor.js +13 -0
  388. package/daemon/dist/domain/event-loop-monitor.js.map +1 -1
  389. package/daemon/dist/domain/execution-view.d.ts +3 -3
  390. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  391. package/daemon/dist/domain/execution-view.js +116 -93
  392. package/daemon/dist/domain/execution-view.js.map +1 -1
  393. package/daemon/dist/domain/finite-telemetry.d.ts +74 -0
  394. package/daemon/dist/domain/finite-telemetry.d.ts.map +1 -0
  395. package/daemon/dist/domain/finite-telemetry.js +236 -0
  396. package/daemon/dist/domain/finite-telemetry.js.map +1 -0
  397. package/daemon/dist/domain/gateway/connections-projection.d.ts +1 -1
  398. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts +2 -0
  399. package/daemon/dist/domain/gateway/gateway-subsystem.d.ts.map +1 -1
  400. package/daemon/dist/domain/gateway/gateway-subsystem.js +4 -0
  401. package/daemon/dist/domain/gateway/gateway-subsystem.js.map +1 -1
  402. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
  403. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  404. package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
  405. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  406. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts +45 -0
  407. package/daemon/dist/domain/gateway/slack/channel-recovery.d.ts.map +1 -0
  408. package/daemon/dist/domain/gateway/slack/channel-recovery.js +176 -0
  409. package/daemon/dist/domain/gateway/slack/channel-recovery.js.map +1 -0
  410. package/daemon/dist/domain/gateway/slack/inbound.d.ts +74 -4
  411. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  412. package/daemon/dist/domain/gateway/slack/inbound.js +163 -18
  413. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  414. package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
  415. package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
  416. package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
  417. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  418. package/daemon/dist/domain/gateway/slack/message.js +77 -3
  419. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  420. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  421. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  422. package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
  423. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  424. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
  425. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  426. package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
  427. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  428. package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
  429. package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
  430. package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
  431. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +17 -10
  432. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  433. package/daemon/dist/domain/gateway/slack/slack-api.js +94 -24
  434. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  435. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
  436. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  437. package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
  438. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  439. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
  440. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  441. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +121 -28
  442. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  443. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts +4 -0
  444. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  445. package/daemon/dist/domain/gateway/slack/socket-inbound.js +14 -1
  446. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  447. package/daemon/dist/domain/gateway/slack/state-store.d.ts +27 -0
  448. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  449. package/daemon/dist/domain/gateway/slack/state-store.js +102 -1
  450. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  451. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  452. package/daemon/dist/domain/gateway/slack/thread-routing.js +7 -2
  453. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  454. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -0
  455. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  456. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +14 -2
  457. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  458. package/daemon/dist/domain/generated-file-hygiene.d.ts +3 -0
  459. package/daemon/dist/domain/generated-file-hygiene.d.ts.map +1 -0
  460. package/daemon/dist/domain/generated-file-hygiene.js +142 -0
  461. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -0
  462. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  463. package/daemon/dist/domain/graph-projection.js +1 -0
  464. package/daemon/dist/domain/graph-projection.js.map +1 -1
  465. package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
  466. package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
  467. package/daemon/dist/domain/health-checkpoints.js +2 -0
  468. package/daemon/dist/domain/health-checkpoints.js.map +1 -1
  469. package/daemon/dist/domain/health-detectors.d.ts +32 -1
  470. package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
  471. package/daemon/dist/domain/health-detectors.js +40 -9
  472. package/daemon/dist/domain/health-detectors.js.map +1 -1
  473. package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
  474. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  475. package/daemon/dist/domain/health-diagnosis.js +6 -3
  476. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  477. package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
  478. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  479. package/daemon/dist/domain/health-passive-ceremony.js +20 -4
  480. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  481. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
  482. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  483. package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
  484. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  485. package/daemon/dist/domain/human-questions.d.ts +41 -0
  486. package/daemon/dist/domain/human-questions.d.ts.map +1 -0
  487. package/daemon/dist/domain/human-questions.js +81 -0
  488. package/daemon/dist/domain/human-questions.js.map +1 -0
  489. package/daemon/dist/domain/install-planner.d.ts.map +1 -1
  490. package/daemon/dist/domain/install-planner.js +17 -0
  491. package/daemon/dist/domain/install-planner.js.map +1 -1
  492. package/daemon/dist/domain/managed-blocks.d.ts +1 -0
  493. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  494. package/daemon/dist/domain/managed-blocks.js +3 -0
  495. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  496. package/daemon/dist/domain/markdown-address.js +1 -1
  497. package/daemon/dist/domain/markdown-address.js.map +1 -1
  498. package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
  499. package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
  500. package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
  501. package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
  502. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
  503. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
  504. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
  505. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
  506. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
  507. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  508. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
  509. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  510. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
  511. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
  512. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
  513. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  514. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
  515. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
  516. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
  517. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
  518. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
  519. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
  520. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
  521. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
  522. package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
  523. package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
  524. package/daemon/dist/domain/native-permission-store.d.ts +14 -0
  525. package/daemon/dist/domain/native-permission-store.d.ts.map +1 -1
  526. package/daemon/dist/domain/native-permission-store.js +168 -4
  527. package/daemon/dist/domain/native-permission-store.js.map +1 -1
  528. package/daemon/dist/domain/native-process-executable.d.ts +4 -0
  529. package/daemon/dist/domain/native-process-executable.d.ts.map +1 -0
  530. package/daemon/dist/domain/native-process-executable.js +53 -0
  531. package/daemon/dist/domain/native-process-executable.js.map +1 -0
  532. package/daemon/dist/domain/native-process-lineage.d.ts +11 -2
  533. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  534. package/daemon/dist/domain/native-process-lineage.js +135 -15
  535. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  536. package/daemon/dist/domain/native-resume-probe.d.ts +8 -2
  537. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  538. package/daemon/dist/domain/native-resume-probe.js +55 -11
  539. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  540. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  541. package/daemon/dist/domain/node-inventory.js +91 -44
  542. package/daemon/dist/domain/node-inventory.js.map +1 -1
  543. package/daemon/dist/domain/node-launcher.d.ts +4 -0
  544. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  545. package/daemon/dist/domain/node-launcher.js +4 -1
  546. package/daemon/dist/domain/node-launcher.js.map +1 -1
  547. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
  548. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  549. package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
  550. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  551. package/daemon/dist/domain/permission-drift.d.ts +1 -0
  552. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  553. package/daemon/dist/domain/permission-drift.js +13 -1
  554. package/daemon/dist/domain/permission-drift.js.map +1 -1
  555. package/daemon/dist/domain/permission-policy/policy-ref.d.ts +6 -1
  556. package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -1
  557. package/daemon/dist/domain/permission-policy/policy-ref.js +16 -4
  558. package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -1
  559. package/daemon/dist/domain/permission-policy/policy-spec.d.ts +1 -1
  560. package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -1
  561. package/daemon/dist/domain/permission-policy/policy-spec.js +2 -2
  562. package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -1
  563. package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
  564. package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  565. package/daemon/dist/domain/plugin-discovery-service.js +14 -8
  566. package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  567. package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
  568. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  569. package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
  570. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  571. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
  572. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  573. package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
  574. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  575. package/daemon/dist/domain/profile-resolver.d.ts +4 -2
  576. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  577. package/daemon/dist/domain/profile-resolver.js +78 -9
  578. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  579. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  580. package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
  581. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  582. package/daemon/dist/domain/projection-planner.d.ts +11 -0
  583. package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
  584. package/daemon/dist/domain/projection-planner.js +14 -5
  585. package/daemon/dist/domain/projection-planner.js.map +1 -1
  586. package/daemon/dist/domain/proof/judgments.d.ts +3 -0
  587. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  588. package/daemon/dist/domain/proof/judgments.js +13 -8
  589. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  590. package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
  591. package/daemon/dist/domain/proof/source-watch.js +45 -27
  592. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  593. package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
  594. package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
  595. package/daemon/dist/domain/ps-projection.d.ts +22 -3
  596. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  597. package/daemon/dist/domain/ps-projection.js +50 -11
  598. package/daemon/dist/domain/ps-projection.js.map +1 -1
  599. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  600. package/daemon/dist/domain/queue-recovery.js +7 -1
  601. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  602. package/daemon/dist/domain/queue-repository.d.ts +98 -6
  603. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  604. package/daemon/dist/domain/queue-repository.js +337 -43
  605. package/daemon/dist/domain/queue-repository.js.map +1 -1
  606. package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
  607. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  608. package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
  609. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  610. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  611. package/daemon/dist/domain/queue-transition-log.js +12 -10
  612. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  613. package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
  614. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  615. package/daemon/dist/domain/queue-wake-ladder.js +278 -19
  616. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  617. package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
  618. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  619. package/daemon/dist/domain/queue-wake-repository.js +31 -11
  620. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  621. package/daemon/dist/domain/readiness-timeout.d.ts +7 -0
  622. package/daemon/dist/domain/readiness-timeout.d.ts.map +1 -0
  623. package/daemon/dist/domain/readiness-timeout.js +19 -0
  624. package/daemon/dist/domain/readiness-timeout.js.map +1 -0
  625. package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
  626. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
  627. package/daemon/dist/domain/reply-to-choice.js +45 -0
  628. package/daemon/dist/domain/reply-to-choice.js.map +1 -0
  629. package/daemon/dist/domain/request-phase-observer.d.ts +69 -0
  630. package/daemon/dist/domain/request-phase-observer.d.ts.map +1 -0
  631. package/daemon/dist/domain/request-phase-observer.js +206 -0
  632. package/daemon/dist/domain/request-phase-observer.js.map +1 -0
  633. package/daemon/dist/domain/restore-check-service.d.ts +27 -8
  634. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  635. package/daemon/dist/domain/restore-check-service.js +202 -126
  636. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  637. package/daemon/dist/domain/restore-orchestrator.d.ts +5 -2
  638. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  639. package/daemon/dist/domain/restore-orchestrator.js +119 -216
  640. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  641. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  642. package/daemon/dist/domain/restore-plan-preview.js +2 -6
  643. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  644. package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
  645. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
  646. package/daemon/dist/domain/restore-preconditions.js +202 -0
  647. package/daemon/dist/domain/restore-preconditions.js.map +1 -0
  648. package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
  649. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  650. package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
  651. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  652. package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
  653. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  654. package/daemon/dist/domain/resume-token-capture.js +32 -4
  655. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  656. package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
  657. package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
  658. package/daemon/dist/domain/resume-token-validation.js +24 -24
  659. package/daemon/dist/domain/resume-token-validation.js.map +1 -1
  660. package/daemon/dist/domain/rig-mode/operating-posture.d.ts +17 -1
  661. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
  662. package/daemon/dist/domain/rig-mode/operating-posture.js +53 -15
  663. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
  664. package/daemon/dist/domain/rig-repository.d.ts +15 -5
  665. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  666. package/daemon/dist/domain/rig-repository.js +70 -6
  667. package/daemon/dist/domain/rig-repository.js.map +1 -1
  668. package/daemon/dist/domain/rig-teardown.d.ts +3 -0
  669. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  670. package/daemon/dist/domain/rig-teardown.js +105 -19
  671. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  672. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  673. package/daemon/dist/domain/rigspec-codec.js +8 -0
  674. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  675. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  676. package/daemon/dist/domain/rigspec-exporter.js +5 -0
  677. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  678. package/daemon/dist/domain/rigspec-instantiator.d.ts +8 -3
  679. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  680. package/daemon/dist/domain/rigspec-instantiator.js +82 -20
  681. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  682. package/daemon/dist/domain/rigspec-preflight.d.ts +5 -2
  683. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  684. package/daemon/dist/domain/rigspec-preflight.js +36 -13
  685. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  686. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  687. package/daemon/dist/domain/rigspec-schema.js +19 -3
  688. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  689. package/daemon/dist/domain/route-timing-recorder.d.ts.map +1 -1
  690. package/daemon/dist/domain/route-timing-recorder.js +2 -0
  691. package/daemon/dist/domain/route-timing-recorder.js.map +1 -1
  692. package/daemon/dist/domain/runtime-adapter.d.ts +19 -3
  693. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  694. package/daemon/dist/domain/runtime-adapter.js +1 -0
  695. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  696. package/daemon/dist/domain/runtime-verifier.d.ts +3 -1
  697. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  698. package/daemon/dist/domain/runtime-verifier.js +10 -1
  699. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  700. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
  701. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  702. package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
  703. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  704. package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
  705. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  706. package/daemon/dist/domain/seat-activity-service.js +73 -22
  707. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  708. package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
  709. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  710. package/daemon/dist/domain/seat-attention-reconciler.js +38 -9
  711. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  712. package/daemon/dist/domain/seat-handover-service.d.ts +8 -0
  713. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  714. package/daemon/dist/domain/seat-handover-service.js +12 -11
  715. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  716. package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
  717. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  718. package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
  719. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  720. package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
  721. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
  722. package/daemon/dist/domain/seat-launch-environment.js +182 -0
  723. package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
  724. package/daemon/dist/domain/seat-lifecycle-service.d.ts +11 -0
  725. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  726. package/daemon/dist/domain/seat-lifecycle-service.js +41 -2
  727. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  728. package/daemon/dist/domain/seat-status-service.d.ts +2 -1
  729. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  730. package/daemon/dist/domain/seat-status-service.js +10 -6
  731. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  732. package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
  733. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  734. package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
  735. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  736. package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
  737. package/daemon/dist/domain/seat-switch-client-service.js +3 -2
  738. package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
  739. package/daemon/dist/domain/service-orchestrator.d.ts +1 -0
  740. package/daemon/dist/domain/service-orchestrator.d.ts.map +1 -1
  741. package/daemon/dist/domain/service-orchestrator.js +4 -0
  742. package/daemon/dist/domain/service-orchestrator.js.map +1 -1
  743. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  744. package/daemon/dist/domain/services-readiness.js +6 -2
  745. package/daemon/dist/domain/services-readiness.js.map +1 -1
  746. package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
  747. package/daemon/dist/domain/session-fingerprinter.js +16 -1
  748. package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
  749. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  750. package/daemon/dist/domain/session-name.js +6 -0
  751. package/daemon/dist/domain/session-name.js.map +1 -1
  752. package/daemon/dist/domain/session-registry.d.ts +3 -0
  753. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  754. package/daemon/dist/domain/session-registry.js +7 -0
  755. package/daemon/dist/domain/session-registry.js.map +1 -1
  756. package/daemon/dist/domain/session-transport.d.ts +35 -1
  757. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  758. package/daemon/dist/domain/session-transport.js +450 -158
  759. package/daemon/dist/domain/session-transport.js.map +1 -1
  760. package/daemon/dist/domain/skill-catalog.d.ts +19 -0
  761. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  762. package/daemon/dist/domain/skill-catalog.js +166 -17
  763. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  764. package/daemon/dist/domain/skill-discovery.d.ts +1 -1
  765. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  766. package/daemon/dist/domain/skill-discovery.js +6 -0
  767. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  768. package/daemon/dist/domain/slow-op-recorder.d.ts +5 -0
  769. package/daemon/dist/domain/slow-op-recorder.d.ts.map +1 -1
  770. package/daemon/dist/domain/slow-op-recorder.js +34 -1
  771. package/daemon/dist/domain/slow-op-recorder.js.map +1 -1
  772. package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
  773. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  774. package/daemon/dist/domain/snapshot-repository.js +39 -15
  775. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  776. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  777. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  778. package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
  779. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  780. package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
  781. package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
  782. package/daemon/dist/domain/spec-validation-service.js +16 -1
  783. package/daemon/dist/domain/spec-validation-service.js.map +1 -1
  784. package/daemon/dist/domain/startup-orchestrator.d.ts +38 -5
  785. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  786. package/daemon/dist/domain/startup-orchestrator.js +275 -64
  787. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  788. package/daemon/dist/domain/startup-proof.d.ts +7 -0
  789. package/daemon/dist/domain/startup-proof.d.ts.map +1 -1
  790. package/daemon/dist/domain/startup-proof.js +7 -0
  791. package/daemon/dist/domain/startup-proof.js.map +1 -1
  792. package/daemon/dist/domain/startup-submission-evidence.d.ts +45 -0
  793. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
  794. package/daemon/dist/domain/startup-submission-evidence.js +84 -0
  795. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
  796. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  797. package/daemon/dist/domain/startup-validation.js +4 -0
  798. package/daemon/dist/domain/startup-validation.js.map +1 -1
  799. package/daemon/dist/domain/successor-session-launcher.d.ts +14 -3
  800. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  801. package/daemon/dist/domain/successor-session-launcher.js +19 -9
  802. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  803. package/daemon/dist/domain/system-world.d.ts +3 -0
  804. package/daemon/dist/domain/system-world.d.ts.map +1 -1
  805. package/daemon/dist/domain/system-world.js +24 -21
  806. package/daemon/dist/domain/system-world.js.map +1 -1
  807. package/daemon/dist/domain/terminal/cmux-provider-adapter.d.ts.map +1 -1
  808. package/daemon/dist/domain/terminal/cmux-provider-adapter.js +2 -3
  809. package/daemon/dist/domain/terminal/cmux-provider-adapter.js.map +1 -1
  810. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +19 -4
  811. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  812. package/daemon/dist/domain/terminal/herdr-adapter.js +102 -8
  813. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  814. package/daemon/dist/domain/terminal/terminal-provider.d.ts +2 -0
  815. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  816. package/daemon/dist/domain/terminal/terminal-service.d.ts +10 -0
  817. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  818. package/daemon/dist/domain/terminal/terminal-service.js +75 -6
  819. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  820. package/daemon/dist/domain/terminal/view-composer.d.ts +6 -0
  821. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  822. package/daemon/dist/domain/terminal/view-composer.js +6 -3
  823. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  824. package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
  825. package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
  826. package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
  827. package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
  828. package/daemon/dist/domain/tmux-option-defaults.js +5 -0
  829. package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
  830. package/daemon/dist/domain/topology/remote-up-leaf.d.ts +1 -0
  831. package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -1
  832. package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -1
  833. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  834. package/daemon/dist/domain/transcript-capture.js +1 -1
  835. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  836. package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
  837. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  838. package/daemon/dist/domain/transcript-rotation.js +176 -25
  839. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  840. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  841. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  842. package/daemon/dist/domain/transcript-store.js +14 -6
  843. package/daemon/dist/domain/transcript-store.js.map +1 -1
  844. package/daemon/dist/domain/types.d.ts +24 -5
  845. package/daemon/dist/domain/types.d.ts.map +1 -1
  846. package/daemon/dist/domain/types.js.map +1 -1
  847. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  848. package/daemon/dist/domain/usage-series.js +11 -6
  849. package/daemon/dist/domain/usage-series.js.map +1 -1
  850. package/daemon/dist/domain/user-settings/settings-store.d.ts +3 -1
  851. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  852. package/daemon/dist/domain/user-settings/settings-store.js +101 -6
  853. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  854. package/daemon/dist/domain/view-projector.d.ts +11 -6
  855. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  856. package/daemon/dist/domain/view-projector.js +2 -6
  857. package/daemon/dist/domain/view-projector.js.map +1 -1
  858. package/daemon/dist/domain/workflow-runtime.d.ts +1 -1
  859. package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
  860. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  861. package/daemon/dist/domain/workflow-spec-cache.js +103 -14
  862. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  863. package/daemon/dist/domain/workspace/project-catalog.d.ts +20 -0
  864. package/daemon/dist/domain/workspace/project-catalog.d.ts.map +1 -1
  865. package/daemon/dist/domain/workspace/project-catalog.js +92 -0
  866. package/daemon/dist/domain/workspace/project-catalog.js.map +1 -1
  867. package/daemon/dist/domain/workspace/project-registration.d.ts +49 -0
  868. package/daemon/dist/domain/workspace/project-registration.d.ts.map +1 -0
  869. package/daemon/dist/domain/workspace/project-registration.js +251 -0
  870. package/daemon/dist/domain/workspace/project-registration.js.map +1 -0
  871. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  872. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  873. package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
  874. package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
  875. package/daemon/dist/health-detectors-surface.d.ts +1 -1
  876. package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
  877. package/daemon/dist/health-detectors-surface.js.map +1 -1
  878. package/daemon/dist/index.d.ts +4 -4
  879. package/daemon/dist/index.d.ts.map +1 -1
  880. package/daemon/dist/index.js +12 -7
  881. package/daemon/dist/index.js.map +1 -1
  882. package/daemon/dist/middleware/json-body-error.d.ts +17 -0
  883. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
  884. package/daemon/dist/middleware/json-body-error.js +42 -0
  885. package/daemon/dist/middleware/json-body-error.js.map +1 -0
  886. package/daemon/dist/project-catalog-surface.d.ts +2 -1
  887. package/daemon/dist/project-catalog-surface.d.ts.map +1 -1
  888. package/daemon/dist/project-catalog-surface.js +1 -1
  889. package/daemon/dist/project-catalog-surface.js.map +1 -1
  890. package/daemon/dist/routes/activity.d.ts.map +1 -1
  891. package/daemon/dist/routes/activity.js +85 -6
  892. package/daemon/dist/routes/activity.js.map +1 -1
  893. package/daemon/dist/routes/attention.d.ts.map +1 -1
  894. package/daemon/dist/routes/attention.js +7 -1
  895. package/daemon/dist/routes/attention.js.map +1 -1
  896. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  897. package/daemon/dist/routes/bundles.js +197 -407
  898. package/daemon/dist/routes/bundles.js.map +1 -1
  899. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  900. package/daemon/dist/routes/compaction.js +44 -4
  901. package/daemon/dist/routes/compaction.js.map +1 -1
  902. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  903. package/daemon/dist/routes/context-packs.js +10 -2
  904. package/daemon/dist/routes/context-packs.js.map +1 -1
  905. package/daemon/dist/routes/env.d.ts.map +1 -1
  906. package/daemon/dist/routes/env.js +14 -4
  907. package/daemon/dist/routes/env.js.map +1 -1
  908. package/daemon/dist/routes/files.js +2 -2
  909. package/daemon/dist/routes/files.js.map +1 -1
  910. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  911. package/daemon/dist/routes/gateway.js +11 -1
  912. package/daemon/dist/routes/gateway.js.map +1 -1
  913. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  914. package/daemon/dist/routes/hosts.js +51 -12
  915. package/daemon/dist/routes/hosts.js.map +1 -1
  916. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  917. package/daemon/dist/routes/mission-control.js +6 -2
  918. package/daemon/dist/routes/mission-control.js.map +1 -1
  919. package/daemon/dist/routes/missions.d.ts.map +1 -1
  920. package/daemon/dist/routes/missions.js +17 -5
  921. package/daemon/dist/routes/missions.js.map +1 -1
  922. package/daemon/dist/routes/plugins.d.ts.map +1 -1
  923. package/daemon/dist/routes/plugins.js +5 -1
  924. package/daemon/dist/routes/plugins.js.map +1 -1
  925. package/daemon/dist/routes/projects.d.ts.map +1 -1
  926. package/daemon/dist/routes/projects.js +4 -2
  927. package/daemon/dist/routes/projects.js.map +1 -1
  928. package/daemon/dist/routes/proof.d.ts.map +1 -1
  929. package/daemon/dist/routes/proof.js +9 -2
  930. package/daemon/dist/routes/proof.js.map +1 -1
  931. package/daemon/dist/routes/ps.d.ts.map +1 -1
  932. package/daemon/dist/routes/ps.js +18 -0
  933. package/daemon/dist/routes/ps.js.map +1 -1
  934. package/daemon/dist/routes/queue.d.ts.map +1 -1
  935. package/daemon/dist/routes/queue.js +150 -67
  936. package/daemon/dist/routes/queue.js.map +1 -1
  937. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  938. package/daemon/dist/routes/restore-check.js +40 -1
  939. package/daemon/dist/routes/restore-check.js.map +1 -1
  940. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  941. package/daemon/dist/routes/rigs.js +4 -3
  942. package/daemon/dist/routes/rigs.js.map +1 -1
  943. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  944. package/daemon/dist/routes/rigspec.js +11 -12
  945. package/daemon/dist/routes/rigspec.js.map +1 -1
  946. package/daemon/dist/routes/seat.d.ts.map +1 -1
  947. package/daemon/dist/routes/seat.js +22 -4
  948. package/daemon/dist/routes/seat.js.map +1 -1
  949. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  950. package/daemon/dist/routes/sessions.js +3 -2
  951. package/daemon/dist/routes/sessions.js.map +1 -1
  952. package/daemon/dist/routes/telemetry.d.ts +2 -0
  953. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  954. package/daemon/dist/routes/telemetry.js +22 -1
  955. package/daemon/dist/routes/telemetry.js.map +1 -1
  956. package/daemon/dist/routes/terminal-ws.d.ts +1 -2
  957. package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
  958. package/daemon/dist/routes/terminal-ws.js +1 -2
  959. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  960. package/daemon/dist/routes/up.js +11 -6
  961. package/daemon/dist/routes/up.js.map +1 -1
  962. package/daemon/dist/routes/views.js +2 -2
  963. package/daemon/dist/routes/views.js.map +1 -1
  964. package/daemon/dist/server.d.ts +3 -0
  965. package/daemon/dist/server.d.ts.map +1 -1
  966. package/daemon/dist/server.js +11 -3
  967. package/daemon/dist/server.js.map +1 -1
  968. package/daemon/dist/spec-validation-surface.d.ts +4 -0
  969. package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
  970. package/daemon/dist/spec-validation-surface.js +4 -0
  971. package/daemon/dist/spec-validation-surface.js.map +1 -0
  972. package/daemon/dist/startup.d.ts +1 -1
  973. package/daemon/dist/startup.d.ts.map +1 -1
  974. package/daemon/dist/startup.js +166 -57
  975. package/daemon/dist/startup.js.map +1 -1
  976. package/daemon/dist/system-world-surface.d.ts +1 -1
  977. package/daemon/dist/system-world-surface.d.ts.map +1 -1
  978. package/daemon/dist/system-world-surface.js +1 -1
  979. package/daemon/dist/system-world-surface.js.map +1 -1
  980. package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
  981. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  982. package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
  983. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  984. package/daemon/docs/reference/agent-spec.md +145 -64
  985. package/daemon/docs/reference/agent-startup-guide.md +187 -35
  986. package/daemon/docs/reference/agent-state-taxonomy.md +44 -13
  987. package/daemon/docs/reference/browser-access.md +8 -4
  988. package/daemon/docs/reference/bundle-formats.md +207 -0
  989. package/daemon/docs/reference/chain-file-convention.md +16 -7
  990. package/daemon/docs/reference/developing.md +24 -9
  991. package/daemon/docs/reference/edge-types.md +18 -10
  992. package/daemon/docs/reference/getting-started.md +426 -111
  993. package/daemon/docs/reference/health-diagnosis.md +23 -8
  994. package/daemon/docs/reference/help.md +40 -10
  995. package/daemon/docs/reference/host-resources.md +61 -0
  996. package/daemon/docs/reference/instance-layout.md +11 -0
  997. package/daemon/docs/reference/inventory-request-diagnostics.md +75 -0
  998. package/daemon/docs/reference/knowledge-maturity.md +3 -1
  999. package/daemon/docs/reference/legacy-topology-migration.md +4 -2
  1000. package/daemon/docs/reference/lore-routing.md +3 -1
  1001. package/daemon/docs/reference/mission-install.md +3 -1
  1002. package/daemon/docs/reference/non-interruptive-mode.md +60 -0
  1003. package/daemon/docs/reference/planning-dial.md +2 -1
  1004. package/daemon/docs/reference/product-journey-sdlc.md +11 -6
  1005. package/daemon/docs/reference/product-management-pass.md +3 -1
  1006. package/daemon/docs/reference/project-workspace.md +80 -3
  1007. package/daemon/docs/reference/publishing-a-rig-bundle.md +144 -0
  1008. package/daemon/docs/reference/refocus-channel.md +14 -5
  1009. package/daemon/docs/reference/release-boundary.md +7 -3
  1010. package/daemon/docs/reference/rig-bundle.md +271 -42
  1011. package/daemon/docs/reference/rig-spec.md +180 -29
  1012. package/daemon/docs/reference/rosters.md +60 -0
  1013. package/daemon/docs/reference/schemas/bundle-behaviour.v1.schema.json +546 -0
  1014. package/daemon/docs/reference/schemas/bundle-common.v1.schema.json +110 -0
  1015. package/daemon/docs/reference/schemas/bundle-configurations.v1.schema.json +67 -0
  1016. package/daemon/docs/reference/schemas/bundle-status.v1.schema.json +323 -0
  1017. package/daemon/docs/reference/schemas/fixtures/identity-vectors.json +80 -0
  1018. package/daemon/docs/reference/schemas/fixtures/invalid/behaviour/not-generated-with-sections.json +60 -0
  1019. package/daemon/docs/reference/schemas/fixtures/invalid/configurations/spaced-member.configurations.yaml +6 -0
  1020. package/daemon/docs/reference/schemas/fixtures/invalid/registry/listed-with-withdrawn-on.yaml +21 -0
  1021. package/daemon/docs/reference/schemas/fixtures/invalid/registry/missing-source.yaml +16 -0
  1022. package/daemon/docs/reference/schemas/fixtures/invalid/registry/parent-folder.yaml +20 -0
  1023. package/daemon/docs/reference/schemas/fixtures/invalid/registry/short-commit.yaml +20 -0
  1024. package/daemon/docs/reference/schemas/fixtures/invalid/registry/withdrawn-without-date.yaml +20 -0
  1025. package/daemon/docs/reference/schemas/fixtures/invalid/run-record/harness-check-with-configuration.json +75 -0
  1026. package/daemon/docs/reference/schemas/fixtures/invalid/run-record/unlabelable-platform.json +97 -0
  1027. package/daemon/docs/reference/schemas/fixtures/invalid/status/hand-edited-notice.json +61 -0
  1028. package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-with-assistance.json +62 -0
  1029. package/daemon/docs/reference/schemas/fixtures/invalid/status/tested-without-records.json +59 -0
  1030. package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-harness-with-result.json +61 -0
  1031. package/daemon/docs/reference/schemas/fixtures/invalid/status/unavailable-listing-with-label.json +61 -0
  1032. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/custom-not-generated.json +22 -0
  1033. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/legacy-archive-unknown-identity.json +53 -0
  1034. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-default.json +101 -0
  1035. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/mixed-runtimes-yolo.json +102 -0
  1036. package/daemon/docs/reference/schemas/fixtures/valid/behaviour/openrig-dev.recommended.json +258 -0
  1037. package/daemon/docs/reference/schemas/fixtures/valid/configurations/openrig-dev.configurations.yaml +12 -0
  1038. package/daemon/docs/reference/schemas/fixtures/valid/registry/openrig-dev.yaml +20 -0
  1039. package/daemon/docs/reference/schemas/fixtures/valid/registry/withdrawn.yaml +21 -0
  1040. package/daemon/docs/reference/schemas/fixtures/valid/run-record/pi-harness-check-blocked.json +74 -0
  1041. package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-assisted-pass.json +97 -0
  1042. package/daemon/docs/reference/schemas/fixtures/valid/run-record/team-pass.json +97 -0
  1043. package/daemon/docs/reference/schemas/fixtures/valid/run-record/withdraws-earlier.json +99 -0
  1044. package/daemon/docs/reference/schemas/fixtures/valid/status/status.json +61 -0
  1045. package/daemon/docs/reference/schemas/registry-entry.v1.schema.json +139 -0
  1046. package/daemon/docs/reference/schemas/run-record.v1.schema.json +315 -0
  1047. package/daemon/docs/reference/scoped-operating-posture.md +17 -9
  1048. package/daemon/docs/reference/sdlc-conventions.md +47 -28
  1049. package/daemon/docs/reference/slack-app-setup.md +58 -7
  1050. package/daemon/docs/reference/stream-classifier-worker.md +21 -8
  1051. package/daemon/docs/reference/telemetry.md +114 -0
  1052. package/daemon/docs/reference/worktree-builds.md +12 -6
  1053. package/daemon/policies/builtin/auto.policy.md +24 -0
  1054. package/daemon/specs/agents/development/implementer/agent.yaml +2 -2
  1055. package/daemon/specs/agents/development/qa/agent.yaml +1 -1
  1056. package/daemon/specs/agents/product-management/pm/agent.yaml +10 -0
  1057. package/daemon/specs/agents/shared/agent.yaml +1 -1
  1058. package/daemon/specs/agents/shared/skills/core/agent-starters/SKILL.md +0 -6
  1059. package/daemon/specs/agents/shared/skills/core/agent-startup-and-context-ingestion/SKILL.md +1 -8
  1060. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
  1061. package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +5 -5
  1062. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +9 -4
  1063. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/SKILL.md +12 -9
  1064. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +29 -29
  1065. package/daemon/specs/agents/shared/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +0 -1
  1066. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +0 -5
  1067. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  1068. package/daemon/specs/agents/shared/skills/process/agent-browser/OPENRIG.md +1 -1
  1069. package/daemon/specs/agents/shared/skills/process/systematic-debugging/SKILL.md +0 -2
  1070. package/daemon/specs/rigs/focused/{adversarial-review → code-review}/rig.yaml +1 -1
  1071. package/daemon/specs/rigs/focused/pm/CULTURE.md +21 -0
  1072. package/daemon/specs/rigs/focused/{pm-team → pm}/rig.yaml +5 -5
  1073. package/daemon/specs/rigs/focused/{research-team → research}/rig.yaml +1 -1
  1074. package/daemon/specs/rigs/launch/factory/CULTURE.md +96 -0
  1075. package/daemon/specs/rigs/launch/factory/guidance/advisor-role.md +10 -0
  1076. package/daemon/specs/rigs/launch/factory/guidance/lead-first-move.md +23 -0
  1077. package/daemon/specs/rigs/launch/{demo → factory}/rig.yaml +46 -35
  1078. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/instance/CRAFT.md +1 -1
  1079. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/CRAFT.md +2 -2
  1080. package/daemon/specs/rigs/{preview/product-team → launch/factory}/topology/rig/ORCHESTRATION-CRAFT.md +3 -3
  1081. package/daemon/specs/rigs/{preview/product-team/topology/seats/dev1-qa → launch/factory/topology/seats/dev-qa}/CRAFT.md +1 -1
  1082. package/daemon/specs/rigs/{preview/product-team/topology/seats/orch1-lead → launch/factory/topology/seats/orch-lead}/CRAFT.md +1 -1
  1083. package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r1 → launch/factory/topology/seats/review-r1}/CRAFT.md +1 -1
  1084. package/daemon/specs/rigs/{preview/product-team/topology/seats/rev1-r2 → launch/factory/topology/seats/review-r2}/CRAFT.md +1 -1
  1085. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
  1086. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/guidance/role.md +37 -0
  1087. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/startup/context.md +12 -13
  1088. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
  1089. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +167 -4
  1090. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +30 -7
  1091. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
  1092. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +37 -0
  1093. package/daemon/specs/rigs/launch/kernel/culture/CULTURE.md +41 -0
  1094. package/daemon/specs/rigs/launch/starter/CULTURE.md +39 -0
  1095. package/daemon/specs/rigs/launch/starter/guidance/lead-first-move.md +23 -0
  1096. package/daemon/specs/rigs/launch/{first-project-mixed → starter}/rig.yaml +11 -8
  1097. package/dist/atomic-text-write.d.ts +3 -0
  1098. package/dist/atomic-text-write.d.ts.map +1 -0
  1099. package/dist/atomic-text-write.js +79 -0
  1100. package/dist/atomic-text-write.js.map +1 -0
  1101. package/dist/build-info.js +3 -3
  1102. package/dist/bundle-behaviour.d.ts +10 -0
  1103. package/dist/bundle-behaviour.d.ts.map +1 -0
  1104. package/dist/bundle-behaviour.js +72 -0
  1105. package/dist/bundle-behaviour.js.map +1 -0
  1106. package/dist/cli-error.d.ts.map +1 -1
  1107. package/dist/cli-error.js +15 -2
  1108. package/dist/cli-error.js.map +1 -1
  1109. package/dist/client.d.ts +14 -1
  1110. package/dist/client.d.ts.map +1 -1
  1111. package/dist/client.js +29 -4
  1112. package/dist/client.js.map +1 -1
  1113. package/dist/commands/agent-image.d.ts.map +1 -1
  1114. package/dist/commands/agent-image.js +2 -0
  1115. package/dist/commands/agent-image.js.map +1 -1
  1116. package/dist/commands/ask.d.ts.map +1 -1
  1117. package/dist/commands/ask.js +10 -1
  1118. package/dist/commands/ask.js.map +1 -1
  1119. package/dist/commands/bootstrap.d.ts.map +1 -1
  1120. package/dist/commands/bootstrap.js +34 -11
  1121. package/dist/commands/bootstrap.js.map +1 -1
  1122. package/dist/commands/broadcast.js +1 -1
  1123. package/dist/commands/broadcast.js.map +1 -1
  1124. package/dist/commands/bundle.d.ts +12 -0
  1125. package/dist/commands/bundle.d.ts.map +1 -1
  1126. package/dist/commands/bundle.js +286 -21
  1127. package/dist/commands/bundle.js.map +1 -1
  1128. package/dist/commands/capture.js +4 -4
  1129. package/dist/commands/capture.js.map +1 -1
  1130. package/dist/commands/chatroom.d.ts.map +1 -1
  1131. package/dist/commands/chatroom.js +22 -1
  1132. package/dist/commands/chatroom.js.map +1 -1
  1133. package/dist/commands/compact-plan.d.ts.map +1 -1
  1134. package/dist/commands/compact-plan.js +36 -7
  1135. package/dist/commands/compact-plan.js.map +1 -1
  1136. package/dist/commands/compact.d.ts.map +1 -1
  1137. package/dist/commands/compact.js +24 -4
  1138. package/dist/commands/compact.js.map +1 -1
  1139. package/dist/commands/config.d.ts.map +1 -1
  1140. package/dist/commands/config.js +5 -4
  1141. package/dist/commands/config.js.map +1 -1
  1142. package/dist/commands/context.d.ts +3 -1
  1143. package/dist/commands/context.d.ts.map +1 -1
  1144. package/dist/commands/context.js +85 -32
  1145. package/dist/commands/context.js.map +1 -1
  1146. package/dist/commands/crash-cart.d.ts.map +1 -1
  1147. package/dist/commands/crash-cart.js +2 -1
  1148. package/dist/commands/crash-cart.js.map +1 -1
  1149. package/dist/commands/daemon.d.ts +13 -1
  1150. package/dist/commands/daemon.d.ts.map +1 -1
  1151. package/dist/commands/daemon.js +36 -18
  1152. package/dist/commands/daemon.js.map +1 -1
  1153. package/dist/commands/destroy.d.ts.map +1 -1
  1154. package/dist/commands/destroy.js +3 -2
  1155. package/dist/commands/destroy.js.map +1 -1
  1156. package/dist/commands/discover.d.ts.map +1 -1
  1157. package/dist/commands/discover.js +2 -4
  1158. package/dist/commands/discover.js.map +1 -1
  1159. package/dist/commands/doctor.d.ts.map +1 -1
  1160. package/dist/commands/doctor.js +10 -4
  1161. package/dist/commands/doctor.js.map +1 -1
  1162. package/dist/commands/down.d.ts.map +1 -1
  1163. package/dist/commands/down.js +7 -1
  1164. package/dist/commands/down.js.map +1 -1
  1165. package/dist/commands/env.d.ts.map +1 -1
  1166. package/dist/commands/env.js +9 -1
  1167. package/dist/commands/env.js.map +1 -1
  1168. package/dist/commands/export.js +2 -2
  1169. package/dist/commands/export.js.map +1 -1
  1170. package/dist/commands/gateway.d.ts.map +1 -1
  1171. package/dist/commands/gateway.js +23 -3
  1172. package/dist/commands/gateway.js.map +1 -1
  1173. package/dist/commands/health.d.ts.map +1 -1
  1174. package/dist/commands/health.js +13 -1
  1175. package/dist/commands/health.js.map +1 -1
  1176. package/dist/commands/host.d.ts +11 -0
  1177. package/dist/commands/host.d.ts.map +1 -1
  1178. package/dist/commands/host.js +38 -4
  1179. package/dist/commands/host.js.map +1 -1
  1180. package/dist/commands/import.d.ts.map +1 -1
  1181. package/dist/commands/import.js +2 -0
  1182. package/dist/commands/import.js.map +1 -1
  1183. package/dist/commands/mcp.d.ts.map +1 -1
  1184. package/dist/commands/mcp.js +25 -12
  1185. package/dist/commands/mcp.js.map +1 -1
  1186. package/dist/commands/plugin.d.ts.map +1 -1
  1187. package/dist/commands/plugin.js +12 -2
  1188. package/dist/commands/plugin.js.map +1 -1
  1189. package/dist/commands/policy.d.ts.map +1 -1
  1190. package/dist/commands/policy.js +3 -2
  1191. package/dist/commands/policy.js.map +1 -1
  1192. package/dist/commands/project-jev.js +1 -1
  1193. package/dist/commands/project-jev.js.map +1 -1
  1194. package/dist/commands/project.d.ts.map +1 -1
  1195. package/dist/commands/project.js +5 -3
  1196. package/dist/commands/project.js.map +1 -1
  1197. package/dist/commands/ps.d.ts +2 -0
  1198. package/dist/commands/ps.d.ts.map +1 -1
  1199. package/dist/commands/ps.js +109 -37
  1200. package/dist/commands/ps.js.map +1 -1
  1201. package/dist/commands/queue.d.ts +2 -0
  1202. package/dist/commands/queue.d.ts.map +1 -1
  1203. package/dist/commands/queue.js +133 -19
  1204. package/dist/commands/queue.js.map +1 -1
  1205. package/dist/commands/requirements.d.ts.map +1 -1
  1206. package/dist/commands/requirements.js +6 -3
  1207. package/dist/commands/requirements.js.map +1 -1
  1208. package/dist/commands/restore.d.ts.map +1 -1
  1209. package/dist/commands/restore.js +5 -0
  1210. package/dist/commands/restore.js.map +1 -1
  1211. package/dist/commands/rig-mode.d.ts.map +1 -1
  1212. package/dist/commands/rig-mode.js +6 -1
  1213. package/dist/commands/rig-mode.js.map +1 -1
  1214. package/dist/commands/rig.d.ts.map +1 -1
  1215. package/dist/commands/rig.js +20 -20
  1216. package/dist/commands/rig.js.map +1 -1
  1217. package/dist/commands/roster.d.ts +63 -0
  1218. package/dist/commands/roster.d.ts.map +1 -0
  1219. package/dist/commands/roster.js +169 -0
  1220. package/dist/commands/roster.js.map +1 -0
  1221. package/dist/commands/scope.d.ts.map +1 -1
  1222. package/dist/commands/scope.js +22 -0
  1223. package/dist/commands/scope.js.map +1 -1
  1224. package/dist/commands/seat.d.ts.map +1 -1
  1225. package/dist/commands/seat.js +96 -17
  1226. package/dist/commands/seat.js.map +1 -1
  1227. package/dist/commands/send.d.ts.map +1 -1
  1228. package/dist/commands/send.js +20 -6
  1229. package/dist/commands/send.js.map +1 -1
  1230. package/dist/commands/setup.d.ts +1 -1
  1231. package/dist/commands/setup.d.ts.map +1 -1
  1232. package/dist/commands/setup.js +78 -30
  1233. package/dist/commands/setup.js.map +1 -1
  1234. package/dist/commands/slack.d.ts +1 -1
  1235. package/dist/commands/slack.d.ts.map +1 -1
  1236. package/dist/commands/slack.js +57 -5
  1237. package/dist/commands/slack.js.map +1 -1
  1238. package/dist/commands/specs.d.ts.map +1 -1
  1239. package/dist/commands/specs.js +21 -2
  1240. package/dist/commands/specs.js.map +1 -1
  1241. package/dist/commands/start.js +7 -6
  1242. package/dist/commands/start.js.map +1 -1
  1243. package/dist/commands/startup-proof.d.ts.map +1 -1
  1244. package/dist/commands/startup-proof.js +2 -1
  1245. package/dist/commands/startup-proof.js.map +1 -1
  1246. package/dist/commands/status.d.ts.map +1 -1
  1247. package/dist/commands/status.js +7 -0
  1248. package/dist/commands/status.js.map +1 -1
  1249. package/dist/commands/telemetry.d.ts +5 -0
  1250. package/dist/commands/telemetry.d.ts.map +1 -0
  1251. package/dist/commands/telemetry.js +58 -0
  1252. package/dist/commands/telemetry.js.map +1 -0
  1253. package/dist/commands/terminal.d.ts.map +1 -1
  1254. package/dist/commands/terminal.js +5 -1
  1255. package/dist/commands/terminal.js.map +1 -1
  1256. package/dist/commands/transcript.js +5 -3
  1257. package/dist/commands/transcript.js.map +1 -1
  1258. package/dist/commands/tui.js +4 -4
  1259. package/dist/commands/tui.js.map +1 -1
  1260. package/dist/commands/up.d.ts +8 -0
  1261. package/dist/commands/up.d.ts.map +1 -1
  1262. package/dist/commands/up.js +193 -72
  1263. package/dist/commands/up.js.map +1 -1
  1264. package/dist/commands/walk.d.ts.map +1 -1
  1265. package/dist/commands/walk.js +3 -0
  1266. package/dist/commands/walk.js.map +1 -1
  1267. package/dist/commands/whoami.d.ts +3 -0
  1268. package/dist/commands/whoami.d.ts.map +1 -1
  1269. package/dist/commands/whoami.js +29 -2
  1270. package/dist/commands/whoami.js.map +1 -1
  1271. package/dist/commands/workflow-follow.d.ts +2 -0
  1272. package/dist/commands/workflow-follow.d.ts.map +1 -1
  1273. package/dist/commands/workflow-follow.js +6 -4
  1274. package/dist/commands/workflow-follow.js.map +1 -1
  1275. package/dist/commands/workflow.d.ts.map +1 -1
  1276. package/dist/commands/workflow.js +2 -4
  1277. package/dist/commands/workflow.js.map +1 -1
  1278. package/dist/commands/workspace.d.ts.map +1 -1
  1279. package/dist/commands/workspace.js +2 -4
  1280. package/dist/commands/workspace.js.map +1 -1
  1281. package/dist/config-store.d.ts +7 -1
  1282. package/dist/config-store.d.ts.map +1 -1
  1283. package/dist/config-store.js +40 -7
  1284. package/dist/config-store.js.map +1 -1
  1285. package/dist/daemon-auto-start.d.ts +8 -0
  1286. package/dist/daemon-auto-start.d.ts.map +1 -0
  1287. package/dist/daemon-auto-start.js +39 -0
  1288. package/dist/daemon-auto-start.js.map +1 -0
  1289. package/dist/daemon-lifecycle.d.ts +9 -0
  1290. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1291. package/dist/daemon-lifecycle.js +61 -19
  1292. package/dist/daemon-lifecycle.js.map +1 -1
  1293. package/dist/daemon-reachability.d.ts +18 -0
  1294. package/dist/daemon-reachability.d.ts.map +1 -0
  1295. package/dist/daemon-reachability.js +48 -0
  1296. package/dist/daemon-reachability.js.map +1 -0
  1297. package/dist/front-door.d.ts.map +1 -1
  1298. package/dist/front-door.js +3 -2
  1299. package/dist/front-door.js.map +1 -1
  1300. package/dist/index.d.ts +1 -0
  1301. package/dist/index.d.ts.map +1 -1
  1302. package/dist/index.js +4 -0
  1303. package/dist/index.js.map +1 -1
  1304. package/dist/lib/bundle-check.d.ts +13 -0
  1305. package/dist/lib/bundle-check.d.ts.map +1 -0
  1306. package/dist/lib/bundle-check.js +191 -0
  1307. package/dist/lib/bundle-check.js.map +1 -0
  1308. package/dist/lib/bundle-configuration.d.ts +60 -0
  1309. package/dist/lib/bundle-configuration.d.ts.map +1 -0
  1310. package/dist/lib/bundle-configuration.js +198 -0
  1311. package/dist/lib/bundle-configuration.js.map +1 -0
  1312. package/dist/lib/bundle-source.d.ts +57 -0
  1313. package/dist/lib/bundle-source.d.ts.map +1 -0
  1314. package/dist/lib/bundle-source.js +355 -0
  1315. package/dist/lib/bundle-source.js.map +1 -0
  1316. package/dist/lib/context-install.d.ts.map +1 -1
  1317. package/dist/lib/context-install.js +2 -3
  1318. package/dist/lib/context-install.js.map +1 -1
  1319. package/dist/lib/file-transfer.d.ts +1 -1
  1320. package/dist/lib/file-transfer.d.ts.map +1 -1
  1321. package/dist/lib/file-transfer.js +17 -5
  1322. package/dist/lib/file-transfer.js.map +1 -1
  1323. package/dist/lib/permission-policy/policy-ref.d.ts +6 -1
  1324. package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -1
  1325. package/dist/lib/permission-policy/policy-ref.js +16 -4
  1326. package/dist/lib/permission-policy/policy-ref.js.map +1 -1
  1327. package/dist/lib/permission-policy/policy-spec.d.ts +1 -1
  1328. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -1
  1329. package/dist/lib/permission-policy/policy-spec.js +2 -2
  1330. package/dist/lib/permission-policy/policy-spec.js.map +1 -1
  1331. package/dist/lib/scope/mission-composition.d.ts.map +1 -1
  1332. package/dist/lib/scope/mission-composition.js +11 -0
  1333. package/dist/lib/scope/mission-composition.js.map +1 -1
  1334. package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
  1335. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  1336. package/dist/lib/scope/scaffold-placeholder.js +4 -4
  1337. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  1338. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  1339. package/dist/lib/scope/scope-fs.js +10 -16
  1340. package/dist/lib/scope/scope-fs.js.map +1 -1
  1341. package/dist/lib/scope/templates.d.ts.map +1 -1
  1342. package/dist/lib/scope/templates.js +1 -0
  1343. package/dist/lib/scope/templates.js.map +1 -1
  1344. package/dist/lib/scope-templates/notes.md +1 -1
  1345. package/dist/lib/scope-templates/slice-progress.md +11 -7
  1346. package/dist/lib/work-install.d.ts +12 -0
  1347. package/dist/lib/work-install.d.ts.map +1 -1
  1348. package/dist/lib/work-install.js +55 -4
  1349. package/dist/lib/work-install.js.map +1 -1
  1350. package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
  1351. package/dist/restore-packet/claude-transcript-parser.js +2 -0
  1352. package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
  1353. package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
  1354. package/dist/restore-packet/codex-jsonl-parser.js +2 -0
  1355. package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
  1356. package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
  1357. package/dist/restore-packet/runtime-detect.js +2 -0
  1358. package/dist/restore-packet/runtime-detect.js.map +1 -1
  1359. package/package.json +4 -3
  1360. package/tui/dist/attention/source-continuity.d.ts.map +1 -1
  1361. package/tui/dist/attention/source-continuity.js +5 -3
  1362. package/tui/dist/attention/source-continuity.js.map +1 -1
  1363. package/tui/dist/commands/registry.d.ts.map +1 -1
  1364. package/tui/dist/commands/registry.js +8 -3
  1365. package/tui/dist/commands/registry.js.map +1 -1
  1366. package/tui/dist/daemon-client.d.ts +3 -1
  1367. package/tui/dist/daemon-client.d.ts.map +1 -1
  1368. package/tui/dist/daemon-client.js +18 -6
  1369. package/tui/dist/daemon-client.js.map +1 -1
  1370. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  1371. package/tui/dist/execution/execution-model.js +19 -7
  1372. package/tui/dist/execution/execution-model.js.map +1 -1
  1373. package/tui/dist/grammar.d.ts.map +1 -1
  1374. package/tui/dist/grammar.js +3 -2
  1375. package/tui/dist/grammar.js.map +1 -1
  1376. package/tui/dist/health/health-model.d.ts.map +1 -1
  1377. package/tui/dist/health/health-model.js +17 -5
  1378. package/tui/dist/health/health-model.js.map +1 -1
  1379. package/tui/dist/hydrate.d.ts.map +1 -1
  1380. package/tui/dist/hydrate.js +1 -0
  1381. package/tui/dist/hydrate.js.map +1 -1
  1382. package/tui/dist/input.d.ts.map +1 -1
  1383. package/tui/dist/input.js +5 -0
  1384. package/tui/dist/input.js.map +1 -1
  1385. package/tui/dist/live-events.d.ts +2 -2
  1386. package/tui/dist/live-events.d.ts.map +1 -1
  1387. package/tui/dist/live-events.js +65 -27
  1388. package/tui/dist/live-events.js.map +1 -1
  1389. package/tui/dist/local-reading.d.ts.map +1 -1
  1390. package/tui/dist/local-reading.js +2 -0
  1391. package/tui/dist/local-reading.js.map +1 -1
  1392. package/tui/dist/main.js +46 -6
  1393. package/tui/dist/main.js.map +1 -1
  1394. package/tui/dist/page-read.d.ts.map +1 -1
  1395. package/tui/dist/page-read.js +4 -1
  1396. package/tui/dist/page-read.js.map +1 -1
  1397. package/tui/dist/render.d.ts +2 -0
  1398. package/tui/dist/render.d.ts.map +1 -1
  1399. package/tui/dist/render.js +81 -23
  1400. package/tui/dist/render.js.map +1 -1
  1401. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  1402. package/tui/dist/scopes/scopes-model.js +36 -31
  1403. package/tui/dist/scopes/scopes-model.js.map +1 -1
  1404. package/tui/dist/socket-server.d.ts +6 -2
  1405. package/tui/dist/socket-server.d.ts.map +1 -1
  1406. package/tui/dist/socket-server.js +159 -14
  1407. package/tui/dist/socket-server.js.map +1 -1
  1408. package/tui/dist/specs/graph.d.ts +5 -0
  1409. package/tui/dist/specs/graph.d.ts.map +1 -0
  1410. package/tui/dist/specs/graph.js +16 -0
  1411. package/tui/dist/specs/graph.js.map +1 -0
  1412. package/tui/dist/specs/launch.d.ts +29 -0
  1413. package/tui/dist/specs/launch.d.ts.map +1 -0
  1414. package/tui/dist/specs/launch.js +64 -0
  1415. package/tui/dist/specs/launch.js.map +1 -0
  1416. package/tui/dist/startup.d.ts.map +1 -1
  1417. package/tui/dist/startup.js +15 -6
  1418. package/tui/dist/startup.js.map +1 -1
  1419. package/tui/dist/state.d.ts +2 -2
  1420. package/tui/dist/state.d.ts.map +1 -1
  1421. package/tui/dist/state.js +41 -18
  1422. package/tui/dist/state.js.map +1 -1
  1423. package/tui/dist/terminals/terminal-model.d.ts +1 -0
  1424. package/tui/dist/terminals/terminal-model.d.ts.map +1 -1
  1425. package/tui/dist/terminals/terminal-model.js +19 -2
  1426. package/tui/dist/terminals/terminal-model.js.map +1 -1
  1427. package/tui/dist/types.d.ts +35 -0
  1428. package/tui/dist/types.d.ts.map +1 -1
  1429. package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
  1430. package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
  1431. package/ui/dist/index.html +2 -2
  1432. package/daemon/specs/rigs/launch/conveyor/README.md +0 -33
  1433. package/daemon/specs/rigs/launch/conveyor/rig.yaml +0 -72
  1434. package/daemon/specs/rigs/launch/demo/project-example/README.md +0 -25
  1435. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +0 -19
  1436. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +0 -6
  1437. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +0 -7
  1438. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +0 -31
  1439. package/daemon/specs/rigs/launch/first-project/rig.yaml +0 -31
  1440. package/daemon/specs/rigs/launch/first-project-claude/rig.yaml +0 -30
  1441. package/daemon/specs/rigs/launch/implementation-pair/rig.yaml +0 -27
  1442. package/daemon/specs/rigs/preview/product-team/rig.yaml +0 -90
  1443. /package/daemon/specs/rigs/launch/factory-rsi/{rig.yaml → world-bundle.yaml} +0 -0
@@ -22,10 +22,11 @@ import nodePath from "node:path";
22
22
  import readline from "node:readline";
23
23
  import { PassThrough } from "node:stream";
24
24
  import { StringDecoder } from "node:string_decoder";
25
- import { spawn } from "node:child_process";
25
+ import { execFileSync, spawn, spawnSync } from "node:child_process";
26
26
  import { pathToFileURL } from "node:url";
27
27
  import { stripVTControlCharacters } from "node:util";
28
- import { piSeatPaths, buildPiChildArgs, buildPiChildEnv, buildPendingRunnerState, parsePiRunnerState, PI_RUNNER_READY_MARKER, PI_RUNNER_EXIT_MARKER, PI_RUNNER_ERROR_MARKER, } from "./pi-runner-protocol.js";
28
+ import { formatDaemonHostForUrl } from "./daemon-url.js";
29
+ import { piSeatPaths, buildPiChildArgs, buildPiChildEnv, buildPendingRunnerState, parsePiRunnerState, PI_RUNNER_READY_MARKER, PI_RUNNER_ERROR_MARKER, PI_PROVIDER_ENV_VARS, } from "./pi-runner-protocol.js";
29
30
  // ── Submitted input boundaries ─────────────────────────────────────────────
30
31
  // Canonical TTY buffers can overflow before Node sees even the paste terminator.
31
32
  // Use Node's line editor in raw mode, with only paste framing handled here.
@@ -143,21 +144,52 @@ export function createRunnerInput(input, output, onSubmit) {
143
144
  });
144
145
  return editor;
145
146
  }
146
- function errorNotice(detail) {
147
+ // Pi reports missing credentials through RPC errors and terminal model failures.
148
+ // Add only fixed setting/variable names; never inspect or repeat credential values.
149
+ function piCredentialHint(message) {
150
+ const match = /^No API key found for ([a-z0-9-]+)\b/i.exec(message.trim());
151
+ if (!match)
152
+ return "";
153
+ const provider = match[1].toLowerCase();
154
+ const key = Object.hasOwn(PI_PROVIDER_ENV_VARS, provider) ? PI_PROVIDER_ENV_VARS[provider] : undefined;
155
+ return key
156
+ ? ` For managed Pi, set ${key} in the daemon environment and add ${key} to recovery.provider_auth_env_allowlist. Use model ${provider}/<id>, then restart the daemon and relaunch the seat. Default Pi logins are not automatically shared.`
157
+ : " For managed Pi, configure this provider in the seat's PI_CODING_AGENT_DIR (auth.json or models.json). Its key is not in OpenRig's Pi environment passthrough map; default Pi logins are not automatically shared.";
158
+ }
159
+ function errorNotice(detail, runtime) {
147
160
  const text = typeof detail === "string"
148
161
  ? stripVTControlCharacters(detail).replace(/[\p{Cc}\p{Cf}\p{Zl}\p{Zp}]/gu, " ").replace(/\s+/g, " ").trim()
149
162
  : "";
150
- return `${PI_RUNNER_ERROR_MARKER} ${text.slice(0, 400) || "request failed"}`;
163
+ const marker = runtime === "omp" ? "[omp-runner] ERROR" : PI_RUNNER_ERROR_MARKER;
164
+ return `${marker} ${text.slice(0, 400) || "request failed"}${runtime === "pi" ? piCredentialHint(text) : ""}`;
165
+ }
166
+ /** The one model-failure detector for both runtimes. Pi and OMP report a
167
+ * provider/auth failure on the assistant message itself and still end the
168
+ * turn normally; OMP repeats the message on turn_end, and either runtime can
169
+ * announce it again when automatic retries exhaust. The core coalesces the
170
+ * repeats into one notice per failure. */
171
+ function modelErrorNotice(event, runtime) {
172
+ if (event.type === "auto_retry_end") {
173
+ return event.success === false ? { errorNotice: errorNotice(event.finalError, runtime) } : {};
174
+ }
175
+ const message = event.message;
176
+ return message?.role === "assistant" && message.stopReason === "error"
177
+ ? { errorNotice: errorNotice(message.errorMessage, runtime) } : {};
151
178
  }
152
- export function mapPiEvent(event) {
179
+ export function mapPiEvent(event, runtime = "pi") {
153
180
  const type = typeof event.type === "string" ? event.type : "";
154
181
  switch (type) {
155
182
  case "agent_start":
156
183
  return { mirrorLines: [], activity: { hookEvent: "active", subtype: "agent_start" }, streaming: true };
157
184
  case "agent_end":
158
- return { mirrorLines: [""], activity: { hookEvent: "Stop", subtype: "agent_end" }, streaming: false };
159
- case "turn_start":
185
+ return runtime === "omp" && event.isTerminal === false
186
+ ? { mirrorLines: [], streaming: true }
187
+ : { mirrorLines: [""], activity: { hookEvent: "Stop", subtype: "agent_end" }, streaming: false };
160
188
  case "turn_end":
189
+ // OMP repeats an assistant failure on turn_end (sometimes only there).
190
+ // Pi keeps main's mapping: turn_end carries no notice.
191
+ return runtime === "omp" ? { mirrorLines: [], ...modelErrorNotice(event, runtime) } : { mirrorLines: [] };
192
+ case "turn_start":
161
193
  case "message_start":
162
194
  return { mirrorLines: [] };
163
195
  case "message_update": {
@@ -171,18 +203,12 @@ export function mapPiEvent(event) {
171
203
  const delta = update?.type === "text_delta" && typeof update.delta === "string" ? update.delta : "";
172
204
  return delta ? { mirrorLines: [], mirrorAppend: delta } : { mirrorLines: [] };
173
205
  }
174
- case "message_end": {
206
+ case "message_end":
175
207
  // The message text already streamed via message_update appends; this
176
208
  // terminates the line. (mapPiEvent is stateless, so a hypothetical
177
209
  // updates-carried-nothing case is a VM-calibration follow-up, not
178
210
  // silently guessed here.)
179
- const message = event.message;
180
- return {
181
- mirrorLines: [""],
182
- ...(message?.role === "assistant" && message.stopReason === "error"
183
- ? { errorNotice: errorNotice(message.errorMessage) } : {}),
184
- };
185
- }
211
+ return { mirrorLines: [""], ...modelErrorNotice(event, runtime) };
186
212
  case "tool_execution_start": {
187
213
  const tool = typeof event.toolName === "string" ? event.toolName : (typeof event.name === "string" ? event.name : "tool");
188
214
  return { mirrorLines: [` ⚙ ${tool} …`], activity: { hookEvent: "PreToolUse", subtype: tool } };
@@ -195,15 +221,23 @@ export function mapPiEvent(event) {
195
221
  case "queue_update":
196
222
  return { mirrorLines: [] };
197
223
  case "compaction_start":
198
- return { mirrorLines: ["[pi] compacting context…"], activity: { hookEvent: "active", subtype: "compaction" } };
224
+ return { mirrorLines: [`[${runtime}] compacting context…`], activity: { hookEvent: "active", subtype: "compaction" } };
199
225
  case "compaction_end":
200
- return { mirrorLines: ["[pi] compaction done"] };
226
+ return { mirrorLines: [`[${runtime}] compaction done`] };
227
+ // OMP names its automatic compaction separately. Pi keeps main's mapping
228
+ // (unmapped), so an idle Pi seat never reads as running after one.
229
+ case "auto_compaction_start":
230
+ return runtime === "omp"
231
+ ? { mirrorLines: ["[omp] compacting context…"], activity: { hookEvent: "active", subtype: "compaction" } }
232
+ : { mirrorLines: [] };
233
+ case "auto_compaction_end":
234
+ return runtime === "omp" ? { mirrorLines: ["[omp] compaction done"] } : { mirrorLines: [] };
201
235
  case "auto_retry_start":
202
236
  return { mirrorLines: ["[pi] transient error — retrying"], activity: { hookEvent: "active", subtype: "auto_retry" } };
203
- case "auto_retry_end":
204
- return event.success === false
205
- ? { mirrorLines: [""], errorNotice: errorNotice(event.finalError) }
206
- : { mirrorLines: [] };
237
+ case "auto_retry_end": {
238
+ const notice = modelErrorNotice(event, runtime);
239
+ return notice.errorNotice ? { mirrorLines: [""], ...notice } : { mirrorLines: [] };
240
+ }
207
241
  case "extension_error": {
208
242
  const message = typeof event.message === "string" ? event.message : "extension error";
209
243
  return { mirrorLines: [`${PI_RUNNER_ERROR_MARKER} extension: ${message}`] };
@@ -215,6 +249,9 @@ export function mapPiEvent(event) {
215
249
  const GET_STATE_ID = "pi-runner-get-state";
216
250
  const CATCH_UP_ID = "pi-runner-catch-up";
217
251
  const CURSOR_REFRESH_ID = "pi-runner-cursor-refresh";
252
+ /** RPC commands that carry operator input. Their failure means the seat
253
+ * cannot do the requested work; other command failures are not attention. */
254
+ const INPUT_COMMANDS = { prompt: true, steer: true, follow_up: true };
218
255
  export class RunnerCore {
219
256
  io;
220
257
  identity;
@@ -225,6 +262,16 @@ export class RunnerCore {
225
262
  lastEntryId;
226
263
  ready = false;
227
264
  assistantErrorShown = false;
265
+ started = false;
266
+ /** OMP attention (runtime_error | permission_prompt) that must survive the
267
+ * end of the turn; cleared by the next agent_start. */
268
+ attention = null;
269
+ /** Whether the last activity posted is that attention. Later activity in
270
+ * the same turn (a tool call after a denied approval) replaces it. */
271
+ attentionIsLatest = false;
272
+ /** Set once the daemon confirms it persisted the resume token. */
273
+ identityPersisted = false;
274
+ identityInFlight = false;
228
275
  constructor(io, identity, opts = {}) {
229
276
  this.io = io;
230
277
  this.identity = identity;
@@ -234,8 +281,17 @@ export class RunnerCore {
234
281
  // newer entry supersedes it.
235
282
  this.lastEntryId = opts.catchUpSince;
236
283
  }
284
+ /** Runner readiness is the sidecar's acknowledged get_state, not RPC transport ready. */
285
+ isReady() { return this.ready; }
237
286
  /** Kick off identity capture. Called once pi's RPC stream is up. */
238
287
  start() {
288
+ // OMP's start is driven by the transport `ready` frame and must run once;
289
+ // Pi keeps main's unconditional start.
290
+ if (this.runtime === "omp") {
291
+ if (this.started)
292
+ return;
293
+ this.started = true;
294
+ }
239
295
  this.io.sendRpc({ type: "get_state", id: GET_STATE_ID });
240
296
  if (this.opts.catchUpSince) {
241
297
  // Durable catch-up cursor (FR-5): replay session entries the previous
@@ -267,6 +323,7 @@ export class RunnerCore {
267
323
  }
268
324
  this.handleEvent(record);
269
325
  }
326
+ get runtime() { return this.opts.runtime ?? "pi"; }
270
327
  /** One aggregated paste block from pane stdin. */
271
328
  handleUserBlock(block) {
272
329
  if (block === "/abort") {
@@ -290,34 +347,50 @@ export class RunnerCore {
290
347
  this.io.sendRpc({ type: "prompt", message: block });
291
348
  this.io.mirrorLine(`you ▸ ${block}`);
292
349
  }
293
- /** Pi process exit — honest, loud, durable. */
350
+ /** Child process exit — honest, loud, durable. */
294
351
  handlePiExit(code) {
295
352
  this.ready = false;
296
- this.io.mirrorLine(`${PI_RUNNER_EXIT_MARKER} pi exited (code ${code ?? "unknown"})`);
353
+ this.io.mirrorLine(`[${this.runtime}-runner] EXITED ${this.runtime} exited (code ${code ?? "unknown"})`);
297
354
  this.writeSidecar({ exited: { code, at: this.io.now() } });
298
- this.io.postActivity(this.activityPayload("Stop", "pi_exited"));
355
+ this.io.postActivity(this.activityPayload("Stop", `${this.runtime}_exited`));
299
356
  }
300
357
  handleResponse(record) {
358
+ if (record.success === false || record.error != null) {
359
+ const detail = typeof record.error === "string" ? record.error : "request failed";
360
+ const message = detail + (this.runtime === "pi" ? piCredentialHint(detail) : "");
361
+ if (record.id === GET_STATE_ID) {
362
+ this.ready = false;
363
+ this.writeSidecar({});
364
+ this.io.mirrorLine(this.runtime === "omp" ? `[omp-runner] ERROR rpc get_state: ${message}` : `${PI_RUNNER_ERROR_MARKER} rpc: ${message}`);
365
+ // OMP cannot provide a resume token without get_state; stop it so the
366
+ // launch fails now instead of waiting out readiness.
367
+ if (this.runtime === "omp")
368
+ this.io.stopChild?.();
369
+ return;
370
+ }
371
+ this.io.mirrorLine(`[${this.runtime}-runner] ERROR rpc: ${message}`);
372
+ // Only a rejected input means the seat cannot do the requested work.
373
+ // A mistimed /abort (or any control command) leaves the seat idle.
374
+ if (this.runtime === "omp" && typeof record.command === "string" && Object.hasOwn(INPUT_COMMANDS, record.command)) {
375
+ this.raiseAttention("runtime_error");
376
+ }
377
+ return;
378
+ }
301
379
  if (record.id === GET_STATE_ID) {
302
380
  const data = (record.data ?? record.state ?? record);
303
381
  const sessionFile = typeof data.sessionFile === "string" ? data.sessionFile : undefined;
304
382
  const sessionId = typeof data.sessionId === "string" ? data.sessionId : undefined;
305
383
  this.sessionFile = sessionFile ?? this.sessionFile;
306
384
  this.sessionId = sessionId ?? this.sessionId;
307
- this.ready = true;
385
+ this.ready = this.runtime === "pi" || !!this.sessionFile;
386
+ if (!this.ready) {
387
+ this.io.mirrorLine("[omp-runner] ERROR rpc get_state returned no session file; cannot provide a resume token");
388
+ this.io.stopChild?.();
389
+ return;
390
+ }
308
391
  this.writeSidecar({});
309
- this.io.mirrorLine(`${PI_RUNNER_READY_MARKER} session=${this.sessionFile ?? "unknown"}`);
310
- this.io.postActivity({
311
- eventFamily: "session_identity",
312
- sessionName: this.identity.sessionName,
313
- nodeId: this.identity.nodeId ?? null,
314
- generation: this.identity.generation ?? null,
315
- runtime: "pi",
316
- hookEvent: "SessionStart",
317
- sessionId: this.sessionId ?? "unknown",
318
- sessionFile: this.sessionFile ?? null,
319
- occurredAt: this.io.now(),
320
- });
392
+ this.io.mirrorLine(`${this.runtime === "omp" ? "[omp-runner] READY" : PI_RUNNER_READY_MARKER} session=${this.sessionFile ?? "unknown"}`);
393
+ this.postSessionIdentity();
321
394
  return;
322
395
  }
323
396
  if (record.id === CURSOR_REFRESH_ID || record.id === CATCH_UP_ID) {
@@ -333,13 +406,35 @@ export class RunnerCore {
333
406
  }
334
407
  return;
335
408
  }
336
- // Other responses (prompt accepted, …) — surface errors.
337
- if (record.success === false || record.error != null) {
338
- const message = typeof record.error === "string" ? record.error : "request failed";
339
- this.io.mirrorLine(`${PI_RUNNER_ERROR_MARKER} rpc: ${message}`);
340
- }
409
+ }
410
+ raiseAttention(subtype) {
411
+ // Runtime failures outrank denied approvals. Only emit when the visible
412
+ // attention changes or intervening activity replaced it.
413
+ const next = this.attention === "runtime_error" ? this.attention : subtype;
414
+ if (this.attention === next && this.attentionIsLatest)
415
+ return;
416
+ this.attention = next;
417
+ this.attentionIsLatest = true;
418
+ this.io.postActivity(this.activityPayload("Notification", next));
419
+ }
420
+ clearAttention() {
421
+ this.attention = null;
422
+ this.attentionIsLatest = false;
341
423
  }
342
424
  handleEvent(event) {
425
+ if (this.runtime === "omp" && event.type === "extension_ui_request") {
426
+ const method = event.method;
427
+ // RPC does not mount an interactive UI. Reply at once; otherwise the
428
+ // child can wait forever for approval that cannot be given in the pane.
429
+ if (typeof event.id === "string") {
430
+ this.io.sendRpc({ type: "extension_ui_response", id: event.id, cancelled: true });
431
+ }
432
+ if (method === "select" || method === "confirm" || method === "input" || method === "editor") {
433
+ this.io.mirrorLine("[omp-runner] Approval/input requested; cancelled because the managed RPC pane cannot answer it. Operator action required: review the denied action and re-send a safe instruction, or change the seat permission policy explicitly.");
434
+ this.raiseAttention("permission_prompt");
435
+ }
436
+ return;
437
+ }
343
438
  const message = event.message;
344
439
  if (event.type === "agent_start" || (event.type === "message_start" && message?.role === "assistant")) {
345
440
  this.assistantErrorShown = false;
@@ -350,9 +445,23 @@ export class RunnerCore {
350
445
  this.lastEntryId = entryId;
351
446
  this.writeSidecar({});
352
447
  }
353
- const mapped = mapPiEvent(event);
448
+ if (this.runtime === "omp") {
449
+ if (event.type === "agent_start")
450
+ this.clearAttention();
451
+ // A successful automatic retry supersedes the failed attempt.
452
+ if (event.type === "auto_retry_start" && this.attention === "runtime_error")
453
+ this.clearAttention();
454
+ // Some paths omit agent_start; turn_start still opens a new turn.
455
+ if (event.type === "turn_start")
456
+ this.assistantErrorShown = false;
457
+ }
458
+ const mapped = mapPiEvent(event, this.runtime);
354
459
  if (mapped.streaming !== undefined)
355
460
  this.streaming = mapped.streaming;
461
+ // OMP writes its JSONL lazily; re-announce identity after each turn until
462
+ // the daemon confirms the token. Pi's get_state identity is final.
463
+ if (event.type === "agent_end" && this.runtime === "omp")
464
+ this.postSessionIdentity();
356
465
  if (event.type === "agent_end") {
357
466
  // QA RED fold (qitem-20260707020922): live events do not reliably carry
358
467
  // session-entry ids, so the durable cursor starved (lastEntryId stayed
@@ -366,24 +475,67 @@ export class RunnerCore {
366
475
  for (const line of mapped.mirrorLines)
367
476
  this.io.mirrorLine(line);
368
477
  if (mapped.errorNotice) {
369
- // Pi can announce the same failed message again when retries exhaust.
370
- // Keep the first useful detail even if finalError is absent, then reset
371
- // at the next assistant message/agent turn, not at agent_end.
372
- if (event.type !== "auto_retry_end" || !this.assistantErrorShown) {
478
+ // Pi can announce the same failed message again when retries exhaust,
479
+ // and OMP repeats it on turn_end. Keep the first useful detail even if
480
+ // the repeat lacks it, then reset at the next assistant message/agent
481
+ // turn, not at agent_end.
482
+ if (event.type === "message_end" || !this.assistantErrorShown) {
373
483
  this.io.mirrorLine(mapped.errorNotice);
374
484
  }
375
485
  this.assistantErrorShown = true;
486
+ // OMP still ends the turn normally after a model failure; the operator
487
+ // has to act, so the seat shows attention rather than idle.
488
+ if (this.runtime === "omp")
489
+ this.raiseAttention("runtime_error");
490
+ }
491
+ if (!mapped.activity)
492
+ return;
493
+ if (mapped.activity.hookEvent === "Stop" && this.attention) {
494
+ // The turn ended, but the operator still has to act. Drop the Stop; if
495
+ // later activity replaced the attention, restore it as the final state.
496
+ if (!this.attentionIsLatest)
497
+ this.raiseAttention(this.attention);
376
498
  }
377
- if (mapped.activity) {
499
+ else {
500
+ this.attentionIsLatest = false;
378
501
  this.io.postActivity(this.activityPayload(mapped.activity.hookEvent, mapped.activity.subtype));
379
502
  }
380
503
  }
504
+ /** Re-deliver OMP identity until the daemon confirms the resume token.
505
+ * Called from a timer so a daemon restart during the first turn cannot
506
+ * leave a seat with history but no restorable token. */
507
+ retrySessionIdentity() {
508
+ if (this.runtime === "omp" && this.ready)
509
+ this.postSessionIdentity();
510
+ }
511
+ postSessionIdentity() {
512
+ if (this.runtime === "omp" && (!this.sessionFile || !this.io.sessionFileExists?.(this.sessionFile)))
513
+ return;
514
+ if (this.runtime === "omp" && (this.identityPersisted || this.identityInFlight))
515
+ return;
516
+ const result = this.io.postActivity({
517
+ eventFamily: "session_identity",
518
+ sessionName: this.identity.sessionName,
519
+ nodeId: this.identity.nodeId ?? null,
520
+ runtime: this.runtime,
521
+ generation: this.identity.generation ?? null,
522
+ hookEvent: "SessionStart",
523
+ sessionId: this.sessionId ?? "unknown",
524
+ sessionFile: this.sessionFile ?? null,
525
+ occurredAt: this.io.now(),
526
+ });
527
+ if (this.runtime !== "omp" || !result)
528
+ return;
529
+ this.identityInFlight = true;
530
+ void result.then((body) => { if (body?.tokenPersisted === true)
531
+ this.identityPersisted = true; }, () => { }).finally(() => { this.identityInFlight = false; });
532
+ }
381
533
  activityPayload(hookEvent, subtype) {
382
534
  return {
383
535
  sessionName: this.identity.sessionName,
384
536
  nodeId: this.identity.nodeId ?? null,
385
537
  generation: this.identity.generation ?? null,
386
- runtime: "pi",
538
+ runtime: this.runtime,
387
539
  hookEvent,
388
540
  subtype,
389
541
  occurredAt: this.io.now(),
@@ -417,6 +569,13 @@ export function parseRunnerArgs(argv) {
417
569
  case "--session-name":
418
570
  args.sessionName = next();
419
571
  break;
572
+ case "--runtime": {
573
+ const runtime = next();
574
+ if (runtime !== "pi" && runtime !== "omp")
575
+ throw new Error(`unsupported runtime: ${runtime}`);
576
+ args.runtime = runtime;
577
+ break;
578
+ }
420
579
  case "--state-root":
421
580
  args.stateRoot = next();
422
581
  break;
@@ -441,6 +600,13 @@ export function parseRunnerArgs(argv) {
441
600
  case "--no-approve":
442
601
  args.trust = "no-approve";
443
602
  break;
603
+ case "--approval-mode": {
604
+ const mode = next();
605
+ if (mode !== "yolo" && mode !== "always-ask")
606
+ throw new Error(`unsupported OMP approval mode: ${mode}`);
607
+ args.trust = mode === "yolo" ? "approve" : "no-approve";
608
+ break;
609
+ }
444
610
  default: throw new Error(`unknown flag: ${flag}`);
445
611
  }
446
612
  }
@@ -452,8 +618,14 @@ export function parseRunnerArgs(argv) {
452
618
  throw new Error("--cwd is required");
453
619
  if (!args.launchId)
454
620
  throw new Error("--launch-id is required (launch-attempt scoping)");
455
- if (!args.trust)
621
+ if (args.runtime === "omp") {
622
+ if (!argv.includes("--approval-mode") || argv.some((flag) => flag === "--approve" || flag === "--no-approve")) {
623
+ throw new Error("OMP requires --approval-mode yolo or always-ask, not Pi trust flags");
624
+ }
625
+ }
626
+ else if (!args.trust || argv.includes("--approval-mode")) {
456
627
  throw new Error("an explicit trust flag is required: --approve or --no-approve");
628
+ }
457
629
  if (args.sessionFile && args.forkRef)
458
630
  throw new Error("--session and --fork are mutually exclusive");
459
631
  return args;
@@ -462,7 +634,8 @@ function resolveActivityEndpoint(env) {
462
634
  let baseUrl = env.OPENRIG_URL?.trim() || null;
463
635
  let token = env.OPENRIG_ACTIVITY_HOOK_TOKEN?.trim() || null;
464
636
  if (!baseUrl && env.OPENRIG_PORT) {
465
- baseUrl = `http://${env.OPENRIG_HOST?.trim() || "127.0.0.1"}:${env.OPENRIG_PORT.trim()}`;
637
+ const rawHost = env.OPENRIG_HOST?.trim() || "127.0.0.1";
638
+ baseUrl = `http://${formatDaemonHostForUrl(rawHost)}:${env.OPENRIG_PORT.trim()}`;
466
639
  }
467
640
  if (!baseUrl || !token) {
468
641
  try {
@@ -497,6 +670,74 @@ export function prepareRunnerSidecar(fsOps, runnerStatePath, launchId, resuming,
497
670
  catch { /* best-effort; the adapter pre-writes an equivalent pending record */ }
498
671
  return { catchUpSince: resuming ? prior?.lastEntryId : undefined };
499
672
  }
673
+ /** How often an OMP runner re-delivers an unconfirmed session identity. */
674
+ const IDENTITY_RETRY_MS = 30_000;
675
+ const nodeResolverOps = {
676
+ isExecutable: (path) => {
677
+ try {
678
+ fs.accessSync(path, fs.constants.X_OK);
679
+ return fs.statSync(path).isFile();
680
+ }
681
+ catch {
682
+ return false;
683
+ }
684
+ },
685
+ realpath: (path) => fs.realpathSync(path),
686
+ run: (file, args, env) => execFileSync(file, args, { env, encoding: "utf8", timeout: 10_000, stdio: ["ignore", "pipe", "pipe"] }).trim(),
687
+ };
688
+ /** Resolve `name` to the absolute path of the real binary, using the
689
+ * runner's own environment. The child later runs under a per-seat HOME, and
690
+ * version-manager shims (mise) find their target through HOME, so the shim
691
+ * itself must never be what the child executes. */
692
+ export function resolveRuntimeExecutable(name, env, ops = nodeResolverOps) {
693
+ const onPath = (env.PATH ?? "").split(nodePath.delimiter)
694
+ .filter((dir) => nodePath.isAbsolute(dir))
695
+ .map((dir) => nodePath.join(dir, name))
696
+ .find((candidate) => ops.isExecutable(candidate));
697
+ if (!onPath)
698
+ return { ok: false, error: `'${name}' was not found on PATH (${env.PATH ?? ""})` };
699
+ let real;
700
+ try {
701
+ real = ops.realpath(onPath);
702
+ }
703
+ catch (err) {
704
+ return { ok: false, error: `could not resolve ${onPath}: ${err.message}` };
705
+ }
706
+ if (nodePath.basename(real) !== "mise")
707
+ return { ok: true, path: real };
708
+ // A mise shim is a symlink to mise itself; ask mise for the tool it maps to.
709
+ let target;
710
+ try {
711
+ target = ops.run(real, ["which", name], env);
712
+ }
713
+ catch (err) {
714
+ return { ok: false, error: `${onPath} is a mise shim and 'mise which ${name}' failed: ${err.message}` };
715
+ }
716
+ if (!nodePath.isAbsolute(target) || !ops.isExecutable(target)) {
717
+ return { ok: false, error: `${onPath} is a mise shim but 'mise which ${name}' returned no executable (${target || "empty"})` };
718
+ }
719
+ try {
720
+ return { ok: true, path: ops.realpath(target) };
721
+ }
722
+ catch (err) {
723
+ return { ok: false, error: `could not resolve ${target}: ${err.message}` };
724
+ }
725
+ }
726
+ /** Enrich an actual CLI rejection, without guessing compatibility from a version
727
+ * or from help (older Pi prints help before validating unknown long flags). */
728
+ export function piLaunchCapabilityError(command, trust, line, readVersion) {
729
+ const diagnostic = stripVTControlCharacters(line);
730
+ if (!/unknown options?:/i.test(diagnostic) || !/--(?:name|approve|no-approve)(?=[\s,.:]|$)/.test(diagnostic))
731
+ return;
732
+ let version = "unknown version";
733
+ try {
734
+ const value = stripVTControlCharacters(readVersion()).trim();
735
+ if (/^[0-9][A-Za-z0-9.+_-]{0,63}$/.test(value))
736
+ version = `version ${value}`;
737
+ }
738
+ catch { /* diagnostics only; never changes the child's outcome */ }
739
+ return `Pi invoked as ${command} (${version}; exact executable path unknown) rejects the managed --name/--${trust} flags. Install the current @earendil-works/pi-coding-agent (npm install -g @earendil-works/pi-coding-agent) and check 'command -v pi' in this pane; an older Pi installation may be shadowing it.`;
740
+ }
500
741
  export async function main(argv = process.argv.slice(2)) {
501
742
  let args;
502
743
  try {
@@ -507,6 +748,7 @@ export async function main(argv = process.argv.slice(2)) {
507
748
  process.exitCode = 2;
508
749
  return;
509
750
  }
751
+ const runtime = args.runtime ?? "pi";
510
752
  const paths = piSeatPaths(args.stateRoot, args.sessionName);
511
753
  fs.mkdirSync(paths.agentDir, { recursive: true });
512
754
  fs.mkdirSync(paths.sessionsDir, { recursive: true });
@@ -520,6 +762,11 @@ export async function main(argv = process.argv.slice(2)) {
520
762
  agentDir: paths.agentDir,
521
763
  sessionsDir: paths.sessionsDir,
522
764
  model: args.model,
765
+ runtime,
766
+ sessionName: args.sessionName,
767
+ nodeId: process.env.OPENRIG_NODE_ID,
768
+ openrigHome: process.env.OPENRIG_HOME,
769
+ openrigUrl: endpoint?.baseUrl ?? process.env.OPENRIG_URL,
523
770
  });
524
771
  const childArgs = buildPiChildArgs({
525
772
  sessionsDir: paths.sessionsDir,
@@ -528,14 +775,39 @@ export async function main(argv = process.argv.slice(2)) {
528
775
  trust: args.trust,
529
776
  sessionFile: args.sessionFile,
530
777
  forkRef: args.forkRef,
778
+ runtime,
531
779
  });
532
- console.log(`[pi-runner] starting pi --mode rpc (seat ${args.sessionName})`);
533
- console.log(`[pi-runner] send text normally; prefixes: "/followup <text>" queues after the turn, "/abort" cancels`);
534
- const child = spawn("pi", childArgs, {
780
+ console.log(`[${runtime}-runner] starting ${runtime} --mode rpc (seat ${args.sessionName})`);
781
+ console.log(`[${runtime}-runner] send text normally; prefixes: "/followup <text>" queues after the turn, "/abort" cancels`);
782
+ // OMP runs under a per-seat HOME. A HOME-dependent launcher on PATH (a mise
783
+ // shim) cannot find its target there, so resolve the real binary first,
784
+ // with the runner's own environment.
785
+ let command = runtime;
786
+ if (runtime === "omp") {
787
+ const resolved = resolveRuntimeExecutable("omp", process.env);
788
+ if (!resolved.ok) {
789
+ console.error(`[omp-runner] ERROR launch: ${resolved.error}`);
790
+ // Record the exit for this launch so the adapter fails it now instead
791
+ // of waiting out its readiness timeout. The durable cursor survives.
792
+ const at = new Date().toISOString();
793
+ try {
794
+ const pending = parsePiRunnerState(fs.readFileSync(paths.runnerStatePath, "utf8"));
795
+ const exitedState = { ready: false, launchId: args.launchId, lastEntryId: pending?.lastEntryId, updatedAt: at, exited: { code: 127, at } };
796
+ fs.writeFileSync(paths.runnerStatePath, JSON.stringify(exitedState));
797
+ }
798
+ catch { /* the pane ERROR marker still fails readiness */ }
799
+ process.exitCode = 127;
800
+ return;
801
+ }
802
+ command = resolved.path;
803
+ }
804
+ const child = spawn(command, childArgs, {
535
805
  cwd: args.cwd,
536
806
  env: childEnv,
537
807
  stdio: ["pipe", "pipe", "pipe"],
538
808
  });
809
+ // The child may close its pipe before the first RPC write completes.
810
+ child.stdin.on("error", () => { });
539
811
  const io = {
540
812
  sendRpc: (cmd) => {
541
813
  try {
@@ -550,12 +822,22 @@ export async function main(argv = process.argv.slice(2)) {
550
822
  return;
551
823
  const controller = new AbortController();
552
824
  const timeout = setTimeout(() => controller.abort(), 1500);
553
- fetch(new URL("/api/activity/hooks", endpoint.baseUrl).toString(), {
825
+ const request = fetch(new URL("/api/activity/hooks", endpoint.baseUrl).toString(), {
554
826
  method: "POST",
555
827
  headers: { "content-type": "application/json", authorization: `Bearer ${endpoint.token}` },
556
828
  body: JSON.stringify(payload),
557
829
  signal: controller.signal,
558
- }).catch(() => { }).finally(() => clearTimeout(timeout));
830
+ });
831
+ if (runtime !== "omp") {
832
+ request.catch(() => { }).finally(() => clearTimeout(timeout));
833
+ return;
834
+ }
835
+ // OMP reads the acknowledgement so identity delivery can retry; null
836
+ // (transport failure or a non-OK reply) means "not yet persisted".
837
+ return request
838
+ .then(async (response) => response.ok ? await response.json() : null)
839
+ .catch(() => null)
840
+ .finally(() => clearTimeout(timeout));
559
841
  },
560
842
  writeSidecar: (state) => {
561
843
  try {
@@ -564,31 +846,110 @@ export async function main(argv = process.argv.slice(2)) {
564
846
  catch { /* best-effort; adapter falls back to pane markers */ }
565
847
  },
566
848
  now: () => new Date().toISOString(),
849
+ stopChild: () => { child.kill(); },
850
+ sessionFileExists: (path) => fs.existsSync(path),
567
851
  };
568
852
  const core = new RunnerCore(io, {
569
853
  sessionName: args.sessionName, nodeId: process.env.OPENRIG_NODE_ID, launchId: args.launchId,
570
854
  // Carry the emitting tenure; never infer it from a later daemon read or Pi event.
571
855
  generation: process.env.OPENRIG_OCCUPANT_GENERATION,
572
- }, { catchUpSince });
573
- readline.createInterface({ input: child.stdout }).on("line", (line) => core.handlePiLine(line));
856
+ }, { catchUpSince, runtime });
857
+ let transportUp = runtime === "pi";
858
+ readline.createInterface({ input: child.stdout }).on("line", (line) => {
859
+ if (runtime === "omp" && !core.isReady()) {
860
+ try {
861
+ const frame = JSON.parse(line);
862
+ if (frame.type === "ready") {
863
+ transportUp = true;
864
+ core.start();
865
+ }
866
+ }
867
+ catch { /* surface non-JSON stdout through the core */ }
868
+ }
869
+ core.handlePiLine(line);
870
+ });
871
+ // Re-deliver OMP identity until the daemon confirms the resume token.
872
+ const identityRetry = runtime === "omp" ? setInterval(() => core.retrySessionIdentity(), IDENTITY_RETRY_MS) : undefined;
873
+ identityRetry?.unref();
874
+ // The last few stderr lines, so an OMP that exits during startup is
875
+ // reported with its own words in the error, not only above it.
876
+ const stderrTail = [];
877
+ let reportedPiCapability = false;
574
878
  readline.createInterface({ input: child.stderr }).on("line", (line) => {
575
- if (line.trim())
576
- process.stdout.write(`[pi:err] ${line}\n`);
879
+ if (!line.trim())
880
+ return;
881
+ process.stdout.write(`[${runtime}:err] ${line}\n`);
882
+ stderrTail.push(line.length > OMP_STDERR_TAIL_CHARS ? `${line.slice(0, OMP_STDERR_TAIL_CHARS)}...` : line);
883
+ if (stderrTail.length > OMP_STDERR_TAIL_LINES)
884
+ stderrTail.shift();
885
+ if (runtime === "pi" && !core.isReady() && !reportedPiCapability) {
886
+ const detail = piLaunchCapabilityError(command, args.trust, line, () => {
887
+ const version = spawnSync(command, ["--version"], { cwd: args.cwd, env: childEnv, encoding: "utf8",
888
+ timeout: 3000, killSignal: "SIGKILL", maxBuffer: 4096, stdio: ["ignore", "pipe", "pipe"] });
889
+ if (version.error || version.status !== 0)
890
+ return "";
891
+ // Older Pi redirects even --version to stderr when stdout is a pipe.
892
+ return version.stdout.trim() || version.stderr.trim();
893
+ });
894
+ if (detail) {
895
+ reportedPiCapability = true;
896
+ process.stdout.write(`[pi-runner] ${detail}\n`);
897
+ }
898
+ }
577
899
  });
578
900
  const input = createRunnerInput(process.stdin, process.stdout, (block) => core.handleUserBlock(block));
579
- child.on("error", (err) => {
580
- console.error(`${PI_RUNNER_ERROR_MARKER} failed to spawn pi: ${err.message}`);
581
- core.handlePiExit(null);
582
- input.close();
583
- process.exitCode = 1;
584
- });
585
- child.on("exit", (code) => {
901
+ if (runtime === "pi") {
902
+ child.on("error", (err) => {
903
+ console.error(`${PI_RUNNER_ERROR_MARKER} failed to spawn pi: ${err.message}`);
904
+ const code = err.code === "ENOENT" ? 127 : 1;
905
+ core.handlePiExit(code);
906
+ input.close();
907
+ process.exitCode = code;
908
+ });
909
+ child.on("exit", (code) => {
910
+ core.handlePiExit(code);
911
+ input.close();
912
+ process.exitCode = code ?? 1;
913
+ });
914
+ core.start();
915
+ return;
916
+ }
917
+ // OMP: one exit record per launch. When the RPC session never became
918
+ // resumable, say which startup phase OMP reached and how it exited, and
919
+ // show its own last output; the runner does not know why OMP stopped.
920
+ let exited = false;
921
+ const recordExit = (code, signal) => {
922
+ if (exited)
923
+ return;
924
+ exited = true;
925
+ clearInterval(identityRetry);
926
+ if (!core.isReady()) {
927
+ const how = signal ? `signal ${signal}` : `exit code ${code ?? "unknown"}`;
928
+ const output = stderrTail.length > 0 ? ` Its last output: ${stderrTail.join(" | ")}` : " It printed nothing on stderr.";
929
+ console.error(transportUp
930
+ ? "[omp-runner] ERROR OMP did not establish a resumable RPC session. Authenticate this isolated seat using HOME=<seat-root> PI_CODING_AGENT_DIR=<seat-root>/agent omp and /login, or provide its declared model provider key in the OpenRig daemon environment. Default OMP credentials are not shared."
931
+ : `[omp-runner] ERROR OMP exited during startup, before its RPC transport started (${command}, ${how}).${output}`);
932
+ }
586
933
  core.handlePiExit(code);
587
934
  input.close();
588
935
  process.exitCode = code ?? 1;
936
+ };
937
+ child.on("error", (err) => {
938
+ console.error(`[omp-runner] ERROR failed to spawn omp: ${err.message}`);
939
+ recordExit(null);
589
940
  });
590
- core.start();
941
+ // "close" fires once OMP's stdio is drained, so its stderr is in the tail
942
+ // before the exit is reported. A child that inherited OMP's stdio (an LSP
943
+ // or MCP server) can hold "close" open, so "exit" also records the exit
944
+ // after a short grace period; recordExit runs once, whichever comes first.
945
+ child.on("close", (code, signal) => recordExit(code, signal));
946
+ child.on("exit", (code, signal) => { setTimeout(() => recordExit(code, signal), OMP_EXIT_GRACE_MS).unref(); });
591
947
  }
948
+ /** Stderr lines kept for an OMP startup failure report, and their length cap. */
949
+ const OMP_STDERR_TAIL_LINES = 5;
950
+ const OMP_STDERR_TAIL_CHARS = 300;
951
+ /** How long after OMP's own exit to wait for its stderr to drain. */
952
+ const OMP_EXIT_GRACE_MS = 1_000;
592
953
  // Compiled-entry guard: run main() only when executed directly (not imported
593
954
  // by tests). import.meta.url === file URL of process.argv[1] when direct.
594
955
  const invokedDirectly = (() => {