@openrig/cli 0.6.14 → 0.7.1

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 (1366) hide show
  1. package/README.md +14 -12
  2. package/daemon/assets/claude-statusline-context.cjs +13 -3
  3. package/daemon/assets/guidance/openrig-seat-skills.md +1 -0
  4. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  6. package/daemon/assets/plugins/openrig-core/README.md +11 -4
  7. package/daemon/assets/plugins/openrig-core/hooks/claude.json +11 -11
  8. package/daemon/assets/plugins/openrig-core/hooks/codex.json +6 -6
  9. package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +22 -9
  10. package/daemon/assets/plugins/openrig-core/hooks/scripts/codex-hook-trust.cjs +49 -0
  11. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus-health.cjs +2 -2
  12. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +35 -11
  13. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +9 -2
  14. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +1 -1
  15. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +16 -10
  16. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +43 -4
  17. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +2 -2
  18. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +192 -61
  19. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +10 -4
  20. package/daemon/assets/skills/rigs/SKILL.md +26 -6
  21. package/daemon/context-packs/help/manifest.yaml +1 -1
  22. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  23. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +209 -33
  24. package/daemon/context-packs/reference/getting-started.md +148 -23
  25. package/daemon/context-packs/reference/manifest.yaml +1 -1
  26. package/daemon/context-packs/reference/rig-spec.md +83 -3
  27. package/daemon/context-packs/reference/whats-new.md +173 -69
  28. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  29. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  30. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +9 -2
  32. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/claude-compaction-restore/scripts/precompact-hook.mjs +1 -1
  34. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  35. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  36. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +43 -4
  39. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  41. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +3 -0
  43. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +2 -2
  45. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  46. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/openrig-software-factory/references/worked-example.md +2 -2
  48. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +11 -5
  49. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  54. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +1 -1
  55. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +1 -1
  56. package/daemon/context-packs/skills/delegating-work/manifest.yaml +1 -1
  57. package/daemon/context-packs/skills/forming-an-openrig-mental-model/SKILL.md +16 -10
  58. package/daemon/context-packs/skills/forming-an-openrig-mental-model/manifest.yaml +1 -1
  59. package/daemon/context-packs/skills/loading-addressable-markdown/manifest.yaml +1 -1
  60. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  61. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  62. package/daemon/context-packs/skills/openrig-user/SKILL.md +192 -61
  63. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  64. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  66. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  67. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  69. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pods/development-team/SKILL.md +2 -0
  73. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +3 -1
  74. package/daemon/context-packs/skills/pods/development-team/references/refactoring.md +11 -0
  75. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/review-team/SKILL.md +46 -96
  78. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +17 -80
  86. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +5 -3
  87. package/daemon/context-packs/skills/process/verification-before-completion/references/performance-claims.md +12 -0
  88. package/daemon/context-packs/skills/queue-handoff/SKILL.md +10 -4
  89. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  91. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  93. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  94. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  95. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  96. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  97. package/daemon/dist/adapters/claude-code-adapter.d.ts +6 -2
  98. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  99. package/daemon/dist/adapters/claude-code-adapter.js +127 -32
  100. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  101. package/daemon/dist/adapters/claude-resume.d.ts +2 -1
  102. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  103. package/daemon/dist/adapters/claude-resume.js +10 -3
  104. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  105. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  106. package/daemon/dist/adapters/codex-resume.js +2 -7
  107. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  108. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +75 -3
  109. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  110. package/daemon/dist/adapters/codex-runtime-adapter.js +592 -91
  111. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  112. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts +21 -2
  113. package/daemon/dist/adapters/community-harness-runtime-adapter.d.ts.map +1 -1
  114. package/daemon/dist/adapters/community-harness-runtime-adapter.js +90 -8
  115. package/daemon/dist/adapters/community-harness-runtime-adapter.js.map +1 -1
  116. package/daemon/dist/adapters/compose-services-adapter.d.ts +16 -0
  117. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  118. package/daemon/dist/adapters/compose-services-adapter.js +52 -9
  119. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  120. package/daemon/dist/adapters/kernel-authority.d.ts.map +1 -1
  121. package/daemon/dist/adapters/kernel-authority.js +9 -5
  122. package/daemon/dist/adapters/kernel-authority.js.map +1 -1
  123. package/daemon/dist/adapters/pi-runner.d.ts +13 -0
  124. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  125. package/daemon/dist/adapters/pi-runner.js +64 -16
  126. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  127. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  128. package/daemon/dist/adapters/pi-runtime-adapter.js +9 -6
  129. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  130. package/daemon/dist/adapters/runtime-probe-exec.d.ts +11 -0
  131. package/daemon/dist/adapters/runtime-probe-exec.d.ts.map +1 -0
  132. package/daemon/dist/adapters/runtime-probe-exec.js +25 -0
  133. package/daemon/dist/adapters/runtime-probe-exec.js.map +1 -0
  134. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  135. package/daemon/dist/adapters/stub-runner.js +2 -0
  136. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  137. package/daemon/dist/adapters/stub-runtime-adapter.d.ts.map +1 -1
  138. package/daemon/dist/adapters/stub-runtime-adapter.js +9 -5
  139. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  140. package/daemon/dist/adapters/tmux.d.ts +36 -5
  141. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  142. package/daemon/dist/adapters/tmux.js +162 -33
  143. package/daemon/dist/adapters/tmux.js.map +1 -1
  144. package/daemon/dist/attention-surface.d.ts +14 -0
  145. package/daemon/dist/attention-surface.d.ts.map +1 -1
  146. package/daemon/dist/attention-surface.js.map +1 -1
  147. package/daemon/dist/build-info.js +3 -3
  148. package/daemon/dist/daemon-db-path.d.ts +6 -0
  149. package/daemon/dist/daemon-db-path.d.ts.map +1 -1
  150. package/daemon/dist/daemon-db-path.js +65 -1
  151. package/daemon/dist/daemon-db-path.js.map +1 -1
  152. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  153. package/daemon/dist/daemon-shutdown.js +4 -2
  154. package/daemon/dist/daemon-shutdown.js.map +1 -1
  155. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  156. package/daemon/dist/db/all-migrations.js +28 -0
  157. package/daemon/dist/db/all-migrations.js.map +1 -1
  158. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts +3 -0
  159. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.d.ts.map +1 -0
  160. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js +8 -0
  161. package/daemon/dist/db/migrations/116_queue_item_wake_input_box.js.map +1 -0
  162. package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts +3 -0
  163. package/daemon/dist/db/migrations/118_human_quiet_windows.d.ts.map +1 -0
  164. package/daemon/dist/db/migrations/118_human_quiet_windows.js +30 -0
  165. package/daemon/dist/db/migrations/118_human_quiet_windows.js.map +1 -0
  166. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts +3 -0
  167. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.d.ts.map +1 -0
  168. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js +7 -0
  169. package/daemon/dist/db/migrations/119_seat_identity_pane_pid.js.map +1 -0
  170. package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts +13 -0
  171. package/daemon/dist/db/migrations/121_rig_startup_layers.d.ts.map +1 -0
  172. package/daemon/dist/db/migrations/121_rig_startup_layers.js +17 -0
  173. package/daemon/dist/db/migrations/121_rig_startup_layers.js.map +1 -0
  174. package/daemon/dist/db/migrations/122_human_operating_modes.d.ts +3 -0
  175. package/daemon/dist/db/migrations/122_human_operating_modes.d.ts.map +1 -0
  176. package/daemon/dist/db/migrations/122_human_operating_modes.js +55 -0
  177. package/daemon/dist/db/migrations/122_human_operating_modes.js.map +1 -0
  178. package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts +3 -0
  179. package/daemon/dist/db/migrations/123_queue_delegated_decision.d.ts.map +1 -0
  180. package/daemon/dist/db/migrations/123_queue_delegated_decision.js +10 -0
  181. package/daemon/dist/db/migrations/123_queue_delegated_decision.js.map +1 -0
  182. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.d.ts +4 -0
  183. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.d.ts.map +1 -0
  184. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.js +9 -0
  185. package/daemon/dist/db/migrations/124_context_usage_watchdog_units.js.map +1 -0
  186. package/daemon/dist/db/migrations/125_node_advisor.d.ts +3 -0
  187. package/daemon/dist/db/migrations/125_node_advisor.d.ts.map +1 -0
  188. package/daemon/dist/db/migrations/125_node_advisor.js +8 -0
  189. package/daemon/dist/db/migrations/125_node_advisor.js.map +1 -0
  190. package/daemon/dist/db/migrations/127_operation_correlation.d.ts +3 -0
  191. package/daemon/dist/db/migrations/127_operation_correlation.d.ts.map +1 -0
  192. package/daemon/dist/db/migrations/127_operation_correlation.js +10 -0
  193. package/daemon/dist/db/migrations/127_operation_correlation.js.map +1 -0
  194. package/daemon/dist/db/migrations/128_terminal_policy.d.ts +3 -0
  195. package/daemon/dist/db/migrations/128_terminal_policy.d.ts.map +1 -0
  196. package/daemon/dist/db/migrations/128_terminal_policy.js +37 -0
  197. package/daemon/dist/db/migrations/128_terminal_policy.js.map +1 -0
  198. package/daemon/dist/db/migrations/129_stream_dispositions.d.ts +10 -0
  199. package/daemon/dist/db/migrations/129_stream_dispositions.d.ts.map +1 -0
  200. package/daemon/dist/db/migrations/129_stream_dispositions.js +35 -0
  201. package/daemon/dist/db/migrations/129_stream_dispositions.js.map +1 -0
  202. package/daemon/dist/db/migrations/130_stream_subscriptions.d.ts +11 -0
  203. package/daemon/dist/db/migrations/130_stream_subscriptions.d.ts.map +1 -0
  204. package/daemon/dist/db/migrations/130_stream_subscriptions.js +33 -0
  205. package/daemon/dist/db/migrations/130_stream_subscriptions.js.map +1 -0
  206. package/daemon/dist/db/migrations/131_stream_retention_floor.d.ts +8 -0
  207. package/daemon/dist/db/migrations/131_stream_retention_floor.d.ts.map +1 -0
  208. package/daemon/dist/db/migrations/131_stream_retention_floor.js +20 -0
  209. package/daemon/dist/db/migrations/131_stream_retention_floor.js.map +1 -0
  210. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.d.ts +3 -0
  211. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.d.ts.map +1 -0
  212. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.js +16 -0
  213. package/daemon/dist/db/migrations/135_seat_identity_process_evidence.js.map +1 -0
  214. package/daemon/dist/domain/active-occupant.d.ts +8 -3
  215. package/daemon/dist/domain/active-occupant.d.ts.map +1 -1
  216. package/daemon/dist/domain/active-occupant.js +8 -4
  217. package/daemon/dist/domain/active-occupant.js.map +1 -1
  218. package/daemon/dist/domain/activity-taxonomy.d.ts +19 -1
  219. package/daemon/dist/domain/activity-taxonomy.d.ts.map +1 -1
  220. package/daemon/dist/domain/activity-taxonomy.js +21 -0
  221. package/daemon/dist/domain/activity-taxonomy.js.map +1 -1
  222. package/daemon/dist/domain/agent-activity-store.d.ts +24 -0
  223. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  224. package/daemon/dist/domain/agent-activity-store.js +50 -5
  225. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  226. package/daemon/dist/domain/agent-images/evidence-guard.js +3 -3
  227. package/daemon/dist/domain/agent-images/evidence-guard.js.map +1 -1
  228. package/daemon/dist/domain/agent-images/resume-token-discovery.d.ts.map +1 -1
  229. package/daemon/dist/domain/agent-images/resume-token-discovery.js +2 -10
  230. package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -1
  231. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  232. package/daemon/dist/domain/agent-manifest.js +14 -2
  233. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  234. package/daemon/dist/domain/ask-service.d.ts +1 -0
  235. package/daemon/dist/domain/ask-service.d.ts.map +1 -1
  236. package/daemon/dist/domain/ask-service.js +7 -1
  237. package/daemon/dist/domain/ask-service.js.map +1 -1
  238. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +5 -0
  239. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  240. package/daemon/dist/domain/bootstrap-orchestrator.js +25 -12
  241. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  242. package/daemon/dist/domain/builtin-startup-files.d.ts.map +1 -1
  243. package/daemon/dist/domain/builtin-startup-files.js +2 -0
  244. package/daemon/dist/domain/builtin-startup-files.js.map +1 -1
  245. package/daemon/dist/domain/bundle-behaviour.d.ts.map +1 -1
  246. package/daemon/dist/domain/bundle-behaviour.js +28 -1
  247. package/daemon/dist/domain/bundle-behaviour.js.map +1 -1
  248. package/daemon/dist/domain/claim-service.d.ts +20 -2
  249. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  250. package/daemon/dist/domain/claim-service.js +74 -19
  251. package/daemon/dist/domain/claim-service.js.map +1 -1
  252. package/daemon/dist/domain/classification-attempts.d.ts +4 -1
  253. package/daemon/dist/domain/classification-attempts.d.ts.map +1 -1
  254. package/daemon/dist/domain/classification-attempts.js +10 -1
  255. package/daemon/dist/domain/classification-attempts.js.map +1 -1
  256. package/daemon/dist/domain/classification-sources.d.ts +38 -0
  257. package/daemon/dist/domain/classification-sources.d.ts.map +1 -1
  258. package/daemon/dist/domain/classification-sources.js +26 -1
  259. package/daemon/dist/domain/classification-sources.js.map +1 -1
  260. package/daemon/dist/domain/claude-activity-hooks.d.ts +2 -2
  261. package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -1
  262. package/daemon/dist/domain/claude-activity-hooks.js +8 -7
  263. package/daemon/dist/domain/claude-activity-hooks.js.map +1 -1
  264. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +126 -11
  265. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  266. package/daemon/dist/domain/claude-compaction-enforcer.js +527 -68
  267. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  268. package/daemon/dist/domain/claude-core-plugin-env.d.ts +14 -0
  269. package/daemon/dist/domain/claude-core-plugin-env.d.ts.map +1 -1
  270. package/daemon/dist/domain/claude-core-plugin-env.js +37 -11
  271. package/daemon/dist/domain/claude-core-plugin-env.js.map +1 -1
  272. package/daemon/dist/domain/claude-managed-launch.d.ts +1 -1
  273. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  274. package/daemon/dist/domain/claude-managed-launch.js +33 -15
  275. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  276. package/daemon/dist/domain/codex-core-plugin-install.d.ts +41 -0
  277. package/daemon/dist/domain/codex-core-plugin-install.d.ts.map +1 -0
  278. package/daemon/dist/domain/codex-core-plugin-install.js +126 -0
  279. package/daemon/dist/domain/codex-core-plugin-install.js.map +1 -0
  280. package/daemon/dist/domain/codex-owned-plugin-trust.d.ts +26 -0
  281. package/daemon/dist/domain/codex-owned-plugin-trust.d.ts.map +1 -0
  282. package/daemon/dist/domain/codex-owned-plugin-trust.js +187 -0
  283. package/daemon/dist/domain/codex-owned-plugin-trust.js.map +1 -0
  284. package/daemon/dist/domain/codex-rebuild-permissions.d.ts +54 -0
  285. package/daemon/dist/domain/codex-rebuild-permissions.d.ts.map +1 -0
  286. package/daemon/dist/domain/codex-rebuild-permissions.js +134 -0
  287. package/daemon/dist/domain/codex-rebuild-permissions.js.map +1 -0
  288. package/daemon/dist/domain/codex-thread-id.d.ts +23 -1
  289. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  290. package/daemon/dist/domain/codex-thread-id.js +58 -17
  291. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  292. package/daemon/dist/domain/community-harness-launch-result.d.ts +33 -0
  293. package/daemon/dist/domain/community-harness-launch-result.d.ts.map +1 -0
  294. package/daemon/dist/domain/community-harness-launch-result.js +93 -0
  295. package/daemon/dist/domain/community-harness-launch-result.js.map +1 -0
  296. package/daemon/dist/domain/community-harness-presets.d.ts +27 -2
  297. package/daemon/dist/domain/community-harness-presets.d.ts.map +1 -1
  298. package/daemon/dist/domain/community-harness-presets.js +49 -5
  299. package/daemon/dist/domain/community-harness-presets.js.map +1 -1
  300. package/daemon/dist/domain/composer-prompts.d.ts +5 -2
  301. package/daemon/dist/domain/composer-prompts.d.ts.map +1 -1
  302. package/daemon/dist/domain/composer-prompts.js +2 -2
  303. package/daemon/dist/domain/composer-prompts.js.map +1 -1
  304. package/daemon/dist/domain/context-monitor.d.ts +13 -5
  305. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  306. package/daemon/dist/domain/context-monitor.js +49 -14
  307. package/daemon/dist/domain/context-monitor.js.map +1 -1
  308. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  309. package/daemon/dist/domain/context-usage-store.js +3 -0
  310. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  311. package/daemon/dist/domain/continuity-policy-materializer.d.ts +1 -0
  312. package/daemon/dist/domain/continuity-policy-materializer.d.ts.map +1 -1
  313. package/daemon/dist/domain/continuity-policy-materializer.js +2 -0
  314. package/daemon/dist/domain/continuity-policy-materializer.js.map +1 -1
  315. package/daemon/dist/domain/current-work.d.ts +18 -0
  316. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  317. package/daemon/dist/domain/current-work.js +17 -3
  318. package/daemon/dist/domain/current-work.js.map +1 -1
  319. package/daemon/dist/domain/draft-aware-delivery.d.ts +7 -7
  320. package/daemon/dist/domain/draft-aware-delivery.d.ts.map +1 -1
  321. package/daemon/dist/domain/draft-aware-delivery.js +61 -82
  322. package/daemon/dist/domain/draft-aware-delivery.js.map +1 -1
  323. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  324. package/daemon/dist/domain/execution-view.js +9 -7
  325. package/daemon/dist/domain/execution-view.js.map +1 -1
  326. package/daemon/dist/domain/existing-rig-restore.d.ts +110 -0
  327. package/daemon/dist/domain/existing-rig-restore.d.ts.map +1 -0
  328. package/daemon/dist/domain/existing-rig-restore.js +254 -0
  329. package/daemon/dist/domain/existing-rig-restore.js.map +1 -0
  330. package/daemon/dist/domain/footprint-choice.d.ts +41 -0
  331. package/daemon/dist/domain/footprint-choice.d.ts.map +1 -0
  332. package/daemon/dist/domain/footprint-choice.js +42 -0
  333. package/daemon/dist/domain/footprint-choice.js.map +1 -0
  334. package/daemon/dist/domain/fresh-occupant-relation.d.ts.map +1 -1
  335. package/daemon/dist/domain/fresh-occupant-relation.js +9 -2
  336. package/daemon/dist/domain/fresh-occupant-relation.js.map +1 -1
  337. package/daemon/dist/domain/gateway/channel-operations.d.ts +3 -4
  338. package/daemon/dist/domain/gateway/channel-operations.d.ts.map +1 -1
  339. package/daemon/dist/domain/gateway/channel-operations.js.map +1 -1
  340. package/daemon/dist/domain/gateway/connections-projection.d.ts +0 -5
  341. package/daemon/dist/domain/gateway/connections-projection.d.ts.map +1 -1
  342. package/daemon/dist/domain/gateway/connections-projection.js +3 -46
  343. package/daemon/dist/domain/gateway/connections-projection.js.map +1 -1
  344. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts +14 -1
  345. package/daemon/dist/domain/gateway/delivery-rules-engine.d.ts.map +1 -1
  346. package/daemon/dist/domain/gateway/delivery-rules-engine.js +13 -3
  347. package/daemon/dist/domain/gateway/delivery-rules-engine.js.map +1 -1
  348. package/daemon/dist/domain/gateway/dispatch-buffer.d.ts +4 -0
  349. package/daemon/dist/domain/gateway/dispatch-buffer.d.ts.map +1 -1
  350. package/daemon/dist/domain/gateway/dispatch-buffer.js +18 -0
  351. package/daemon/dist/domain/gateway/dispatch-buffer.js.map +1 -1
  352. package/daemon/dist/domain/gateway/human-mode-account.d.ts +61 -0
  353. package/daemon/dist/domain/gateway/human-mode-account.d.ts.map +1 -0
  354. package/daemon/dist/domain/gateway/human-mode-account.js +112 -0
  355. package/daemon/dist/domain/gateway/human-mode-account.js.map +1 -0
  356. package/daemon/dist/domain/gateway/human-operating-modes.d.ts +171 -0
  357. package/daemon/dist/domain/gateway/human-operating-modes.d.ts.map +1 -0
  358. package/daemon/dist/domain/gateway/human-operating-modes.js +422 -0
  359. package/daemon/dist/domain/gateway/human-operating-modes.js.map +1 -0
  360. package/daemon/dist/domain/gateway/human-quiet-windows.d.ts +121 -0
  361. package/daemon/dist/domain/gateway/human-quiet-windows.d.ts.map +1 -0
  362. package/daemon/dist/domain/gateway/human-quiet-windows.js +217 -0
  363. package/daemon/dist/domain/gateway/human-quiet-windows.js.map +1 -0
  364. package/daemon/dist/domain/gateway/human-registry.d.ts +55 -2
  365. package/daemon/dist/domain/gateway/human-registry.d.ts.map +1 -1
  366. package/daemon/dist/domain/gateway/human-registry.js +137 -8
  367. package/daemon/dist/domain/gateway/human-registry.js.map +1 -1
  368. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  369. package/daemon/dist/domain/gateway/operator-delivery-engine.js +9 -0
  370. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  371. package/daemon/dist/domain/gateway/slack/inbound.d.ts +10 -2
  372. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  373. package/daemon/dist/domain/gateway/slack/inbound.js +76 -6
  374. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  375. package/daemon/dist/domain/gateway/slack/message.d.ts +4 -0
  376. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  377. package/daemon/dist/domain/gateway/slack/message.js +13 -2
  378. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  379. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +9 -3
  380. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  381. package/daemon/dist/domain/gateway/slack/outbound-driver.js +40 -6
  382. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  383. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +7 -0
  384. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  385. package/daemon/dist/domain/gateway/slack/queue-access.js +14 -2
  386. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  387. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +17 -1
  388. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  389. package/daemon/dist/domain/gateway/slack/slack-delivery.js +143 -56
  390. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  391. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +3 -2
  392. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  393. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +266 -51
  394. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  395. package/daemon/dist/domain/generated-file-hygiene.js +1 -1
  396. package/daemon/dist/domain/generated-file-hygiene.js.map +1 -1
  397. package/daemon/dist/domain/graph-projection.d.ts +3 -0
  398. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  399. package/daemon/dist/domain/graph-projection.js +2 -0
  400. package/daemon/dist/domain/graph-projection.js.map +1 -1
  401. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  402. package/daemon/dist/domain/health-diagnosis.js +14 -6
  403. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  404. package/daemon/dist/domain/health-passive-ceremony.d.ts +4 -0
  405. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  406. package/daemon/dist/domain/health-passive-ceremony.js +34 -4
  407. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  408. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +3 -1
  409. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  410. package/daemon/dist/domain/hosts/hosts-registry-reader.js +9 -9
  411. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  412. package/daemon/dist/domain/hosts/learned-host-bindings.d.ts +28 -0
  413. package/daemon/dist/domain/hosts/learned-host-bindings.d.ts.map +1 -0
  414. package/daemon/dist/domain/hosts/learned-host-bindings.js +77 -0
  415. package/daemon/dist/domain/hosts/learned-host-bindings.js.map +1 -0
  416. package/daemon/dist/domain/hot-potato-enforcer.d.ts +7 -5
  417. package/daemon/dist/domain/hot-potato-enforcer.d.ts.map +1 -1
  418. package/daemon/dist/domain/hot-potato-enforcer.js +19 -10
  419. package/daemon/dist/domain/hot-potato-enforcer.js.map +1 -1
  420. package/daemon/dist/domain/human-questions.d.ts +10 -1
  421. package/daemon/dist/domain/human-questions.d.ts.map +1 -1
  422. package/daemon/dist/domain/human-questions.js +5 -0
  423. package/daemon/dist/domain/human-questions.js.map +1 -1
  424. package/daemon/dist/domain/kernel-boot-tracker.d.ts +17 -1
  425. package/daemon/dist/domain/kernel-boot-tracker.d.ts.map +1 -1
  426. package/daemon/dist/domain/kernel-boot-tracker.js +44 -3
  427. package/daemon/dist/domain/kernel-boot-tracker.js.map +1 -1
  428. package/daemon/dist/domain/kernel-boot.d.ts +26 -1
  429. package/daemon/dist/domain/kernel-boot.d.ts.map +1 -1
  430. package/daemon/dist/domain/kernel-boot.js +91 -6
  431. package/daemon/dist/domain/kernel-boot.js.map +1 -1
  432. package/daemon/dist/domain/managed-blocks.d.ts +32 -1
  433. package/daemon/dist/domain/managed-blocks.d.ts.map +1 -1
  434. package/daemon/dist/domain/managed-blocks.js +109 -11
  435. package/daemon/dist/domain/managed-blocks.js.map +1 -1
  436. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +1 -1
  437. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -1
  438. package/daemon/dist/domain/mission-control/mission-control-action-log.js +3 -0
  439. package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -1
  440. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +21 -0
  441. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  442. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +110 -0
  443. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  444. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +2 -1
  445. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  446. package/daemon/dist/domain/model-divergence/current-generation-record.js +8 -3
  447. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  448. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts +2 -0
  449. package/daemon/dist/domain/model-divergence/current-model-reader.d.ts.map +1 -1
  450. package/daemon/dist/domain/model-divergence/current-model-reader.js +7 -0
  451. package/daemon/dist/domain/model-divergence/current-model-reader.js.map +1 -1
  452. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +10 -1
  453. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  454. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +24 -5
  455. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  456. package/daemon/dist/domain/native-process-lineage.d.ts +3 -0
  457. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  458. package/daemon/dist/domain/native-process-lineage.js +103 -17
  459. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  460. package/daemon/dist/domain/native-resume-probe-evidence.d.ts +19 -0
  461. package/daemon/dist/domain/native-resume-probe-evidence.d.ts.map +1 -0
  462. package/daemon/dist/domain/native-resume-probe-evidence.js +37 -0
  463. package/daemon/dist/domain/native-resume-probe-evidence.js.map +1 -0
  464. package/daemon/dist/domain/native-resume-probe.d.ts +7 -0
  465. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  466. package/daemon/dist/domain/native-resume-probe.js +12 -9
  467. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  468. package/daemon/dist/domain/node-inventory.d.ts +49 -1
  469. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  470. package/daemon/dist/domain/node-inventory.js +145 -57
  471. package/daemon/dist/domain/node-inventory.js.map +1 -1
  472. package/daemon/dist/domain/node-launcher.d.ts +5 -3
  473. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  474. package/daemon/dist/domain/node-launcher.js +36 -26
  475. package/daemon/dist/domain/node-launcher.js.map +1 -1
  476. package/daemon/dist/domain/occupant-invalidator.d.ts +16 -4
  477. package/daemon/dist/domain/occupant-invalidator.d.ts.map +1 -1
  478. package/daemon/dist/domain/occupant-invalidator.js +25 -5
  479. package/daemon/dist/domain/occupant-invalidator.js.map +1 -1
  480. package/daemon/dist/domain/operation-correlation.d.ts +78 -0
  481. package/daemon/dist/domain/operation-correlation.d.ts.map +1 -0
  482. package/daemon/dist/domain/operation-correlation.js +54 -0
  483. package/daemon/dist/domain/operation-correlation.js.map +1 -0
  484. package/daemon/dist/domain/outbox-handler.d.ts +3 -5
  485. package/daemon/dist/domain/outbox-handler.d.ts.map +1 -1
  486. package/daemon/dist/domain/outbox-handler.js +9 -19
  487. package/daemon/dist/domain/outbox-handler.js.map +1 -1
  488. package/daemon/dist/domain/park-wake-text.d.ts +11 -0
  489. package/daemon/dist/domain/park-wake-text.d.ts.map +1 -0
  490. package/daemon/dist/domain/park-wake-text.js +26 -0
  491. package/daemon/dist/domain/park-wake-text.js.map +1 -0
  492. package/daemon/dist/domain/permission-account.d.ts +28 -0
  493. package/daemon/dist/domain/permission-account.d.ts.map +1 -0
  494. package/daemon/dist/domain/permission-account.js +102 -0
  495. package/daemon/dist/domain/permission-account.js.map +1 -0
  496. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  497. package/daemon/dist/domain/permission-drift.js +11 -7
  498. package/daemon/dist/domain/permission-drift.js.map +1 -1
  499. package/daemon/dist/domain/plugin-vendor-service.d.ts +4 -0
  500. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  501. package/daemon/dist/domain/plugin-vendor-service.js +29 -6
  502. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  503. package/daemon/dist/domain/pod-bundle-assembler.d.ts +1 -0
  504. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  505. package/daemon/dist/domain/pod-bundle-assembler.js +25 -0
  506. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  507. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts +7 -0
  508. package/daemon/dist/domain/policies/artifact-pool-helpers.d.ts.map +1 -1
  509. package/daemon/dist/domain/policies/artifact-pool-helpers.js +8 -4
  510. package/daemon/dist/domain/policies/artifact-pool-helpers.js.map +1 -1
  511. package/daemon/dist/domain/policies/context-usage-threshold.d.ts.map +1 -1
  512. package/daemon/dist/domain/policies/context-usage-threshold.js +109 -21
  513. package/daemon/dist/domain/policies/context-usage-threshold.js.map +1 -1
  514. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts +1 -0
  515. package/daemon/dist/domain/policies/delivery-digest-flush.d.ts.map +1 -1
  516. package/daemon/dist/domain/policies/delivery-digest-flush.js +25 -4
  517. package/daemon/dist/domain/policies/delivery-digest-flush.js.map +1 -1
  518. package/daemon/dist/domain/policies/edge-artifact-required.d.ts +6 -1
  519. package/daemon/dist/domain/policies/edge-artifact-required.d.ts.map +1 -1
  520. package/daemon/dist/domain/policies/edge-artifact-required.js +18 -13
  521. package/daemon/dist/domain/policies/edge-artifact-required.js.map +1 -1
  522. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts +39 -0
  523. package/daemon/dist/domain/policies/mode-scheduled-end.d.ts.map +1 -0
  524. package/daemon/dist/domain/policies/mode-scheduled-end.js +165 -0
  525. package/daemon/dist/domain/policies/mode-scheduled-end.js.map +1 -0
  526. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +11 -7
  527. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  528. package/daemon/dist/domain/policies/parked-owner-consumer.js +82 -113
  529. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  530. package/daemon/dist/domain/policies/periodic-reminder.d.ts +10 -0
  531. package/daemon/dist/domain/policies/periodic-reminder.d.ts.map +1 -1
  532. package/daemon/dist/domain/policies/periodic-reminder.js +11 -6
  533. package/daemon/dist/domain/policies/periodic-reminder.js.map +1 -1
  534. package/daemon/dist/domain/policies/quiet-release.d.ts +109 -0
  535. package/daemon/dist/domain/policies/quiet-release.d.ts.map +1 -0
  536. package/daemon/dist/domain/policies/quiet-release.js +213 -0
  537. package/daemon/dist/domain/policies/quiet-release.js.map +1 -0
  538. package/daemon/dist/domain/policies/types.d.ts +25 -0
  539. package/daemon/dist/domain/policies/types.d.ts.map +1 -1
  540. package/daemon/dist/domain/policies/workflow-keepalive.d.ts +6 -1
  541. package/daemon/dist/domain/policies/workflow-keepalive.d.ts.map +1 -1
  542. package/daemon/dist/domain/policies/workflow-keepalive.js +11 -5
  543. package/daemon/dist/domain/policies/workflow-keepalive.js.map +1 -1
  544. package/daemon/dist/domain/profile-resolution-worker.d.ts +7 -0
  545. package/daemon/dist/domain/profile-resolution-worker.d.ts.map +1 -0
  546. package/daemon/dist/domain/profile-resolution-worker.js +83 -0
  547. package/daemon/dist/domain/profile-resolution-worker.js.map +1 -0
  548. package/daemon/dist/domain/profile-resolver.d.ts +6 -0
  549. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  550. package/daemon/dist/domain/profile-resolver.js +20 -3
  551. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  552. package/daemon/dist/domain/project-classifier.d.ts +7 -0
  553. package/daemon/dist/domain/project-classifier.d.ts.map +1 -1
  554. package/daemon/dist/domain/project-classifier.js +26 -0
  555. package/daemon/dist/domain/project-classifier.js.map +1 -1
  556. package/daemon/dist/domain/proof/source-watch.js +2 -2
  557. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  558. package/daemon/dist/domain/provider/subscription-move-report.d.ts +86 -0
  559. package/daemon/dist/domain/provider/subscription-move-report.d.ts.map +1 -0
  560. package/daemon/dist/domain/provider/subscription-move-report.js +227 -0
  561. package/daemon/dist/domain/provider/subscription-move-report.js.map +1 -0
  562. package/daemon/dist/domain/ps-projection.d.ts +6 -35
  563. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  564. package/daemon/dist/domain/ps-projection.js +14 -55
  565. package/daemon/dist/domain/ps-projection.js.map +1 -1
  566. package/daemon/dist/domain/queue-destination-check.d.ts +6 -0
  567. package/daemon/dist/domain/queue-destination-check.d.ts.map +1 -0
  568. package/daemon/dist/domain/queue-destination-check.js +35 -0
  569. package/daemon/dist/domain/queue-destination-check.js.map +1 -0
  570. package/daemon/dist/domain/queue-owner.d.ts +6 -3
  571. package/daemon/dist/domain/queue-owner.d.ts.map +1 -1
  572. package/daemon/dist/domain/queue-owner.js +12 -6
  573. package/daemon/dist/domain/queue-owner.js.map +1 -1
  574. package/daemon/dist/domain/queue-pickup.d.ts +5 -2
  575. package/daemon/dist/domain/queue-pickup.d.ts.map +1 -1
  576. package/daemon/dist/domain/queue-pickup.js +19 -2
  577. package/daemon/dist/domain/queue-pickup.js.map +1 -1
  578. package/daemon/dist/domain/queue-recovery.d.ts +1 -1
  579. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  580. package/daemon/dist/domain/queue-recovery.js +3 -2
  581. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  582. package/daemon/dist/domain/queue-repository.d.ts +146 -72
  583. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  584. package/daemon/dist/domain/queue-repository.js +505 -169
  585. package/daemon/dist/domain/queue-repository.js.map +1 -1
  586. package/daemon/dist/domain/queue-retention.d.ts +18 -0
  587. package/daemon/dist/domain/queue-retention.d.ts.map +1 -1
  588. package/daemon/dist/domain/queue-retention.js +74 -0
  589. package/daemon/dist/domain/queue-retention.js.map +1 -1
  590. package/daemon/dist/domain/queue-stuck-sweep.d.ts +15 -1
  591. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  592. package/daemon/dist/domain/queue-stuck-sweep.js +132 -16
  593. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  594. package/daemon/dist/domain/queue-transition-log.d.ts +5 -0
  595. package/daemon/dist/domain/queue-transition-log.d.ts.map +1 -1
  596. package/daemon/dist/domain/queue-transition-log.js +25 -8
  597. package/daemon/dist/domain/queue-transition-log.js.map +1 -1
  598. package/daemon/dist/domain/queue-wait-backoff.d.ts +3 -0
  599. package/daemon/dist/domain/queue-wait-backoff.d.ts.map +1 -1
  600. package/daemon/dist/domain/queue-wait-backoff.js +9 -0
  601. package/daemon/dist/domain/queue-wait-backoff.js.map +1 -1
  602. package/daemon/dist/domain/queue-waiting.d.ts +2 -0
  603. package/daemon/dist/domain/queue-waiting.d.ts.map +1 -1
  604. package/daemon/dist/domain/queue-waiting.js.map +1 -1
  605. package/daemon/dist/domain/queue-wake-ladder.d.ts +2 -0
  606. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  607. package/daemon/dist/domain/queue-wake-ladder.js +112 -17
  608. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  609. package/daemon/dist/domain/quiet-hold-custody.d.ts +24 -0
  610. package/daemon/dist/domain/quiet-hold-custody.d.ts.map +1 -0
  611. package/daemon/dist/domain/quiet-hold-custody.js +85 -0
  612. package/daemon/dist/domain/quiet-hold-custody.js.map +1 -0
  613. package/daemon/dist/domain/reconciler.d.ts +23 -0
  614. package/daemon/dist/domain/reconciler.d.ts.map +1 -1
  615. package/daemon/dist/domain/reconciler.js +44 -1
  616. package/daemon/dist/domain/reconciler.js.map +1 -1
  617. package/daemon/dist/domain/rehydrate-eligibility.d.ts +12 -1
  618. package/daemon/dist/domain/rehydrate-eligibility.d.ts.map +1 -1
  619. package/daemon/dist/domain/rehydrate-eligibility.js +47 -10
  620. package/daemon/dist/domain/rehydrate-eligibility.js.map +1 -1
  621. package/daemon/dist/domain/restore-guidance.d.ts +7 -0
  622. package/daemon/dist/domain/restore-guidance.d.ts.map +1 -1
  623. package/daemon/dist/domain/restore-guidance.js +20 -8
  624. package/daemon/dist/domain/restore-guidance.js.map +1 -1
  625. package/daemon/dist/domain/restore-orchestrator.d.ts +24 -1
  626. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  627. package/daemon/dist/domain/restore-orchestrator.js +295 -41
  628. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  629. package/daemon/dist/domain/restore-plan-preview.d.ts +10 -3
  630. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  631. package/daemon/dist/domain/restore-plan-preview.js +56 -18
  632. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  633. package/daemon/dist/domain/restore-policy.d.ts +4 -0
  634. package/daemon/dist/domain/restore-policy.d.ts.map +1 -1
  635. package/daemon/dist/domain/restore-policy.js +11 -0
  636. package/daemon/dist/domain/restore-policy.js.map +1 -1
  637. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  638. package/daemon/dist/domain/review/gather.js +8 -5
  639. package/daemon/dist/domain/review/gather.js.map +1 -1
  640. package/daemon/dist/domain/rig-edge-ops.d.ts +58 -0
  641. package/daemon/dist/domain/rig-edge-ops.d.ts.map +1 -0
  642. package/daemon/dist/domain/rig-edge-ops.js +113 -0
  643. package/daemon/dist/domain/rig-edge-ops.js.map +1 -0
  644. package/daemon/dist/domain/rig-mode/operating-posture.d.ts.map +1 -1
  645. package/daemon/dist/domain/rig-mode/operating-posture.js +3 -1
  646. package/daemon/dist/domain/rig-mode/operating-posture.js.map +1 -1
  647. package/daemon/dist/domain/rig-name-override.d.ts +14 -0
  648. package/daemon/dist/domain/rig-name-override.d.ts.map +1 -0
  649. package/daemon/dist/domain/rig-name-override.js +38 -0
  650. package/daemon/dist/domain/rig-name-override.js.map +1 -0
  651. package/daemon/dist/domain/rig-repository.d.ts +19 -1
  652. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  653. package/daemon/dist/domain/rig-repository.js +41 -3
  654. package/daemon/dist/domain/rig-repository.js.map +1 -1
  655. package/daemon/dist/domain/rig-status-compose.d.ts +1 -1
  656. package/daemon/dist/domain/rig-status-compose.d.ts.map +1 -1
  657. package/daemon/dist/domain/rig-status-compose.js +3 -1
  658. package/daemon/dist/domain/rig-status-compose.js.map +1 -1
  659. package/daemon/dist/domain/rig-teardown.d.ts +19 -0
  660. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  661. package/daemon/dist/domain/rig-teardown.js +109 -12
  662. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  663. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  664. package/daemon/dist/domain/rigspec-codec.js +10 -0
  665. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  666. package/daemon/dist/domain/rigspec-exporter.d.ts +3 -0
  667. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  668. package/daemon/dist/domain/rigspec-exporter.js +22 -0
  669. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  670. package/daemon/dist/domain/rigspec-instantiator.d.ts +39 -2
  671. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  672. package/daemon/dist/domain/rigspec-instantiator.js +319 -73
  673. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  674. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  675. package/daemon/dist/domain/rigspec-preflight.js +15 -2
  676. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  677. package/daemon/dist/domain/rigspec-schema.d.ts +8 -0
  678. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  679. package/daemon/dist/domain/rigspec-schema.js +97 -3
  680. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  681. package/daemon/dist/domain/runtime-adapter.d.ts +47 -3
  682. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  683. package/daemon/dist/domain/runtime-adapter.js +5 -1
  684. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  685. package/daemon/dist/domain/scope/scope-view-projection.d.ts +6 -0
  686. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  687. package/daemon/dist/domain/scope/scope-view-projection.js +26 -10
  688. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  689. package/daemon/dist/domain/seat-activity-service.d.ts +22 -5
  690. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  691. package/daemon/dist/domain/seat-activity-service.js +137 -62
  692. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  693. package/daemon/dist/domain/seat-attention-reconciler.d.ts +27 -1
  694. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  695. package/daemon/dist/domain/seat-attention-reconciler.js +63 -7
  696. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  697. package/daemon/dist/domain/seat-delivery-guard.d.ts +20 -1
  698. package/daemon/dist/domain/seat-delivery-guard.d.ts.map +1 -1
  699. package/daemon/dist/domain/seat-delivery-guard.js +87 -16
  700. package/daemon/dist/domain/seat-delivery-guard.js.map +1 -1
  701. package/daemon/dist/domain/seat-handover-service.d.ts +10 -2
  702. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  703. package/daemon/dist/domain/seat-handover-service.js +100 -4
  704. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  705. package/daemon/dist/domain/seat-identity-reconciler.js +1 -1
  706. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  707. package/daemon/dist/domain/seat-identity-store.d.ts +11 -1
  708. package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -1
  709. package/daemon/dist/domain/seat-identity-store.js +32 -4
  710. package/daemon/dist/domain/seat-identity-store.js.map +1 -1
  711. package/daemon/dist/domain/seat-launch-additions.d.ts +115 -0
  712. package/daemon/dist/domain/seat-launch-additions.d.ts.map +1 -0
  713. package/daemon/dist/domain/seat-launch-additions.js +439 -0
  714. package/daemon/dist/domain/seat-launch-additions.js.map +1 -0
  715. package/daemon/dist/domain/seat-launch-environment.d.ts +1 -1
  716. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -1
  717. package/daemon/dist/domain/seat-launch-environment.js +18 -2
  718. package/daemon/dist/domain/seat-launch-environment.js.map +1 -1
  719. package/daemon/dist/domain/seat-lifecycle-service.d.ts +83 -4
  720. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  721. package/daemon/dist/domain/seat-lifecycle-service.js +202 -12
  722. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  723. package/daemon/dist/domain/seat-restart-in-place.d.ts +33 -14
  724. package/daemon/dist/domain/seat-restart-in-place.d.ts.map +1 -1
  725. package/daemon/dist/domain/seat-restart-in-place.js +102 -30
  726. package/daemon/dist/domain/seat-restart-in-place.js.map +1 -1
  727. package/daemon/dist/domain/seat-skill-apply.d.ts +139 -0
  728. package/daemon/dist/domain/seat-skill-apply.d.ts.map +1 -0
  729. package/daemon/dist/domain/seat-skill-apply.js +221 -0
  730. package/daemon/dist/domain/seat-skill-apply.js.map +1 -0
  731. package/daemon/dist/domain/seat-skill-storage.d.ts +295 -0
  732. package/daemon/dist/domain/seat-skill-storage.d.ts.map +1 -0
  733. package/daemon/dist/domain/seat-skill-storage.js +850 -0
  734. package/daemon/dist/domain/seat-skill-storage.js.map +1 -0
  735. package/daemon/dist/domain/seat-status-service.d.ts +9 -0
  736. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  737. package/daemon/dist/domain/seat-status-service.js +15 -3
  738. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  739. package/daemon/dist/domain/self-attach-service.d.ts +3 -2
  740. package/daemon/dist/domain/self-attach-service.d.ts.map +1 -1
  741. package/daemon/dist/domain/self-attach-service.js +18 -1
  742. package/daemon/dist/domain/self-attach-service.js.map +1 -1
  743. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  744. package/daemon/dist/domain/services-readiness.js +14 -3
  745. package/daemon/dist/domain/services-readiness.js.map +1 -1
  746. package/daemon/dist/domain/session-registry.d.ts +49 -0
  747. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  748. package/daemon/dist/domain/session-registry.js +137 -0
  749. package/daemon/dist/domain/session-registry.js.map +1 -1
  750. package/daemon/dist/domain/session-transport.d.ts +76 -27
  751. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  752. package/daemon/dist/domain/session-transport.js +202 -82
  753. package/daemon/dist/domain/session-transport.js.map +1 -1
  754. package/daemon/dist/domain/skill-catalog.d.ts +16 -0
  755. package/daemon/dist/domain/skill-catalog.d.ts.map +1 -1
  756. package/daemon/dist/domain/skill-catalog.js +15 -6
  757. package/daemon/dist/domain/skill-catalog.js.map +1 -1
  758. package/daemon/dist/domain/skill-discovery.d.ts +24 -3
  759. package/daemon/dist/domain/skill-discovery.d.ts.map +1 -1
  760. package/daemon/dist/domain/skill-discovery.js +85 -12
  761. package/daemon/dist/domain/skill-discovery.js.map +1 -1
  762. package/daemon/dist/domain/snapshot-repository.d.ts +1 -0
  763. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  764. package/daemon/dist/domain/snapshot-repository.js +23 -10
  765. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  766. package/daemon/dist/domain/startup-orchestrator.d.ts +47 -5
  767. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  768. package/daemon/dist/domain/startup-orchestrator.js +291 -29
  769. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  770. package/daemon/dist/domain/startup-submission-evidence.d.ts +4 -11
  771. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -1
  772. package/daemon/dist/domain/startup-submission-evidence.js +11 -17
  773. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -1
  774. package/daemon/dist/domain/stream-dispositions.d.ts +51 -0
  775. package/daemon/dist/domain/stream-dispositions.d.ts.map +1 -0
  776. package/daemon/dist/domain/stream-dispositions.js +112 -0
  777. package/daemon/dist/domain/stream-dispositions.js.map +1 -0
  778. package/daemon/dist/domain/stream-store.d.ts +22 -0
  779. package/daemon/dist/domain/stream-store.d.ts.map +1 -1
  780. package/daemon/dist/domain/stream-store.js +49 -6
  781. package/daemon/dist/domain/stream-store.js.map +1 -1
  782. package/daemon/dist/domain/stream-subscriptions.d.ts +94 -0
  783. package/daemon/dist/domain/stream-subscriptions.d.ts.map +1 -0
  784. package/daemon/dist/domain/stream-subscriptions.js +160 -0
  785. package/daemon/dist/domain/stream-subscriptions.js.map +1 -0
  786. package/daemon/dist/domain/successor-session-launcher.d.ts +8 -1
  787. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  788. package/daemon/dist/domain/successor-session-launcher.js +6 -1
  789. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  790. package/daemon/dist/domain/terminal/herdr-adapter.d.ts +3 -1
  791. package/daemon/dist/domain/terminal/herdr-adapter.d.ts.map +1 -1
  792. package/daemon/dist/domain/terminal/herdr-adapter.js +125 -4
  793. package/daemon/dist/domain/terminal/herdr-adapter.js.map +1 -1
  794. package/daemon/dist/domain/terminal/herdr-sessions.d.ts +9 -0
  795. package/daemon/dist/domain/terminal/herdr-sessions.d.ts.map +1 -0
  796. package/daemon/dist/domain/terminal/herdr-sessions.js +23 -0
  797. package/daemon/dist/domain/terminal/herdr-sessions.js.map +1 -0
  798. package/daemon/dist/domain/terminal/terminal-provider.d.ts +4 -0
  799. package/daemon/dist/domain/terminal/terminal-provider.d.ts.map +1 -1
  800. package/daemon/dist/domain/terminal/terminal-service.d.ts +12 -3
  801. package/daemon/dist/domain/terminal/terminal-service.d.ts.map +1 -1
  802. package/daemon/dist/domain/terminal/terminal-service.js +42 -17
  803. package/daemon/dist/domain/terminal/terminal-service.js.map +1 -1
  804. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  805. package/daemon/dist/domain/terminal/view-composer.js +1 -0
  806. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  807. package/daemon/dist/domain/terminal-policy.d.ts +80 -0
  808. package/daemon/dist/domain/terminal-policy.d.ts.map +1 -0
  809. package/daemon/dist/domain/terminal-policy.js +117 -0
  810. package/daemon/dist/domain/terminal-policy.js.map +1 -0
  811. package/daemon/dist/domain/terminal-seat.d.ts +9 -0
  812. package/daemon/dist/domain/terminal-seat.d.ts.map +1 -0
  813. package/daemon/dist/domain/terminal-seat.js +37 -0
  814. package/daemon/dist/domain/terminal-seat.js.map +1 -0
  815. package/daemon/dist/domain/topology-converge.d.ts +25 -2
  816. package/daemon/dist/domain/topology-converge.d.ts.map +1 -1
  817. package/daemon/dist/domain/topology-converge.js +14 -1
  818. package/daemon/dist/domain/topology-converge.js.map +1 -1
  819. package/daemon/dist/domain/types.d.ts +73 -6
  820. package/daemon/dist/domain/types.d.ts.map +1 -1
  821. package/daemon/dist/domain/types.js.map +1 -1
  822. package/daemon/dist/domain/urgent-line.d.ts +4 -0
  823. package/daemon/dist/domain/urgent-line.d.ts.map +1 -0
  824. package/daemon/dist/domain/urgent-line.js +7 -0
  825. package/daemon/dist/domain/urgent-line.js.map +1 -0
  826. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  827. package/daemon/dist/domain/usage-series.js +6 -2
  828. package/daemon/dist/domain/usage-series.js.map +1 -1
  829. package/daemon/dist/domain/user-settings/settings-browser.d.ts.map +1 -1
  830. package/daemon/dist/domain/user-settings/settings-browser.js +4 -2
  831. package/daemon/dist/domain/user-settings/settings-browser.js.map +1 -1
  832. package/daemon/dist/domain/user-settings/settings-store.d.ts +3 -1
  833. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  834. package/daemon/dist/domain/user-settings/settings-store.js +106 -8
  835. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  836. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  837. package/daemon/dist/domain/view-projector.js +2 -1
  838. package/daemon/dist/domain/view-projector.js.map +1 -1
  839. package/daemon/dist/domain/watchdog-delivery.d.ts +3 -23
  840. package/daemon/dist/domain/watchdog-delivery.d.ts.map +1 -1
  841. package/daemon/dist/domain/watchdog-delivery.js +12 -89
  842. package/daemon/dist/domain/watchdog-delivery.js.map +1 -1
  843. package/daemon/dist/domain/watchdog-history-log.d.ts +5 -2
  844. package/daemon/dist/domain/watchdog-history-log.d.ts.map +1 -1
  845. package/daemon/dist/domain/watchdog-history-log.js.map +1 -1
  846. package/daemon/dist/domain/watchdog-job-update.d.ts +21 -0
  847. package/daemon/dist/domain/watchdog-job-update.d.ts.map +1 -0
  848. package/daemon/dist/domain/watchdog-job-update.js +143 -0
  849. package/daemon/dist/domain/watchdog-job-update.js.map +1 -0
  850. package/daemon/dist/domain/watchdog-jobs-repository.d.ts +65 -9
  851. package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
  852. package/daemon/dist/domain/watchdog-jobs-repository.js +194 -21
  853. package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
  854. package/daemon/dist/domain/watchdog-policy-engine.d.ts +39 -24
  855. package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
  856. package/daemon/dist/domain/watchdog-policy-engine.js +89 -55
  857. package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
  858. package/daemon/dist/domain/whoami-service.d.ts +2 -0
  859. package/daemon/dist/domain/whoami-service.d.ts.map +1 -1
  860. package/daemon/dist/domain/whoami-service.js +23 -6
  861. package/daemon/dist/domain/whoami-service.js.map +1 -1
  862. package/daemon/dist/domain/workflow-boot-sweep.d.ts +2 -1
  863. package/daemon/dist/domain/workflow-boot-sweep.d.ts.map +1 -1
  864. package/daemon/dist/domain/workflow-boot-sweep.js +11 -5
  865. package/daemon/dist/domain/workflow-boot-sweep.js.map +1 -1
  866. package/daemon/dist/domain/workflow-exception-escalation.d.ts.map +1 -1
  867. package/daemon/dist/domain/workflow-exception-escalation.js +9 -4
  868. package/daemon/dist/domain/workflow-exception-escalation.js.map +1 -1
  869. package/daemon/dist/domain/workflow-projector.d.ts +5 -2
  870. package/daemon/dist/domain/workflow-projector.d.ts.map +1 -1
  871. package/daemon/dist/domain/workflow-projector.js +21 -9
  872. package/daemon/dist/domain/workflow-projector.js.map +1 -1
  873. package/daemon/dist/domain/workflow-role-context.js +2 -2
  874. package/daemon/dist/domain/workflow-role-context.js.map +1 -1
  875. package/daemon/dist/domain/workflow-runtime.d.ts +8 -2
  876. package/daemon/dist/domain/workflow-runtime.d.ts.map +1 -1
  877. package/daemon/dist/domain/workflow-runtime.js +32 -7
  878. package/daemon/dist/domain/workflow-runtime.js.map +1 -1
  879. package/daemon/dist/domain/workspace/project-read.d.ts +2 -0
  880. package/daemon/dist/domain/workspace/project-read.d.ts.map +1 -1
  881. package/daemon/dist/domain/workspace/project-read.js +10 -1
  882. package/daemon/dist/domain/workspace/project-read.js.map +1 -1
  883. package/daemon/dist/index.d.ts.map +1 -1
  884. package/daemon/dist/index.js +2 -0
  885. package/daemon/dist/index.js.map +1 -1
  886. package/daemon/dist/router-line-surface.d.ts +2 -0
  887. package/daemon/dist/router-line-surface.d.ts.map +1 -0
  888. package/daemon/dist/router-line-surface.js +3 -0
  889. package/daemon/dist/router-line-surface.js.map +1 -0
  890. package/daemon/dist/routes/activity.d.ts +13 -1
  891. package/daemon/dist/routes/activity.d.ts.map +1 -1
  892. package/daemon/dist/routes/activity.js +70 -2
  893. package/daemon/dist/routes/activity.js.map +1 -1
  894. package/daemon/dist/routes/agent-images.d.ts.map +1 -1
  895. package/daemon/dist/routes/agent-images.js +12 -2
  896. package/daemon/dist/routes/agent-images.js.map +1 -1
  897. package/daemon/dist/routes/attention.d.ts.map +1 -1
  898. package/daemon/dist/routes/attention.js +30 -3
  899. package/daemon/dist/routes/attention.js.map +1 -1
  900. package/daemon/dist/routes/bootstrap-failure-response.js +2 -2
  901. package/daemon/dist/routes/bootstrap-failure-response.js.map +1 -1
  902. package/daemon/dist/routes/bundles.js +1 -1
  903. package/daemon/dist/routes/bundles.js.map +1 -1
  904. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  905. package/daemon/dist/routes/compaction.js +38 -12
  906. package/daemon/dist/routes/compaction.js.map +1 -1
  907. package/daemon/dist/routes/discovery.js +3 -0
  908. package/daemon/dist/routes/discovery.js.map +1 -1
  909. package/daemon/dist/routes/down.js +9 -1
  910. package/daemon/dist/routes/down.js.map +1 -1
  911. package/daemon/dist/routes/gateway.d.ts +2 -0
  912. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  913. package/daemon/dist/routes/gateway.js +181 -1
  914. package/daemon/dist/routes/gateway.js.map +1 -1
  915. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  916. package/daemon/dist/routes/hosts.js +2 -0
  917. package/daemon/dist/routes/hosts.js.map +1 -1
  918. package/daemon/dist/routes/kernel-status.js +6 -1
  919. package/daemon/dist/routes/kernel-status.js.map +1 -1
  920. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  921. package/daemon/dist/routes/mission-control.js +5 -1
  922. package/daemon/dist/routes/mission-control.js.map +1 -1
  923. package/daemon/dist/routes/projects.d.ts.map +1 -1
  924. package/daemon/dist/routes/projects.js +59 -12
  925. package/daemon/dist/routes/projects.js.map +1 -1
  926. package/daemon/dist/routes/proof.js +2 -2
  927. package/daemon/dist/routes/proof.js.map +1 -1
  928. package/daemon/dist/routes/provider.d.ts.map +1 -1
  929. package/daemon/dist/routes/provider.js +87 -73
  930. package/daemon/dist/routes/provider.js.map +1 -1
  931. package/daemon/dist/routes/queue.d.ts.map +1 -1
  932. package/daemon/dist/routes/queue.js +125 -16
  933. package/daemon/dist/routes/queue.js.map +1 -1
  934. package/daemon/dist/routes/rigs.d.ts.map +1 -1
  935. package/daemon/dist/routes/rigs.js +104 -20
  936. package/daemon/dist/routes/rigs.js.map +1 -1
  937. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  938. package/daemon/dist/routes/rigspec.js +40 -15
  939. package/daemon/dist/routes/rigspec.js.map +1 -1
  940. package/daemon/dist/routes/scopes.d.ts.map +1 -1
  941. package/daemon/dist/routes/scopes.js +30 -7
  942. package/daemon/dist/routes/scopes.js.map +1 -1
  943. package/daemon/dist/routes/seat.d.ts.map +1 -1
  944. package/daemon/dist/routes/seat.js +21 -5
  945. package/daemon/dist/routes/seat.js.map +1 -1
  946. package/daemon/dist/routes/sessions.js +5 -0
  947. package/daemon/dist/routes/sessions.js.map +1 -1
  948. package/daemon/dist/routes/skills.d.ts.map +1 -1
  949. package/daemon/dist/routes/skills.js +55 -2
  950. package/daemon/dist/routes/skills.js.map +1 -1
  951. package/daemon/dist/routes/stream.d.ts.map +1 -1
  952. package/daemon/dist/routes/stream.js +62 -13
  953. package/daemon/dist/routes/stream.js.map +1 -1
  954. package/daemon/dist/routes/terminal.d.ts.map +1 -1
  955. package/daemon/dist/routes/terminal.js +20 -11
  956. package/daemon/dist/routes/terminal.js.map +1 -1
  957. package/daemon/dist/routes/transcripts.d.ts.map +1 -1
  958. package/daemon/dist/routes/transcripts.js +7 -3
  959. package/daemon/dist/routes/transcripts.js.map +1 -1
  960. package/daemon/dist/routes/transport.d.ts.map +1 -1
  961. package/daemon/dist/routes/transport.js +25 -3
  962. package/daemon/dist/routes/transport.js.map +1 -1
  963. package/daemon/dist/routes/up.js +41 -52
  964. package/daemon/dist/routes/up.js.map +1 -1
  965. package/daemon/dist/routes/watchdog.d.ts +1 -0
  966. package/daemon/dist/routes/watchdog.d.ts.map +1 -1
  967. package/daemon/dist/routes/watchdog.js +52 -3
  968. package/daemon/dist/routes/watchdog.js.map +1 -1
  969. package/daemon/dist/routes/workflow.d.ts.map +1 -1
  970. package/daemon/dist/routes/workflow.js +24 -13
  971. package/daemon/dist/routes/workflow.js.map +1 -1
  972. package/daemon/dist/server.d.ts +2 -0
  973. package/daemon/dist/server.d.ts.map +1 -1
  974. package/daemon/dist/server.js +4 -1
  975. package/daemon/dist/server.js.map +1 -1
  976. package/daemon/dist/skill-loadout-surface.d.ts +2 -0
  977. package/daemon/dist/skill-loadout-surface.d.ts.map +1 -1
  978. package/daemon/dist/skill-loadout-surface.js +2 -0
  979. package/daemon/dist/skill-loadout-surface.js.map +1 -1
  980. package/daemon/dist/startup.d.ts.map +1 -1
  981. package/daemon/dist/startup.js +156 -81
  982. package/daemon/dist/startup.js.map +1 -1
  983. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  984. package/daemon/dist/terminal/TerminalSessionBroker.js +9 -2
  985. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  986. package/daemon/docs/reference/a2a-agents.md +343 -0
  987. package/daemon/docs/reference/acp-agents.md +77 -0
  988. package/daemon/docs/reference/agent-spec.md +7 -5
  989. package/daemon/docs/reference/agent-startup-guide.md +46 -0
  990. package/daemon/docs/reference/agent-state-taxonomy.md +43 -3
  991. package/daemon/docs/reference/checked-seat-stop.md +11 -0
  992. package/daemon/docs/reference/community-harness-examples/cursor/cursor.yaml +13 -0
  993. package/daemon/docs/reference/community-harness-examples/cursor/openrig-cursor-launch +61 -0
  994. package/daemon/docs/reference/community-harness-examples/hermes/config.yaml.example +18 -0
  995. package/daemon/docs/reference/community-harness-examples/hermes/hermes.yaml +12 -0
  996. package/daemon/docs/reference/community-harness-examples/hermes/openrig-hermes-launch +34 -0
  997. package/daemon/docs/reference/community-harness-examples/openclaw/openclaw.yaml +13 -0
  998. package/daemon/docs/reference/community-harness-examples/openclaw/openrig-openclaw-launch +38 -0
  999. package/daemon/docs/reference/community-harness-presets.md +179 -0
  1000. package/daemon/docs/reference/getting-started.md +148 -23
  1001. package/daemon/docs/reference/operation-correlation.md +9 -0
  1002. package/daemon/docs/reference/project-workspace.md +6 -0
  1003. package/daemon/docs/reference/quickstart.md +33 -20
  1004. package/daemon/docs/reference/refocus-channel.md +11 -3
  1005. package/daemon/docs/reference/rig-spec.md +83 -3
  1006. package/daemon/docs/reference/seat-delivery.md +130 -20
  1007. package/daemon/docs/reference/slack-app-setup.md +52 -3
  1008. package/daemon/docs/reference/stream-classifier-worker.md +28 -0
  1009. package/daemon/docs/reference/telemetry.md +3 -0
  1010. package/daemon/docs/reference/terminal-sessions.md +90 -0
  1011. package/daemon/docs/reference/topology-naming.md +1 -1
  1012. package/daemon/docs/reference/whats-new.md +173 -69
  1013. package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +0 -3
  1014. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +43 -4
  1015. package/daemon/specs/agents/shared/skills/core/openrig-herdr/SKILL.md +3 -0
  1016. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +2 -2
  1017. package/daemon/specs/agents/shared/skills/core/openrig-software-factory/references/worked-example.md +2 -2
  1018. package/daemon/specs/agents/shared/skills/core/openrig-upgrade/SKILL.md +11 -5
  1019. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +2 -0
  1020. package/daemon/specs/agents/shared/skills/pods/development-team/references/refactoring.md +11 -0
  1021. package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +46 -96
  1022. package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +17 -80
  1023. package/daemon/specs/agents/shared/skills/process/verification-before-completion/references/performance-claims.md +12 -0
  1024. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +129 -24
  1025. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/guidance/role.md +11 -0
  1026. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/startup/context.md +3 -1
  1027. package/daemon/specs/rigs/launch/secrets-manager/secrets-manager.compose.yaml +1 -1
  1028. package/dist/acp/connector.d.ts +72 -0
  1029. package/dist/acp/connector.d.ts.map +1 -0
  1030. package/dist/acp/connector.js +218 -0
  1031. package/dist/acp/connector.js.map +1 -0
  1032. package/dist/acp/json-rpc-stdio.d.ts +53 -0
  1033. package/dist/acp/json-rpc-stdio.d.ts.map +1 -0
  1034. package/dist/acp/json-rpc-stdio.js +141 -0
  1035. package/dist/acp/json-rpc-stdio.js.map +1 -0
  1036. package/dist/acp/run-processes.d.ts +10 -0
  1037. package/dist/acp/run-processes.d.ts.map +1 -0
  1038. package/dist/acp/run-processes.js +33 -0
  1039. package/dist/acp/run-processes.js.map +1 -0
  1040. package/dist/build-info.js +3 -3
  1041. package/dist/cli-error.d.ts +4 -0
  1042. package/dist/cli-error.d.ts.map +1 -1
  1043. package/dist/cli-error.js +6 -0
  1044. package/dist/cli-error.js.map +1 -1
  1045. package/dist/client.d.ts +7 -2
  1046. package/dist/client.d.ts.map +1 -1
  1047. package/dist/client.js +14 -7
  1048. package/dist/client.js.map +1 -1
  1049. package/dist/commands/acp.d.ts +11 -0
  1050. package/dist/commands/acp.d.ts.map +1 -0
  1051. package/dist/commands/acp.js +198 -0
  1052. package/dist/commands/acp.js.map +1 -0
  1053. package/dist/commands/agent-image.d.ts.map +1 -1
  1054. package/dist/commands/agent-image.js +15 -7
  1055. package/dist/commands/agent-image.js.map +1 -1
  1056. package/dist/commands/archive.d.ts.map +1 -1
  1057. package/dist/commands/archive.js +17 -3
  1058. package/dist/commands/archive.js.map +1 -1
  1059. package/dist/commands/attach.d.ts.map +1 -1
  1060. package/dist/commands/attach.js +7 -5
  1061. package/dist/commands/attach.js.map +1 -1
  1062. package/dist/commands/auth.d.ts +3 -0
  1063. package/dist/commands/auth.d.ts.map +1 -1
  1064. package/dist/commands/auth.js +39 -10
  1065. package/dist/commands/auth.js.map +1 -1
  1066. package/dist/commands/broadcast.js +2 -0
  1067. package/dist/commands/broadcast.js.map +1 -1
  1068. package/dist/commands/community-harness.d.ts.map +1 -1
  1069. package/dist/commands/community-harness.js +2 -1
  1070. package/dist/commands/community-harness.js.map +1 -1
  1071. package/dist/commands/compact-plan.d.ts +2 -0
  1072. package/dist/commands/compact-plan.d.ts.map +1 -1
  1073. package/dist/commands/compact-plan.js +40 -4
  1074. package/dist/commands/compact-plan.js.map +1 -1
  1075. package/dist/commands/compact.d.ts.map +1 -1
  1076. package/dist/commands/compact.js +11 -4
  1077. package/dist/commands/compact.js.map +1 -1
  1078. package/dist/commands/config.d.ts.map +1 -1
  1079. package/dist/commands/config.js +17 -3
  1080. package/dist/commands/config.js.map +1 -1
  1081. package/dist/commands/context.d.ts.map +1 -1
  1082. package/dist/commands/context.js +16 -9
  1083. package/dist/commands/context.js.map +1 -1
  1084. package/dist/commands/create.js +2 -2
  1085. package/dist/commands/create.js.map +1 -1
  1086. package/dist/commands/daemon.d.ts.map +1 -1
  1087. package/dist/commands/daemon.js +2 -0
  1088. package/dist/commands/daemon.js.map +1 -1
  1089. package/dist/commands/down.d.ts +5 -1
  1090. package/dist/commands/down.d.ts.map +1 -1
  1091. package/dist/commands/down.js +87 -3
  1092. package/dist/commands/down.js.map +1 -1
  1093. package/dist/commands/edge.d.ts +4 -0
  1094. package/dist/commands/edge.d.ts.map +1 -0
  1095. package/dist/commands/edge.js +135 -0
  1096. package/dist/commands/edge.js.map +1 -0
  1097. package/dist/commands/expand.d.ts.map +1 -1
  1098. package/dist/commands/expand.js +16 -2
  1099. package/dist/commands/expand.js.map +1 -1
  1100. package/dist/commands/export.d.ts +1 -0
  1101. package/dist/commands/export.d.ts.map +1 -1
  1102. package/dist/commands/export.js +60 -2
  1103. package/dist/commands/export.js.map +1 -1
  1104. package/dist/commands/fork.d.ts.map +1 -1
  1105. package/dist/commands/fork.js +22 -3
  1106. package/dist/commands/fork.js.map +1 -1
  1107. package/dist/commands/gateway.d.ts +39 -0
  1108. package/dist/commands/gateway.d.ts.map +1 -1
  1109. package/dist/commands/gateway.js +311 -3
  1110. package/dist/commands/gateway.js.map +1 -1
  1111. package/dist/commands/grow.js +2 -2
  1112. package/dist/commands/grow.js.map +1 -1
  1113. package/dist/commands/health.js +3 -2
  1114. package/dist/commands/health.js.map +1 -1
  1115. package/dist/commands/host.d.ts +1 -1
  1116. package/dist/commands/host.d.ts.map +1 -1
  1117. package/dist/commands/host.js +2 -2
  1118. package/dist/commands/host.js.map +1 -1
  1119. package/dist/commands/launch.d.ts.map +1 -1
  1120. package/dist/commands/launch.js +10 -3
  1121. package/dist/commands/launch.js.map +1 -1
  1122. package/dist/commands/mcp.d.ts.map +1 -1
  1123. package/dist/commands/mcp.js +113 -1
  1124. package/dist/commands/mcp.js.map +1 -1
  1125. package/dist/commands/plugin.d.ts.map +1 -1
  1126. package/dist/commands/plugin.js +2 -1
  1127. package/dist/commands/plugin.js.map +1 -1
  1128. package/dist/commands/project-worker.d.ts +25 -1
  1129. package/dist/commands/project-worker.d.ts.map +1 -1
  1130. package/dist/commands/project-worker.js +9 -7
  1131. package/dist/commands/project-worker.js.map +1 -1
  1132. package/dist/commands/project.d.ts +2 -0
  1133. package/dist/commands/project.d.ts.map +1 -1
  1134. package/dist/commands/project.js +64 -1
  1135. package/dist/commands/project.js.map +1 -1
  1136. package/dist/commands/provider.d.ts.map +1 -1
  1137. package/dist/commands/provider.js +72 -44
  1138. package/dist/commands/provider.js.map +1 -1
  1139. package/dist/commands/ps.d.ts +16 -1
  1140. package/dist/commands/ps.d.ts.map +1 -1
  1141. package/dist/commands/ps.js +145 -52
  1142. package/dist/commands/ps.js.map +1 -1
  1143. package/dist/commands/queue.d.ts +7 -1
  1144. package/dist/commands/queue.d.ts.map +1 -1
  1145. package/dist/commands/queue.js +97 -13
  1146. package/dist/commands/queue.js.map +1 -1
  1147. package/dist/commands/reconcile-session.d.ts.map +1 -1
  1148. package/dist/commands/reconcile-session.js +6 -0
  1149. package/dist/commands/reconcile-session.js.map +1 -1
  1150. package/dist/commands/release.d.ts.map +1 -1
  1151. package/dist/commands/release.js +16 -2
  1152. package/dist/commands/release.js.map +1 -1
  1153. package/dist/commands/restore-check.d.ts.map +1 -1
  1154. package/dist/commands/restore-check.js +2 -1
  1155. package/dist/commands/restore-check.js.map +1 -1
  1156. package/dist/commands/restore-packet.d.ts.map +1 -1
  1157. package/dist/commands/restore-packet.js +2 -1
  1158. package/dist/commands/restore-packet.js.map +1 -1
  1159. package/dist/commands/restore.d.ts.map +1 -1
  1160. package/dist/commands/restore.js +23 -6
  1161. package/dist/commands/restore.js.map +1 -1
  1162. package/dist/commands/scope.d.ts.map +1 -1
  1163. package/dist/commands/scope.js +5 -2
  1164. package/dist/commands/scope.js.map +1 -1
  1165. package/dist/commands/seat.d.ts +2 -0
  1166. package/dist/commands/seat.d.ts.map +1 -1
  1167. package/dist/commands/seat.js +124 -10
  1168. package/dist/commands/seat.js.map +1 -1
  1169. package/dist/commands/send.d.ts.map +1 -1
  1170. package/dist/commands/send.js +87 -56
  1171. package/dist/commands/send.js.map +1 -1
  1172. package/dist/commands/setup.d.ts +27 -0
  1173. package/dist/commands/setup.d.ts.map +1 -1
  1174. package/dist/commands/setup.js +189 -16
  1175. package/dist/commands/setup.js.map +1 -1
  1176. package/dist/commands/shrink.d.ts.map +1 -1
  1177. package/dist/commands/shrink.js +16 -2
  1178. package/dist/commands/shrink.js.map +1 -1
  1179. package/dist/commands/skill.d.ts.map +1 -1
  1180. package/dist/commands/skill.js +116 -3
  1181. package/dist/commands/skill.js.map +1 -1
  1182. package/dist/commands/slack.d.ts.map +1 -1
  1183. package/dist/commands/slack.js +11 -24
  1184. package/dist/commands/slack.js.map +1 -1
  1185. package/dist/commands/snapshot.d.ts.map +1 -1
  1186. package/dist/commands/snapshot.js +36 -10
  1187. package/dist/commands/snapshot.js.map +1 -1
  1188. package/dist/commands/specs.d.ts.map +1 -1
  1189. package/dist/commands/specs.js +11 -5
  1190. package/dist/commands/specs.js.map +1 -1
  1191. package/dist/commands/start.d.ts.map +1 -1
  1192. package/dist/commands/start.js +54 -35
  1193. package/dist/commands/start.js.map +1 -1
  1194. package/dist/commands/status.d.ts.map +1 -1
  1195. package/dist/commands/status.js +8 -2
  1196. package/dist/commands/status.js.map +1 -1
  1197. package/dist/commands/stream-outcome.d.ts +157 -0
  1198. package/dist/commands/stream-outcome.d.ts.map +1 -0
  1199. package/dist/commands/stream-outcome.js +81 -0
  1200. package/dist/commands/stream-outcome.js.map +1 -0
  1201. package/dist/commands/stream.d.ts.map +1 -1
  1202. package/dist/commands/stream.js +64 -2
  1203. package/dist/commands/stream.js.map +1 -1
  1204. package/dist/commands/terminal.d.ts +1 -0
  1205. package/dist/commands/terminal.d.ts.map +1 -1
  1206. package/dist/commands/terminal.js +35 -6
  1207. package/dist/commands/terminal.js.map +1 -1
  1208. package/dist/commands/topology-default-agent.d.ts +2 -2
  1209. package/dist/commands/topology-default-agent.d.ts.map +1 -1
  1210. package/dist/commands/topology-default-agent.js +5 -3
  1211. package/dist/commands/topology-default-agent.js.map +1 -1
  1212. package/dist/commands/transcript.d.ts.map +1 -1
  1213. package/dist/commands/transcript.js +12 -7
  1214. package/dist/commands/transcript.js.map +1 -1
  1215. package/dist/commands/unarchive.d.ts.map +1 -1
  1216. package/dist/commands/unarchive.js +16 -2
  1217. package/dist/commands/unarchive.js.map +1 -1
  1218. package/dist/commands/up.d.ts.map +1 -1
  1219. package/dist/commands/up.js +106 -35
  1220. package/dist/commands/up.js.map +1 -1
  1221. package/dist/commands/walk.d.ts.map +1 -1
  1222. package/dist/commands/walk.js +2 -1
  1223. package/dist/commands/walk.js.map +1 -1
  1224. package/dist/commands/watchdog.d.ts.map +1 -1
  1225. package/dist/commands/watchdog.js +80 -5
  1226. package/dist/commands/watchdog.js.map +1 -1
  1227. package/dist/commands/whoami.d.ts.map +1 -1
  1228. package/dist/commands/whoami.js +3 -0
  1229. package/dist/commands/whoami.js.map +1 -1
  1230. package/dist/commands/workflow-errors.js +1 -1
  1231. package/dist/commands/workflow-errors.js.map +1 -1
  1232. package/dist/commands/workflow-render.js +4 -4
  1233. package/dist/commands/workflow-render.js.map +1 -1
  1234. package/dist/commands/workflow.d.ts.map +1 -1
  1235. package/dist/commands/workflow.js +34 -15
  1236. package/dist/commands/workflow.js.map +1 -1
  1237. package/dist/config-store.d.ts +18 -2
  1238. package/dist/config-store.d.ts.map +1 -1
  1239. package/dist/config-store.js +120 -11
  1240. package/dist/config-store.js.map +1 -1
  1241. package/dist/daemon-lifecycle.d.ts +13 -4
  1242. package/dist/daemon-lifecycle.d.ts.map +1 -1
  1243. package/dist/daemon-lifecycle.js +100 -30
  1244. package/dist/daemon-lifecycle.js.map +1 -1
  1245. package/dist/daemon-reachability.d.ts +13 -0
  1246. package/dist/daemon-reachability.d.ts.map +1 -1
  1247. package/dist/daemon-reachability.js +28 -0
  1248. package/dist/daemon-reachability.js.map +1 -1
  1249. package/dist/decisions/decisions.d.ts +203 -0
  1250. package/dist/decisions/decisions.d.ts.map +1 -0
  1251. package/dist/decisions/decisions.js +374 -0
  1252. package/dist/decisions/decisions.js.map +1 -0
  1253. package/dist/decisions/stream-consumer.d.ts +255 -0
  1254. package/dist/decisions/stream-consumer.d.ts.map +1 -0
  1255. package/dist/decisions/stream-consumer.js +282 -0
  1256. package/dist/decisions/stream-consumer.js.map +1 -0
  1257. package/dist/decisions/templates.d.ts +8 -0
  1258. package/dist/decisions/templates.d.ts.map +1 -0
  1259. package/dist/decisions/templates.js +34 -0
  1260. package/dist/decisions/templates.js.map +1 -0
  1261. package/dist/fetch-with-timeout.d.ts.map +1 -1
  1262. package/dist/fetch-with-timeout.js +19 -16
  1263. package/dist/fetch-with-timeout.js.map +1 -1
  1264. package/dist/fresh-seat-command.d.ts +18 -0
  1265. package/dist/fresh-seat-command.d.ts.map +1 -0
  1266. package/dist/fresh-seat-command.js +36 -0
  1267. package/dist/fresh-seat-command.js.map +1 -0
  1268. package/dist/front-door.d.ts +4 -0
  1269. package/dist/front-door.d.ts.map +1 -1
  1270. package/dist/front-door.js +8 -4
  1271. package/dist/front-door.js.map +1 -1
  1272. package/dist/host-bindings.d.ts +6 -0
  1273. package/dist/host-bindings.d.ts.map +1 -1
  1274. package/dist/host-bindings.js +23 -13
  1275. package/dist/host-bindings.js.map +1 -1
  1276. package/dist/index.d.ts +2 -0
  1277. package/dist/index.d.ts.map +1 -1
  1278. package/dist/index.js +4 -0
  1279. package/dist/index.js.map +1 -1
  1280. package/dist/lazy-program.d.ts.map +1 -1
  1281. package/dist/lazy-program.js +2 -0
  1282. package/dist/lazy-program.js.map +1 -1
  1283. package/dist/lib/bundle-check.d.ts.map +1 -1
  1284. package/dist/lib/bundle-check.js +13 -5
  1285. package/dist/lib/bundle-check.js.map +1 -1
  1286. package/dist/lib/run-on-host.d.ts +29 -0
  1287. package/dist/lib/run-on-host.d.ts.map +1 -0
  1288. package/dist/lib/run-on-host.js +69 -0
  1289. package/dist/lib/run-on-host.js.map +1 -0
  1290. package/dist/lib/seat-activity.d.ts +17 -0
  1291. package/dist/lib/seat-activity.d.ts.map +1 -0
  1292. package/dist/lib/seat-activity.js +29 -0
  1293. package/dist/lib/seat-activity.js.map +1 -0
  1294. package/dist/local-daemon-owner.d.ts +4 -0
  1295. package/dist/local-daemon-owner.d.ts.map +1 -1
  1296. package/dist/local-daemon-owner.js +1 -1
  1297. package/dist/local-daemon-owner.js.map +1 -1
  1298. package/dist/mcp-http.d.ts +42 -0
  1299. package/dist/mcp-http.d.ts.map +1 -0
  1300. package/dist/mcp-http.js +232 -0
  1301. package/dist/mcp-http.js.map +1 -0
  1302. package/dist/mcp-server.d.ts +30 -2
  1303. package/dist/mcp-server.d.ts.map +1 -1
  1304. package/dist/mcp-server.js +1126 -407
  1305. package/dist/mcp-server.js.map +1 -1
  1306. package/dist/rig-handle.d.ts +18 -1
  1307. package/dist/rig-handle.d.ts.map +1 -1
  1308. package/dist/rig-handle.js +19 -2
  1309. package/dist/rig-handle.js.map +1 -1
  1310. package/dist/seat-launch-additions-lines.d.ts +11 -0
  1311. package/dist/seat-launch-additions-lines.d.ts.map +1 -0
  1312. package/dist/seat-launch-additions-lines.js +14 -0
  1313. package/dist/seat-launch-additions-lines.js.map +1 -0
  1314. package/dist/terminal-window.d.ts +1 -1
  1315. package/dist/terminal-window.d.ts.map +1 -1
  1316. package/dist/terminal-window.js +50 -22
  1317. package/dist/terminal-window.js.map +1 -1
  1318. package/package.json +1 -1
  1319. package/tui/dist/attention/attention-model.d.ts +3 -1
  1320. package/tui/dist/attention/attention-model.d.ts.map +1 -1
  1321. package/tui/dist/attention/attention-model.js +68 -1
  1322. package/tui/dist/attention/attention-model.js.map +1 -1
  1323. package/tui/dist/commands/registry.d.ts.map +1 -1
  1324. package/tui/dist/commands/registry.js +2 -0
  1325. package/tui/dist/commands/registry.js.map +1 -1
  1326. package/tui/dist/config/config-model.d.ts.map +1 -1
  1327. package/tui/dist/config/config-model.js +3 -1
  1328. package/tui/dist/config/config-model.js.map +1 -1
  1329. package/tui/dist/connections/connections-model.d.ts +0 -5
  1330. package/tui/dist/connections/connections-model.d.ts.map +1 -1
  1331. package/tui/dist/connections/connections-model.js +1 -1
  1332. package/tui/dist/connections/connections-model.js.map +1 -1
  1333. package/tui/dist/daemon-client.d.ts +20 -0
  1334. package/tui/dist/daemon-client.d.ts.map +1 -1
  1335. package/tui/dist/daemon-client.js +27 -0
  1336. package/tui/dist/daemon-client.js.map +1 -1
  1337. package/tui/dist/hydrate.d.ts.map +1 -1
  1338. package/tui/dist/hydrate.js +22 -7
  1339. package/tui/dist/hydrate.js.map +1 -1
  1340. package/tui/dist/live.d.ts +10 -1
  1341. package/tui/dist/live.d.ts.map +1 -1
  1342. package/tui/dist/live.js +56 -7
  1343. package/tui/dist/live.js.map +1 -1
  1344. package/tui/dist/main.js +50 -3
  1345. package/tui/dist/main.js.map +1 -1
  1346. package/tui/dist/render.d.ts.map +1 -1
  1347. package/tui/dist/render.js +121 -10
  1348. package/tui/dist/render.js.map +1 -1
  1349. package/tui/dist/topology/fixture.js +1 -1
  1350. package/tui/dist/topology/fixture.js.map +1 -1
  1351. package/tui/dist/topology/glyphs.js +1 -1
  1352. package/tui/dist/topology/glyphs.js.map +1 -1
  1353. package/tui/dist/topology/graph-types.d.ts +1 -0
  1354. package/tui/dist/topology/graph-types.d.ts.map +1 -1
  1355. package/tui/dist/types.d.ts +78 -0
  1356. package/tui/dist/types.d.ts.map +1 -1
  1357. package/tui/dist/version-skew.d.ts +24 -0
  1358. package/tui/dist/version-skew.d.ts.map +1 -0
  1359. package/tui/dist/version-skew.js +37 -0
  1360. package/tui/dist/version-skew.js.map +1 -0
  1361. package/ui/dist/assets/{index-CVgod3Pm.js → index-Blg-p32B.js} +92 -92
  1362. package/ui/dist/index.html +1 -1
  1363. package/daemon/dist/domain/provider/subscription-moves.d.ts +0 -77
  1364. package/daemon/dist/domain/provider/subscription-moves.d.ts.map +0 -1
  1365. package/daemon/dist/domain/provider/subscription-moves.js +0 -140
  1366. package/daemon/dist/domain/provider/subscription-moves.js.map +0 -1
@@ -1,15 +1,23 @@
1
+ import { observeSolePane } from "./pane-binding-observation.js";
2
+ import { automaticRestoreOverrides } from "./existing-rig-restore.js";
1
3
  import { restoreRuntimeCompatibilityError } from "./restore-runtime-compatibility.js";
4
+ import { leftAttachedReason } from "./restore-plan-preview.js";
5
+ import { assessSnapshotCurrentOccupants, stoppedSnapshotReason } from "./rehydrate-eligibility.js";
2
6
  import { nonInterruptiveNotice, nonInterruptiveSummary } from "../adapters/non-interruptive.js";
3
7
  import { effortPrecedence, readSeatEffort } from "./seat-effort.js";
4
8
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
5
9
  import { join } from "node:path";
10
+ import { ensureSeatSkillPlugin, hasSeatSkillRecords, rehydrateSeatSkills, seatSkillPaths, seatSkillPathsForNode, seatCatalogKeptNote, seatSkillReplay, writeSeatSkillCatalog, writeSeatSkillRouter, seatRouterKeptNote } from "./seat-skill-storage.js";
6
11
  import { NativePermissionStore } from "./native-permission-store.js";
7
12
  import { resolvePermissionPolicyAttachment } from "./permission-policy/policy-ref.js";
8
13
  import { claudeResumeRotation } from "./session-registry.js";
9
14
  import { assessNativeResumeProbe } from "./native-resume-probe.js";
15
+ import { resumeProbeEvidence } from "./native-resume-probe-evidence.js";
10
16
  import { observeClaudeDelivery, observeClaudeResumeLaunch, verifyClaudePaneProcess, verifyPaneIdleShell } from "./native-process-lineage.js";
11
17
  import { reanchorBuiltinStartupFile, reanchorShippedProjectionEntry } from "./builtin-startup-files.js";
12
- import { seatGuidance, restoreMissingGuidance, missingGuidanceBlocks } from "./restore-guidance.js";
18
+ import { applySeatSkillsLineRule, seatGuidance, restoreMissingGuidance, missingGuidanceBlocks } from "./restore-guidance.js";
19
+ import { readFootprintAnswer } from "./footprint-choice.js";
20
+ import { SettingsStore } from "./user-settings/settings-store.js";
13
21
  import { AppliedLaunchObservationStore } from "./applied-launch-observation-store.js";
14
22
  import { classifyPaneRuntimeMatch } from "./seat-identity-reconciler.js";
15
23
  import { isShellForeground } from "./shell-classifier.js";
@@ -23,12 +31,16 @@ const LAUNCH_DEPENDENCY_KINDS = new Set(["delegates_to", "spawned_by"]);
23
31
  // in the pure leaf module active-occupant.ts, shared with preview, snapshot
24
32
  // usability, and lifecycle projection. Imported and re-exported here so the
25
33
  // existing export surface and the execution call sites below are unchanged.
26
- import { resolveActiveSnapshotSession, activeOccupantAmbiguityError, absentSeatResumeHistory, absentSeatResumeHistoryError } from "./active-occupant.js";
27
- import { effectiveRestorePolicy } from "./restore-policy.js";
34
+ import { resolveActiveSnapshotSession, activeOccupantAmbiguityError, absentSeatResumeHistory, absentSeatResumeHistoryError, freshSeatLaunchCommand } from "./active-occupant.js";
35
+ import { effectiveRestorePolicy, communityLaunchOnlyRestoreReason } from "./restore-policy.js";
28
36
  import { communityHarnessOf } from "./built-in-runtimes.js";
37
+ import { communityHarnessStopsRestore } from "./community-harness-presets.js";
29
38
  import { seatAdapter } from "../adapters/community-harness-runtime-adapter.js";
30
39
  import { pluginPathsOf } from "./claude-core-plugin-env.js";
40
+ import { seatLaunchAdditionsForLaunch, systemPromptPendingNoteForNode } from "./seat-launch-additions.js";
31
41
  export { resolveActiveSnapshotSession } from "./active-occupant.js";
42
+ /** Pre-restore blockers that concern one seat's own startup content; see restore(). */
43
+ const SEAT_STARTUP_BLOCKERS = new Set(["required_startup_file_missing", "startup_owner_root_missing"]);
32
44
  export function rollupRestoreRigResult(nodes) {
33
45
  if (nodes.length === 0)
34
46
  return "failed";
@@ -47,12 +59,14 @@ export function rollupRestoreRigResult(nodes) {
47
59
  return "fully_restored";
48
60
  }
49
61
  /** OPR.0.4.3.20 FR-7 — restore/launch statuses that mean NO session is running and
50
- * the operator must act. The launch API + CLI must NOT report these as a successful
62
+ * the operator must act, or (`left_attached`) that nothing was launched in an external seat's place.
63
+ * The launch API + CLI must NOT report these as a successful
51
64
  * launch (a subset/single launch that lands `awaiting-decision` is not "Launched"). */
52
65
  export const NON_RUNNING_LAUNCH_STATUSES = new Set([
53
66
  "awaiting-decision",
54
67
  "attention_required",
55
68
  "failed",
69
+ "left_attached",
56
70
  ]);
57
71
  /** True when a restore/launch status means a session is actually running (a real
58
72
  * successful launch): resumed / rebuilt / fresh / fresh-primed / operator_recovered. */
@@ -84,8 +98,9 @@ function snapshotLaunchOutcome(data, nodeId, runtime, savedRuntime) {
84
98
  const policy = effectiveRestorePolicy(seatFacts(data, nodeId, savedRuntime, runtime), session.restorePolicy);
85
99
  if (policy !== "resume_if_possible")
86
100
  return { kind: "fresh", why: `saves this seat with restore policy '${policy}'` };
87
- if (communityHarnessOf(session.communityHarness, runtime))
88
- return { kind: "decision", why: "is a community harness whose preset is launch-only (resume unsupported)" };
101
+ if (communityHarnessOf(session.communityHarness, runtime) && communityHarnessStopsRestore(runtime, session.resumeType, session.resumeToken)) {
102
+ return { kind: "decision", why: "is a community harness whose preset can't resume this seat's saved conversation (launch-only, or the id isn't this harness's own)" };
103
+ }
89
104
  if (!session.resumeToken)
90
105
  return { kind: "decision", why: "has no resume token for this seat" };
91
106
  if (!session.resumeType || session.resumeType === "none")
@@ -109,6 +124,7 @@ export class RestoreOrchestrator {
109
124
  transcriptStore;
110
125
  serviceOrchestrator;
111
126
  listProcesses;
127
+ routerLineSettings;
112
128
  appliedLaunchStore;
113
129
  constructor(deps) {
114
130
  if (deps.db !== deps.rigRepo.db) {
@@ -147,6 +163,7 @@ export class RestoreOrchestrator {
147
163
  this.transcriptStore = deps.transcriptStore ?? null;
148
164
  this.serviceOrchestrator = deps.serviceOrchestrator ?? null;
149
165
  this.listProcesses = deps.listProcesses;
166
+ this.routerLineSettings = deps.routerLineSettings;
150
167
  this.appliedLaunchStore = new AppliedLaunchObservationStore(deps.db);
151
168
  }
152
169
  async restore(snapshotId, opts) {
@@ -160,8 +177,28 @@ export class RestoreOrchestrator {
160
177
  if (!rig) {
161
178
  return { ok: false, code: "rig_not_found", message: `Rig ${rigId} not found` };
162
179
  }
180
+ if (!opts?.automatic && !opts?.automaticReplacements) {
181
+ const overrides = await automaticRestoreOverrides({ rigRepo: this.rigRepo, snapshotRepo: this.snapshotRepo }, rigId, opts);
182
+ if (overrides.refusal)
183
+ return { ok: false, code: "rig_not_stopped", message: overrides.refusal };
184
+ opts = { ...opts, automaticReplacements: overrides.replacements };
185
+ }
186
+ const replacements = opts?.automaticReplacements ?? [];
187
+ const selectedIds = new Set(replacements.map(target => target.nodeId));
188
+ // Only this invocation's resume input changes; historical snapshots remain immutable.
189
+ if (replacements.length) {
190
+ snapshot.data = structuredClone(snapshot.data);
191
+ snapshot.data.topologyRoster = { version: 1, source: "operator_explicit", intendedNodeIds: [...selectedIds] };
192
+ for (const target of replacements.filter(target => target.corrected)) {
193
+ const active = resolveActiveSnapshotSession(snapshot.data, target.nodeId);
194
+ if (active.kind !== "resolved")
195
+ return { ok: false, code: "restore_error", message: "Corrected seat has no unambiguous snapshot occupant; nothing replaced." };
196
+ active.session.resumeType = target.resumeType;
197
+ active.session.resumeToken = target.resumeToken;
198
+ }
199
+ }
163
200
  const guard = this.tmuxAdapter.deliveryGuard;
164
- const guardedIds = rig.nodes.map(node => node.id);
201
+ const guardedIds = rig.nodes.filter(node => !replacements.length || selectedIds.has(node.id)).map(node => node.id);
165
202
  if (guard && guardedIds.some(id => !guard.ownsLifecycle(id))) {
166
203
  return guard.lifecycle(guardedIds, () => this.restore(snapshotId, opts));
167
204
  }
@@ -173,8 +210,8 @@ export class RestoreOrchestrator {
173
210
  // This determines whether the rig is safe to restore before any state
174
211
  // changes occur — critical for pre_restore snapshot ordering (snapshot
175
212
  // must capture original DB state, not post-reconciliation state).
176
- const classification = await this.classifyRunningSessions(rigId);
177
- if (classification.live.length > 0 || classification.unknown.length > 0) {
213
+ const classification = await this.classifyRunningSessions(rigId, replacements.length ? selectedIds : undefined);
214
+ if (classification.unknown.length > 0 || classification.live.some(id => !replacements.some(target => target.sessionId === id))) {
178
215
  return { ok: false, code: "rig_not_stopped", message: `Rig ${rigId} has live sessions. Stop the rig with 'rig down' before restoring, or use the latest auto-pre-down snapshot.` };
179
216
  }
180
217
  // Per-rig concurrency lock
@@ -190,7 +227,22 @@ export class RestoreOrchestrator {
190
227
  currentRuntimes: Object.fromEntries((this.rigRepo.getRig(rigId)?.nodes ?? []).map((current) => [current.logicalId, current.runtime])),
191
228
  });
192
229
  const topology = resolveSnapshotRestoreTopology(snapshot.data);
193
- if (validation.blockers.length > 0) {
230
+ // A required startup file that is missing holds only its own seat. That seat isn't launched, because it would start
231
+ // without its startup content; it's reported failed with the reason, and the rest of the rig restores. Any other
232
+ // blocker, or holds on every seat this restore would launch, still stops the whole restore before any mutation.
233
+ const heldForStartup = new Map();
234
+ for (const blocker of validation.blockers) {
235
+ if (!SEAT_STARTUP_BLOCKERS.has(blocker.code) || !blocker.nodeId)
236
+ continue;
237
+ // A seat joined with `rig attach` as an external CLI isn't launched, so its startup files don't hold it.
238
+ if (this.sessionRegistry.getBindingForNode(blocker.nodeId)?.attachmentType === "external_cli")
239
+ continue;
240
+ const reason = `${blocker.message} ${blocker.remediation}`;
241
+ heldForStartup.set(blocker.nodeId, heldForStartup.has(blocker.nodeId) ? `${heldForStartup.get(blocker.nodeId)} ${reason}` : reason);
242
+ }
243
+ const planIds = this.computeRestorePlan(snapshot.data).filter(entry => !replacements.length || selectedIds.has(entry.node.id)).map(entry => entry.node.id);
244
+ const rigWide = validation.blockers.some((blocker) => !SEAT_STARTUP_BLOCKERS.has(blocker.code) || !blocker.nodeId);
245
+ if (rigWide || planIds.every((id) => heldForStartup.has(id))) {
194
246
  const result = {
195
247
  snapshotId,
196
248
  preRestoreSnapshotId: null,
@@ -238,7 +290,7 @@ export class RestoreOrchestrator {
238
290
  // logic crash the restore pipeline.
239
291
  }
240
292
  // 3b. Service gate: boot services before agent restore if this rig has services
241
- if (this.serviceOrchestrator) {
293
+ if (this.serviceOrchestrator && replacements.length === 0) {
242
294
  const svcRecord = this.rigRepo.getServicesRecord(rigId);
243
295
  if (svcRecord) {
244
296
  const bootResult = await this.serviceOrchestrator.boot(rigId);
@@ -263,7 +315,8 @@ export class RestoreOrchestrator {
263
315
  }
264
316
  }
265
317
  // 4. Compute restore plan
266
- const plan = this.computeRestorePlan(snapshot.data);
318
+ const plan = this.computeRestorePlan(snapshot.data).filter(entry => !replacements.length || selectedIds.has(entry.node.id));
319
+ const { stoppedNodeIds } = assessSnapshotCurrentOccupants(this.db, rig, snapshot, opts?.preserveStoppedInitial);
267
320
  // 5. Execute restore with compensating pattern per node
268
321
  const nodeResults = [];
269
322
  const restoreWarnings = [...validation.warnings];
@@ -272,8 +325,17 @@ export class RestoreOrchestrator {
272
325
  else if (opts?.nonInterruptive === false)
273
326
  restoreWarnings.push(nonInterruptiveSummary(false));
274
327
  for (const entry of plan) {
275
- const result = await this.restoreNodeWithCompensation(entry, rigId, snapshotId, snapshot.data, opts, restoreWarnings);
328
+ const held = heldForStartup.get(entry.node.id);
329
+ if (held) {
330
+ nodeResults.push({ nodeId: entry.node.id, logicalId: entry.node.logicalId, status: "failed", error: `Not launched: ${held}` });
331
+ continue;
332
+ }
333
+ const replacement = replacements.find(target => target.nodeId === entry.node.id);
334
+ const result = await this.restoreNodeWithCompensation(entry, rigId, snapshotId, snapshot.data, opts, restoreWarnings, stoppedNodeIds.has(entry.node.id));
276
335
  nodeResults.push(result);
336
+ if (replacement && this.db.prepare("SELECT status FROM sessions WHERE id = ?").get(replacement.sessionId)?.status === "exited") {
337
+ restoreWarnings.push(`Stopped ${entry.node.logicalId}'s startup occupant for explicit replacement; replacement outcome: ${result.status}.`);
338
+ }
277
339
  }
278
340
  const restoreResult = {
279
341
  snapshotId,
@@ -375,7 +437,9 @@ export class RestoreOrchestrator {
375
437
  // discarded, so restore.subset_completed carried warnings: [].
376
438
  const subsetWarnings = [];
377
439
  for (const node of targetNodes) {
378
- const sessions = this.sessionRegistry.getSessionsForRig(rigId)
440
+ // An external CLI's claim has no tmux session to probe; restoreNodeWithCompensation leaves it attached.
441
+ const external = this.sessionRegistry.getBindingForNode(node.id)?.attachmentType === "external_cli";
442
+ const sessions = external ? [] : this.sessionRegistry.getSessionsForRig(rigId)
379
443
  .filter((s) => s.nodeId === node.id && s.status === "running");
380
444
  let isLive = false;
381
445
  let isUnknown = false;
@@ -466,6 +530,9 @@ export class RestoreOrchestrator {
466
530
  const held = [];
467
531
  const holdReasonText = opts?.holdReason ?? "excluded_from_subset";
468
532
  for (const node of nonTargetNodes) {
533
+ // A seat joined with `rig attach` as an external CLI has no tmux session to check, and restore leaves it attached.
534
+ if (this.sessionRegistry.getBindingForNode(node.id)?.attachmentType === "external_cli")
535
+ continue;
469
536
  const sessions = this.sessionRegistry.getSessionsForRig(rigId)
470
537
  .filter((s) => s.nodeId === node.id && s.status === "running");
471
538
  let running = false;
@@ -527,14 +594,28 @@ export class RestoreOrchestrator {
527
594
  * to act on: live sessions block restore, stale sessions get marked detached
528
595
  * AFTER the pre_restore snapshot is captured, unknown sessions fail closed.
529
596
  */
530
- async classifyRunningSessions(rigId) {
597
+ async classifyRunningSessions(rigId, selectedIds) {
531
598
  const live = [];
532
599
  const stale = [];
533
600
  const unknown = [];
534
601
  for (const session of this.sessionRegistry.getSessionsForRig(rigId)) {
535
- if (session.status !== "running")
602
+ if (session.status !== "running" || (selectedIds && !selectedIds.has(session.nodeId)))
603
+ continue;
604
+ // An external CLI's claim has no tmux session; restore leaves it attached (restoreNodeWithCompensation).
605
+ if (this.sessionRegistry.getBindingForNode(session.nodeId)?.attachmentType === "external_cli")
536
606
  continue;
537
607
  try {
608
+ // Replacement must preserve unknown transport state before any reconciliation write.
609
+ if (selectedIds) {
610
+ const probe = await this.tmuxAdapter.probeSession(session.sessionName);
611
+ if (probe.state === "present")
612
+ live.push(session.id);
613
+ else if (probe.state === "absent")
614
+ stale.push(session.id);
615
+ else
616
+ unknown.push(session.id);
617
+ continue;
618
+ }
538
619
  const alive = await this.tmuxAdapter.hasSession(session.sessionName);
539
620
  if (alive) {
540
621
  live.push(session.id);
@@ -550,6 +631,48 @@ export class RestoreOrchestrator {
550
631
  }
551
632
  return { live, stale, unknown };
552
633
  }
634
+ /** Called under a new lifecycle lease, after startup has released its own leases. */
635
+ async stopAutomaticOccupant(target) {
636
+ const current = (stopped = false) => {
637
+ const row = this.db.prepare(`SELECT s.id, s.status, s.session_name AS name, s.resume_type AS resumeType,
638
+ s.resume_token AS resumeToken, s.resume_provenance AS provenance, s.origin, b.tmux_session AS bound, b.tmux_pane AS pane
639
+ FROM sessions s LEFT JOIN bindings b ON b.node_id = s.node_id
640
+ WHERE s.node_id = ? AND s.status != 'superseded' ORDER BY s.created_at DESC, s.id DESC LIMIT 1`)
641
+ .get(target.nodeId);
642
+ return row?.id === target.sessionId && row.status === (stopped ? "exited" : "running") && row.origin !== "claimed" && row.bound === row.name
643
+ && row.resumeType === target.resumeType && row.resumeToken === target.resumeToken
644
+ && (!target.corrected || row.provenance === "operator") ? row : null;
645
+ };
646
+ const row = current();
647
+ if (!row)
648
+ return "Startup occupant or correction changed; no replacement attempted.";
649
+ const probe = await this.tmuxAdapter.probeSession(row.name);
650
+ if (probe.state !== "present")
651
+ return "Startup terminal is absent or unknown; no replacement attempted.";
652
+ const observedPane = await observeSolePane(this.tmuxAdapter, row.name);
653
+ if (!observedPane.ok || observedPane.pane !== row.pane)
654
+ return "Startup terminal pane no longer matches its managed binding; nothing replaced.";
655
+ const afterProbe = current();
656
+ if (!afterProbe || afterProbe.name !== row.name || afterProbe.pane !== row.pane)
657
+ return "Startup occupant or correction changed during the terminal probe; no replacement attempted.";
658
+ this.tmuxAdapter.deliveryGuard?.checkInput(row.name);
659
+ const killed = await this.tmuxAdapter.killSession(row.name);
660
+ if (!killed.ok)
661
+ return "Could not stop the startup occupant; no replacement attempted.";
662
+ if (!current())
663
+ return "Startup occupant changed during stop; no replacement launched.";
664
+ this.sessionRegistry.updateStatus(target.sessionId, "exited");
665
+ this.tmuxAdapter.deliveryGuard?.rebindLifecycle(target.nodeId);
666
+ // Killing the last session ends tmux's server. Reopen an empty server before proving absence.
667
+ await this.tmuxAdapter.startServer();
668
+ const absent = await this.tmuxAdapter.probeSession(row.name);
669
+ if (absent.state !== "absent")
670
+ return "Startup terminal absence is unconfirmed; no replacement launched.";
671
+ if (!current(true))
672
+ return "Startup occupant changed during stop; no replacement launched.";
673
+ // Retain the name pin; ordinary restore clears it. Compensation sees an exited predecessor.
674
+ return null;
675
+ }
553
676
  clearStaleState(nodeId, rigId) {
554
677
  this.sessionRegistry.clearBinding(nodeId);
555
678
  const sessions = this.sessionRegistry.getSessionsForRig(rigId);
@@ -661,11 +784,16 @@ export class RestoreOrchestrator {
661
784
  * Restore one planned seat, checking continuity before launching its occupant.
662
785
  * Preserve prior state so a failed launch or resume can be compensated.
663
786
  */
664
- async restoreNodeWithCompensation(entry, rigId, snapshotId, data, opts, warnings) {
787
+ async restoreNodeWithCompensation(entry, rigId, snapshotId, data, opts, warnings, preserveStoppedCurrent = false) {
665
788
  // Compare against the live logical target without changing saved post-launch inputs.
666
789
  const node = entry.node;
667
790
  const liveNode = this.rigRepo.getRig(rigId)?.nodes.find(current => current.logicalId === node.logicalId);
668
791
  const nodeId = node.id;
792
+ // A seat joined with `rig attach` as an external CLI keeps its attachment: launching here would replace it.
793
+ const external = this.sessionRegistry.getBindingForNode(nodeId);
794
+ if (external?.attachmentType === "external_cli") {
795
+ return { nodeId, logicalId: node.logicalId, status: "left_attached", error: leftAttachedReason(external.externalSessionName ?? node.logicalId) };
796
+ }
669
797
  // OPR.0.5.7.1 (bought ordering blocker, baton 0efd154d): D1 present-map
670
798
  // ambiguity must be DETECTED before any continuity_state short-circuit —
671
799
  // a pod node in 'restoring' otherwise returns a silent status "fresh"
@@ -682,6 +810,9 @@ export class RestoreOrchestrator {
682
810
  };
683
811
  }
684
812
  const freshRequested = opts?.freshLogicalIds?.includes(node.logicalId) ?? false;
813
+ if (occupantResolution.kind === "none" && preserveStoppedCurrent && !freshRequested) {
814
+ return { nodeId, logicalId: node.logicalId, status: "awaiting-decision", error: stoppedSnapshotReason(node.logicalId, data.rig.name) };
815
+ }
685
816
  const runtimeError = restoreRuntimeCompatibilityError(liveNode ? liveNode.runtime : node.runtime, data.nodeStartupContext?.[nodeId]?.runtime);
686
817
  if (runtimeError) {
687
818
  return { nodeId, logicalId: node.logicalId, status: "awaiting-decision", error: runtimeError };
@@ -699,6 +830,9 @@ export class RestoreOrchestrator {
699
830
  const continuityRow = this.db.prepare("SELECT status FROM continuity_state WHERE pod_id = ? AND node_id = ?").get(node.podId, nodeId);
700
831
  if (continuityRow) {
701
832
  if (continuityRow.status === "restoring") {
833
+ if (opts?.automaticReplacements?.some(target => target.nodeId === nodeId)) {
834
+ return { nodeId, logicalId: node.logicalId, status: "awaiting-decision", error: "Continuity recovery owns this seat; its startup occupant was left unchanged." };
835
+ }
702
836
  warnings?.push(`Node ${node.logicalId}: continuity state is 'restoring', skipping`);
703
837
  return { nodeId, logicalId: node.logicalId, status: "fresh" };
704
838
  }
@@ -726,13 +860,15 @@ export class RestoreOrchestrator {
726
860
  const snapSession = occupantResolution.kind === "resolved" ? occupantResolution.session : null;
727
861
  const policy = effectiveRestorePolicy(seatFacts(data, nodeId, node.runtime, liveNode ? liveNode.runtime : node.runtime), snapSession?.restorePolicy);
728
862
  const resumeSourceRecorded = !!snapSession?.resumeType && snapSession.resumeType !== "none";
729
- // A community harness is launch-only: nothing resumes it, so even a saved token (say, from a former runtime) stops here.
730
- if (policy === "resume_if_possible" && snapSession && !freshRequested && communityHarnessOf(snapSession.communityHarness, node.runtime)) {
863
+ // A community harness that can't resume this seat's token (launch-only, or a former runtime's id) stops here; a seat
864
+ // with no token goes on to the "no resume token" stop below.
865
+ if (policy === "resume_if_possible" && snapSession && !freshRequested && communityHarnessOf(snapSession.communityHarness, node.runtime)
866
+ && communityHarnessStopsRestore(node.runtime, snapSession.resumeType, snapSession.resumeToken)) {
731
867
  return {
732
868
  nodeId,
733
869
  logicalId: node.logicalId,
734
870
  status: "awaiting-decision",
735
- error: `Resume is unsupported for community harness "${node.runtime}": its preset is launch-only. No session was started, and the earlier conversation is left as it is. Re-run with --fresh ${node.logicalId} only if you want a new conversation.`,
871
+ error: communityLaunchOnlyRestoreReason(node.runtime, node.logicalId, this.rigRepo.getRig(rigId)?.rig.name ?? data.rig.name),
736
872
  };
737
873
  }
738
874
  if (policy === "resume_if_possible" && snapSession && !snapSession.resumeToken && !freshRequested) {
@@ -743,11 +879,18 @@ export class RestoreOrchestrator {
743
879
  nodeId,
744
880
  logicalId: node.logicalId,
745
881
  status: "awaiting-decision",
746
- error: `Original session unresumable: ${sourceNote}. No session was started. Re-run with --fresh ${node.logicalId} to deliberately start a fresh-primed seat, or restore the original session manually.`,
882
+ error: `Original session unresumable: ${sourceNote}. No session was started. Restore the original session manually, or deliberately start only this seat fresh: ${this.freshSeatCommand(rigId, data, node.logicalId)}.`,
747
883
  };
748
884
  }
749
885
  }
750
- // Capture prior state for compensation
886
+ // All ordinary per-seat preflight decisions precede the destructive effect.
887
+ const replacement = opts?.automaticReplacements?.find(target => target.nodeId === nodeId);
888
+ if (replacement) {
889
+ const error = await this.stopAutomaticOccupant(replacement);
890
+ if (error)
891
+ return { nodeId, logicalId: node.logicalId, status: "failed", error };
892
+ }
893
+ // Capture prior state for compensation, including an exited replacement predecessor.
751
894
  const priorState = this.captureNodeState(nodeId, rigId);
752
895
  // Clear stale state so NodeLauncher doesn't see already_bound
753
896
  this.clearStaleState(nodeId, rigId);
@@ -816,13 +959,58 @@ export class RestoreOrchestrator {
816
959
  warnings?.push(`Transcript boundary marker failed for ${expectedSessionName}`);
817
960
  }
818
961
  }
962
+ // OPR.0.7.0.13: a Claude seat's team skills come back before its session starts, because the session's plugin list
963
+ // is set then. `rig down` removed the unchanged files OpenRig wrote but kept the records, so they are put back from
964
+ // their recorded sources (only where those still match) and the seat's plugin is written again. An edited or
965
+ // unprovable file is named, never substituted. Nothing is replayed into a resumed conversation; this is the seat's
966
+ // storage on disk.
967
+ // The rehydration's decisions are carried into the fresh relaunch's replay below, so no later writer undoes them.
968
+ let seatRehydration;
969
+ if (node.runtime === "claude-code" || node.runtime === "codex") {
970
+ const seatSkills = seatSkillPaths({ rigId, logicalId: node.logicalId, runtime: node.runtime });
971
+ if (hasSeatSkillRecords(seatSkills)) {
972
+ if (node.runtime === "claude-code")
973
+ warnings?.push(...ensureSeatSkillPlugin(seatSkills).map((w) => `Restore: ${w}`));
974
+ const rehydrated = rehydrateSeatSkills(seatSkills);
975
+ seatRehydration = rehydrated;
976
+ if (rehydrated.restored.length > 0)
977
+ warnings?.push(`Restore: put back ${rehydrated.restored.length} skill file(s) for ${node.logicalId} from their recorded sources`);
978
+ for (const file of rehydrated.kept)
979
+ warnings?.push(`Restore: kept ${file}: it differs from what OpenRig wrote there (an edit is never overwritten)`);
980
+ for (const file of rehydrated.missing)
981
+ warnings?.push(`Restore: ${file} is missing and its recorded source is gone or has changed; not substituted`);
982
+ for (const file of rehydrated.refused)
983
+ warnings?.push(`Restore: ${file} is not inside this seat's storage (a link on the way); nothing written there`);
984
+ // The seat's generated router is rebuilt from what is now in its storage, for either runtime.
985
+ try {
986
+ const router = writeSeatSkillRouter(seatSkills);
987
+ if (router.kept)
988
+ warnings?.push(`Restore: ${seatRouterKeptNote(router)}`);
989
+ }
990
+ catch (error) {
991
+ warnings?.push(`Restore: seat_router_not_written: ${error.message}`);
992
+ }
993
+ // A Codex seat's catalog is rebuilt from what is now in its storage (its startup text sends it on a fresh start).
994
+ if (node.runtime === "codex") {
995
+ try {
996
+ const catalog = writeSeatSkillCatalog(seatSkills);
997
+ if (catalog.kept)
998
+ warnings?.push(`Restore: ${seatCatalogKeptNote(catalog)}`);
999
+ }
1000
+ catch (error) {
1001
+ warnings?.push(`Restore: seat_catalog_not_written: ${seatSkills.catalogPath}: ${error.message}`);
1002
+ }
1003
+ }
1004
+ }
1005
+ }
819
1006
  // Attempt launch — compensate ONLY if launch itself fails
820
- // The snapshot's saved startup context says which plugins the seat selected; without one the launcher reads the
821
- // node's own saved context.
1007
+ // Preserve the snapshot's selected plugins and record the committed session before launch continues.
822
1008
  const savedStartup = data.nodeStartupContext?.[nodeId];
1009
+ const onSessionLaunched = opts?.onSessionLaunched;
823
1010
  const launchResult = await this.nodeLauncher.launchNode(rigId, node.logicalId, {
824
1011
  ...launchOpts,
825
1012
  ...(savedStartup ? { pluginPaths: pluginPathsOf(savedStartup.projectionEntries) } : {}),
1013
+ ...(onSessionLaunched ? { onSessionRegistered: (sessionId) => onSessionLaunched(nodeId, sessionId) } : {}),
826
1014
  });
827
1015
  if (!launchResult.ok) {
828
1016
  // Launch failed — restore prior state (compensating action)
@@ -840,13 +1028,22 @@ export class RestoreOrchestrator {
840
1028
  if (launchResult.warnings?.length) {
841
1029
  warnings?.push(...launchResult.warnings);
842
1030
  }
843
- const restored = await this.postLaunchRestore(entry, rigId, data, launchResult.sessionName, launchResult, opts, warnings, priorState);
1031
+ const restored = await this.postLaunchRestore(entry, rigId, data, launchResult.sessionName, launchResult, opts, warnings, priorState, seatRehydration);
844
1032
  return this.checkRestoredGuidance(restored, entry.node, rigId, data, warnings);
845
1033
  }
846
1034
  /** A seat that came back running should also have its role, culture and SOP guidance. If its
847
1035
  * guidance file still lacks a managed block it should hold, the seat keeps its true status (a
848
1036
  * live resumed session is still running) and the gap is disclosed on the node and in the
849
1037
  * warnings, so the rig is reported partially_restored, not fully_restored. */
1038
+ /** Whether the person answered yes to the seat-skills line; an unreadable answer isn't a yes. */
1039
+ routerLineAnsweredYes() {
1040
+ try {
1041
+ return readFootprintAnswer(this.routerLineSettings ?? new SettingsStore()).state === "yes";
1042
+ }
1043
+ catch {
1044
+ return false;
1045
+ }
1046
+ }
850
1047
  checkRestoredGuidance(result, node, rigId, data, warnings) {
851
1048
  // Every status with a live session; attention_required keeps its status and gains the disclosure.
852
1049
  if (!["resumed", "fresh-primed", "fresh", "rebuilt", "attention_required"].includes(result.status))
@@ -859,6 +1056,8 @@ export class RestoreOrchestrator {
859
1056
  warnings?.push(`Restore: ${node.logicalId}: could not check its guidance: ${err.message}`);
860
1057
  return { ...result, guidanceGaps: ["(guidance check failed)"] };
861
1058
  }
1059
+ if (guidance)
1060
+ guidance = applySeatSkillsLineRule(guidance, this.routerLineAnsweredYes()).guidance;
862
1061
  if (!guidance || guidance.items.length === 0)
863
1062
  return result;
864
1063
  let missing;
@@ -895,7 +1094,11 @@ export class RestoreOrchestrator {
895
1094
  this.restoreNodeState(nodeId, priorState);
896
1095
  }
897
1096
  }
898
- async postLaunchRestore(entry, rigId, data, sessionName, launchResult, opts, warnings, priorState) {
1097
+ /** The one-seat command a restore reason names for a seat left awaiting a decision. */
1098
+ freshSeatCommand(rigId, data, logicalId) {
1099
+ return freshSeatLaunchCommand(logicalId, this.rigRepo.getRig(rigId)?.rig.name ?? data.rig.name);
1100
+ }
1101
+ async postLaunchRestore(entry, rigId, data, sessionName, launchResult, opts, warnings, priorState, seatRehydration) {
899
1102
  const node = entry.node;
900
1103
  // OPR.0.7.0.7: what this restore launches with when the seat has a saved effort choice is decided by the one
901
1104
  // precedence seam (latest wins), which also says so when the snapshot held another value.
@@ -987,6 +1190,12 @@ export class RestoreOrchestrator {
987
1190
  // Guidance never blocks the exact resume; the post-launch check discloses the gap.
988
1191
  warnings?.push(`Restore guidance: ${node.logicalId}: could not read its saved guidance selection: ${err.message}`);
989
1192
  }
1193
+ if (guidance) {
1194
+ const rule = applySeatSkillsLineRule(guidance, this.routerLineAnsweredYes());
1195
+ guidance = rule.guidance;
1196
+ if (rule.excluded === "linked")
1197
+ warnings?.push(`Restore guidance: ${node.logicalId}: the seat-skills line wasn't put back, because ${guidance.targetPath} is a link.`);
1198
+ }
990
1199
  if (guidance && guidance.items.length > 0) {
991
1200
  const repair = restoreMissingGuidance(guidance, {
992
1201
  exists: existsSync,
@@ -1009,7 +1218,7 @@ export class RestoreOrchestrator {
1009
1218
  // just-created session is a confirmed blank (no resume was possible) —
1010
1219
  // roll back to zero sessions and present the decision honestly.
1011
1220
  await this.rollbackToZeroSession(node.id, sessionName, launchResult?.session.id, priorState);
1012
- return { nodeId: node.id, logicalId: node.logicalId, status: "awaiting-decision", error: `Original session unresumable: resume requested but no token available. No session is running. Re-run with --fresh ${node.logicalId} for a deliberate fresh-primed seat, or restore the original session manually.` };
1221
+ return { nodeId: node.id, logicalId: node.logicalId, status: "awaiting-decision", error: `Original session unresumable: resume requested but no token available. No session is running. Restore the original session manually, or deliberately start only this seat fresh: ${this.freshSeatCommand(rigId, data, node.logicalId)}.` };
1013
1222
  }
1014
1223
  else {
1015
1224
  const launchedSessionId = launchResult?.session.id;
@@ -1020,7 +1229,7 @@ export class RestoreOrchestrator {
1020
1229
  }
1021
1230
  catch { /* best-effort: without it a rotation stays unproved, as before */ }
1022
1231
  }
1023
- const resumeOutcome = await this.attemptResume(node.id, sessionName, resumeType, resumeToken, node.cwd ?? "/", node.codexConfigProfile, node.model, this.resolveRestorePosture(node.id, rigId), effortForRestore(), warnings);
1232
+ const resumeOutcome = await this.attemptResume(node.id, sessionName, resumeType, resumeToken, node.cwd ?? "/", node.codexConfigProfile, node.model, this.resolveRestorePosture(node.id, rigId), effortForRestore(), warnings, node.advisor);
1024
1233
  if (resumeOutcome.kind === "resumed") {
1025
1234
  baseStatus = "resumed";
1026
1235
  if (launchedSessionId && this.claudeResume.canResume(resumeType, resumeToken)) {
@@ -1053,7 +1262,7 @@ export class RestoreOrchestrator {
1053
1262
  // a confirmed blank agent (precision guard trigger (i)). Roll back to
1054
1263
  // zero sessions; the stop-and-ask is realized as awaiting-decision.
1055
1264
  await this.rollbackToZeroSession(node.id, sessionName, launchResult?.session.id, priorState);
1056
- return { nodeId: node.id, logicalId: node.logicalId, status: "awaiting-decision", error: `Original session unresumable: resume attempted but failed. The blank session was rolled back; no session is running. Re-run with --fresh ${node.logicalId} for a deliberate fresh-primed seat, or check the harness state manually.` };
1265
+ return { nodeId: node.id, logicalId: node.logicalId, status: "awaiting-decision", error: `Original session unresumable: resume attempted but failed. The blank session was rolled back; no session is running. Check the harness state manually, or deliberately start only this seat fresh: ${this.freshSeatCommand(rigId, data, node.logicalId)}.` };
1057
1266
  }
1058
1267
  }
1059
1268
  }
@@ -1068,7 +1277,7 @@ export class RestoreOrchestrator {
1068
1277
  nodeId: node.id,
1069
1278
  logicalId: node.logicalId,
1070
1279
  status: "awaiting-decision",
1071
- error: `Original session unresumable: resume requested but no token available. No session is running. Re-run with --fresh ${node.logicalId} for a deliberate fresh-primed seat, or restore the original session manually.`,
1280
+ error: `Original session unresumable: resume requested but no token available. No session is running. Restore the original session manually, or deliberately start only this seat fresh: ${this.freshSeatCommand(rigId, data, node.logicalId)}.`,
1072
1281
  };
1073
1282
  }
1074
1283
  // OPR.0.4.3.20 FR-7 (Gap 2b) — a pod-aware resume needs the runtime adapter
@@ -1084,7 +1293,7 @@ export class RestoreOrchestrator {
1084
1293
  nodeId: node.id,
1085
1294
  logicalId: node.logicalId,
1086
1295
  status: "awaiting-decision",
1087
- error: `Original session unresumable: resume requested but runtime continuity could not be verified (no ${node.runtime ?? "runtime"} adapter available). No session is running. Re-run with --fresh ${node.logicalId} for a deliberate fresh-primed seat, or retry restore with runtime adapters.`,
1296
+ error: `Original session unresumable: resume requested but runtime continuity could not be verified (no ${node.runtime ?? "runtime"} adapter available). No session is running. Retry the restore with runtime adapters, or deliberately start only this seat fresh: ${this.freshSeatCommand(rigId, data, node.logicalId)}.`,
1088
1297
  };
1089
1298
  }
1090
1299
  }
@@ -1166,7 +1375,20 @@ export class RestoreOrchestrator {
1166
1375
  if (missingRequired.length > 0) {
1167
1376
  return { nodeId: node.id, logicalId: node.logicalId, status: "failed", error: `Missing required startup files: ${missingRequired.map((f) => f.path).join(", ")}` };
1168
1377
  }
1169
- // Build fresh projection plan (all safe_projection)
1378
+ // OPR.0.7.0.13: a fresh relaunch of a seat with its own storage keeps the saved selection, through every later
1379
+ // writer: a skill or startup skill file already in its storage (put back above, before the launch) is left as
1380
+ // it is, an edited one is named, and a missing one whose recorded source is gone or has changed is not put back
1381
+ // with today's bytes. Only the rest is projected or installed. Nothing is re-resolved from today's spec. Native
1382
+ // resume replays nothing (sourceEntries is empty). The whole selection stays in the saved startup context.
1383
+ const seatSkills = (startupCtx.runtime === "claude-code" || startupCtx.runtime === "codex") && !replayContained ? seatSkillPathsForNode(this.db, node.id) : undefined;
1384
+ let replaySkip;
1385
+ if (seatSkills) {
1386
+ const replay = seatSkillReplay({ entries: filteredEntries, files: filteredFiles, paths: seatSkills,
1387
+ rehydration: seatRehydration ?? { missing: [], refused: [] } });
1388
+ replaySkip = { entryIds: replay.skipEntryIds, files: replay.skipFiles };
1389
+ warnings?.push(...replay.warnings);
1390
+ }
1391
+ // Build fresh projection plan (all safe_projection; replaySkip says which seat skills are left alone)
1170
1392
  const plan = {
1171
1393
  runtime: startupCtx.runtime,
1172
1394
  cwd: node.cwd ?? ".",
@@ -1196,6 +1418,7 @@ export class RestoreOrchestrator {
1196
1418
  // their -m/--model on restore the same way.
1197
1419
  model: node.model ?? undefined,
1198
1420
  effort: effortForRestore() ?? undefined,
1421
+ advisor: node.advisor ?? undefined,
1199
1422
  };
1200
1423
  try {
1201
1424
  const { StartupOrchestrator } = await import("./startup-orchestrator.js");
@@ -1213,6 +1436,7 @@ export class RestoreOrchestrator {
1213
1436
  resolvedStartupFiles: filteredFiles,
1214
1437
  startupActions: sourceActions,
1215
1438
  isRestore: replayAsRestore,
1439
+ ...(replaySkip ? { replaySkip } : {}),
1216
1440
  preserveStartupContext: replayContained,
1217
1441
  skipHarnessLaunch: !shouldLaunchHarness,
1218
1442
  resumeToken: (isPodAware && resumeRequested) ? resumeToken ?? undefined : undefined,
@@ -1238,14 +1462,14 @@ export class RestoreOrchestrator {
1238
1462
  nodeId: node.id,
1239
1463
  logicalId: node.logicalId,
1240
1464
  status: "awaiting-decision",
1241
- error: `Original session unresumable: resume attempted but the runtime reported fresh continuity. The blank session was rolled back; no session is running. Re-run with --fresh ${node.logicalId} if that degradation is acceptable.`,
1465
+ error: `Original session unresumable: resume attempted but the runtime reported fresh continuity. The blank session was rolled back; no session is running. If that degradation is acceptable, start only this seat fresh: ${this.freshSeatCommand(rigId, data, node.logicalId)}.`,
1242
1466
  };
1243
1467
  }
1244
1468
  const finalStatus = (isPodAware && resumeRequested)
1245
1469
  ? ((startupResult.continuityOutcome === "resumed" || nativeContinuityProved) ? "resumed" : baseStatus)
1246
1470
  : baseStatus;
1247
1471
  if (finalStatus === "resumed") {
1248
- return this.finishJoinedResume(node, sessionName, resumeToken, launchResult?.session.id, isPodAware && node.runtime === "claude-code");
1472
+ return this.finishJoinedResume(node, sessionName, resumeToken, launchResult?.session.id, isPodAware && node.runtime === "claude-code", startupResult.resumedProcess);
1249
1473
  }
1250
1474
  return { nodeId: node.id, logicalId: node.logicalId, status: finalStatus };
1251
1475
  }
@@ -1271,13 +1495,13 @@ export class RestoreOrchestrator {
1271
1495
  // Only the runtime's own report that the conversation doesn't exist rolls the seat back
1272
1496
  // as unresumable. A pane that went back to its shell for another reason stays failed,
1273
1497
  // with its pane and binding kept, so its output can still be read.
1274
- if (startupResult.recovery === "retry_fresh" && startupResult.missingConversation) {
1498
+ if (startupResult.missingConversation) {
1275
1499
  await this.rollbackToZeroSession(node.id, sessionName, launchResult?.session.id, priorState);
1276
1500
  return {
1277
1501
  nodeId: node.id,
1278
1502
  logicalId: node.logicalId,
1279
1503
  status: "awaiting-decision",
1280
- error: `Original session unresumable: ${startupResult.errors.join("; ")}. The blank session was rolled back; no session is running. Re-run with --fresh ${node.logicalId} to deliberately start a fresh-primed seat, or restore the original session manually.`,
1504
+ error: `Original session unresumable: ${startupResult.errors.join("; ")}. The blank session was rolled back; no session is running. Restore the original session manually, or deliberately start only this seat fresh: ${this.freshSeatCommand(rigId, data, node.logicalId)}.`,
1281
1505
  };
1282
1506
  }
1283
1507
  return {
@@ -1329,7 +1553,9 @@ export class RestoreOrchestrator {
1329
1553
  }
1330
1554
  /** A native resume is only a full success after the restored terminal is
1331
1555
  * rebound and its process identity agrees with the declared seat runtime. */
1332
- async finishJoinedResume(node, sessionName, resumeToken, sessionId, managedClaudeResume = false) {
1556
+ async finishJoinedResume(node, sessionName, resumeToken, sessionId, managedClaudeResume = false,
1557
+ /** Codex (#1524): the process the adapter proved the resume on. The join must verify that same process. */
1558
+ provenCodexProcess) {
1333
1559
  const identity = await rebindAndVerifyPaneIdentity({
1334
1560
  db: this.db,
1335
1561
  sessionRegistry: this.sessionRegistry,
@@ -1360,6 +1586,19 @@ export class RestoreOrchestrator {
1360
1586
  error: `Exact native session resumed, but joined restore proof is incomplete: ${identity.detail}. The resumed session was preserved; no replacement was started.`,
1361
1587
  };
1362
1588
  }
1589
+ // #1524 (b): the adapter proved the resume on one Codex process. The join observed later, after startup's awaits;
1590
+ // a different process (or none matched) there is not certified by that proof. No new read, wait or relaunch.
1591
+ if (node.runtime === "codex" && provenCodexProcess) {
1592
+ const joined = identity.nativeProcess;
1593
+ if (!joined || joined.pid !== provenCodexProcess.pid || joined.startedAt !== provenCodexProcess.startedAt) {
1594
+ const store = new SeatIdentityStore(this.db);
1595
+ const proof = store.getForNode(node.id);
1596
+ if (proof)
1597
+ store.upsert({ ...proof, verdict: "mismatch", reason: "process_identity_mismatch" });
1598
+ return { nodeId: node.id, logicalId: node.logicalId, status: "attention_required",
1599
+ error: `Codex resume was proven on process ${provenCodexProcess.pid} (started ${provenCodexProcess.startedAt}), but the restore join verified ${joined ? `process ${joined.pid} (started ${joined.startedAt ?? "unknown"})` : "no matching Codex process"}. The session was preserved; nothing was restarted.` };
1600
+ }
1601
+ }
1363
1602
  // Legacy resume adapters do not write native metadata. Fill only the
1364
1603
  // launched row's empty token after proof; never overwrite a hook/operator.
1365
1604
  const provedClaudeWrapper = node.runtime === "claude-code"
@@ -1477,7 +1716,7 @@ export class RestoreOrchestrator {
1477
1716
  async attemptResume(nodeId, sessionName, resumeType, resumeToken, cwd, codexConfigProfile, model,
1478
1717
  // OPR.0.4.8.3 Seam B: the seat's restored launch posture (persisted provenance,
1479
1718
  // custom policies re-validated when readable). Absent = env decision.
1480
- resolvedPosture, effort, warnings) {
1719
+ resolvedPosture, effort, warnings, advisor) {
1481
1720
  const launchGeneration = this.sessionRegistry.currentOccupantTenure(nodeId)?.generationUuid;
1482
1721
  const node = this.db.prepare("SELECT rig_id FROM nodes WHERE id = ?").get(nodeId);
1483
1722
  const nonInterruptive = node ? this.rigRepo.getRigNonInterruptive(node.rig_id) : false;
@@ -1500,8 +1739,22 @@ export class RestoreOrchestrator {
1500
1739
  ? [effort, nonInterruptive, false, true] : kernelAuthority
1501
1740
  ? [effort, nonInterruptive, true] : nonInterruptive ? [effort, true] : effort !== undefined ? [effort] : [];
1502
1741
  if (this.claudeResume.canResume(resumeType, resumeToken)) {
1503
- const result = await this.claudeResume.resume(sessionName, resumeType, resumeToken, cwd, resolvedPosture, model, permissionMode, nodeId, ...launchTail);
1742
+ // Advisor is Claude-specific; preserve the existing tail for other runtimes and unconfigured seats.
1743
+ const claudeTail = advisor
1744
+ ? [effort, nonInterruptive, kernelAuthority, teamPermissionDefault, advisor] : launchTail;
1745
+ // OPR.0.7.0.9: the seat's own launch additions follow the Advisor.
1746
+ const launch = nodeId ? seatLaunchAdditionsForLaunch(this.db, nodeId) : { missing: [], refused: [] };
1747
+ for (const file of launch.missing)
1748
+ warnings?.push(`${sessionName}: seat_launch_addition_missing: ${file} is not in this seat's storage; launched without it`);
1749
+ for (const reason of launch.refused)
1750
+ warnings?.push(`${sessionName}: seat_launch_addition_refused: ${reason}; launched without it`);
1751
+ const tail = launch.additions ? [...claudeTail, ...Array(5 - claudeTail.length).fill(undefined), launch.additions] : claudeTail;
1752
+ const result = await this.claudeResume.resume(sessionName, resumeType, resumeToken, cwd, resolvedPosture, model, permissionMode, nodeId, ...tail);
1504
1753
  if (result.ok) {
1754
+ // OPR.0.7.0.9: the resumed conversation's own start, as on the pod-aware path.
1755
+ const promptNote = launch.additions?.appendSystemPromptFile && nodeId && resumeToken ? systemPromptPendingNoteForNode(this.db, nodeId, resumeToken) : undefined;
1756
+ if (promptNote)
1757
+ warnings?.push(`${sessionName}: ${promptNote}`);
1505
1758
  const notice = nonInterruptiveNotice("claude-code", { nonInterruptive, launchPosture: resolvedPosture, permissionMode });
1506
1759
  if (notice)
1507
1760
  warnings?.push(`${sessionName}: ${notice}`);
@@ -1717,12 +1970,13 @@ export class RestoreOrchestrator {
1717
1970
  // Precondition #4: pane is at a usable/idle state — explicitly NOT a
1718
1971
  // resume-selection prompt and not the "returned to shell" failure mode.
1719
1972
  if (probe.status !== "resumed") {
1973
+ const evidence = await resumeProbeEvidence(probe, paneContent, this.tmuxAdapter, identity.pane);
1720
1974
  // The label reads as a shell, but the runtime's lineage was just proven in this pane: name a shell only for a proven idle one.
1721
1975
  if (probe.code === "returned_to_shell" && !await verifyPaneIdleShell({ target: identity.pane, tmux: this.tmuxAdapter,
1722
1976
  ...(this.listProcesses ? { listProcesses: this.listProcesses } : {}) })) {
1723
- return { ok: false, code: "pane_not_usable", detail: "Pane is not shown to be resumed: its command reads as a shell, but it is not a proven idle shell (the runtime may be starting or showing a dialog); reconciliation requires resumed." };
1977
+ return { ok: false, code: "pane_not_usable", probe: evidence, attemptId, detail: "Pane is not shown to be resumed: its command reads as a shell, but it is not a proven idle shell (the runtime may be starting or showing a dialog); reconciliation requires resumed." };
1724
1978
  }
1725
- return { ok: false, code: "pane_not_usable", detail: `Pane state is ${probe.status} (${probe.code}); reconciliation requires resumed.` };
1979
+ return { ok: false, code: "pane_not_usable", probe: evidence, attemptId, detail: `Pane state is ${probe.status} (${probe.code}); reconciliation requires resumed.` };
1726
1980
  }
1727
1981
  // All four preconditions hold. Append (never mutate) the audit event.
1728
1982
  this.eventBus.emit({