@openrig/cli 0.5.1 → 0.5.2

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 (473) hide show
  1. package/daemon/assets/guidance/openrig-start.md +21 -64
  2. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -2
  3. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  4. package/daemon/dist/adapters/codex-runtime-adapter.js +18 -10
  5. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  6. package/daemon/dist/build-info.js +3 -3
  7. package/daemon/dist/domain/codex-thread-id.d.ts +5 -2
  8. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  9. package/daemon/dist/domain/codex-thread-id.js +9 -4
  10. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  11. package/daemon/dist/domain/crash-cart-conductor.d.ts +173 -0
  12. package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -0
  13. package/daemon/dist/domain/crash-cart-conductor.js +233 -0
  14. package/daemon/dist/domain/crash-cart-conductor.js.map +1 -0
  15. package/daemon/dist/domain/crash-cart-probes.d.ts +7 -6
  16. package/daemon/dist/domain/crash-cart-probes.d.ts.map +1 -1
  17. package/daemon/dist/domain/crash-cart-probes.js +57 -7
  18. package/daemon/dist/domain/crash-cart-probes.js.map +1 -1
  19. package/daemon/dist/domain/hosts/fanout-contract.d.ts +4 -0
  20. package/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -1
  21. package/daemon/dist/domain/hosts/fanout-contract.js +15 -0
  22. package/daemon/dist/domain/hosts/fanout-contract.js.map +1 -1
  23. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +11 -0
  24. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  25. package/daemon/dist/domain/hosts/hosts-registry-reader.js +34 -1
  26. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  27. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +67 -0
  28. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -0
  29. package/daemon/dist/domain/model-divergence/current-generation-record.js +204 -0
  30. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -0
  31. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +13 -0
  32. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -0
  33. package/daemon/dist/domain/model-divergence/effective-model-readers.js +163 -0
  34. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -0
  35. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +113 -0
  36. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -0
  37. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +190 -0
  38. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -0
  39. package/daemon/dist/domain/predecessor-recap-resolver.d.ts +10 -3
  40. package/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +1 -1
  41. package/daemon/dist/domain/predecessor-recap-resolver.js +61 -14
  42. package/daemon/dist/domain/predecessor-recap-resolver.js.map +1 -1
  43. package/daemon/dist/domain/resume-metadata-refresher.d.ts +11 -2
  44. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  45. package/daemon/dist/domain/resume-metadata-refresher.js +17 -9
  46. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  47. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  48. package/daemon/dist/domain/review/gather.js +3 -2
  49. package/daemon/dist/domain/review/gather.js.map +1 -1
  50. package/daemon/dist/domain/{rig-policy/rig-policy-defaults.d.ts → rig-mode/rig-mode-defaults.d.ts} +2 -2
  51. package/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -0
  52. package/daemon/dist/domain/{rig-policy/rig-policy-defaults.js → rig-mode/rig-mode-defaults.js} +1 -1
  53. package/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -0
  54. package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.d.ts → daemon/dist/domain/rig-mode/rig-mode-store.d.ts} +6 -6
  55. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -0
  56. package/daemon/dist/domain/{rig-policy/rig-policy-store.js → rig-mode/rig-mode-store.js} +5 -5
  57. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -0
  58. package/daemon/dist/domain/{rig-policy/rig-policy-types.d.ts → rig-mode/rig-mode-types.d.ts} +1 -1
  59. package/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -0
  60. package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.js → daemon/dist/domain/rig-mode/rig-mode-types.js} +1 -1
  61. package/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -0
  62. package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts → daemon/dist/domain/rig-mode/rig-mode-validator.d.ts} +2 -2
  63. package/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +1 -0
  64. package/daemon/dist/domain/{rig-policy/rig-policy-validator.js → rig-mode/rig-mode-validator.js} +3 -3
  65. package/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +1 -0
  66. package/daemon/dist/domain/rigspec-schema.d.ts +7 -0
  67. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  68. package/daemon/dist/domain/rigspec-schema.js +7 -0
  69. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  70. package/daemon/dist/domain/scope/node-file.d.ts +37 -0
  71. package/daemon/dist/domain/scope/node-file.d.ts.map +1 -0
  72. package/daemon/dist/domain/scope/node-file.js +55 -0
  73. package/daemon/dist/domain/scope/node-file.js.map +1 -0
  74. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +11 -0
  75. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  76. package/daemon/dist/domain/scope/plan-lock-artifacts.js +40 -0
  77. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  78. package/daemon/dist/domain/scope/scope-approve.d.ts +4 -0
  79. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  80. package/daemon/dist/domain/scope/scope-approve.js +56 -7
  81. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  82. package/daemon/dist/domain/scope/scope-audit.d.ts +1 -1
  83. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  84. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  85. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  86. package/daemon/dist/domain/scope/scope-view-projection.js +5 -2
  87. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  88. package/daemon/dist/domain/seat-handover-service.d.ts +32 -15
  89. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  90. package/daemon/dist/domain/seat-handover-service.js +42 -17
  91. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  92. package/daemon/dist/domain/seat-identity-reconciler.d.ts +17 -0
  93. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  94. package/daemon/dist/domain/seat-identity-reconciler.js +22 -0
  95. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  96. package/daemon/dist/domain/session-jsonl.js +1 -1
  97. package/daemon/dist/domain/session-jsonl.js.map +1 -1
  98. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  99. package/daemon/dist/domain/slices/slice-detail-projector.js +14 -2
  100. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  101. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  102. package/daemon/dist/domain/slices/slice-indexer.js +16 -3
  103. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  104. package/daemon/dist/domain/spec-live-conformance.d.ts +22 -0
  105. package/daemon/dist/domain/spec-live-conformance.d.ts.map +1 -1
  106. package/daemon/dist/domain/spec-live-conformance.js +35 -0
  107. package/daemon/dist/domain/spec-live-conformance.js.map +1 -1
  108. package/daemon/dist/domain/sync-site-wrap.d.ts +9 -0
  109. package/daemon/dist/domain/sync-site-wrap.d.ts.map +1 -1
  110. package/daemon/dist/domain/sync-site-wrap.js +11 -0
  111. package/daemon/dist/domain/sync-site-wrap.js.map +1 -1
  112. package/daemon/dist/domain/types.d.ts +15 -0
  113. package/daemon/dist/domain/types.d.ts.map +1 -1
  114. package/daemon/dist/domain/types.js.map +1 -1
  115. package/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  116. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  117. package/daemon/dist/domain/user-settings/settings-store.js +20 -0
  118. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  119. package/daemon/dist/domain/watchdog-auto-registration.d.ts +7 -0
  120. package/daemon/dist/domain/watchdog-auto-registration.d.ts.map +1 -1
  121. package/daemon/dist/domain/watchdog-auto-registration.js +27 -0
  122. package/daemon/dist/domain/watchdog-auto-registration.js.map +1 -1
  123. package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  124. package/daemon/dist/domain/workspace/workspace-doctor.js +4 -3
  125. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  126. package/daemon/dist/routes/activity.js +11 -2
  127. package/daemon/dist/routes/activity.js.map +1 -1
  128. package/daemon/dist/routes/bundles.d.ts +27 -0
  129. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  130. package/daemon/dist/routes/bundles.js +107 -26
  131. package/daemon/dist/routes/bundles.js.map +1 -1
  132. package/daemon/dist/routes/crash-cart.d.ts +4 -0
  133. package/daemon/dist/routes/crash-cart.d.ts.map +1 -0
  134. package/daemon/dist/routes/crash-cart.js +144 -0
  135. package/daemon/dist/routes/crash-cart.js.map +1 -0
  136. package/daemon/dist/routes/missions.d.ts.map +1 -1
  137. package/daemon/dist/routes/missions.js +10 -6
  138. package/daemon/dist/routes/missions.js.map +1 -1
  139. package/daemon/dist/routes/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  140. package/daemon/dist/routes/rig-mode.d.ts.map +1 -0
  141. package/{node_modules/@openrig/daemon/dist/routes/rig-policy.js → daemon/dist/routes/rig-mode.js} +13 -13
  142. package/daemon/dist/routes/rig-mode.js.map +1 -0
  143. package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  144. package/daemon/dist/routes/scope-approve.js +4 -0
  145. package/daemon/dist/routes/scope-approve.js.map +1 -1
  146. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  147. package/daemon/dist/routes/scope-audit.js +29 -2
  148. package/daemon/dist/routes/scope-audit.js.map +1 -1
  149. package/daemon/dist/routes/seat.js +7 -2
  150. package/daemon/dist/routes/seat.js.map +1 -1
  151. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  152. package/daemon/dist/routes/sessions.js +11 -1
  153. package/daemon/dist/routes/sessions.js.map +1 -1
  154. package/daemon/dist/server.d.ts +3 -1
  155. package/daemon/dist/server.d.ts.map +1 -1
  156. package/daemon/dist/server.js +15 -5
  157. package/daemon/dist/server.js.map +1 -1
  158. package/daemon/dist/startup.d.ts.map +1 -1
  159. package/daemon/dist/startup.js +134 -5
  160. package/daemon/dist/startup.js.map +1 -1
  161. package/dist/build-info.js +3 -3
  162. package/dist/commands/bundle.d.ts.map +1 -1
  163. package/dist/commands/bundle.js +6 -0
  164. package/dist/commands/bundle.js.map +1 -1
  165. package/dist/commands/capture.d.ts.map +1 -1
  166. package/dist/commands/capture.js +2 -0
  167. package/dist/commands/capture.js.map +1 -1
  168. package/dist/commands/crash-cart.d.ts.map +1 -1
  169. package/dist/commands/crash-cart.js.map +1 -1
  170. package/dist/commands/host.d.ts +5 -0
  171. package/dist/commands/host.d.ts.map +1 -1
  172. package/dist/commands/host.js +59 -3
  173. package/dist/commands/host.js.map +1 -1
  174. package/dist/commands/policy.d.ts +5 -0
  175. package/dist/commands/policy.d.ts.map +1 -0
  176. package/dist/commands/policy.js +307 -0
  177. package/dist/commands/policy.js.map +1 -0
  178. package/dist/commands/ps.d.ts +4 -0
  179. package/dist/commands/ps.d.ts.map +1 -1
  180. package/dist/commands/ps.js +4 -0
  181. package/dist/commands/ps.js.map +1 -1
  182. package/dist/commands/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  183. package/dist/commands/rig-mode.d.ts.map +1 -0
  184. package/dist/commands/{rig-policy.js → rig-mode.js} +17 -17
  185. package/dist/commands/rig-mode.js.map +1 -0
  186. package/dist/commands/scope.d.ts.map +1 -1
  187. package/dist/commands/scope.js +58 -16
  188. package/dist/commands/scope.js.map +1 -1
  189. package/dist/commands/send.d.ts.map +1 -1
  190. package/dist/commands/send.js +2 -0
  191. package/dist/commands/send.js.map +1 -1
  192. package/dist/commands/setup.d.ts +13 -0
  193. package/dist/commands/setup.d.ts.map +1 -1
  194. package/dist/commands/setup.js +3 -3
  195. package/dist/commands/setup.js.map +1 -1
  196. package/dist/commands/transcript.d.ts.map +1 -1
  197. package/dist/commands/transcript.js +2 -0
  198. package/dist/commands/transcript.js.map +1 -1
  199. package/dist/commands/whoami.d.ts.map +1 -1
  200. package/dist/commands/whoami.js +11 -1
  201. package/dist/commands/whoami.js.map +1 -1
  202. package/dist/config-store.d.ts +3 -1
  203. package/dist/config-store.d.ts.map +1 -1
  204. package/dist/config-store.js +18 -0
  205. package/dist/config-store.js.map +1 -1
  206. package/dist/cross-host-target.d.ts +8 -1
  207. package/dist/cross-host-target.d.ts.map +1 -1
  208. package/dist/cross-host-target.js +23 -4
  209. package/dist/cross-host-target.js.map +1 -1
  210. package/dist/daemon-lifecycle.d.ts +10 -1
  211. package/dist/daemon-lifecycle.d.ts.map +1 -1
  212. package/dist/daemon-lifecycle.js +26 -1
  213. package/dist/daemon-lifecycle.js.map +1 -1
  214. package/dist/front-door.d.ts.map +1 -1
  215. package/dist/front-door.js +11 -1
  216. package/dist/front-door.js.map +1 -1
  217. package/dist/host-bindings.d.ts +62 -0
  218. package/dist/host-bindings.d.ts.map +1 -0
  219. package/dist/host-bindings.js +147 -0
  220. package/dist/host-bindings.js.map +1 -0
  221. package/dist/host-registry.d.ts +14 -1
  222. package/dist/host-registry.d.ts.map +1 -1
  223. package/dist/host-registry.js +30 -2
  224. package/dist/host-registry.js.map +1 -1
  225. package/dist/index.d.ts +2 -2
  226. package/dist/index.d.ts.map +1 -1
  227. package/dist/index.js +5 -2
  228. package/dist/index.js.map +1 -1
  229. package/dist/lib/hosts/fanout-contract.d.ts +4 -0
  230. package/dist/lib/hosts/fanout-contract.d.ts.map +1 -1
  231. package/dist/lib/hosts/fanout-contract.js +15 -0
  232. package/dist/lib/hosts/fanout-contract.js.map +1 -1
  233. package/dist/lib/path-safety.d.ts +8 -0
  234. package/dist/lib/path-safety.d.ts.map +1 -0
  235. package/dist/lib/path-safety.js +24 -0
  236. package/dist/lib/path-safety.js.map +1 -0
  237. package/dist/lib/permission-policy/policy-ref.d.ts +89 -0
  238. package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -0
  239. package/dist/lib/permission-policy/policy-ref.js +171 -0
  240. package/dist/lib/permission-policy/policy-ref.js.map +1 -0
  241. package/dist/lib/permission-policy/policy-spec.d.ts +34 -0
  242. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -0
  243. package/dist/lib/permission-policy/policy-spec.js +106 -0
  244. package/dist/lib/permission-policy/policy-spec.js.map +1 -0
  245. package/dist/lib/scope/scope-audit.d.ts +1 -1
  246. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  247. package/dist/lib/scope/scope-audit.js.map +1 -1
  248. package/dist/lib/scope/scope-fs.d.ts +19 -3
  249. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  250. package/dist/lib/scope/scope-fs.js +37 -17
  251. package/dist/lib/scope/scope-fs.js.map +1 -1
  252. package/dist/release-surface/extract-surface.js +1 -1
  253. package/dist/release-surface/extract-surface.js.map +1 -1
  254. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -2
  255. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  256. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js +18 -10
  257. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  258. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  259. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +5 -2
  260. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  261. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +9 -4
  262. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  263. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts +173 -0
  264. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -0
  265. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +233 -0
  266. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -0
  267. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts +7 -6
  268. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts.map +1 -1
  269. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js +57 -7
  270. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js.map +1 -1
  271. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts +4 -0
  272. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -1
  273. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js +15 -0
  274. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js.map +1 -1
  275. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +11 -0
  276. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  277. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js +34 -1
  278. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  279. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +67 -0
  280. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -0
  281. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +204 -0
  282. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -0
  283. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +13 -0
  284. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -0
  285. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js +163 -0
  286. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -0
  287. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +113 -0
  288. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -0
  289. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +190 -0
  290. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -0
  291. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts +10 -3
  292. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +1 -1
  293. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js +61 -14
  294. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js.map +1 -1
  295. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +11 -2
  296. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  297. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +17 -9
  298. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  299. package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +1 -1
  300. package/node_modules/@openrig/daemon/dist/domain/review/gather.js +3 -2
  301. package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +1 -1
  302. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-defaults.d.ts → rig-mode/rig-mode-defaults.d.ts} +2 -2
  303. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -0
  304. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-defaults.js → rig-mode/rig-mode-defaults.js} +1 -1
  305. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -0
  306. package/{daemon/dist/domain/rig-policy/rig-policy-store.d.ts → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts} +6 -6
  307. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -0
  308. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-store.js → rig-mode/rig-mode-store.js} +5 -5
  309. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -0
  310. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-types.d.ts → rig-mode/rig-mode-types.d.ts} +1 -1
  311. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -0
  312. package/{daemon/dist/domain/rig-policy/rig-policy-types.js → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js} +1 -1
  313. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -0
  314. package/{daemon/dist/domain/rig-policy/rig-policy-validator.d.ts → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts} +2 -2
  315. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +1 -0
  316. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-validator.js → rig-mode/rig-mode-validator.js} +3 -3
  317. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +1 -0
  318. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts +7 -0
  319. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  320. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +7 -0
  321. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  322. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +37 -0
  323. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -0
  324. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +55 -0
  325. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -0
  326. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +11 -0
  327. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  328. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +40 -0
  329. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  330. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts +4 -0
  331. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  332. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js +56 -7
  333. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  334. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +1 -1
  335. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  336. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  337. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  338. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +5 -2
  339. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  340. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +32 -15
  341. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  342. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +42 -17
  343. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  344. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts +17 -0
  345. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  346. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js +22 -0
  347. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  348. package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js +1 -1
  349. package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js.map +1 -1
  350. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  351. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +14 -2
  352. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  353. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  354. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js +16 -3
  355. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  356. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts +22 -0
  357. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts.map +1 -1
  358. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js +35 -0
  359. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js.map +1 -1
  360. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts +9 -0
  361. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts.map +1 -1
  362. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js +11 -0
  363. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js.map +1 -1
  364. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +15 -0
  365. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  366. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  367. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +1 -1
  368. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  369. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +20 -0
  370. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  371. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts +7 -0
  372. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts.map +1 -1
  373. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js +27 -0
  374. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js.map +1 -1
  375. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  376. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +4 -3
  377. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  378. package/node_modules/@openrig/daemon/dist/routes/activity.js +11 -2
  379. package/node_modules/@openrig/daemon/dist/routes/activity.js.map +1 -1
  380. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts +27 -0
  381. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
  382. package/node_modules/@openrig/daemon/dist/routes/bundles.js +107 -26
  383. package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
  384. package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts +4 -0
  385. package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts.map +1 -0
  386. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js +144 -0
  387. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js.map +1 -0
  388. package/node_modules/@openrig/daemon/dist/routes/missions.d.ts.map +1 -1
  389. package/node_modules/@openrig/daemon/dist/routes/missions.js +10 -6
  390. package/node_modules/@openrig/daemon/dist/routes/missions.js.map +1 -1
  391. package/node_modules/@openrig/daemon/dist/routes/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  392. package/node_modules/@openrig/daemon/dist/routes/rig-mode.d.ts.map +1 -0
  393. package/{daemon/dist/routes/rig-policy.js → node_modules/@openrig/daemon/dist/routes/rig-mode.js} +13 -13
  394. package/node_modules/@openrig/daemon/dist/routes/rig-mode.js.map +1 -0
  395. package/node_modules/@openrig/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  396. package/node_modules/@openrig/daemon/dist/routes/scope-approve.js +4 -0
  397. package/node_modules/@openrig/daemon/dist/routes/scope-approve.js.map +1 -1
  398. package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  399. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +29 -2
  400. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
  401. package/node_modules/@openrig/daemon/dist/routes/seat.js +7 -2
  402. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  403. package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts.map +1 -1
  404. package/node_modules/@openrig/daemon/dist/routes/sessions.js +11 -1
  405. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  406. package/node_modules/@openrig/daemon/dist/server.d.ts +3 -1
  407. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  408. package/node_modules/@openrig/daemon/dist/server.js +15 -5
  409. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  410. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  411. package/node_modules/@openrig/daemon/dist/startup.js +134 -5
  412. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  413. package/node_modules/@openrig/daemon/package.json +1 -1
  414. package/package.json +1 -1
  415. package/tui/dist/crash-cart/from-emit.d.ts +9 -0
  416. package/tui/dist/crash-cart/from-emit.d.ts.map +1 -1
  417. package/tui/dist/crash-cart/from-emit.js.map +1 -1
  418. package/tui/dist/crash-cart/keys.d.ts +1 -1
  419. package/tui/dist/crash-cart/keys.d.ts.map +1 -1
  420. package/tui/dist/crash-cart/keys.js +13 -2
  421. package/tui/dist/crash-cart/keys.js.map +1 -1
  422. package/tui/dist/crash-cart/one-click-gate.d.ts +5 -0
  423. package/tui/dist/crash-cart/one-click-gate.d.ts.map +1 -1
  424. package/tui/dist/crash-cart/one-click-gate.js +8 -0
  425. package/tui/dist/crash-cart/one-click-gate.js.map +1 -1
  426. package/tui/dist/crash-cart/render-crash-cart.d.ts +11 -0
  427. package/tui/dist/crash-cart/render-crash-cart.d.ts.map +1 -1
  428. package/tui/dist/crash-cart/render-crash-cart.js +113 -0
  429. package/tui/dist/crash-cart/render-crash-cart.js.map +1 -1
  430. package/tui/dist/crash-cart/restore-input.d.ts +32 -0
  431. package/tui/dist/crash-cart/restore-input.d.ts.map +1 -0
  432. package/tui/dist/crash-cart/restore-input.js +37 -0
  433. package/tui/dist/crash-cart/restore-input.js.map +1 -0
  434. package/tui/dist/crash-cart/restore-lifecycle.d.ts +66 -0
  435. package/tui/dist/crash-cart/restore-lifecycle.d.ts.map +1 -0
  436. package/tui/dist/crash-cart/restore-lifecycle.js +96 -0
  437. package/tui/dist/crash-cart/restore-lifecycle.js.map +1 -0
  438. package/tui/dist/crash-cart/restore-scroll.d.ts +14 -0
  439. package/tui/dist/crash-cart/restore-scroll.d.ts.map +1 -0
  440. package/tui/dist/crash-cart/restore-scroll.js +27 -0
  441. package/tui/dist/crash-cart/restore-scroll.js.map +1 -0
  442. package/tui/dist/daemon-client.d.ts +38 -0
  443. package/tui/dist/daemon-client.d.ts.map +1 -1
  444. package/tui/dist/daemon-client.js +15 -0
  445. package/tui/dist/daemon-client.js.map +1 -1
  446. package/tui/dist/main.js +146 -2
  447. package/tui/dist/main.js.map +1 -1
  448. package/tui/dist/render.d.ts +10 -0
  449. package/tui/dist/render.d.ts.map +1 -1
  450. package/tui/dist/render.js +63 -10
  451. package/tui/dist/render.js.map +1 -1
  452. package/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +0 -1
  453. package/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +0 -1
  454. package/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +0 -1
  455. package/daemon/dist/domain/rig-policy/rig-policy-store.js.map +0 -1
  456. package/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +0 -1
  457. package/daemon/dist/domain/rig-policy/rig-policy-types.js.map +0 -1
  458. package/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +0 -1
  459. package/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +0 -1
  460. package/daemon/dist/routes/rig-policy.d.ts.map +0 -1
  461. package/daemon/dist/routes/rig-policy.js.map +0 -1
  462. package/dist/commands/rig-policy.d.ts.map +0 -1
  463. package/dist/commands/rig-policy.js.map +0 -1
  464. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +0 -1
  465. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +0 -1
  466. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +0 -1
  467. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.js.map +0 -1
  468. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +0 -1
  469. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.js.map +0 -1
  470. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +0 -1
  471. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +0 -1
  472. package/node_modules/@openrig/daemon/dist/routes/rig-policy.d.ts.map +0 -1
  473. package/node_modules/@openrig/daemon/dist/routes/rig-policy.js.map +0 -1
@@ -0,0 +1,144 @@
1
+ // B1 — the crash-cart RESTORE CONDUCTOR route (daemon-side batch verb). Plan-locked
2
+ // (B1-CRASH-CART-CONDUCTOR-PLAN-2026-08-21, content-hash 84401cd4). ASYNC on-commit
3
+ // shape (the locked rollup-stream / onAttemptStarted design): the route starts the
4
+ // conductor in the BACKGROUND and answers immediately with a fleet-attempt handle —
5
+ // it NEVER blocks to fleet completion (a real fleet restore is seconds-per-seat and
6
+ // would exceed any request timeout). The client polls the status endpoint for the
7
+ // rollup + triage as rigs complete. A cancel endpoint sets stop-before-next-rig.
8
+ import { Hono } from "hono";
9
+ import { existsSync } from "node:fs";
10
+ import { randomUUID } from "node:crypto";
11
+ import { RestoreConductor, createDefaultRestoreRig, listRigsInKernelFirstOrder, aggregateFleetRollup, deriveFleetVerdict, } from "../domain/crash-cart-conductor.js";
12
+ export const crashCartRoutes = new Hono();
13
+ const fleetAttempts = new Map();
14
+ // Exported ONLY for tests — reset the in-memory store between cases.
15
+ export function __resetFleetAttempts() {
16
+ fleetAttempts.clear();
17
+ }
18
+ function getDeps(c) {
19
+ return {
20
+ rigRepo: c.get("rigRepo"),
21
+ snapshotRepo: c.get("snapshotRepo"),
22
+ restoreOrchestrator: c.get("restoreOrchestrator"),
23
+ // H1 — the app's runtime adapters + fs, WITHOUT which the orchestrator fail-closes
24
+ // a pod-aware resume to awaiting-decision (seats can't return in their panes).
25
+ runtimeAdapters: c.get("runtimeAdapters"),
26
+ // AMENDMENT 2 — the shipped machinery the adopt branch composes.
27
+ sessionRegistry: c.get("sessionRegistry"),
28
+ tmuxAdapter: c.get("tmuxAdapter"),
29
+ claimService: c.get("claimService"),
30
+ };
31
+ }
32
+ /** AMENDMENT 2 — build the adopt deps from the SHIPPED machinery, or undefined when a
33
+ * degraded daemon lacks any of it (the conductor then behaves exactly pre-amendment:
34
+ * a live-panes rig fail-closes through restore's own 409 — no clobber, no new path). */
35
+ function buildAdoptDeps(deps) {
36
+ const { rigRepo, sessionRegistry, tmuxAdapter, claimService, restoreOrchestrator, runtimeAdapters } = deps;
37
+ if (!sessionRegistry || !tmuxAdapter || !claimService)
38
+ return undefined;
39
+ return {
40
+ // The same classification restore's 409 guard runs: DB-running sessions × tmux
41
+ // reality. A tmux error is NOT live (fail-closed both ways: an unprobeable pane
42
+ // never adopts here, and restore's own unknown-blocks guard still refuses).
43
+ probeLiveSessions: async (rigId) => {
44
+ const rig = rigRepo.getRig(rigId);
45
+ if (!rig)
46
+ return [];
47
+ const logicalByNodeId = new Map(rig.nodes.map((n) => [n.id, n.logicalId]));
48
+ const live = [];
49
+ for (const session of sessionRegistry.getSessionsForRig(rigId)) {
50
+ if (session.status !== "running")
51
+ continue;
52
+ const logicalId = logicalByNodeId.get(session.nodeId);
53
+ if (!logicalId)
54
+ continue;
55
+ try {
56
+ if (await tmuxAdapter.hasSession(session.sessionName)) {
57
+ live.push({ sessionName: session.sessionName, logicalId });
58
+ }
59
+ }
60
+ catch { /* fail-closed: unprobeable ≠ live */ }
61
+ }
62
+ return live;
63
+ },
64
+ reconcileSession: (sessionName) => claimService.reconcileSession({ sessionName }),
65
+ listRigSeats: (rigId) => rigRepo.getRig(rigId)?.nodes.map((n) => n.logicalId) ?? [],
66
+ launchNodeSubset: (rigId, logicalIds) => restoreOrchestrator.launchNodeSubset(rigId, logicalIds, {
67
+ adapters: runtimeAdapters ?? {},
68
+ fsOps: { exists: (p) => existsSync(p) },
69
+ }),
70
+ };
71
+ }
72
+ function recompute(attempt) {
73
+ attempt.rollup = aggregateFleetRollup(attempt.sequence);
74
+ }
75
+ // POST /api/crash-cart/restore-fleet — start the fleet restore, answer ON-COMMIT.
76
+ crashCartRoutes.post("/restore-fleet", (c) => {
77
+ const deps = getDeps(c);
78
+ const { rigRepo, snapshotRepo, restoreOrchestrator, runtimeAdapters } = deps;
79
+ const fleetAttemptId = `fleet-${randomUUID()}`;
80
+ const attempt = {
81
+ sequence: [],
82
+ rollup: aggregateFleetRollup([]),
83
+ done: false,
84
+ cancelled: false,
85
+ };
86
+ fleetAttempts.set(fleetAttemptId, attempt);
87
+ const conductor = new RestoreConductor({
88
+ listRigsInOrder: () => listRigsInKernelFirstOrder({ listRigs: () => rigRepo.listRigs() }),
89
+ restoreRig: createDefaultRestoreRig({
90
+ findLatestRestoreUsable: (rigId) => snapshotRepo.findLatestRestoreUsable(rigId),
91
+ // H1 — thread the app's adapters + fsOps into the shipped restore.
92
+ restore: (snapshotId, opts) => restoreOrchestrator.restore(snapshotId, {
93
+ ...opts,
94
+ adapters: runtimeAdapters ?? {},
95
+ fsOps: { exists: (p) => existsSync(p) },
96
+ }),
97
+ },
98
+ // AMENDMENT 2 — LIVE panes adopt via the shipped machinery; DEAD panes unchanged.
99
+ buildAdoptDeps(deps)),
100
+ // H3 — the running attempt's cancel flag, polled stop-before-next-rig.
101
+ isCancelled: () => attempt.cancelled,
102
+ });
103
+ // Run the fleet restore in the BACKGROUND — the response has already been sent.
104
+ // Each rig updates the pollable rollup (the progress stream) as it completes.
105
+ void conductor
106
+ .restoreFleet({
107
+ onRigDone: (r) => {
108
+ attempt.sequence.push(r);
109
+ recompute(attempt);
110
+ },
111
+ })
112
+ .then(() => {
113
+ attempt.done = true;
114
+ })
115
+ .catch(() => {
116
+ // Best-effort: the fleet loop itself is guarded per rig; mark done so the
117
+ // client stops polling. Per-rig failures are already in the rollup.
118
+ attempt.done = true;
119
+ });
120
+ // Answer ON-COMMIT (immediately) — never block to fleet completion (r1 root).
121
+ return c.json({ fleetAttemptId, status: "started" }, 202);
122
+ });
123
+ // GET /api/crash-cart/restore-fleet/:fleetAttemptId — poll progress + the rollup/triage.
124
+ crashCartRoutes.get("/restore-fleet/:fleetAttemptId", (c) => {
125
+ const attempt = fleetAttempts.get(c.req.param("fleetAttemptId"));
126
+ if (!attempt)
127
+ return c.json({ error: "unknown fleet restore attempt" }, 404);
128
+ // Verdict DERIVED at read from the current counts (R6 / ARCH-RULING Q2) — never a stored field.
129
+ return c.json({
130
+ done: attempt.done,
131
+ cancelled: attempt.cancelled,
132
+ rollup: attempt.rollup,
133
+ verdict: deriveFleetVerdict(attempt.rollup.counts),
134
+ });
135
+ });
136
+ // POST /api/crash-cart/restore-fleet/:fleetAttemptId/cancel — stop-before-next-rig.
137
+ crashCartRoutes.post("/restore-fleet/:fleetAttemptId/cancel", (c) => {
138
+ const attempt = fleetAttempts.get(c.req.param("fleetAttemptId"));
139
+ if (!attempt)
140
+ return c.json({ error: "unknown fleet restore attempt" }, 404);
141
+ attempt.cancelled = true;
142
+ return c.json({ ok: true, cancelled: true });
143
+ });
144
+ //# sourceMappingURL=crash-cart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crash-cart.js","sourceRoot":"","sources":["../../src/routes/crash-cart.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"missions.d.ts","sourceRoot":"","sources":["../../src/routes/missions.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAY5B,wBAAgB,cAAc,IAAI,IAAI,CAoFrC;AAkCD;;;;;yCAKyC;AACzC,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOpE"}
1
+ {"version":3,"file":"missions.d.ts","sourceRoot":"","sources":["../../src/routes/missions.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAa5B,wBAAgB,cAAc,IAAI,IAAI,CAoFrC;AAqCD;;;;;yCAKyC;AACzC,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOpE"}
@@ -28,6 +28,7 @@ import * as fs from "node:fs";
28
28
  import * as path from "node:path";
29
29
  import { parseWorkflowSpecRef } from "../domain/slices/slice-indexer.js";
30
30
  import { projectSpecGraph } from "../domain/workflow/slice-workflow-projection.js";
31
+ import { resolveNodeFile } from "../domain/scope/node-file.js";
31
32
  export function missionsRoutes() {
32
33
  const app = new Hono();
33
34
  app.get("/:missionId", (c) => {
@@ -104,8 +105,11 @@ export function missionsRoutes() {
104
105
  * replacing an existing status field when present. Idempotent.
105
106
  * Preserves unrelated frontmatter fields. */
106
107
  function writeMissionStatusComplete(missionPath) {
107
- const readmePath = path.join(missionPath, "README.md");
108
- let body = fs.existsSync(readmePath) ? fs.readFileSync(readmePath, "utf-8") : "";
108
+ // Mutate the node file the mission actually has; only a mission with neither gets a new one, and
109
+ // a new one is authored under the current name.
110
+ const resolved = resolveNodeFile(missionPath);
111
+ const readmePath = resolved ?? path.join(missionPath, "SPEC.md");
112
+ let body = resolved ? fs.readFileSync(resolved, "utf-8") : "";
109
113
  const fmMatch = body.match(/^---\r?\n([\s\S]*?)\r?\n---/);
110
114
  if (fmMatch) {
111
115
  const fmInner = fmMatch[1] ?? "";
@@ -138,8 +142,8 @@ function computeMissionPath(slice) {
138
142
  * the field is absent. Powers the durable storytelling-filter for
139
143
  * Getting Started complete-and-hide. */
140
144
  export function readMissionStatus(missionPath) {
141
- const readmePath = path.join(missionPath, "README.md");
142
- if (!fs.existsSync(readmePath))
145
+ const readmePath = resolveNodeFile(missionPath);
146
+ if (!readmePath)
143
147
  return null;
144
148
  const raw = fs.readFileSync(readmePath, "utf-8");
145
149
  const fm = parseSimpleFrontmatter(raw);
@@ -151,8 +155,8 @@ export function readMissionStatus(missionPath) {
151
155
  * field is absent / malformed. Uses the same parseWorkflowSpecRef
152
156
  * helper the slice-indexer uses so both surfaces stay in lockstep. */
153
157
  function readMissionWorkflowSpec(missionPath) {
154
- const readmePath = path.join(missionPath, "README.md");
155
- if (!fs.existsSync(readmePath))
158
+ const readmePath = resolveNodeFile(missionPath);
159
+ if (!readmePath)
156
160
  return null;
157
161
  const raw = fs.readFileSync(readmePath, "utf-8");
158
162
  const fm = parseSimpleFrontmatter(raw);
@@ -1 +1 @@
1
- {"version":3,"file":"missions.js","sourceRoot":"","sources":["../../src/routes/missions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"missions.js","sourceRoot":"","sources":["../../src/routes/missions.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { Hono } from "hono";
2
- export interface RigPolicyRoutesOpts {
2
+ export interface RigModeRoutesOpts {
3
3
  /** Operator bearer token (same one Mission Control uses). When null,
4
4
  * the daemon's listen layer is loopback-only and write verbs pass
5
5
  * through; non-null requires `Authorization: Bearer <token>`. */
6
6
  bearerToken?: string | null;
7
7
  }
8
- export declare function rigPolicyRoutes(opts?: RigPolicyRoutesOpts): Hono;
9
- //# sourceMappingURL=rig-policy.d.ts.map
8
+ export declare function rigModeRoutes(opts?: RigModeRoutesOpts): Hono;
9
+ //# sourceMappingURL=rig-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rig-mode.d.ts","sourceRoot":"","sources":["../../src/routes/rig-mode.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAa5B,MAAM,WAAW,iBAAiB;IAChC;;qEAEiE;IACjE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAsED,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAyF5D"}
@@ -1,13 +1,13 @@
1
1
  // Slice 09 — Rig Policy (operator context mode) HTTP routes.
2
2
  //
3
3
  // Surface (binding-related ONLY — HG-SAFE):
4
- // GET /api/rig-policy/bindings — list bindings
5
- // GET /api/rig-policy/bindings/:scope/:qualifier? — read one binding
6
- // PUT /api/rig-policy/bindings/:scope/:qualifier? — upsert (operator)
7
- // DELETE /api/rig-policy/bindings/:scope/:qualifier? — unset (operator)
8
- // GET /api/rig-policy/effective — resolve effective
4
+ // GET /api/rig-mode/bindings — list bindings
5
+ // GET /api/rig-mode/bindings/:scope/:qualifier? — read one binding
6
+ // PUT /api/rig-mode/bindings/:scope/:qualifier? — upsert (operator)
7
+ // DELETE /api/rig-mode/bindings/:scope/:qualifier? — unset (operator)
8
+ // GET /api/rig-mode/effective — resolve effective
9
9
  // (?rig=&workstream=&qitem=)
10
- // GET /api/rig-policy/defaults — recommended
10
+ // GET /api/rig-mode/defaults — recommended
11
11
  // per-mode 6×7
12
12
  // + default scope
13
13
  // + DEFAULT_STALE_RULE
@@ -21,11 +21,11 @@
21
21
  //
22
22
  // HG-SAFE preserved: this router NEVER touches permission allowlists /
23
23
  // runtime configs / auth tokens / tmux / lifecycle. It calls a single
24
- // store (RigPolicyStore) whose surface area is itself binding-limited.
24
+ // store (RigModeStore) whose surface area is itself binding-limited.
25
25
  import { Hono } from "hono";
26
26
  import { authBearerTokenMiddleware } from "../middleware/auth-bearer-token.js";
27
- import { OPERATOR_CONTEXT_SCOPES, } from "../domain/rig-policy/rig-policy-types.js";
28
- import { DEFAULT_STALE_RULE, RECOMMENDED_DEFAULT_SCOPE, RECOMMENDED_MODE_DEFAULTS, } from "../domain/rig-policy/rig-policy-defaults.js";
27
+ import { OPERATOR_CONTEXT_SCOPES, } from "../domain/rig-mode/rig-mode-types.js";
28
+ import { DEFAULT_STALE_RULE, RECOMMENDED_DEFAULT_SCOPE, RECOMMENDED_MODE_DEFAULTS, } from "../domain/rig-mode/rig-mode-defaults.js";
29
29
  const VALID_SCOPES = new Set(OPERATOR_CONTEXT_SCOPES);
30
30
  function parseScope(raw) {
31
31
  return VALID_SCOPES.has(raw) ? raw : null;
@@ -57,7 +57,7 @@ function parseScopeAndQualifier(scopeRaw, qualifierRaw) {
57
57
  status: 400,
58
58
  body: {
59
59
  error: "qualifier_forbidden",
60
- hint: "Global-host bindings cannot carry a qualifier. Use /api/rig-policy/bindings/global_host with no trailing path segment.",
60
+ hint: "Global-host bindings cannot carry a qualifier. Use /api/rig-mode/bindings/global_host with no trailing path segment.",
61
61
  },
62
62
  };
63
63
  }
@@ -76,10 +76,10 @@ function parseScopeAndQualifier(scopeRaw, qualifierRaw) {
76
76
  return { ok: true, scope, qualifier: qualifierRaw };
77
77
  }
78
78
  function getStore(c) {
79
- const store = c.get("rigPolicyStore");
79
+ const store = c.get("rigModeStore");
80
80
  return store ?? null;
81
81
  }
82
- export function rigPolicyRoutes(opts) {
82
+ export function rigModeRoutes(opts) {
83
83
  const router = new Hono();
84
84
  const bearer = opts?.bearerToken ?? null;
85
85
  const requireOperator = authBearerTokenMiddleware({ expectedToken: bearer });
@@ -171,4 +171,4 @@ export function rigPolicyRoutes(opts) {
171
171
  });
172
172
  return router;
173
173
  }
174
- //# sourceMappingURL=rig-policy.js.map
174
+ //# sourceMappingURL=rig-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rig-mode.js","sourceRoot":"","sources":["../../src/routes/rig-mode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope-approve.d.ts","sourceRoot":"","sources":["../../src/routes/scope-approve.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,wBAAgB,kBAAkB,IAAI,IAAI,CAoEzC"}
1
+ {"version":3,"file":"scope-approve.d.ts","sourceRoot":"","sources":["../../src/routes/scope-approve.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,wBAAgB,kBAAkB,IAAI,IAAI,CAyEzC"}
@@ -46,6 +46,10 @@ export function scopeApproveRoutes() {
46
46
  onBehalfOf: body.onBehalfOf ?? null,
47
47
  reApprove: body.reApprove === true,
48
48
  reason: typeof body.reason === "string" ? body.reason : null,
49
+ // B14 — the stamper's explicit plan-lock set; strings only, validated in the service.
50
+ lockedArtifacts: Array.isArray(body.lockedArtifacts)
51
+ ? body.lockedArtifacts.filter((p) => typeof p === "string")
52
+ : null,
49
53
  });
50
54
  return c.json(result, 201);
51
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scope-approve.js","sourceRoot":"","sources":["../../src/routes/scope-approve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope-approve.js","sourceRoot":"","sources":["../../src/routes/scope-approve.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope-audit.d.ts","sourceRoot":"","sources":["../../src/routes/scope-audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAuC5B,wBAAgB,gBAAgB,IAAI,IAAI,CAwLvC"}
1
+ {"version":3,"file":"scope-audit.d.ts","sourceRoot":"","sources":["../../src/routes/scope-audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA0D5B,wBAAgB,gBAAgB,IAAI,IAAI,CAgMvC"}
@@ -3,6 +3,7 @@ import { attestationLineage } from "../domain/scope/attestation-lineage.generate
3
3
  import * as fs from "node:fs";
4
4
  import * as path from "node:path";
5
5
  import { classifyScopeItem } from "../domain/scope/scope-audit.js";
6
+ import { resolveNodeFile } from "../domain/scope/node-file.js";
6
7
  function extractFrontmatterRaw(content) {
7
8
  if (!content.startsWith("---"))
8
9
  return null;
@@ -35,6 +36,24 @@ function listProofArtifactsForAudit(proofDir) {
35
36
  return undefined;
36
37
  }
37
38
  }
39
+ /**
40
+ * Advisory-only: a work node carrying BOTH authored files. The daemon twin of the CLI finding of the
41
+ * same name — same contract, separate code, because the daemon cannot import packages/cli.
42
+ *
43
+ * SPEC.md wins and nothing blocks. The point is that a shadowed README.md is invisible otherwise,
44
+ * and any surface still reading the legacy name is reading the OTHER file.
45
+ */
46
+ function shadowedNodeFileFinding(dir, level) {
47
+ if (!fs.existsSync(path.join(dir, "SPEC.md")) || !fs.existsSync(path.join(dir, "README.md")))
48
+ return null;
49
+ return {
50
+ kind: "shadowed_node_file",
51
+ severity: "low",
52
+ path: dir,
53
+ message: `${level} has BOTH SPEC.md and README.md; SPEC.md is the authored node file and wins, so README.md is shadowed and any surface still reading the legacy name sees different content.`,
54
+ remediation: "Fold anything still needed from README.md into SPEC.md and remove the shadowed file. Advisory only — nothing is blocked.",
55
+ };
56
+ }
38
57
  export function scopeAuditRoutes() {
39
58
  const app = new Hono();
40
59
  app.get("/", (c) => {
@@ -59,7 +78,7 @@ export function scopeAuditRoutes() {
59
78
  // (pre-scope: each uncached get built its own 2-scan batch — 2N total
60
79
  // queue scans, 80 at 40 slices). Handler body is fully synchronous.
61
80
  return indexer.withMembershipBatch(() => {
62
- const missionReadme = path.join(missionDir, "README.md");
81
+ const missionReadme = resolveNodeFile(missionDir) ?? path.join(missionDir, "SPEC.md");
63
82
  const missionProgress = path.join(missionDir, "PROGRESS.md");
64
83
  const missionBrief = path.join(missionDir, "MISSION_BRIEF.md");
65
84
  const missionNotes = path.join(missionDir, "MISSION_NOTES.md");
@@ -100,13 +119,16 @@ export function scopeAuditRoutes() {
100
119
  });
101
120
  }
102
121
  const slicesDir = path.join(missionDir, "slices");
122
+ const missionShadow = shadowedNodeFileFinding(missionDir, "mission");
123
+ if (missionShadow)
124
+ missionResult.findings.push(missionShadow);
103
125
  const sliceResults = [];
104
126
  if (fs.existsSync(slicesDir)) {
105
127
  for (const entry of fs.readdirSync(slicesDir)) {
106
128
  const sliceDir = path.join(slicesDir, entry);
107
129
  if (!fs.statSync(sliceDir).isDirectory())
108
130
  continue;
109
- const sliceReadme = path.join(sliceDir, "README.md");
131
+ const sliceReadme = resolveNodeFile(sliceDir) ?? path.join(sliceDir, "SPEC.md");
110
132
  const sliceProgress = path.join(sliceDir, "PROGRESS.md");
111
133
  const proofFile = path.join(sliceDir, "PROOF.md");
112
134
  const proofDir = path.join(sliceDir, "proof");
@@ -181,6 +203,11 @@ export function scopeAuditRoutes() {
181
203
  sliceResults.push({ name: entry, result: sliceResult, attestations: attestationLineage(sliceFm) });
182
204
  }
183
205
  }
206
+ for (const sr of sliceResults) {
207
+ const shadow = shadowedNodeFileFinding(path.join(slicesDir, sr.name), "slice");
208
+ if (shadow)
209
+ sr.result.findings.push(shadow);
210
+ }
184
211
  const allFindings = [
185
212
  ...missionResult.findings,
186
213
  ...sliceResults.flatMap((s) => s.result.findings),
@@ -1 +1 @@
1
- {"version":3,"file":"scope-audit.js","sourceRoot":"","sources":["../../src/routes/scope-audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope-audit.js","sourceRoot":"","sources":["../../src/routes/scope-audit.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ seatRoutes.post("/handover/:seatRef", async (c) => {
39
39
  // B2 — discovered-mode resume-token capture derive-helper deps.
40
40
  contextUsageStore: c.get("contextUsageStore") ?? undefined,
41
41
  resumeTokenCapturer: c.get("resumeMetadataRefresher") ?? undefined,
42
- // Stopgap (plan 411c43de) — wire the predecessor-recap resolver so the successor boot packet fires
42
+ // Wire the predecessor-recap resolver so the successor boot packet fires
43
43
  // with a bounded from-record recap. Reuses the full ContextUsageStore from context (readAndNormalize
44
44
  // = claude transcript_path; readCodexAndNormalize = codex rollout_path) + a resume-token lookup for
45
45
  // the codex thread id; parseJsonlExchanges is the resolver's default. Absent store → resolver omitted
@@ -50,7 +50,12 @@ seatRoutes.post("/handover/:seatRef", async (c) => {
50
50
  return undefined;
51
51
  const db = rigRepo.db;
52
52
  return makePredecessorRecapResolver({
53
- readClaudeTranscriptPath: (sessionName) => store.readAndNormalize(sessionName).transcriptPath,
53
+ // B16 session_id rides the read so the resolver can verify the name-keyed sidecar is the
54
+ // PREDECESSOR's (canonical-name reuse means a booted successor overwrites it).
55
+ readClaudeRecord: (sessionName) => {
56
+ const usage = store.readAndNormalize(sessionName);
57
+ return { transcriptPath: usage.transcriptPath, sessionId: usage.sessionId ?? null };
58
+ },
54
59
  readCodexTranscriptPath: (args) => store.readCodexAndNormalize(args).transcriptPath,
55
60
  lookupResumeToken: (nodeId, sessionName) => {
56
61
  const row = db
@@ -1 +1 @@
1
- {"version":3,"file":"seat.js","sourceRoot":"","sources":["../../src/routes/seat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seat.js","sourceRoot":"","sources":["../../src/routes/seat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/routes/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA0C5B,eAAO,MAAM,cAAc,4EAAa,CAAC;AACzC,eAAO,MAAM,WAAW,4EAAa,CAAC;AACtC,eAAO,MAAM,kBAAkB,4EAAa,CAAC"}
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/routes/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA2C5B,eAAO,MAAM,cAAc,4EAAa,CAAC;AACzC,eAAO,MAAM,WAAW,4EAAa,CAAC;AACtC,eAAO,MAAM,kBAAkB,4EAAa,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { Hono } from "hono";
2
+ import { getSelfHostId } from "../domain/hosts/fanout-contract.js";
2
3
  import { attachAgentActivity, attachTerminalActivityAndWork, getNodeInventory, getNodeDetail, getNodeInventoryWithContext, getNodeDetailWithContext, } from "../domain/node-inventory.js";
3
4
  import { convergeOp } from "../domain/topology-converge.js";
4
5
  import { launchStatusIsRunning } from "../domain/restore-orchestrator.js";
@@ -106,7 +107,14 @@ nodesRoutes.get("/", async (c) => {
106
107
  db: deps.rigRepo.db,
107
108
  seatActivity: deps.seatActivityService,
108
109
  });
109
- return c.json(withTerminalAndWork);
110
+ // Slice 13 fix 2 — HOST ATTRIBUTION AT THE SOURCE. A daemon only inventories its own seats, so
111
+ // every row it serves lives on THIS host; stamping the boot-reconciled self-id here means a
112
+ // merged multi-host roster stays attributable row-by-row (a roster missing a host is legible as
113
+ // partial instead of looking authoritative). Explicit null before the boot reconcile: the key is
114
+ // always present, so "not yet known" is a value, never an absence a consumer can misread.
115
+ // selfHostId ONLY — never host.name (display-only; the DP4 conflation healthz already refuses).
116
+ const hostSelfId = getSelfHostId();
117
+ return c.json(withTerminalAndWork.map((n) => ({ ...n, hostSelfId })));
110
118
  });
111
119
  // GET /api/rigs/:rigId/nodes/:logicalId — node detail
112
120
  nodesRoutes.get("/:logicalId", async (c) => {
@@ -137,6 +145,8 @@ nodesRoutes.get("/:logicalId", async (c) => {
137
145
  lastActivityAt: detailWithTerminalAndWork?.lastActivityAt,
138
146
  hasAssignedWork: detailWithTerminalAndWork?.hasAssignedWork,
139
147
  pendingWorkCount: detailWithTerminalAndWork?.pendingWorkCount,
148
+ // Slice 13 fix 2 — same host attribution as the list route (see its comment).
149
+ hostSelfId: getSelfHostId(),
140
150
  });
141
151
  // W3: detail is a single explicit seat, so this read-only filesystem
142
152
  // observation is allowed here. It is deliberately absent from the list path.