@openrig/cli 0.6.4 → 0.6.5

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 (986) hide show
  1. package/README.md +384 -0
  2. package/daemon/assets/onboarding/02-self-and-competent-action.md +5 -0
  3. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  4. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  5. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +100 -20
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +201 -132
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  8. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +11 -11
  9. package/daemon/assets/plugins/openrig-core/skills/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  10. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +24 -0
  11. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +2 -2
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/SKILL.md +17 -0
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-operating-model/scripts/compose.py +2 -2
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +6 -0
  15. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +45 -19
  16. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  17. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +1 -19
  18. package/daemon/assets/plugins/openrig-core/skills/refocusing/SKILL.md +3 -0
  19. package/daemon/assets/plugins/openrig-core/skills/refocusing/scripts/trace-to-root.py +56 -4
  20. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +0 -5
  21. package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +5 -6
  22. package/daemon/context-packs/help/help.md +9 -4
  23. package/daemon/context-packs/help/manifest.yaml +1 -1
  24. package/daemon/context-packs/onboarding-width/manifest.yaml +1 -1
  25. package/daemon/context-packs/onboarding-width/public-what-you-can-do.md +25 -12
  26. package/daemon/context-packs/reference/getting-started.md +7 -2
  27. package/daemon/context-packs/reference/instance-layout.md +11 -0
  28. package/daemon/context-packs/reference/manifest.yaml +1 -1
  29. package/daemon/context-packs/reference/rig-spec.md +32 -5
  30. package/daemon/context-packs/skills/agent-operated-software/manifest.yaml +1 -1
  31. package/daemon/context-packs/skills/agent-operated-workflows/manifest.yaml +1 -1
  32. package/daemon/context-packs/skills/applying-a-permission-policy/manifest.yaml +1 -1
  33. package/daemon/context-packs/skills/claude-compaction-restore/SKILL.md +201 -132
  34. package/daemon/context-packs/skills/claude-compaction-restore/manifest.yaml +5 -3
  35. package/daemon/context-packs/skills/claude-compaction-restore/reference/SKILL-v1.md +143 -0
  36. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +1 -1
  37. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +1 -1
  38. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +1 -1
  39. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +1 -1
  40. package/daemon/context-packs/skills/core/messaging-the-human/SKILL.md +24 -0
  41. package/daemon/context-packs/skills/core/messaging-the-human/manifest.yaml +1 -1
  42. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +1 -1
  43. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +1 -1
  44. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +1 -1
  45. package/daemon/context-packs/skills/core/openrig-skills/SKILL.md +6 -0
  46. package/daemon/context-packs/skills/core/openrig-skills/manifest.yaml +1 -1
  47. package/daemon/context-packs/skills/core/openrig-software-factory/manifest.yaml +1 -1
  48. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +1 -1
  49. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +1 -1
  50. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +1 -1
  51. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +1 -1
  52. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +1 -1
  53. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  54. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +3 -3
  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 +11 -11
  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/loading-addressable-markdown/scripts/resolve-markdown.mjs +2 -1
  61. package/daemon/context-packs/skills/mission-slice-sop/SKILL.md +2 -2
  62. package/daemon/context-packs/skills/mission-slice-sop/manifest.yaml +1 -1
  63. package/daemon/context-packs/skills/openrig-operating-model/SKILL.md +17 -0
  64. package/daemon/context-packs/skills/openrig-operating-model/manifest.yaml +1 -1
  65. package/daemon/context-packs/skills/openrig-operating-model/scripts/compose.py +2 -2
  66. package/daemon/context-packs/skills/openrig-user/SKILL.md +45 -19
  67. package/daemon/context-packs/skills/openrig-user/manifest.yaml +1 -1
  68. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/SKILL.md +5 -7
  69. package/daemon/context-packs/skills/orienting-to-an-inherited-seat/manifest.yaml +1 -1
  70. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +1 -1
  71. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +1 -1
  72. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +1 -1
  73. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +1 -1
  74. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +1 -1
  75. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +1 -1
  76. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +1 -1
  77. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +1 -1
  78. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +1 -1
  79. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +1 -1
  80. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +1 -1
  81. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +1 -1
  82. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +1 -1
  83. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +1 -1
  84. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +1 -1
  85. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +1 -1
  86. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +1 -1
  87. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +1 -1
  88. package/daemon/context-packs/skills/queue-handoff/SKILL.md +1 -19
  89. package/daemon/context-packs/skills/queue-handoff/manifest.yaml +1 -1
  90. package/daemon/context-packs/skills/refocusing/SKILL.md +3 -0
  91. package/daemon/context-packs/skills/refocusing/manifest.yaml +1 -1
  92. package/daemon/context-packs/skills/refocusing/scripts/trace-to-root.py +56 -4
  93. package/daemon/context-packs/skills/retiring-and-inheriting-a-seat/manifest.yaml +1 -1
  94. package/daemon/context-packs/skills/seat-continuity-and-handover/SKILL.md +0 -5
  95. package/daemon/context-packs/skills/seat-continuity-and-handover/manifest.yaml +1 -1
  96. package/daemon/context-packs/skills/session-compaction-and-restore/SKILL.md +5 -6
  97. package/daemon/context-packs/skills/session-compaction-and-restore/manifest.yaml +1 -1
  98. package/daemon/context-packs/skills/software-for-agents/manifest.yaml +1 -1
  99. package/daemon/context-packs/world-example/manifest.yaml +1 -1
  100. package/daemon/context-packs/world-public/manifest.yaml +1 -1
  101. package/daemon/dist/adapters/claude-code-adapter.d.ts +17 -3
  102. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  103. package/daemon/dist/adapters/claude-code-adapter.js +157 -53
  104. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  105. package/daemon/dist/adapters/claude-resume.d.ts +7 -1
  106. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
  107. package/daemon/dist/adapters/claude-resume.js +39 -8
  108. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  109. package/daemon/dist/adapters/codex-resume.d.ts +7 -1
  110. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
  111. package/daemon/dist/adapters/codex-resume.js +14 -6
  112. package/daemon/dist/adapters/codex-resume.js.map +1 -1
  113. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +8 -0
  114. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  115. package/daemon/dist/adapters/codex-runtime-adapter.js +34 -12
  116. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  117. package/daemon/dist/adapters/compose-services-adapter.d.ts +2 -1
  118. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -1
  119. package/daemon/dist/adapters/compose-services-adapter.js +5 -2
  120. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -1
  121. package/daemon/dist/adapters/daemon-url.d.ts +7 -0
  122. package/daemon/dist/adapters/daemon-url.d.ts.map +1 -0
  123. package/daemon/dist/adapters/daemon-url.js +12 -0
  124. package/daemon/dist/adapters/daemon-url.js.map +1 -0
  125. package/daemon/dist/adapters/omp-resume.d.ts +6 -0
  126. package/daemon/dist/adapters/omp-resume.d.ts.map +1 -0
  127. package/daemon/dist/adapters/omp-resume.js +6 -0
  128. package/daemon/dist/adapters/omp-resume.js.map +1 -0
  129. package/daemon/dist/adapters/omp-runtime-adapter.d.ts +10 -0
  130. package/daemon/dist/adapters/omp-runtime-adapter.d.ts.map +1 -0
  131. package/daemon/dist/adapters/omp-runtime-adapter.js +16 -0
  132. package/daemon/dist/adapters/omp-runtime-adapter.js.map +1 -0
  133. package/daemon/dist/adapters/pi-resume.d.ts +4 -0
  134. package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
  135. package/daemon/dist/adapters/pi-resume.js +20 -18
  136. package/daemon/dist/adapters/pi-resume.js.map +1 -1
  137. package/daemon/dist/adapters/pi-runner-protocol.d.ts +14 -2
  138. package/daemon/dist/adapters/pi-runner-protocol.d.ts.map +1 -1
  139. package/daemon/dist/adapters/pi-runner-protocol.js +62 -5
  140. package/daemon/dist/adapters/pi-runner-protocol.js.map +1 -1
  141. package/daemon/dist/adapters/pi-runner.d.ts +49 -5
  142. package/daemon/dist/adapters/pi-runner.d.ts.map +1 -1
  143. package/daemon/dist/adapters/pi-runner.js +362 -67
  144. package/daemon/dist/adapters/pi-runner.js.map +1 -1
  145. package/daemon/dist/adapters/pi-runtime-adapter.d.ts +3 -2
  146. package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
  147. package/daemon/dist/adapters/pi-runtime-adapter.js +49 -32
  148. package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
  149. package/daemon/dist/adapters/preflight-exec.d.ts +11 -0
  150. package/daemon/dist/adapters/preflight-exec.d.ts.map +1 -0
  151. package/daemon/dist/adapters/preflight-exec.js +52 -0
  152. package/daemon/dist/adapters/preflight-exec.js.map +1 -0
  153. package/daemon/dist/adapters/stub-runner.d.ts.map +1 -1
  154. package/daemon/dist/adapters/stub-runner.js +3 -1
  155. package/daemon/dist/adapters/stub-runner.js.map +1 -1
  156. package/daemon/dist/adapters/stub-runtime-adapter.js +1 -1
  157. package/daemon/dist/adapters/stub-runtime-adapter.js.map +1 -1
  158. package/daemon/dist/adapters/tmux.d.ts +47 -5
  159. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  160. package/daemon/dist/adapters/tmux.js +305 -54
  161. package/daemon/dist/adapters/tmux.js.map +1 -1
  162. package/daemon/dist/build-info.js +3 -3
  163. package/daemon/dist/daemon-shutdown.d.ts +19 -0
  164. package/daemon/dist/daemon-shutdown.d.ts.map +1 -1
  165. package/daemon/dist/daemon-shutdown.js +81 -0
  166. package/daemon/dist/daemon-shutdown.js.map +1 -1
  167. package/daemon/dist/db/all-migrations.d.ts +1 -1
  168. package/daemon/dist/db/all-migrations.d.ts.map +1 -1
  169. package/daemon/dist/db/all-migrations.js +10 -2
  170. package/daemon/dist/db/all-migrations.js.map +1 -1
  171. package/daemon/dist/db/migrations/090_human_reply_to.d.ts +3 -0
  172. package/daemon/dist/db/migrations/090_human_reply_to.d.ts.map +1 -0
  173. package/daemon/dist/db/migrations/090_human_reply_to.js +7 -0
  174. package/daemon/dist/db/migrations/090_human_reply_to.js.map +1 -0
  175. package/daemon/dist/db/migrations/091_human_questions.d.ts +3 -0
  176. package/daemon/dist/db/migrations/091_human_questions.d.ts.map +1 -0
  177. package/daemon/dist/db/migrations/091_human_questions.js +9 -0
  178. package/daemon/dist/db/migrations/091_human_questions.js.map +1 -0
  179. package/daemon/dist/db/migrations/092_node_effort.d.ts +3 -0
  180. package/daemon/dist/db/migrations/092_node_effort.d.ts.map +1 -0
  181. package/daemon/dist/db/migrations/092_node_effort.js +8 -0
  182. package/daemon/dist/db/migrations/092_node_effort.js.map +1 -0
  183. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts +3 -0
  184. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.d.ts.map +1 -0
  185. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js +12 -0
  186. package/daemon/dist/db/migrations/094_usage_samples_latest_indexes.js.map +1 -0
  187. package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -1
  188. package/daemon/dist/domain/activity-endpoint.js +3 -1
  189. package/daemon/dist/domain/activity-endpoint.js.map +1 -1
  190. package/daemon/dist/domain/agent-activity-store.d.ts +3 -1
  191. package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
  192. package/daemon/dist/domain/agent-activity-store.js +13 -3
  193. package/daemon/dist/domain/agent-activity-store.js.map +1 -1
  194. package/daemon/dist/domain/agent-images/agent-image-library-service.d.ts.map +1 -1
  195. package/daemon/dist/domain/agent-images/agent-image-library-service.js +76 -56
  196. package/daemon/dist/domain/agent-images/agent-image-library-service.js.map +1 -1
  197. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -1
  198. package/daemon/dist/domain/agent-manifest.js +24 -3
  199. package/daemon/dist/domain/agent-manifest.js.map +1 -1
  200. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  201. package/daemon/dist/domain/bootstrap-orchestrator.js +3 -2
  202. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  203. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -1
  204. package/daemon/dist/domain/bundle-archive.js +25 -5
  205. package/daemon/dist/domain/bundle-archive.js.map +1 -1
  206. package/daemon/dist/domain/chat-repository.d.ts.map +1 -1
  207. package/daemon/dist/domain/chat-repository.js +3 -1
  208. package/daemon/dist/domain/chat-repository.js.map +1 -1
  209. package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -1
  210. package/daemon/dist/domain/checkpoint-store.js +2 -2
  211. package/daemon/dist/domain/checkpoint-store.js.map +1 -1
  212. package/daemon/dist/domain/claim-service.d.ts +7 -0
  213. package/daemon/dist/domain/claim-service.d.ts.map +1 -1
  214. package/daemon/dist/domain/claim-service.js +6 -2
  215. package/daemon/dist/domain/claim-service.js.map +1 -1
  216. package/daemon/dist/domain/claude-compaction-enforcer.d.ts +35 -12
  217. package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
  218. package/daemon/dist/domain/claude-compaction-enforcer.js +256 -128
  219. package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
  220. package/daemon/dist/domain/claude-managed-launch.d.ts +13 -0
  221. package/daemon/dist/domain/claude-managed-launch.d.ts.map +1 -1
  222. package/daemon/dist/domain/claude-managed-launch.js +31 -4
  223. package/daemon/dist/domain/claude-managed-launch.js.map +1 -1
  224. package/daemon/dist/domain/codex-daemon-support.d.ts +1 -1
  225. package/daemon/dist/domain/codex-daemon-support.d.ts.map +1 -1
  226. package/daemon/dist/domain/codex-daemon-support.js +2 -2
  227. package/daemon/dist/domain/codex-daemon-support.js.map +1 -1
  228. package/daemon/dist/domain/codex-network-default.d.ts +42 -0
  229. package/daemon/dist/domain/codex-network-default.d.ts.map +1 -0
  230. package/daemon/dist/domain/codex-network-default.js +230 -0
  231. package/daemon/dist/domain/codex-network-default.js.map +1 -0
  232. package/daemon/dist/domain/codex-profile-preflight.d.ts +1 -1
  233. package/daemon/dist/domain/codex-profile-preflight.d.ts.map +1 -1
  234. package/daemon/dist/domain/codex-profile-preflight.js +3 -3
  235. package/daemon/dist/domain/codex-profile-preflight.js.map +1 -1
  236. package/daemon/dist/domain/codex-thread-id.d.ts +4 -2
  237. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  238. package/daemon/dist/domain/codex-thread-id.js +10 -6
  239. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  240. package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
  241. package/daemon/dist/domain/context-monitor.js +2 -1
  242. package/daemon/dist/domain/context-monitor.js.map +1 -1
  243. package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
  244. package/daemon/dist/domain/context-packs/context-pack-library-service.js +13 -2
  245. package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
  246. package/daemon/dist/domain/context-packs/profile-composer.d.ts +5 -0
  247. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -1
  248. package/daemon/dist/domain/context-packs/profile-composer.js +30 -15
  249. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -1
  250. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +10 -0
  251. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -1
  252. package/daemon/dist/domain/context-packs/profile-source-resolver.js +43 -8
  253. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -1
  254. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -1
  255. package/daemon/dist/domain/context-packs/seat-recap-store.js +73 -16
  256. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -1
  257. package/daemon/dist/domain/context-usage-store.d.ts +3 -0
  258. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -1
  259. package/daemon/dist/domain/context-usage-store.js +4 -2
  260. package/daemon/dist/domain/context-usage-store.js.map +1 -1
  261. package/daemon/dist/domain/crash-cart-detect.d.ts.map +1 -1
  262. package/daemon/dist/domain/crash-cart-detect.js +2 -1
  263. package/daemon/dist/domain/crash-cart-detect.js.map +1 -1
  264. package/daemon/dist/domain/crash-cart-discovery.d.ts.map +1 -1
  265. package/daemon/dist/domain/crash-cart-discovery.js +4 -2
  266. package/daemon/dist/domain/crash-cart-discovery.js.map +1 -1
  267. package/daemon/dist/domain/current-work.d.ts +17 -0
  268. package/daemon/dist/domain/current-work.d.ts.map +1 -1
  269. package/daemon/dist/domain/current-work.js +46 -0
  270. package/daemon/dist/domain/current-work.js.map +1 -1
  271. package/daemon/dist/domain/cwd-resolution.js +1 -1
  272. package/daemon/dist/domain/cwd-resolution.js.map +1 -1
  273. package/daemon/dist/domain/daemon-url.d.ts +7 -0
  274. package/daemon/dist/domain/daemon-url.d.ts.map +1 -0
  275. package/daemon/dist/domain/daemon-url.js +12 -0
  276. package/daemon/dist/domain/daemon-url.js.map +1 -0
  277. package/daemon/dist/domain/discovery-types.d.ts +1 -1
  278. package/daemon/dist/domain/discovery-types.d.ts.map +1 -1
  279. package/daemon/dist/domain/event-bus.d.ts +1 -0
  280. package/daemon/dist/domain/event-bus.d.ts.map +1 -1
  281. package/daemon/dist/domain/event-bus.js +18 -7
  282. package/daemon/dist/domain/event-bus.js.map +1 -1
  283. package/daemon/dist/domain/execution-view.d.ts +3 -3
  284. package/daemon/dist/domain/execution-view.d.ts.map +1 -1
  285. package/daemon/dist/domain/execution-view.js +116 -93
  286. package/daemon/dist/domain/execution-view.js.map +1 -1
  287. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts +9 -7
  288. package/daemon/dist/domain/gateway/operator-delivery-engine.d.ts.map +1 -1
  289. package/daemon/dist/domain/gateway/operator-delivery-engine.js +38 -16
  290. package/daemon/dist/domain/gateway/operator-delivery-engine.js.map +1 -1
  291. package/daemon/dist/domain/gateway/slack/inbound.d.ts +71 -3
  292. package/daemon/dist/domain/gateway/slack/inbound.d.ts.map +1 -1
  293. package/daemon/dist/domain/gateway/slack/inbound.js +145 -11
  294. package/daemon/dist/domain/gateway/slack/inbound.js.map +1 -1
  295. package/daemon/dist/domain/gateway/slack/manifest.js +1 -1
  296. package/daemon/dist/domain/gateway/slack/manifest.js.map +1 -1
  297. package/daemon/dist/domain/gateway/slack/message.d.ts +17 -0
  298. package/daemon/dist/domain/gateway/slack/message.d.ts.map +1 -1
  299. package/daemon/dist/domain/gateway/slack/message.js +77 -3
  300. package/daemon/dist/domain/gateway/slack/message.js.map +1 -1
  301. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts +3 -0
  302. package/daemon/dist/domain/gateway/slack/outbound-driver.d.ts.map +1 -1
  303. package/daemon/dist/domain/gateway/slack/outbound-driver.js +2 -0
  304. package/daemon/dist/domain/gateway/slack/outbound-driver.js.map +1 -1
  305. package/daemon/dist/domain/gateway/slack/queue-access.d.ts +3 -0
  306. package/daemon/dist/domain/gateway/slack/queue-access.d.ts.map +1 -1
  307. package/daemon/dist/domain/gateway/slack/queue-access.js +15 -5
  308. package/daemon/dist/domain/gateway/slack/queue-access.js.map +1 -1
  309. package/daemon/dist/domain/gateway/slack/secrets.d.ts.map +1 -1
  310. package/daemon/dist/domain/gateway/slack/secrets.js +5 -4
  311. package/daemon/dist/domain/gateway/slack/secrets.js.map +1 -1
  312. package/daemon/dist/domain/gateway/slack/slack-api.d.ts +16 -10
  313. package/daemon/dist/domain/gateway/slack/slack-api.d.ts.map +1 -1
  314. package/daemon/dist/domain/gateway/slack/slack-api.js +91 -23
  315. package/daemon/dist/domain/gateway/slack/slack-api.js.map +1 -1
  316. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts +33 -10
  317. package/daemon/dist/domain/gateway/slack/slack-delivery.d.ts.map +1 -1
  318. package/daemon/dist/domain/gateway/slack/slack-delivery.js +107 -26
  319. package/daemon/dist/domain/gateway/slack/slack-delivery.js.map +1 -1
  320. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts +1 -1
  321. package/daemon/dist/domain/gateway/slack/slack-subsystem.d.ts.map +1 -1
  322. package/daemon/dist/domain/gateway/slack/slack-subsystem.js +114 -27
  323. package/daemon/dist/domain/gateway/slack/slack-subsystem.js.map +1 -1
  324. package/daemon/dist/domain/gateway/slack/socket-inbound.d.ts.map +1 -1
  325. package/daemon/dist/domain/gateway/slack/socket-inbound.js +3 -0
  326. package/daemon/dist/domain/gateway/slack/socket-inbound.js.map +1 -1
  327. package/daemon/dist/domain/gateway/slack/state-store.d.ts +3 -0
  328. package/daemon/dist/domain/gateway/slack/state-store.d.ts.map +1 -1
  329. package/daemon/dist/domain/gateway/slack/state-store.js +18 -0
  330. package/daemon/dist/domain/gateway/slack/state-store.js.map +1 -1
  331. package/daemon/dist/domain/gateway/slack/thread-routing.d.ts.map +1 -1
  332. package/daemon/dist/domain/gateway/slack/thread-routing.js +7 -2
  333. package/daemon/dist/domain/gateway/slack/thread-routing.js.map +1 -1
  334. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts +3 -0
  335. package/daemon/dist/domain/gateway/slack/thread-seat-map.d.ts.map +1 -1
  336. package/daemon/dist/domain/gateway/slack/thread-seat-map.js +14 -2
  337. package/daemon/dist/domain/gateway/slack/thread-seat-map.js.map +1 -1
  338. package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
  339. package/daemon/dist/domain/graph-projection.js +1 -0
  340. package/daemon/dist/domain/graph-projection.js.map +1 -1
  341. package/daemon/dist/domain/health-checkpoints.d.ts +2 -0
  342. package/daemon/dist/domain/health-checkpoints.d.ts.map +1 -1
  343. package/daemon/dist/domain/health-checkpoints.js +2 -0
  344. package/daemon/dist/domain/health-checkpoints.js.map +1 -1
  345. package/daemon/dist/domain/health-detectors.d.ts +32 -1
  346. package/daemon/dist/domain/health-detectors.d.ts.map +1 -1
  347. package/daemon/dist/domain/health-detectors.js +40 -9
  348. package/daemon/dist/domain/health-detectors.js.map +1 -1
  349. package/daemon/dist/domain/health-diagnosis.d.ts +3 -1
  350. package/daemon/dist/domain/health-diagnosis.d.ts.map +1 -1
  351. package/daemon/dist/domain/health-diagnosis.js +6 -3
  352. package/daemon/dist/domain/health-diagnosis.js.map +1 -1
  353. package/daemon/dist/domain/health-passive-ceremony.d.ts +5 -1
  354. package/daemon/dist/domain/health-passive-ceremony.d.ts.map +1 -1
  355. package/daemon/dist/domain/health-passive-ceremony.js +20 -4
  356. package/daemon/dist/domain/health-passive-ceremony.js.map +1 -1
  357. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +3 -1
  358. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -1
  359. package/daemon/dist/domain/hosts/remote-daemon-http.js +10 -3
  360. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -1
  361. package/daemon/dist/domain/human-questions.d.ts +41 -0
  362. package/daemon/dist/domain/human-questions.d.ts.map +1 -0
  363. package/daemon/dist/domain/human-questions.js +81 -0
  364. package/daemon/dist/domain/human-questions.js.map +1 -0
  365. package/daemon/dist/domain/markdown-address.js +1 -1
  366. package/daemon/dist/domain/markdown-address.js.map +1 -1
  367. package/daemon/dist/domain/mission-control/audit-browse.d.ts +5 -0
  368. package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
  369. package/daemon/dist/domain/mission-control/audit-browse.js +11 -1
  370. package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
  371. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts +25 -63
  372. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.d.ts.map +1 -1
  373. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +34 -100
  374. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
  375. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts +1 -0
  376. package/daemon/dist/domain/mission-control/mission-control-read-layer.d.ts.map +1 -1
  377. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +6 -3
  378. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  379. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts +5 -0
  380. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.d.ts.map +1 -1
  381. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js +33 -2
  382. package/daemon/dist/domain/mission-control/notification-adapter-ntfy.js.map +1 -1
  383. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts +2 -0
  384. package/daemon/dist/domain/mission-control/notification-adapter-types.d.ts.map +1 -1
  385. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts +4 -0
  386. package/daemon/dist/domain/mission-control/notification-adapter-webhook.d.ts.map +1 -1
  387. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js +33 -2
  388. package/daemon/dist/domain/mission-control/notification-adapter-webhook.js.map +1 -1
  389. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts +27 -0
  390. package/daemon/dist/domain/mission-control/outbound-url-validator.d.ts.map +1 -0
  391. package/daemon/dist/domain/mission-control/outbound-url-validator.js +60 -0
  392. package/daemon/dist/domain/mission-control/outbound-url-validator.js.map +1 -0
  393. package/daemon/dist/domain/native-process-lineage.d.ts +9 -2
  394. package/daemon/dist/domain/native-process-lineage.d.ts.map +1 -1
  395. package/daemon/dist/domain/native-process-lineage.js +104 -11
  396. package/daemon/dist/domain/native-process-lineage.js.map +1 -1
  397. package/daemon/dist/domain/native-resume-probe.d.ts +5 -1
  398. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
  399. package/daemon/dist/domain/native-resume-probe.js +17 -4
  400. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  401. package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
  402. package/daemon/dist/domain/node-inventory.js +91 -44
  403. package/daemon/dist/domain/node-inventory.js.map +1 -1
  404. package/daemon/dist/domain/node-launcher.d.ts +4 -0
  405. package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
  406. package/daemon/dist/domain/node-launcher.js +4 -1
  407. package/daemon/dist/domain/node-launcher.js.map +1 -1
  408. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +1 -0
  409. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  410. package/daemon/dist/domain/periodic-snapshot-scheduler.js +25 -0
  411. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  412. package/daemon/dist/domain/permission-drift.d.ts +1 -0
  413. package/daemon/dist/domain/permission-drift.d.ts.map +1 -1
  414. package/daemon/dist/domain/permission-drift.js +13 -1
  415. package/daemon/dist/domain/permission-drift.js.map +1 -1
  416. package/daemon/dist/domain/plugin-discovery-service.d.ts +5 -6
  417. package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  418. package/daemon/dist/domain/plugin-discovery-service.js +14 -8
  419. package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  420. package/daemon/dist/domain/pod-bundle-assembler.d.ts +6 -2
  421. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
  422. package/daemon/dist/domain/pod-bundle-assembler.js +58 -15
  423. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
  424. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts +6 -0
  425. package/daemon/dist/domain/policies/parked-owner-consumer.d.ts.map +1 -1
  426. package/daemon/dist/domain/policies/parked-owner-consumer.js +11 -0
  427. package/daemon/dist/domain/policies/parked-owner-consumer.js.map +1 -1
  428. package/daemon/dist/domain/profile-resolver.d.ts +1 -0
  429. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
  430. package/daemon/dist/domain/profile-resolver.js +7 -0
  431. package/daemon/dist/domain/profile-resolver.js.map +1 -1
  432. package/daemon/dist/domain/project-lifecycle-compiler.d.ts.map +1 -1
  433. package/daemon/dist/domain/project-lifecycle-compiler.js +10 -2
  434. package/daemon/dist/domain/project-lifecycle-compiler.js.map +1 -1
  435. package/daemon/dist/domain/projection-planner.d.ts.map +1 -1
  436. package/daemon/dist/domain/projection-planner.js +14 -5
  437. package/daemon/dist/domain/projection-planner.js.map +1 -1
  438. package/daemon/dist/domain/proof/judgments.d.ts +3 -0
  439. package/daemon/dist/domain/proof/judgments.d.ts.map +1 -1
  440. package/daemon/dist/domain/proof/judgments.js +13 -8
  441. package/daemon/dist/domain/proof/judgments.js.map +1 -1
  442. package/daemon/dist/domain/proof/source-watch.d.ts.map +1 -1
  443. package/daemon/dist/domain/proof/source-watch.js +45 -27
  444. package/daemon/dist/domain/proof/source-watch.js.map +1 -1
  445. package/daemon/dist/domain/provider/host-usage-rollup.js +9 -5
  446. package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -1
  447. package/daemon/dist/domain/ps-projection.d.ts +22 -3
  448. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  449. package/daemon/dist/domain/ps-projection.js +50 -11
  450. package/daemon/dist/domain/ps-projection.js.map +1 -1
  451. package/daemon/dist/domain/queue-recovery.d.ts.map +1 -1
  452. package/daemon/dist/domain/queue-recovery.js +7 -1
  453. package/daemon/dist/domain/queue-recovery.js.map +1 -1
  454. package/daemon/dist/domain/queue-repository.d.ts +98 -6
  455. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  456. package/daemon/dist/domain/queue-repository.js +301 -33
  457. package/daemon/dist/domain/queue-repository.js.map +1 -1
  458. package/daemon/dist/domain/queue-stuck-sweep.d.ts +3 -0
  459. package/daemon/dist/domain/queue-stuck-sweep.d.ts.map +1 -1
  460. package/daemon/dist/domain/queue-stuck-sweep.js +111 -26
  461. package/daemon/dist/domain/queue-stuck-sweep.js.map +1 -1
  462. package/daemon/dist/domain/queue-wake-ladder.d.ts +8 -7
  463. package/daemon/dist/domain/queue-wake-ladder.d.ts.map +1 -1
  464. package/daemon/dist/domain/queue-wake-ladder.js +278 -19
  465. package/daemon/dist/domain/queue-wake-ladder.js.map +1 -1
  466. package/daemon/dist/domain/queue-wake-repository.d.ts +10 -9
  467. package/daemon/dist/domain/queue-wake-repository.d.ts.map +1 -1
  468. package/daemon/dist/domain/queue-wake-repository.js +31 -11
  469. package/daemon/dist/domain/queue-wake-repository.js.map +1 -1
  470. package/daemon/dist/domain/reply-to-choice.d.ts +26 -0
  471. package/daemon/dist/domain/reply-to-choice.d.ts.map +1 -0
  472. package/daemon/dist/domain/reply-to-choice.js +45 -0
  473. package/daemon/dist/domain/reply-to-choice.js.map +1 -0
  474. package/daemon/dist/domain/restore-check-service.d.ts +27 -8
  475. package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
  476. package/daemon/dist/domain/restore-check-service.js +202 -126
  477. package/daemon/dist/domain/restore-check-service.js.map +1 -1
  478. package/daemon/dist/domain/restore-orchestrator.d.ts +3 -2
  479. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  480. package/daemon/dist/domain/restore-orchestrator.js +65 -208
  481. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  482. package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
  483. package/daemon/dist/domain/restore-plan-preview.js +2 -6
  484. package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
  485. package/daemon/dist/domain/restore-preconditions.d.ts +12 -0
  486. package/daemon/dist/domain/restore-preconditions.d.ts.map +1 -0
  487. package/daemon/dist/domain/restore-preconditions.js +202 -0
  488. package/daemon/dist/domain/restore-preconditions.js.map +1 -0
  489. package/daemon/dist/domain/resume-metadata-refresher.d.ts +20 -4
  490. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  491. package/daemon/dist/domain/resume-metadata-refresher.js +70 -8
  492. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  493. package/daemon/dist/domain/resume-token-capture.d.ts +22 -1
  494. package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -1
  495. package/daemon/dist/domain/resume-token-capture.js +32 -4
  496. package/daemon/dist/domain/resume-token-capture.js.map +1 -1
  497. package/daemon/dist/domain/resume-token-validation.d.ts +1 -1
  498. package/daemon/dist/domain/resume-token-validation.d.ts.map +1 -1
  499. package/daemon/dist/domain/resume-token-validation.js +24 -24
  500. package/daemon/dist/domain/resume-token-validation.js.map +1 -1
  501. package/daemon/dist/domain/rig-repository.d.ts +3 -0
  502. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  503. package/daemon/dist/domain/rig-repository.js +21 -0
  504. package/daemon/dist/domain/rig-repository.js.map +1 -1
  505. package/daemon/dist/domain/rig-teardown.d.ts +3 -0
  506. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  507. package/daemon/dist/domain/rig-teardown.js +96 -19
  508. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  509. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
  510. package/daemon/dist/domain/rigspec-codec.js +6 -0
  511. package/daemon/dist/domain/rigspec-codec.js.map +1 -1
  512. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
  513. package/daemon/dist/domain/rigspec-exporter.js +4 -0
  514. package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
  515. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  516. package/daemon/dist/domain/rigspec-instantiator.js +37 -8
  517. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  518. package/daemon/dist/domain/rigspec-preflight.d.ts +2 -0
  519. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
  520. package/daemon/dist/domain/rigspec-preflight.js +20 -5
  521. package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
  522. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  523. package/daemon/dist/domain/rigspec-schema.js +14 -2
  524. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  525. package/daemon/dist/domain/runtime-adapter.d.ts +7 -0
  526. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
  527. package/daemon/dist/domain/runtime-adapter.js.map +1 -1
  528. package/daemon/dist/domain/runtime-verifier.d.ts +3 -1
  529. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -1
  530. package/daemon/dist/domain/runtime-verifier.js +10 -1
  531. package/daemon/dist/domain/runtime-verifier.js.map +1 -1
  532. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +4 -4
  533. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  534. package/daemon/dist/domain/scope/scaffold-placeholder.js +4 -4
  535. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  536. package/daemon/dist/domain/seat-activity-service.d.ts +9 -4
  537. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  538. package/daemon/dist/domain/seat-activity-service.js +73 -22
  539. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  540. package/daemon/dist/domain/seat-attention-reconciler.d.ts +1 -0
  541. package/daemon/dist/domain/seat-attention-reconciler.d.ts.map +1 -1
  542. package/daemon/dist/domain/seat-attention-reconciler.js +32 -9
  543. package/daemon/dist/domain/seat-attention-reconciler.js.map +1 -1
  544. package/daemon/dist/domain/seat-handover-service.d.ts +6 -0
  545. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  546. package/daemon/dist/domain/seat-handover-service.js +8 -5
  547. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  548. package/daemon/dist/domain/seat-identity-reconciler.d.ts +1 -1
  549. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  550. package/daemon/dist/domain/seat-identity-reconciler.js +99 -18
  551. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  552. package/daemon/dist/domain/seat-launch-environment.d.ts +26 -0
  553. package/daemon/dist/domain/seat-launch-environment.d.ts.map +1 -0
  554. package/daemon/dist/domain/seat-launch-environment.js +178 -0
  555. package/daemon/dist/domain/seat-launch-environment.js.map +1 -0
  556. package/daemon/dist/domain/seat-lifecycle-service.d.ts +7 -0
  557. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -1
  558. package/daemon/dist/domain/seat-lifecycle-service.js +37 -2
  559. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -1
  560. package/daemon/dist/domain/seat-status-service.d.ts.map +1 -1
  561. package/daemon/dist/domain/seat-status-service.js +4 -2
  562. package/daemon/dist/domain/seat-status-service.js.map +1 -1
  563. package/daemon/dist/domain/seat-structural-activity-service.d.ts +5 -4
  564. package/daemon/dist/domain/seat-structural-activity-service.d.ts.map +1 -1
  565. package/daemon/dist/domain/seat-structural-activity-service.js +23 -9
  566. package/daemon/dist/domain/seat-structural-activity-service.js.map +1 -1
  567. package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -1
  568. package/daemon/dist/domain/seat-switch-client-service.js +3 -2
  569. package/daemon/dist/domain/seat-switch-client-service.js.map +1 -1
  570. package/daemon/dist/domain/services-readiness.d.ts.map +1 -1
  571. package/daemon/dist/domain/services-readiness.js +6 -2
  572. package/daemon/dist/domain/services-readiness.js.map +1 -1
  573. package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -1
  574. package/daemon/dist/domain/session-fingerprinter.js +16 -1
  575. package/daemon/dist/domain/session-fingerprinter.js.map +1 -1
  576. package/daemon/dist/domain/session-name.d.ts.map +1 -1
  577. package/daemon/dist/domain/session-name.js +6 -0
  578. package/daemon/dist/domain/session-name.js.map +1 -1
  579. package/daemon/dist/domain/session-registry.d.ts +3 -0
  580. package/daemon/dist/domain/session-registry.d.ts.map +1 -1
  581. package/daemon/dist/domain/session-registry.js +7 -0
  582. package/daemon/dist/domain/session-registry.js.map +1 -1
  583. package/daemon/dist/domain/session-transport.d.ts +30 -1
  584. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  585. package/daemon/dist/domain/session-transport.js +290 -145
  586. package/daemon/dist/domain/session-transport.js.map +1 -1
  587. package/daemon/dist/domain/snapshot-repository.d.ts +2 -1
  588. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -1
  589. package/daemon/dist/domain/snapshot-repository.js +39 -15
  590. package/daemon/dist/domain/snapshot-repository.js.map +1 -1
  591. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts +1 -1
  592. package/daemon/dist/domain/spec-library-workflow-scanner.d.ts.map +1 -1
  593. package/daemon/dist/domain/spec-library-workflow-scanner.js +70 -11
  594. package/daemon/dist/domain/spec-library-workflow-scanner.js.map +1 -1
  595. package/daemon/dist/domain/spec-validation-service.d.ts +6 -0
  596. package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -1
  597. package/daemon/dist/domain/spec-validation-service.js +16 -1
  598. package/daemon/dist/domain/spec-validation-service.js.map +1 -1
  599. package/daemon/dist/domain/startup-orchestrator.d.ts +8 -0
  600. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
  601. package/daemon/dist/domain/startup-orchestrator.js +148 -37
  602. package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
  603. package/daemon/dist/domain/startup-submission-evidence.d.ts +41 -0
  604. package/daemon/dist/domain/startup-submission-evidence.d.ts.map +1 -0
  605. package/daemon/dist/domain/startup-submission-evidence.js +67 -0
  606. package/daemon/dist/domain/startup-submission-evidence.js.map +1 -0
  607. package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
  608. package/daemon/dist/domain/startup-validation.js +4 -0
  609. package/daemon/dist/domain/startup-validation.js.map +1 -1
  610. package/daemon/dist/domain/successor-session-launcher.d.ts +5 -0
  611. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  612. package/daemon/dist/domain/successor-session-launcher.js +8 -6
  613. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  614. package/daemon/dist/domain/terminal/view-composer.d.ts.map +1 -1
  615. package/daemon/dist/domain/terminal/view-composer.js +2 -1
  616. package/daemon/dist/domain/terminal/view-composer.js.map +1 -1
  617. package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -1
  618. package/daemon/dist/domain/tmux-discovery-scanner.js +7 -2
  619. package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -1
  620. package/daemon/dist/domain/tmux-option-defaults.d.ts.map +1 -1
  621. package/daemon/dist/domain/tmux-option-defaults.js +5 -0
  622. package/daemon/dist/domain/tmux-option-defaults.js.map +1 -1
  623. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -1
  624. package/daemon/dist/domain/transcript-capture.js +1 -1
  625. package/daemon/dist/domain/transcript-capture.js.map +1 -1
  626. package/daemon/dist/domain/transcript-rotation.d.ts +26 -5
  627. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  628. package/daemon/dist/domain/transcript-rotation.js +176 -25
  629. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  630. package/daemon/dist/domain/transcript-store.d.ts +1 -1
  631. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  632. package/daemon/dist/domain/transcript-store.js +11 -4
  633. package/daemon/dist/domain/transcript-store.js.map +1 -1
  634. package/daemon/dist/domain/types.d.ts +18 -5
  635. package/daemon/dist/domain/types.d.ts.map +1 -1
  636. package/daemon/dist/domain/types.js.map +1 -1
  637. package/daemon/dist/domain/usage-series.d.ts.map +1 -1
  638. package/daemon/dist/domain/usage-series.js +11 -6
  639. package/daemon/dist/domain/usage-series.js.map +1 -1
  640. package/daemon/dist/domain/user-settings/settings-store.d.ts +2 -0
  641. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  642. package/daemon/dist/domain/user-settings/settings-store.js +88 -6
  643. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  644. package/daemon/dist/domain/view-projector.d.ts +11 -6
  645. package/daemon/dist/domain/view-projector.d.ts.map +1 -1
  646. package/daemon/dist/domain/view-projector.js +2 -6
  647. package/daemon/dist/domain/view-projector.js.map +1 -1
  648. package/daemon/dist/domain/workflow-spec-cache.d.ts +29 -7
  649. package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
  650. package/daemon/dist/domain/workflow-spec-cache.js +103 -14
  651. package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
  652. package/daemon/dist/domain/workspace/workspace-doctor.js +1 -1
  653. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  654. package/daemon/dist/domain/workspace/workspace-resolver.js +1 -1
  655. package/daemon/dist/domain/workspace/workspace-resolver.js.map +1 -1
  656. package/daemon/dist/health-detectors-surface.d.ts +1 -1
  657. package/daemon/dist/health-detectors-surface.d.ts.map +1 -1
  658. package/daemon/dist/health-detectors-surface.js.map +1 -1
  659. package/daemon/dist/index.d.ts +4 -4
  660. package/daemon/dist/index.d.ts.map +1 -1
  661. package/daemon/dist/index.js +11 -7
  662. package/daemon/dist/index.js.map +1 -1
  663. package/daemon/dist/middleware/json-body-error.d.ts +17 -0
  664. package/daemon/dist/middleware/json-body-error.d.ts.map +1 -0
  665. package/daemon/dist/middleware/json-body-error.js +42 -0
  666. package/daemon/dist/middleware/json-body-error.js.map +1 -0
  667. package/daemon/dist/routes/activity.d.ts.map +1 -1
  668. package/daemon/dist/routes/activity.js +85 -6
  669. package/daemon/dist/routes/activity.js.map +1 -1
  670. package/daemon/dist/routes/attention.d.ts.map +1 -1
  671. package/daemon/dist/routes/attention.js +7 -1
  672. package/daemon/dist/routes/attention.js.map +1 -1
  673. package/daemon/dist/routes/bundles.js +32 -3
  674. package/daemon/dist/routes/bundles.js.map +1 -1
  675. package/daemon/dist/routes/compaction.d.ts.map +1 -1
  676. package/daemon/dist/routes/compaction.js +30 -2
  677. package/daemon/dist/routes/compaction.js.map +1 -1
  678. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  679. package/daemon/dist/routes/context-packs.js +10 -2
  680. package/daemon/dist/routes/context-packs.js.map +1 -1
  681. package/daemon/dist/routes/files.js +2 -2
  682. package/daemon/dist/routes/files.js.map +1 -1
  683. package/daemon/dist/routes/gateway.d.ts.map +1 -1
  684. package/daemon/dist/routes/gateway.js +6 -1
  685. package/daemon/dist/routes/gateway.js.map +1 -1
  686. package/daemon/dist/routes/hosts.d.ts.map +1 -1
  687. package/daemon/dist/routes/hosts.js +51 -12
  688. package/daemon/dist/routes/hosts.js.map +1 -1
  689. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  690. package/daemon/dist/routes/mission-control.js +6 -2
  691. package/daemon/dist/routes/mission-control.js.map +1 -1
  692. package/daemon/dist/routes/missions.d.ts.map +1 -1
  693. package/daemon/dist/routes/missions.js +17 -5
  694. package/daemon/dist/routes/missions.js.map +1 -1
  695. package/daemon/dist/routes/plugins.d.ts.map +1 -1
  696. package/daemon/dist/routes/plugins.js +5 -1
  697. package/daemon/dist/routes/plugins.js.map +1 -1
  698. package/daemon/dist/routes/proof.d.ts.map +1 -1
  699. package/daemon/dist/routes/proof.js +9 -2
  700. package/daemon/dist/routes/proof.js.map +1 -1
  701. package/daemon/dist/routes/ps.d.ts.map +1 -1
  702. package/daemon/dist/routes/ps.js +18 -0
  703. package/daemon/dist/routes/ps.js.map +1 -1
  704. package/daemon/dist/routes/queue.d.ts.map +1 -1
  705. package/daemon/dist/routes/queue.js +150 -67
  706. package/daemon/dist/routes/queue.js.map +1 -1
  707. package/daemon/dist/routes/restore-check.d.ts.map +1 -1
  708. package/daemon/dist/routes/restore-check.js +40 -1
  709. package/daemon/dist/routes/restore-check.js.map +1 -1
  710. package/daemon/dist/routes/rigs.js +1 -1
  711. package/daemon/dist/routes/rigs.js.map +1 -1
  712. package/daemon/dist/routes/rigspec.d.ts.map +1 -1
  713. package/daemon/dist/routes/rigspec.js +7 -10
  714. package/daemon/dist/routes/rigspec.js.map +1 -1
  715. package/daemon/dist/routes/seat.d.ts.map +1 -1
  716. package/daemon/dist/routes/seat.js +11 -0
  717. package/daemon/dist/routes/seat.js.map +1 -1
  718. package/daemon/dist/routes/sessions.js +1 -1
  719. package/daemon/dist/routes/sessions.js.map +1 -1
  720. package/daemon/dist/routes/telemetry.d.ts.map +1 -1
  721. package/daemon/dist/routes/telemetry.js +6 -1
  722. package/daemon/dist/routes/telemetry.js.map +1 -1
  723. package/daemon/dist/routes/terminal-ws.d.ts +1 -2
  724. package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
  725. package/daemon/dist/routes/terminal-ws.js +1 -2
  726. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  727. package/daemon/dist/routes/up.js +2 -1
  728. package/daemon/dist/routes/up.js.map +1 -1
  729. package/daemon/dist/routes/views.js +2 -2
  730. package/daemon/dist/routes/views.js.map +1 -1
  731. package/daemon/dist/server.d.ts +2 -0
  732. package/daemon/dist/server.d.ts.map +1 -1
  733. package/daemon/dist/server.js +7 -2
  734. package/daemon/dist/server.js.map +1 -1
  735. package/daemon/dist/spec-validation-surface.d.ts +2 -0
  736. package/daemon/dist/spec-validation-surface.d.ts.map +1 -0
  737. package/daemon/dist/spec-validation-surface.js +2 -0
  738. package/daemon/dist/spec-validation-surface.js.map +1 -0
  739. package/daemon/dist/startup.d.ts +1 -1
  740. package/daemon/dist/startup.d.ts.map +1 -1
  741. package/daemon/dist/startup.js +137 -50
  742. package/daemon/dist/startup.js.map +1 -1
  743. package/daemon/dist/terminal/TerminalSessionBroker.d.ts +1 -0
  744. package/daemon/dist/terminal/TerminalSessionBroker.d.ts.map +1 -1
  745. package/daemon/dist/terminal/TerminalSessionBroker.js +8 -1
  746. package/daemon/dist/terminal/TerminalSessionBroker.js.map +1 -1
  747. package/daemon/docs/reference/agent-spec.md +36 -1
  748. package/daemon/docs/reference/agent-startup-guide.md +81 -2
  749. package/daemon/docs/reference/browser-access.md +4 -1
  750. package/daemon/docs/reference/developing.md +17 -9
  751. package/daemon/docs/reference/getting-started.md +7 -2
  752. package/daemon/docs/reference/health-diagnosis.md +10 -3
  753. package/daemon/docs/reference/help.md +9 -4
  754. package/daemon/docs/reference/host-resources.md +60 -0
  755. package/daemon/docs/reference/instance-layout.md +11 -0
  756. package/daemon/docs/reference/rig-spec.md +32 -5
  757. package/daemon/docs/reference/sdlc-conventions.md +6 -3
  758. package/daemon/docs/reference/slack-app-setup.md +6 -0
  759. package/daemon/specs/agents/shared/agent.yaml +1 -1
  760. package/daemon/specs/agents/shared/skills/core/messaging-the-human/SKILL.md +24 -0
  761. package/daemon/specs/agents/shared/skills/core/openrig-skills/SKILL.md +6 -0
  762. package/daemon/specs/agents/shared/skills/core/topology-mutation-and-seat-management/SKILL.md +24 -3
  763. package/daemon/specs/rigs/launch/kernel/agents/advisor/lead/agent.yaml +2 -8
  764. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/agent.yaml +2 -8
  765. package/daemon/specs/rigs/launch/kernel/agents/queue/worker/agent.yaml +2 -8
  766. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +1 -1
  767. package/dist/atomic-text-write.d.ts +3 -0
  768. package/dist/atomic-text-write.d.ts.map +1 -0
  769. package/dist/atomic-text-write.js +79 -0
  770. package/dist/atomic-text-write.js.map +1 -0
  771. package/dist/build-info.js +3 -3
  772. package/dist/cli-error.d.ts.map +1 -1
  773. package/dist/cli-error.js +15 -2
  774. package/dist/cli-error.js.map +1 -1
  775. package/dist/client.d.ts +14 -1
  776. package/dist/client.d.ts.map +1 -1
  777. package/dist/client.js +29 -4
  778. package/dist/client.js.map +1 -1
  779. package/dist/commands/agent-image.d.ts.map +1 -1
  780. package/dist/commands/agent-image.js +2 -0
  781. package/dist/commands/agent-image.js.map +1 -1
  782. package/dist/commands/ask.d.ts.map +1 -1
  783. package/dist/commands/ask.js +10 -1
  784. package/dist/commands/ask.js.map +1 -1
  785. package/dist/commands/bootstrap.d.ts.map +1 -1
  786. package/dist/commands/bootstrap.js +4 -6
  787. package/dist/commands/bootstrap.js.map +1 -1
  788. package/dist/commands/broadcast.js +1 -1
  789. package/dist/commands/broadcast.js.map +1 -1
  790. package/dist/commands/chatroom.d.ts.map +1 -1
  791. package/dist/commands/chatroom.js +22 -1
  792. package/dist/commands/chatroom.js.map +1 -1
  793. package/dist/commands/compact-plan.d.ts.map +1 -1
  794. package/dist/commands/compact-plan.js +34 -5
  795. package/dist/commands/compact-plan.js.map +1 -1
  796. package/dist/commands/compact.d.ts.map +1 -1
  797. package/dist/commands/compact.js +24 -4
  798. package/dist/commands/compact.js.map +1 -1
  799. package/dist/commands/config.d.ts.map +1 -1
  800. package/dist/commands/config.js +2 -4
  801. package/dist/commands/config.js.map +1 -1
  802. package/dist/commands/context.d.ts.map +1 -1
  803. package/dist/commands/context.js +19 -14
  804. package/dist/commands/context.js.map +1 -1
  805. package/dist/commands/crash-cart.d.ts.map +1 -1
  806. package/dist/commands/crash-cart.js +2 -1
  807. package/dist/commands/crash-cart.js.map +1 -1
  808. package/dist/commands/daemon.d.ts +13 -1
  809. package/dist/commands/daemon.d.ts.map +1 -1
  810. package/dist/commands/daemon.js +35 -17
  811. package/dist/commands/daemon.js.map +1 -1
  812. package/dist/commands/destroy.d.ts.map +1 -1
  813. package/dist/commands/destroy.js +3 -2
  814. package/dist/commands/destroy.js.map +1 -1
  815. package/dist/commands/discover.d.ts.map +1 -1
  816. package/dist/commands/discover.js +2 -4
  817. package/dist/commands/discover.js.map +1 -1
  818. package/dist/commands/doctor.d.ts.map +1 -1
  819. package/dist/commands/doctor.js +3 -2
  820. package/dist/commands/doctor.js.map +1 -1
  821. package/dist/commands/env.d.ts.map +1 -1
  822. package/dist/commands/env.js +8 -0
  823. package/dist/commands/env.js.map +1 -1
  824. package/dist/commands/export.js +2 -2
  825. package/dist/commands/export.js.map +1 -1
  826. package/dist/commands/gateway.d.ts.map +1 -1
  827. package/dist/commands/gateway.js +23 -3
  828. package/dist/commands/gateway.js.map +1 -1
  829. package/dist/commands/health.d.ts.map +1 -1
  830. package/dist/commands/health.js +9 -0
  831. package/dist/commands/health.js.map +1 -1
  832. package/dist/commands/host.d.ts.map +1 -1
  833. package/dist/commands/host.js +13 -3
  834. package/dist/commands/host.js.map +1 -1
  835. package/dist/commands/plugin.d.ts.map +1 -1
  836. package/dist/commands/plugin.js +12 -2
  837. package/dist/commands/plugin.js.map +1 -1
  838. package/dist/commands/ps.d.ts +1 -0
  839. package/dist/commands/ps.d.ts.map +1 -1
  840. package/dist/commands/ps.js +97 -35
  841. package/dist/commands/ps.js.map +1 -1
  842. package/dist/commands/queue.d.ts +2 -0
  843. package/dist/commands/queue.d.ts.map +1 -1
  844. package/dist/commands/queue.js +129 -17
  845. package/dist/commands/queue.js.map +1 -1
  846. package/dist/commands/requirements.d.ts.map +1 -1
  847. package/dist/commands/requirements.js +6 -3
  848. package/dist/commands/requirements.js.map +1 -1
  849. package/dist/commands/rig-mode.d.ts.map +1 -1
  850. package/dist/commands/rig-mode.js +6 -1
  851. package/dist/commands/rig-mode.js.map +1 -1
  852. package/dist/commands/rig.d.ts.map +1 -1
  853. package/dist/commands/rig.js +20 -20
  854. package/dist/commands/rig.js.map +1 -1
  855. package/dist/commands/scope.d.ts.map +1 -1
  856. package/dist/commands/scope.js +22 -0
  857. package/dist/commands/scope.js.map +1 -1
  858. package/dist/commands/seat.d.ts.map +1 -1
  859. package/dist/commands/seat.js +39 -9
  860. package/dist/commands/seat.js.map +1 -1
  861. package/dist/commands/setup.d.ts.map +1 -1
  862. package/dist/commands/setup.js +6 -5
  863. package/dist/commands/setup.js.map +1 -1
  864. package/dist/commands/slack.d.ts.map +1 -1
  865. package/dist/commands/slack.js +8 -1
  866. package/dist/commands/slack.js.map +1 -1
  867. package/dist/commands/specs.d.ts.map +1 -1
  868. package/dist/commands/specs.js +2 -0
  869. package/dist/commands/specs.js.map +1 -1
  870. package/dist/commands/start.js +6 -5
  871. package/dist/commands/start.js.map +1 -1
  872. package/dist/commands/startup-proof.d.ts.map +1 -1
  873. package/dist/commands/startup-proof.js +2 -1
  874. package/dist/commands/startup-proof.js.map +1 -1
  875. package/dist/commands/status.d.ts.map +1 -1
  876. package/dist/commands/status.js +7 -0
  877. package/dist/commands/status.js.map +1 -1
  878. package/dist/commands/terminal.d.ts.map +1 -1
  879. package/dist/commands/terminal.js +4 -0
  880. package/dist/commands/terminal.js.map +1 -1
  881. package/dist/commands/transcript.js +5 -3
  882. package/dist/commands/transcript.js.map +1 -1
  883. package/dist/commands/up.d.ts +8 -0
  884. package/dist/commands/up.d.ts.map +1 -1
  885. package/dist/commands/up.js +78 -4
  886. package/dist/commands/up.js.map +1 -1
  887. package/dist/commands/walk.d.ts.map +1 -1
  888. package/dist/commands/walk.js +3 -0
  889. package/dist/commands/walk.js.map +1 -1
  890. package/dist/commands/workflow-follow.d.ts +2 -0
  891. package/dist/commands/workflow-follow.d.ts.map +1 -1
  892. package/dist/commands/workflow-follow.js +6 -4
  893. package/dist/commands/workflow-follow.js.map +1 -1
  894. package/dist/commands/workflow.d.ts.map +1 -1
  895. package/dist/commands/workflow.js +2 -4
  896. package/dist/commands/workflow.js.map +1 -1
  897. package/dist/commands/workspace.d.ts.map +1 -1
  898. package/dist/commands/workspace.js +2 -4
  899. package/dist/commands/workspace.js.map +1 -1
  900. package/dist/config-store.d.ts +2 -0
  901. package/dist/config-store.d.ts.map +1 -1
  902. package/dist/config-store.js +24 -6
  903. package/dist/config-store.js.map +1 -1
  904. package/dist/daemon-lifecycle.d.ts +9 -0
  905. package/dist/daemon-lifecycle.d.ts.map +1 -1
  906. package/dist/daemon-lifecycle.js +61 -19
  907. package/dist/daemon-lifecycle.js.map +1 -1
  908. package/dist/daemon-reachability.d.ts +18 -0
  909. package/dist/daemon-reachability.d.ts.map +1 -0
  910. package/dist/daemon-reachability.js +48 -0
  911. package/dist/daemon-reachability.js.map +1 -0
  912. package/dist/lib/file-transfer.d.ts +1 -1
  913. package/dist/lib/file-transfer.d.ts.map +1 -1
  914. package/dist/lib/file-transfer.js +17 -5
  915. package/dist/lib/file-transfer.js.map +1 -1
  916. package/dist/lib/scope/mission-composition.d.ts.map +1 -1
  917. package/dist/lib/scope/mission-composition.js +11 -0
  918. package/dist/lib/scope/mission-composition.js.map +1 -1
  919. package/dist/lib/scope/scaffold-placeholder.d.ts +4 -4
  920. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  921. package/dist/lib/scope/scaffold-placeholder.js +4 -4
  922. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  923. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  924. package/dist/lib/scope/scope-fs.js +10 -16
  925. package/dist/lib/scope/scope-fs.js.map +1 -1
  926. package/dist/lib/scope-templates/slice-progress.md +11 -7
  927. package/dist/restore-packet/claude-transcript-parser.d.ts.map +1 -1
  928. package/dist/restore-packet/claude-transcript-parser.js +2 -0
  929. package/dist/restore-packet/claude-transcript-parser.js.map +1 -1
  930. package/dist/restore-packet/codex-jsonl-parser.d.ts.map +1 -1
  931. package/dist/restore-packet/codex-jsonl-parser.js +2 -0
  932. package/dist/restore-packet/codex-jsonl-parser.js.map +1 -1
  933. package/dist/restore-packet/runtime-detect.d.ts.map +1 -1
  934. package/dist/restore-packet/runtime-detect.js +2 -0
  935. package/dist/restore-packet/runtime-detect.js.map +1 -1
  936. package/package.json +4 -3
  937. package/tui/dist/attention/source-continuity.d.ts.map +1 -1
  938. package/tui/dist/attention/source-continuity.js +5 -3
  939. package/tui/dist/attention/source-continuity.js.map +1 -1
  940. package/tui/dist/daemon-client.d.ts +2 -1
  941. package/tui/dist/daemon-client.d.ts.map +1 -1
  942. package/tui/dist/daemon-client.js +13 -4
  943. package/tui/dist/daemon-client.js.map +1 -1
  944. package/tui/dist/execution/execution-model.d.ts.map +1 -1
  945. package/tui/dist/execution/execution-model.js +19 -7
  946. package/tui/dist/execution/execution-model.js.map +1 -1
  947. package/tui/dist/grammar.d.ts.map +1 -1
  948. package/tui/dist/grammar.js +3 -2
  949. package/tui/dist/grammar.js.map +1 -1
  950. package/tui/dist/health/health-model.d.ts.map +1 -1
  951. package/tui/dist/health/health-model.js +17 -5
  952. package/tui/dist/health/health-model.js.map +1 -1
  953. package/tui/dist/hydrate.d.ts.map +1 -1
  954. package/tui/dist/hydrate.js +1 -0
  955. package/tui/dist/hydrate.js.map +1 -1
  956. package/tui/dist/input.d.ts.map +1 -1
  957. package/tui/dist/input.js +5 -0
  958. package/tui/dist/input.js.map +1 -1
  959. package/tui/dist/live-events.d.ts +2 -2
  960. package/tui/dist/live-events.d.ts.map +1 -1
  961. package/tui/dist/live-events.js +65 -27
  962. package/tui/dist/live-events.js.map +1 -1
  963. package/tui/dist/local-reading.d.ts.map +1 -1
  964. package/tui/dist/local-reading.js +2 -0
  965. package/tui/dist/local-reading.js.map +1 -1
  966. package/tui/dist/main.js +16 -3
  967. package/tui/dist/main.js.map +1 -1
  968. package/tui/dist/page-read.d.ts.map +1 -1
  969. package/tui/dist/page-read.js +4 -1
  970. package/tui/dist/page-read.js.map +1 -1
  971. package/tui/dist/render.d.ts +2 -0
  972. package/tui/dist/render.d.ts.map +1 -1
  973. package/tui/dist/render.js +15 -4
  974. package/tui/dist/render.js.map +1 -1
  975. package/tui/dist/scopes/scopes-model.d.ts.map +1 -1
  976. package/tui/dist/scopes/scopes-model.js +36 -31
  977. package/tui/dist/scopes/scopes-model.js.map +1 -1
  978. package/tui/dist/socket-server.d.ts +6 -2
  979. package/tui/dist/socket-server.d.ts.map +1 -1
  980. package/tui/dist/socket-server.js +159 -14
  981. package/tui/dist/socket-server.js.map +1 -1
  982. package/tui/dist/types.d.ts +18 -0
  983. package/tui/dist/types.d.ts.map +1 -1
  984. package/ui/dist/assets/{index-N-SdPj-I.css → index-DNU3XZr_.css} +1 -1
  985. package/ui/dist/assets/{index-BVW54ItO.js → index-HHSvwF97.js} +75 -75
  986. package/ui/dist/index.html +2 -2
@@ -1,23 +1,11 @@
1
1
  import { accessSync, constants } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { isAbsolute, join, relative } from "node:path";
2
+ import { isAbsolute, join, relative, sep } from "node:path";
4
3
  import { getCompatibleOpenRigPath } from "../openrig-compat.js";
4
+ import { shellQuote as quoteShellArgument } from "../adapters/shell-quote.js";
5
5
  import { reanchorBuiltinStartupFile, reanchorShippedProjectionEntry } from "./builtin-startup-files.js";
6
+ import { validatePreRestore } from "./restore-preconditions.js";
6
7
  // --- Service ---
7
8
  const DAEMON_HEALTHY_PATTERN = /^Daemon running\b/m;
8
- // OPR.0.3.2.14 — fallback subpath uses a generic .openrig placeholder
9
- // rather than an internal-team layout, to close the source-side
10
- // privacy leak. Fallback preserved per slice README §"Architecture
11
- // note" (option-A removal cascaded 36 test yellows in 0.3.1 cleanup).
12
- const SUBSTRATE_SHARED_DOCS_ROOT = process.env["OPENRIG_SUBSTRATE_SHARED_DOCS"]
13
- ?? join(homedir(), ".openrig", "shared-docs");
14
- // OPR.0.3.2.14 — these four constants used to be copy-pasted in 7+
15
- // test files. Exporting from source + importing in tests eliminates
16
- // the divergence class that broke 17 tests during 0.3.1 cleanup.
17
- export const CLAUDE_HOOKS_ROOT = join(SUBSTRATE_SHARED_DOCS_ROOT, "control-plane", "services", "claude-hooks");
18
- export const CLAUDE_SESSION_START_COMPACT_COMMAND = join(CLAUDE_HOOKS_ROOT, "bin", "session-start-compact-context.sh");
19
- export const CLAUDE_USER_PROMPT_SUBMIT_COMMAND = join(CLAUDE_HOOKS_ROOT, "bin", "userpromptsubmit-queue-attention.sh");
20
- export const CLAUDE_HOOK_FRAGMENT_PATH = join(CLAUDE_HOOKS_ROOT, "config", "settings.fragment.json");
21
9
  export class RestoreCheckService {
22
10
  deps;
23
11
  constructor(deps) {
@@ -32,6 +20,7 @@ export class RestoreCheckService {
32
20
  const deferredAssessmentChecks = [];
33
21
  const rigRollupInputs = [];
34
22
  const recoveryRigInputs = [];
23
+ const restoreInputsByRig = new Map();
35
24
  // Host-level checks — daemon probe throw produces unknown (not not_restorable).
36
25
  // Daemon definitely-down (healthy=false, negative text) is red/not_restorable.
37
26
  // Daemon probe exception (socket unavailable, etc.) is unknown.
@@ -88,6 +77,17 @@ export class RestoreCheckService {
88
77
  { check: "probe.error", status: "red", evidence: `Failed to get node inventory for ${rig.name}: ${err instanceof Error ? err.message : String(err)}`, remediation: "Check daemon status" },
89
78
  ]);
90
79
  }
80
+ // No added snapshot/history read on a routine status poll for an all-ready rig.
81
+ // Explicit restore-check still assesses its next restore, even while it is running.
82
+ let preconditionError;
83
+ const allReady = nodes.length > 0 && nodes.every((node) => Boolean(node.canonicalSessionName) && node.sessionStatus === "running" && node.startupStatus === "ready");
84
+ if (!opts.recoveryOnly || !allReady) {
85
+ const preconditions = this.checkRestorePreconditions(rig);
86
+ checks.push(preconditions.check);
87
+ rigChecks.push(preconditions.check);
88
+ preconditionError = preconditions.error;
89
+ restoreInputsByRig.set(rig.rigId, { snapshot: preconditions.snapshot, error: preconditions.error });
90
+ }
91
91
  for (const node of nodes) {
92
92
  const readinessCheck = this.checkSeatReadiness(node);
93
93
  checks.push(readinessCheck);
@@ -129,7 +129,7 @@ export class RestoreCheckService {
129
129
  checks.push(resumeCheck);
130
130
  rigChecks.push(resumeCheck);
131
131
  if (!opts.noQueue) {
132
- const queueCheck = this.checkQueueFile(rig.name, node);
132
+ const queueCheck = this.checkQueueStore(node);
133
133
  checks.push(queueCheck);
134
134
  rigChecks.push(queueCheck);
135
135
  }
@@ -139,11 +139,11 @@ export class RestoreCheckService {
139
139
  rigChecks.push(hooksCheck);
140
140
  }
141
141
  }
142
- rigRollupInputs.push({ rig, nodes, checks: rigChecks });
142
+ rigRollupInputs.push({ rig, nodes, checks: rigChecks, preconditionError });
143
143
  }
144
144
  const rigRollups = rigRollupInputs.map((input) => this.buildRigRollup(input));
145
145
  for (const rollup of rigRollups) {
146
- const latestSnapshot = this.inspectLatestSnapshot(rollup.rigId);
146
+ const latestSnapshot = restoreInputsByRig.get(rollup.rigId) ?? this.inspectLatestSnapshot(rollup.rigId);
147
147
  recoveryRigInputs.push({
148
148
  rigId: rollup.rigId,
149
149
  rigName: rollup.rigName,
@@ -156,6 +156,55 @@ export class RestoreCheckService {
156
156
  }
157
157
  return this.buildResult(checks, rigRollups, hostInfraCheck.hostInfra, recoveryRigInputs, deferredAssessmentChecks);
158
158
  }
159
+ checkRestorePreconditions(rig) {
160
+ const check = `rig.${rig.name}.restore-preconditions`;
161
+ try {
162
+ const input = this.deps.getRestoreInputs(rig.rigId);
163
+ if ("unavailable" in input)
164
+ throw new Error(input.unavailable);
165
+ if ("currentStateRehydrate" in input) {
166
+ const { ok, blockers } = input.currentStateRehydrate;
167
+ return {
168
+ snapshot: null,
169
+ check: {
170
+ check,
171
+ status: ok ? "yellow" : "red",
172
+ evidence: ok
173
+ ? `${input.reason}; restore inputs not inspected. Current-state rehydrate is eligible to attempt: ordinary rig up would capture current state. This does not validate that future snapshot or prove native continuity.`
174
+ : `${input.reason}; current-state rehydrate is not eligible: ${blockers.join("; ")}`,
175
+ remediation: "Inspect the rig's persisted state before choosing manual recovery",
176
+ remediationSafe: true,
177
+ },
178
+ };
179
+ }
180
+ const validation = validatePreRestore(input.snapshot.data, {
181
+ fsOps: { exists: this.deps.exists },
182
+ servicesRecord: input.servicesRecord,
183
+ });
184
+ const { blockers, warnings } = validation;
185
+ return {
186
+ snapshot: { id: input.snapshot.id, kind: input.snapshot.kind },
187
+ check: {
188
+ check,
189
+ status: blockers.length > 0 ? "red" : warnings.length > 0 ? "yellow" : "green",
190
+ evidence: `Snapshot ${input.snapshot.id}: ${[
191
+ ...blockers.map((blocker) => `${blocker.code}: ${blocker.message}`),
192
+ ...warnings,
193
+ ].join("; ") || "restore pre-validation passed (not a native resume proof)"}`,
194
+ remediation: blockers.map((blocker) => blocker.remediation).join("; "),
195
+ remediationSafe: false,
196
+ },
197
+ };
198
+ }
199
+ catch (err) {
200
+ const error = `Restore preconditions unavailable for ${rig.name}: ${err instanceof Error ? err.message : String(err)}`;
201
+ return {
202
+ snapshot: null,
203
+ error,
204
+ check: { check, status: "yellow", evidence: error, remediation: "Inspect the rig's restore snapshot and persisted inputs before trusting restore", remediationSafe: true },
205
+ };
206
+ }
207
+ }
159
208
  /** Returns CheckEntry on success/definite-down; null on probe exception
160
209
  * (uninspectable state → caller should produce verdict: unknown). */
161
210
  checkDaemonReachable() {
@@ -414,7 +463,7 @@ export class RestoreCheckService {
414
463
  const openRigHome = getCompatibleOpenRigPath("");
415
464
  const resolved = join(openRigHome, relativePath);
416
465
  const relativeToHome = relative(openRigHome, resolved);
417
- if (relativeToHome.startsWith("..") || isAbsolute(relativeToHome)) {
466
+ if (relativeToHome === ".." || relativeToHome.startsWith(`..${sep}`) || isAbsolute(relativeToHome)) {
418
467
  return { error: "path traversal outside OPENRIG_HOME rejected" };
419
468
  }
420
469
  return { path: resolved };
@@ -600,25 +649,26 @@ export class RestoreCheckService {
600
649
  remediationSafe: false,
601
650
  };
602
651
  }
603
- checkQueueFile(rigName, node) {
652
+ checkQueueStore(node) {
604
653
  const session = node.canonicalSessionName ?? node.logicalId;
605
- const check = `seat.${session}.queue-file`;
606
- // Derive queue file path from pod/member
607
- const podName = node.podNamespace ?? (node.logicalId.includes(".") ? node.logicalId.split(".")[0] : null);
608
- const memberName = node.logicalId.includes(".") ? node.logicalId.split(".").slice(1).join(".") : node.logicalId;
609
- if (!podName) {
610
- return { check, status: "yellow", evidence: "Cannot derive queue path (no pod namespace)", remediation: "" };
654
+ const check = `seat.${session}.queue-store`;
655
+ let probe;
656
+ try {
657
+ probe = this.deps.probeQueueStore?.();
611
658
  }
612
- // OPR.0.3.2.14 — subpath scrubbed (internal-team layout → generic placeholder).
613
- const substrateRoot = this.deps.substrateRoot ?? join(process.env["HOME"] ?? "~", ".openrig", "shared-docs");
614
- const queuePath = join(substrateRoot, "rigs", rigName, "state", podName, `${memberName}.queue.md`);
615
- if (this.deps.exists(queuePath)) {
616
- return { check, status: "green", evidence: `Queue file exists at ${queuePath}`, remediation: "" };
659
+ catch (err) {
660
+ probe = {
661
+ available: false,
662
+ evidence: `Daemon SQLite queue_items store probe failed: ${err instanceof Error ? err.message : String(err)}`,
663
+ };
664
+ }
665
+ if (probe?.available) {
666
+ return { check, status: "green", evidence: probe.evidence, remediation: "" };
617
667
  }
618
668
  return {
619
669
  check, status: "yellow",
620
- evidence: `Queue file missing: ${queuePath}`,
621
- remediation: "Create the missing durable queue file before relying on restored queue continuity",
670
+ evidence: probe?.evidence ?? "Daemon SQLite queue store could not be inspected",
671
+ remediation: "Restore the daemon SQLite queue store before relying on queue continuity",
622
672
  remediationSafe: false,
623
673
  };
624
674
  }
@@ -638,105 +688,118 @@ export class RestoreCheckService {
638
688
  remediation: "",
639
689
  };
640
690
  }
641
- const candidates = this.getClaudeSettingsCandidates(node);
642
- const searchedPaths = candidates.map((candidate) => candidate.path);
643
- const cwdUnavailable = !node.cwd;
644
- const inspections = [];
645
- const malformed = [];
646
- for (const candidate of candidates) {
647
- if (!this.deps.exists(candidate.path))
648
- continue;
649
- let parsed;
691
+ // Current Claude activity hooks are selected as a runtime resource and
692
+ // delivered by ClaudeCodeAdapter into the seat CWD. Do not require the
693
+ // retired internal control-plane shell hooks on public installs.
694
+ const startup = node.nodeId ? this.deps.getStartupContext(node.nodeId) : null;
695
+ if (startup?.status === "ok" && !startup.projectionEntries.some((entry) => (entry.category === "runtime_resource" && entry.resourceType === "claude_activity_hooks"))) {
696
+ return {
697
+ check: `seat.${session}.hooks`, status: "green",
698
+ evidence: "Claude activity hooks are not selected for this seat; hook inspection is not applicable",
699
+ remediation: "",
700
+ };
701
+ }
702
+ if (startup?.status === "ok") {
703
+ if (!node.cwd) {
704
+ return {
705
+ check: `seat.${session}.hooks`, status: "yellow",
706
+ evidence: "Claude activity hooks are selected, but seat cwd is unavailable for delivery inspection",
707
+ remediation: "Restore the seat working directory before trusting activity-hook readiness",
708
+ remediationSafe: false,
709
+ };
710
+ }
711
+ const settingsPath = join(node.cwd, ".claude", "settings.local.json");
712
+ const relayPath = join(node.cwd, ".openrig", "hooks", "scripts", "activity-relay.cjs");
713
+ const events = this.deps.getClaudeActivityHookEvents?.() ?? [];
714
+ if (events.length === 0) {
715
+ return {
716
+ check: `seat.${session}.hooks`, status: "yellow",
717
+ evidence: "Claude activity hook events could not be derived from the shipped manifest",
718
+ remediation: "Restore the daemon's Claude activity-hook assets before trusting hook readiness",
719
+ remediationSafe: false,
720
+ };
721
+ }
722
+ if (!this.deps.exists(relayPath) || !this.deps.exists(settingsPath)) {
723
+ return {
724
+ check: `seat.${session}.hooks`, status: "yellow",
725
+ evidence: `Claude activity hook delivery is incomplete: expected relay ${relayPath} and settings ${settingsPath}`,
726
+ remediation: "Relaunch the seat to project its selected Claude activity hooks",
727
+ remediationSafe: false,
728
+ };
729
+ }
730
+ let settings;
650
731
  try {
651
- parsed = JSON.parse(this.deps.readFile(candidate.path));
732
+ settings = JSON.parse(this.deps.readFile(settingsPath));
652
733
  }
653
734
  catch (err) {
654
- malformed.push(`${candidate.path}: ${err instanceof Error ? err.message : String(err)}`);
655
- continue;
735
+ return {
736
+ check: `seat.${session}.hooks`, status: "yellow",
737
+ evidence: `Claude activity-hook settings could not be trusted at ${settingsPath}: ${err instanceof Error ? err.message : String(err)}`,
738
+ remediation: `Fix the Claude settings JSON at ${settingsPath}`,
739
+ remediationSafe: false,
740
+ };
741
+ }
742
+ if (isRecord(settings) && settings["disableAllHooks"] === true) {
743
+ return {
744
+ check: `seat.${session}.hooks`, status: "yellow",
745
+ evidence: `Selected Claude activity hooks are explicitly disabled in ${settingsPath}; projection does not prove usable hooks`,
746
+ remediation: "Review the intentional hook-disable setting before relying on activity-hook readiness",
747
+ remediationSafe: false,
748
+ };
749
+ }
750
+ const missingEvents = events.filter((event) => !this.hasActivityRelayHook(settings, event, relayPath));
751
+ if (missingEvents.length === 0) {
752
+ return {
753
+ check: `seat.${session}.hooks`, status: "green",
754
+ evidence: `Selected Claude activity hooks are projected in ${settingsPath}, with relay present at ${relayPath}; hook execution is not verified`,
755
+ remediation: "",
756
+ };
656
757
  }
657
- inspections.push({
658
- path: candidate.path,
659
- hasSessionStartCompact: this.hasClaudeCommandHook(parsed, "SessionStart", CLAUDE_SESSION_START_COMPACT_COMMAND, "compact"),
660
- hasUserPromptSubmit: this.hasClaudeCommandHook(parsed, "UserPromptSubmit", CLAUDE_USER_PROMPT_SUBMIT_COMMAND),
661
- });
662
- }
663
- if (malformed.length > 0) {
664
758
  return {
665
759
  check: `seat.${session}.hooks`, status: "yellow",
666
- evidence: `Malformed applicable Claude settings file(s): ${malformed.join("; ")}. Claude hook configuration could not be trusted until the malformed applicable settings file is fixed. Searched settings paths: ${searchedPaths.join(", ")}`,
667
- remediation: `Fix Claude settings JSON before trusting hook readiness: ${malformed.map((entry) => entry.split(":")[0]).join(", ")}`,
760
+ evidence: `Claude activity-hook settings at ${settingsPath} are missing relay entries for: ${missingEvents.join(", ")}`,
761
+ remediation: "Relaunch the seat to project its selected Claude activity hooks",
668
762
  remediationSafe: false,
669
763
  };
670
764
  }
671
- const sessionStartPaths = inspections
672
- .filter((inspection) => inspection.hasSessionStartCompact)
673
- .map((inspection) => inspection.path);
674
- const userPromptSubmitPaths = inspections
675
- .filter((inspection) => inspection.hasUserPromptSubmit)
676
- .map((inspection) => inspection.path);
677
- const hasSessionStart = sessionStartPaths.length > 0;
678
- const hasUserPromptSubmit = userPromptSubmitPaths.length > 0;
679
- if (hasSessionStart && hasUserPromptSubmit) {
680
- return {
681
- check: `seat.${session}.hooks`, status: "green",
682
- evidence: `Claude Code hook configuration present, not hook-execution verified; SessionStart matcher compact command found in ${sessionStartPaths.join(", ")}; UserPromptSubmit command found in ${userPromptSubmitPaths.join(", ")}. Searched settings paths: ${searchedPaths.join(", ")}`,
683
- remediation: "",
684
- };
685
- }
686
- const missing = [];
687
- if (!hasSessionStart) {
688
- missing.push(`SessionStart matcher compact command ${CLAUDE_SESSION_START_COMPACT_COMMAND}`);
689
- }
690
- if (!hasUserPromptSubmit) {
691
- missing.push(`UserPromptSubmit command ${CLAUDE_USER_PROMPT_SUBMIT_COMMAND}`);
692
- }
693
- const inspected = inspections.length > 0
694
- ? `Existing settings inspected: ${inspections.map((inspection) => inspection.path).join(", ")}.`
695
- : "No existing Claude settings files were found.";
696
- const cwdEvidence = cwdUnavailable
697
- ? " project settings were not inspected because cwd is unavailable."
698
- : "";
699
765
  return {
700
766
  check: `seat.${session}.hooks`, status: "yellow",
701
- evidence: `Claude Code hook configuration missing required entries: ${missing.join("; ")}. Searched settings paths: ${searchedPaths.join(", ")}. ${inspected}${cwdEvidence}`,
702
- remediation: `Merge required Claude hook entries from ${CLAUDE_HOOK_FRAGMENT_PATH} into host-global or project Claude settings`,
767
+ evidence: startup?.status === "probe_error"
768
+ ? `Claude activity-hook selection could not be inspected: ${startup.evidence}`
769
+ : "Claude activity-hook selection could not be inspected because persisted startup context is unavailable",
770
+ remediation: "Restore the seat startup context before trusting hook readiness",
703
771
  remediationSafe: false,
704
772
  };
705
773
  }
706
- getClaudeSettingsCandidates(node) {
707
- const home = process.env["HOME"] ?? "~";
708
- const candidates = [{
709
- path: join(home, ".claude", "settings.json"),
710
- scope: "host-global",
711
- }];
712
- if (node.cwd) {
713
- candidates.push({
714
- path: join(node.cwd, ".claude", "settings.json"),
715
- scope: "project",
716
- });
717
- candidates.push({
718
- path: join(node.cwd, ".claude", "settings.local.json"),
719
- scope: "project-local",
720
- });
721
- }
722
- return candidates;
723
- }
724
- hasClaudeCommandHook(settings, eventName, requiredCommand, requiredMatcher) {
774
+ hasActivityRelayHook(settings, eventName, relayPath) {
725
775
  if (!isRecord(settings) || !isRecord(settings["hooks"]))
726
776
  return false;
727
777
  const eventEntries = settings["hooks"][eventName];
728
778
  if (!Array.isArray(eventEntries))
729
779
  return false;
730
- return eventEntries.some((entry) => {
731
- if (!isRecord(entry))
732
- return false;
733
- if (requiredMatcher !== undefined && entry["matcher"] !== requiredMatcher)
734
- return false;
735
- const hooks = entry["hooks"];
736
- if (!Array.isArray(hooks))
780
+ const contexts = eventName === "SessionStart" ? ["startup", "resume"]
781
+ : eventName === "Notification" ? ["permission_prompt", "idle_prompt"] : [null];
782
+ return contexts.every((context) => eventEntries.some((entry) => {
783
+ if (!isRecord(entry) || !Array.isArray(entry["hooks"]))
737
784
  return false;
738
- return hooks.some((hook) => isRecord(hook) && hook["command"] === requiredCommand);
739
- });
785
+ if (context !== null && entry["matcher"] !== undefined && entry["matcher"] !== "" && entry["matcher"] !== "*") {
786
+ if (typeof entry["matcher"] !== "string")
787
+ return false;
788
+ try {
789
+ const matcher = entry["matcher"];
790
+ const matches = /^[a-zA-Z0-9_\- ,|]+$/.test(matcher)
791
+ ? matcher.split(/[|,]/).some((value) => value.trim() === context)
792
+ : new RegExp(matcher).test(context);
793
+ if (!matches)
794
+ return false;
795
+ }
796
+ catch {
797
+ return false;
798
+ }
799
+ }
800
+ return entry["hooks"].some((hook) => (isRecord(hook) && hook["type"] === "command" && typeof hook["command"] === "string" &&
801
+ hook["command"] === `node ${quoteShellArgument(relayPath)}`));
802
+ }));
740
803
  }
741
804
  checkSpecPresent(rig) {
742
805
  // OPR.0.3.2.14 — subpath scrubbed (internal-team layout → generic placeholder).
@@ -744,11 +807,13 @@ export class RestoreCheckService {
744
807
  const rigRoot = join(substrateRoot, "rigs", rig.name);
745
808
  const rigYaml = join(rigRoot, "rig.yaml");
746
809
  if (!this.deps.exists(rigRoot)) {
810
+ // A rig can launch from a spec anywhere, and restore reads the snapshot, never the spec,
811
+ // so a spec this check cannot find is a caveat, not a blocker.
747
812
  return {
748
- check: `rig.${rig.name}.spec-present`, status: "red",
749
- evidence: `Rig root missing: ${rigRoot}`,
750
- remediation: `Create the rig root directory at ${rigRoot} with a rig.yaml spec`,
751
- remediationSafe: false,
813
+ check: `rig.${rig.name}.spec-present`, status: "yellow",
814
+ evidence: `Not checked: no launch spec location could be established; looked for ${rigYaml}, and ${rigRoot} does not exist`,
815
+ remediation: `Confirm where this rig's spec lives; restore-check only looks at ${rigYaml}`,
816
+ remediationSafe: true,
752
817
  };
753
818
  }
754
819
  if (!this.deps.exists(rigYaml)) {
@@ -790,6 +855,9 @@ export class RestoreCheckService {
790
855
  if (red > 0) {
791
856
  verdict = "not_restorable";
792
857
  }
858
+ else if (rigs.some((rig) => rig.status === "unknown")) {
859
+ verdict = "unknown";
860
+ }
793
861
  else if (yellow > 0) {
794
862
  verdict = "restorable_with_caveats";
795
863
  }
@@ -877,12 +945,12 @@ export class RestoreCheckService {
877
945
  attention_required: acc.attention_required + r.classCounts.attention_required,
878
946
  unknown: acc.unknown + r.classCounts.unknown,
879
947
  }), { ready: 0, ready_with_caveats: 0, not_ready: 0, attention_required: 0, unknown: 0 }),
880
- hostInfra: result.verdict === "unknown"
948
+ hostInfra: hostInfra ?? (result.verdict === "unknown"
881
949
  ? {
882
950
  status: "unknown",
883
951
  evidence: "Host bootstrap/autostart source could not be inspected because restore-check state is unknown",
884
952
  }
885
- : (hostInfra ?? {
953
+ : {
886
954
  status: "not_inspected",
887
955
  evidence: "No host bootstrap/autostart source inspected by v0; readiness only covers observable daemon, rig, and seat checks",
888
956
  }),
@@ -898,14 +966,14 @@ export class RestoreCheckService {
898
966
  proven.push("transcript_readable");
899
967
  if (checks.some((c) => c.check.endsWith(".spec-present") && c.status === "green"))
900
968
  proven.push("spec_present");
901
- if (checks.some((c) => c.check.endsWith(".queue-file") && c.status === "green"))
902
- proven.push("queue_file_present");
969
+ if (checks.some((c) => c.check.endsWith(".queue-store") && c.status === "green"))
970
+ proven.push("queue_store_available");
903
971
  if (checks.some((c) => c.check.endsWith(".resume-path") && c.status === "green"))
904
972
  proven.push("seat_identity_resolvable");
905
973
  return proven;
906
974
  }
907
975
  buildRecovery(verdict, checks, recoveryInputs) {
908
- if (verdict === "unknown") {
976
+ if (verdict === "unknown" && recoveryInputs.length === 0) {
909
977
  const evidence = checks.find((check) => check.status === "red")?.evidence
910
978
  ?? "Restore-check state could not be inspected";
911
979
  return {
@@ -935,7 +1003,9 @@ export class RestoreCheckService {
935
1003
  unknown: [],
936
1004
  };
937
1005
  }
938
- const allReady = recoveryInputs.every((input) => input.runningReadyNodes === input.expectedNodes);
1006
+ const allReady = recoveryInputs.every((input) => !input.snapshotLookupError
1007
+ && input.runningReadyNodes === input.expectedNodes
1008
+ && !input.blockingChecks.some((check) => this.classifyRecoveryBlockingCheck(check) === "restore_input"));
939
1009
  if (allReady) {
940
1010
  return {
941
1011
  status: "not_needed",
@@ -949,8 +1019,6 @@ export class RestoreCheckService {
949
1019
  const blocked = [];
950
1020
  const unknown = [];
951
1021
  for (const input of recoveryInputs) {
952
- if (input.runningReadyNodes === input.expectedNodes)
953
- continue;
954
1022
  if (input.snapshotLookupError) {
955
1023
  unknown.push({
956
1024
  scope: "rig",
@@ -970,6 +1038,8 @@ export class RestoreCheckService {
970
1038
  });
971
1039
  continue;
972
1040
  }
1041
+ if (input.runningReadyNodes === input.expectedNodes)
1042
+ continue;
973
1043
  if (input.latestSnapshot) {
974
1044
  actions.push({
975
1045
  scope: "rig",
@@ -989,7 +1059,7 @@ export class RestoreCheckService {
989
1059
  rigName: input.rigName,
990
1060
  action: "restore_from_latest_snapshot",
991
1061
  command: `rig up --existing ${shellQuote(input.rigName)}`,
992
- reason: "Rig has persisted current DB state but no latest snapshot; rig up will capture an auto-rehydrate snapshot and restore.",
1062
+ reason: "Current persisted state is eligible for an ordinary restore attempt; rig up would capture an auto-rehydrate snapshot whose restore inputs have not been inspected.",
993
1063
  safe: false,
994
1064
  blocking: true,
995
1065
  });
@@ -1012,6 +1082,8 @@ export class RestoreCheckService {
1012
1082
  classifyRecoveryBlockingCheck(check) {
1013
1083
  if (check.status !== "red")
1014
1084
  return "other";
1085
+ if (check.check.startsWith("rig.") && check.check.endsWith(".restore-preconditions"))
1086
+ return "restore_input";
1015
1087
  if (check.check.startsWith("seat.") && check.check.endsWith(".readiness")) {
1016
1088
  if (check.evidence.includes("Missing canonical session identity")) {
1017
1089
  return "restore_input";
@@ -1088,7 +1160,11 @@ export class RestoreCheckService {
1088
1160
  }
1089
1161
  let verdict;
1090
1162
  let status;
1091
- if (blockingChecks.length > 0) {
1163
+ if (input.preconditionError) {
1164
+ verdict = "unknown";
1165
+ status = "unknown";
1166
+ }
1167
+ else if (blockingChecks.length > 0) {
1092
1168
  verdict = "not_restorable";
1093
1169
  status = "not_ready";
1094
1170
  }