@openrig/cli 0.5.1 → 0.5.3

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 (859) hide show
  1. package/daemon/assets/guidance/openrig-start.md +21 -64
  2. package/daemon/assets/plugins/openrig-core/hooks/claude.json +36 -0
  3. package/daemon/assets/plugins/openrig-core/hooks/codex.json +27 -0
  4. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +132 -0
  5. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +35 -3
  6. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +8 -95
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +63 -20
  8. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +6 -2
  9. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +28 -2
  10. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +42 -52
  11. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +23 -1
  12. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -2
  13. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
  14. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +235 -0
  15. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +31 -1
  16. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
  17. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +211 -0
  18. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +8 -0
  19. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +28 -1
  20. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +132 -0
  21. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +9 -0
  22. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +112 -0
  23. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +9 -0
  24. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +264 -0
  25. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +9 -0
  26. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +195 -0
  27. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +9 -0
  28. package/daemon/context-packs/skills/core/human-in-the-loop/SKILL.md +104 -0
  29. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +9 -0
  30. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +378 -0
  31. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +9 -0
  32. package/daemon/context-packs/skills/core/openrig-cmux/SKILL.md +81 -0
  33. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +9 -0
  34. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +153 -0
  35. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +9 -0
  36. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +460 -0
  37. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -0
  38. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  39. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +9 -0
  40. package/daemon/context-packs/skills/core/rig-lifecycle/SKILL.md +127 -0
  41. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +9 -0
  42. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +160 -0
  43. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +9 -0
  44. package/daemon/context-packs/skills/core/specification-system/SKILL.md +103 -0
  45. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +9 -0
  46. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  47. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +9 -0
  48. package/daemon/context-packs/skills/core/watchdog/SKILL.md +126 -0
  49. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +9 -0
  50. package/daemon/context-packs/skills/pm/backlog-capture/SKILL.md +43 -0
  51. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +9 -0
  52. package/daemon/context-packs/skills/pm/context-builder/SKILL.md +87 -0
  53. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +9 -0
  54. package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +84 -0
  55. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +9 -0
  56. package/daemon/context-packs/skills/pm/office-hours/SKILL.md +129 -0
  57. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +9 -0
  58. package/daemon/context-packs/skills/pm/plan-review/SKILL.md +98 -0
  59. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +9 -0
  60. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +113 -0
  61. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +9 -0
  62. package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +76 -0
  63. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +9 -0
  64. package/daemon/context-packs/skills/pods/development-team/SKILL.md +156 -0
  65. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +9 -0
  66. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +307 -0
  67. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +9 -0
  68. package/daemon/context-packs/skills/pods/oversight-team/SKILL.md +106 -0
  69. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +9 -0
  70. package/daemon/context-packs/skills/pods/review-team/SKILL.md +213 -0
  71. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +9 -0
  72. package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +189 -0
  73. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +40 -0
  74. package/daemon/context-packs/skills/process/agent-browser/SKILL.md +427 -0
  75. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +13 -0
  76. package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +48 -0
  77. package/daemon/context-packs/skills/process/brainstorming/SKILL.md +107 -0
  78. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +11 -0
  79. package/daemon/context-packs/skills/process/context-engineering/SKILL.md +479 -0
  80. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +9 -0
  81. package/daemon/context-packs/skills/process/dogfood/SKILL.md +225 -0
  82. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +13 -0
  83. package/daemon/context-packs/skills/process/dogfood/references/issue-taxonomy.md +109 -0
  84. package/daemon/context-packs/skills/process/dogfood/templates/dogfood-report-template.md +53 -0
  85. package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +56 -0
  86. package/daemon/context-packs/skills/process/executing-plans/SKILL.md +94 -0
  87. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +11 -0
  88. package/daemon/context-packs/skills/process/frontend-design/LICENSE.txt +177 -0
  89. package/daemon/context-packs/skills/process/frontend-design/SKILL.md +50 -0
  90. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +11 -0
  91. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +301 -0
  92. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting-example.ts +158 -0
  93. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting.md +115 -0
  94. package/daemon/context-packs/skills/process/systematic-debugging/defense-in-depth.md +122 -0
  95. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +63 -0
  96. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +19 -0
  97. package/daemon/context-packs/skills/process/systematic-debugging/root-cause-tracing.md +169 -0
  98. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +385 -0
  99. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +11 -0
  100. package/daemon/context-packs/skills/process/test-driven-development/testing-anti-patterns.md +299 -0
  101. package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +48 -0
  102. package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +106 -0
  103. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +11 -0
  104. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +155 -0
  105. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +9 -0
  106. package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +52 -0
  107. package/daemon/context-packs/skills/process/writing-plans/SKILL.md +126 -0
  108. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +11 -0
  109. package/daemon/context-packs/world/install/01-world-from-primitives.md +97 -0
  110. package/daemon/context-packs/world/install/02-permission-self-sleep.md +141 -0
  111. package/daemon/context-packs/world/install/03-what-this-is-for.md +86 -0
  112. package/daemon/context-packs/world/install/04-ontology.md +790 -0
  113. package/daemon/context-packs/world/install/05-harness-power-use.md +355 -0
  114. package/daemon/context-packs/world/install/06-a-competent-turn.md +225 -0
  115. package/daemon/context-packs/world/install/manifest.yaml +125 -0
  116. package/daemon/context-packs/world/install/reference-material.md +125 -0
  117. package/daemon/context-packs/world/install/what-you-can-do.md +416 -0
  118. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  119. package/daemon/dist/adapters/claude-code-adapter.js +7 -4
  120. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  121. package/daemon/dist/adapters/claude-resume.js +2 -2
  122. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  123. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -2
  124. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  125. package/daemon/dist/adapters/codex-runtime-adapter.js +18 -10
  126. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  127. package/daemon/dist/adapters/tmux.d.ts +10 -2
  128. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  129. package/daemon/dist/adapters/tmux.js +27 -7
  130. package/daemon/dist/adapters/tmux.js.map +1 -1
  131. package/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  132. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  133. package/daemon/dist/adapters/yolo-mode.js +21 -0
  134. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  135. package/daemon/dist/build-info.js +3 -3
  136. package/daemon/dist/domain/codex-thread-id.d.ts +100 -2
  137. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  138. package/daemon/dist/domain/codex-thread-id.js +180 -6
  139. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  140. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  141. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  142. package/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  143. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  144. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  145. package/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  146. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  147. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  148. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  149. package/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  150. package/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  151. package/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  152. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  153. package/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  154. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  155. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  156. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  157. package/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  158. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  159. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  160. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  161. package/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  162. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  163. package/daemon/dist/domain/crash-cart-conductor.d.ts +173 -0
  164. package/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -0
  165. package/daemon/dist/domain/crash-cart-conductor.js +233 -0
  166. package/daemon/dist/domain/crash-cart-conductor.js.map +1 -0
  167. package/daemon/dist/domain/crash-cart-probes.d.ts +7 -6
  168. package/daemon/dist/domain/crash-cart-probes.d.ts.map +1 -1
  169. package/daemon/dist/domain/crash-cart-probes.js +57 -7
  170. package/daemon/dist/domain/crash-cart-probes.js.map +1 -1
  171. package/daemon/dist/domain/hosts/fanout-contract.d.ts +4 -0
  172. package/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -1
  173. package/daemon/dist/domain/hosts/fanout-contract.js +15 -0
  174. package/daemon/dist/domain/hosts/fanout-contract.js.map +1 -1
  175. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +11 -0
  176. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  177. package/daemon/dist/domain/hosts/hosts-registry-reader.js +34 -1
  178. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  179. package/daemon/dist/domain/markdown-address.d.ts +56 -0
  180. package/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  181. package/daemon/dist/domain/markdown-address.js +188 -0
  182. package/daemon/dist/domain/markdown-address.js.map +1 -0
  183. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +73 -0
  184. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -0
  185. package/daemon/dist/domain/model-divergence/current-generation-record.js +204 -0
  186. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -0
  187. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +13 -0
  188. package/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -0
  189. package/daemon/dist/domain/model-divergence/effective-model-readers.js +163 -0
  190. package/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -0
  191. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +125 -0
  192. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -0
  193. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +199 -0
  194. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -0
  195. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  196. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  197. package/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  198. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  199. package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  200. package/daemon/dist/domain/permission-drift-observer.js +6 -1
  201. package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  202. package/daemon/dist/domain/predecessor-recap-resolver.d.ts +10 -3
  203. package/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +1 -1
  204. package/daemon/dist/domain/predecessor-recap-resolver.js +61 -14
  205. package/daemon/dist/domain/predecessor-recap-resolver.js.map +1 -1
  206. package/daemon/dist/domain/process-census.d.ts +25 -0
  207. package/daemon/dist/domain/process-census.d.ts.map +1 -0
  208. package/daemon/dist/domain/process-census.js +47 -0
  209. package/daemon/dist/domain/process-census.js.map +1 -0
  210. package/daemon/dist/domain/resume-metadata-refresher.d.ts +41 -3
  211. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  212. package/daemon/dist/domain/resume-metadata-refresher.js +74 -31
  213. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  214. package/daemon/dist/domain/review/compose.d.ts +5 -26
  215. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  216. package/daemon/dist/domain/review/compose.js +31 -57
  217. package/daemon/dist/domain/review/compose.js.map +1 -1
  218. package/daemon/dist/domain/review/gather.d.ts.map +1 -1
  219. package/daemon/dist/domain/review/gather.js +3 -2
  220. package/daemon/dist/domain/review/gather.js.map +1 -1
  221. package/daemon/dist/domain/{rig-policy/rig-policy-defaults.d.ts → rig-mode/rig-mode-defaults.d.ts} +2 -2
  222. package/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -0
  223. package/daemon/dist/domain/{rig-policy/rig-policy-defaults.js → rig-mode/rig-mode-defaults.js} +1 -1
  224. package/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -0
  225. 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
  226. package/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -0
  227. package/daemon/dist/domain/{rig-policy/rig-policy-store.js → rig-mode/rig-mode-store.js} +5 -5
  228. package/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -0
  229. package/daemon/dist/domain/{rig-policy/rig-policy-types.d.ts → rig-mode/rig-mode-types.d.ts} +1 -1
  230. package/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -0
  231. package/{node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.js → daemon/dist/domain/rig-mode/rig-mode-types.js} +1 -1
  232. package/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -0
  233. 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
  234. package/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +1 -0
  235. package/daemon/dist/domain/{rig-policy/rig-policy-validator.js → rig-mode/rig-mode-validator.js} +3 -3
  236. package/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +1 -0
  237. package/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  238. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  239. package/daemon/dist/domain/rigspec-instantiator.js +39 -0
  240. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  241. package/daemon/dist/domain/rigspec-schema.d.ts +7 -0
  242. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  243. package/daemon/dist/domain/rigspec-schema.js +25 -2
  244. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  245. package/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  246. package/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  247. package/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  248. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  249. package/daemon/dist/domain/scope/node-file.d.ts +37 -0
  250. package/daemon/dist/domain/scope/node-file.d.ts.map +1 -0
  251. package/daemon/dist/domain/scope/node-file.js +55 -0
  252. package/daemon/dist/domain/scope/node-file.js.map +1 -0
  253. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +12 -1
  254. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  255. package/daemon/dist/domain/scope/plan-lock-artifacts.js +42 -2
  256. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  257. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  258. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  259. package/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  260. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  261. package/daemon/dist/domain/scope/scope-approve.d.ts +4 -0
  262. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  263. package/daemon/dist/domain/scope/scope-approve.js +56 -7
  264. package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  265. package/daemon/dist/domain/scope/scope-audit.d.ts +1 -1
  266. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  267. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  268. package/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  269. package/daemon/dist/domain/scope/scope-view-projection.js +5 -2
  270. package/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  271. package/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  272. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  273. package/daemon/dist/domain/seat-activity-service.js +39 -23
  274. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  275. package/daemon/dist/domain/seat-handover-service.d.ts +54 -15
  276. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  277. package/daemon/dist/domain/seat-handover-service.js +74 -19
  278. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  279. package/daemon/dist/domain/seat-identity-reconciler.d.ts +17 -0
  280. package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  281. package/daemon/dist/domain/seat-identity-reconciler.js +22 -0
  282. package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  283. package/daemon/dist/domain/session-jsonl.js +1 -1
  284. package/daemon/dist/domain/session-jsonl.js.map +1 -1
  285. package/daemon/dist/domain/session-transport.d.ts +8 -0
  286. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  287. package/daemon/dist/domain/session-transport.js +116 -0
  288. package/daemon/dist/domain/session-transport.js.map +1 -1
  289. package/daemon/dist/domain/shell-classifier.d.ts +23 -0
  290. package/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  291. package/daemon/dist/domain/shell-classifier.js +36 -0
  292. package/daemon/dist/domain/shell-classifier.js.map +1 -0
  293. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  294. package/daemon/dist/domain/slices/slice-detail-projector.js +24 -3
  295. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  296. package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  297. package/daemon/dist/domain/slices/slice-indexer.js +16 -3
  298. package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  299. package/daemon/dist/domain/spec-live-conformance.d.ts +22 -0
  300. package/daemon/dist/domain/spec-live-conformance.d.ts.map +1 -1
  301. package/daemon/dist/domain/spec-live-conformance.js +35 -0
  302. package/daemon/dist/domain/spec-live-conformance.js.map +1 -1
  303. package/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  304. package/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  305. package/daemon/dist/domain/spec-validation-advisory.js +38 -0
  306. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  307. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  308. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  309. package/daemon/dist/domain/successor-session-launcher.js +38 -1
  310. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  311. package/daemon/dist/domain/sync-site-wrap.d.ts +9 -0
  312. package/daemon/dist/domain/sync-site-wrap.d.ts.map +1 -1
  313. package/daemon/dist/domain/sync-site-wrap.js +11 -0
  314. package/daemon/dist/domain/sync-site-wrap.js.map +1 -1
  315. package/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  316. package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  317. package/daemon/dist/domain/topology-defaults-installer.js +92 -0
  318. package/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  319. package/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  320. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  321. package/daemon/dist/domain/transcript-rotation.js +61 -3
  322. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  323. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  324. package/daemon/dist/domain/transcript-store.js +9 -2
  325. package/daemon/dist/domain/transcript-store.js.map +1 -1
  326. package/daemon/dist/domain/types.d.ts +18 -0
  327. package/daemon/dist/domain/types.d.ts.map +1 -1
  328. package/daemon/dist/domain/types.js.map +1 -1
  329. package/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  330. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  331. package/daemon/dist/domain/user-settings/settings-store.js +59 -0
  332. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  333. package/daemon/dist/domain/watchdog-auto-registration.d.ts +7 -0
  334. package/daemon/dist/domain/watchdog-auto-registration.d.ts.map +1 -1
  335. package/daemon/dist/domain/watchdog-auto-registration.js +27 -0
  336. package/daemon/dist/domain/watchdog-auto-registration.js.map +1 -1
  337. package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  338. package/daemon/dist/domain/workspace/workspace-doctor.js +4 -3
  339. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  340. package/daemon/dist/routes/activity.js +11 -2
  341. package/daemon/dist/routes/activity.js.map +1 -1
  342. package/daemon/dist/routes/bundles.d.ts +27 -0
  343. package/daemon/dist/routes/bundles.d.ts.map +1 -1
  344. package/daemon/dist/routes/bundles.js +107 -26
  345. package/daemon/dist/routes/bundles.js.map +1 -1
  346. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  347. package/daemon/dist/routes/context-packs.js +205 -0
  348. package/daemon/dist/routes/context-packs.js.map +1 -1
  349. package/daemon/dist/routes/crash-cart.d.ts +4 -0
  350. package/daemon/dist/routes/crash-cart.d.ts.map +1 -0
  351. package/daemon/dist/routes/crash-cart.js +144 -0
  352. package/daemon/dist/routes/crash-cart.js.map +1 -0
  353. package/daemon/dist/routes/missions.d.ts.map +1 -1
  354. package/daemon/dist/routes/missions.js +10 -6
  355. package/daemon/dist/routes/missions.js.map +1 -1
  356. package/daemon/dist/routes/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  357. package/daemon/dist/routes/rig-mode.d.ts.map +1 -0
  358. package/{node_modules/@openrig/daemon/dist/routes/rig-policy.js → daemon/dist/routes/rig-mode.js} +13 -13
  359. package/daemon/dist/routes/rig-mode.js.map +1 -0
  360. package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  361. package/daemon/dist/routes/scope-approve.js +4 -0
  362. package/daemon/dist/routes/scope-approve.js.map +1 -1
  363. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  364. package/daemon/dist/routes/scope-audit.js +29 -2
  365. package/daemon/dist/routes/scope-audit.js.map +1 -1
  366. package/daemon/dist/routes/seat.d.ts.map +1 -1
  367. package/daemon/dist/routes/seat.js +18 -2
  368. package/daemon/dist/routes/seat.js.map +1 -1
  369. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  370. package/daemon/dist/routes/sessions.js +66 -1
  371. package/daemon/dist/routes/sessions.js.map +1 -1
  372. package/daemon/dist/routes/transport.d.ts.map +1 -1
  373. package/daemon/dist/routes/transport.js +12 -3
  374. package/daemon/dist/routes/transport.js.map +1 -1
  375. package/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  376. package/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  377. package/daemon/dist/seat-recap-store-surface.js +6 -0
  378. package/daemon/dist/seat-recap-store-surface.js.map +1 -0
  379. package/daemon/dist/server.d.ts +3 -1
  380. package/daemon/dist/server.d.ts.map +1 -1
  381. package/daemon/dist/server.js +15 -5
  382. package/daemon/dist/server.js.map +1 -1
  383. package/daemon/dist/startup.d.ts.map +1 -1
  384. package/daemon/dist/startup.js +166 -6
  385. package/daemon/dist/startup.js.map +1 -1
  386. package/daemon/docs/reference/chain-file-convention.md +115 -0
  387. package/daemon/docs/reference/legacy-topology-migration.md +53 -0
  388. package/daemon/docs/reference/refocus-channel.md +80 -0
  389. package/daemon/docs/reference/sdlc-conventions.md +24 -0
  390. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +1 -1
  391. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +1 -1
  392. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +1 -1
  393. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -4
  394. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +8 -0
  395. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +72 -31
  396. package/daemon/specs/agents/shared/skills/pods/oversight-team/SKILL.md +106 -0
  397. package/daemon/specs/agents/shared/skills/process/context-engineering/SKILL.md +479 -0
  398. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +9 -0
  399. package/daemon/specs/rigs/launch/demo/project-example/README.md +25 -0
  400. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +19 -0
  401. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +6 -0
  402. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +7 -0
  403. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +31 -0
  404. package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +24 -0
  405. package/daemon/specs/rigs/preview/product-team/topology/rig/CRAFT.md +21 -0
  406. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +50 -0
  407. package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +13 -0
  408. package/daemon/specs/rigs/preview/product-team/topology/seats/orch1-lead/CRAFT.md +17 -0
  409. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r1/CRAFT.md +17 -0
  410. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r2/CRAFT.md +15 -0
  411. package/dist/build-info.js +3 -3
  412. package/dist/commands/bundle.d.ts.map +1 -1
  413. package/dist/commands/bundle.js +6 -0
  414. package/dist/commands/bundle.js.map +1 -1
  415. package/dist/commands/capture.d.ts.map +1 -1
  416. package/dist/commands/capture.js +2 -0
  417. package/dist/commands/capture.js.map +1 -1
  418. package/dist/commands/config.d.ts.map +1 -1
  419. package/dist/commands/config.js +8 -0
  420. package/dist/commands/config.js.map +1 -1
  421. package/dist/commands/context.d.ts.map +1 -1
  422. package/dist/commands/context.js +353 -48
  423. package/dist/commands/context.js.map +1 -1
  424. package/dist/commands/crash-cart.d.ts.map +1 -1
  425. package/dist/commands/crash-cart.js.map +1 -1
  426. package/dist/commands/host.d.ts +5 -0
  427. package/dist/commands/host.d.ts.map +1 -1
  428. package/dist/commands/host.js +59 -3
  429. package/dist/commands/host.js.map +1 -1
  430. package/dist/commands/policy.d.ts +5 -0
  431. package/dist/commands/policy.d.ts.map +1 -0
  432. package/dist/commands/policy.js +307 -0
  433. package/dist/commands/policy.js.map +1 -0
  434. package/dist/commands/proof.d.ts.map +1 -1
  435. package/dist/commands/proof.js +70 -12
  436. package/dist/commands/proof.js.map +1 -1
  437. package/dist/commands/ps.d.ts +4 -0
  438. package/dist/commands/ps.d.ts.map +1 -1
  439. package/dist/commands/ps.js +4 -0
  440. package/dist/commands/ps.js.map +1 -1
  441. package/dist/commands/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  442. package/dist/commands/rig-mode.d.ts.map +1 -0
  443. package/dist/commands/{rig-policy.js → rig-mode.js} +17 -17
  444. package/dist/commands/rig-mode.js.map +1 -0
  445. package/dist/commands/rig.d.ts.map +1 -1
  446. package/dist/commands/rig.js +5 -0
  447. package/dist/commands/rig.js.map +1 -1
  448. package/dist/commands/scope.d.ts.map +1 -1
  449. package/dist/commands/scope.js +58 -16
  450. package/dist/commands/scope.js.map +1 -1
  451. package/dist/commands/send.d.ts.map +1 -1
  452. package/dist/commands/send.js +2 -0
  453. package/dist/commands/send.js.map +1 -1
  454. package/dist/commands/setup.d.ts +13 -0
  455. package/dist/commands/setup.d.ts.map +1 -1
  456. package/dist/commands/setup.js +3 -3
  457. package/dist/commands/setup.js.map +1 -1
  458. package/dist/commands/transcript.d.ts.map +1 -1
  459. package/dist/commands/transcript.js +27 -1
  460. package/dist/commands/transcript.js.map +1 -1
  461. package/dist/commands/walk.d.ts.map +1 -1
  462. package/dist/commands/walk.js +279 -26
  463. package/dist/commands/walk.js.map +1 -1
  464. package/dist/commands/whoami.d.ts.map +1 -1
  465. package/dist/commands/whoami.js +11 -1
  466. package/dist/commands/whoami.js.map +1 -1
  467. package/dist/config-store.d.ts +17 -1
  468. package/dist/config-store.d.ts.map +1 -1
  469. package/dist/config-store.js +53 -1
  470. package/dist/config-store.js.map +1 -1
  471. package/dist/cross-host-target.d.ts +8 -1
  472. package/dist/cross-host-target.d.ts.map +1 -1
  473. package/dist/cross-host-target.js +23 -4
  474. package/dist/cross-host-target.js.map +1 -1
  475. package/dist/daemon-lifecycle.d.ts +10 -1
  476. package/dist/daemon-lifecycle.d.ts.map +1 -1
  477. package/dist/daemon-lifecycle.js +26 -1
  478. package/dist/daemon-lifecycle.js.map +1 -1
  479. package/dist/front-door.d.ts.map +1 -1
  480. package/dist/front-door.js +11 -1
  481. package/dist/front-door.js.map +1 -1
  482. package/dist/host-bindings.d.ts +62 -0
  483. package/dist/host-bindings.d.ts.map +1 -0
  484. package/dist/host-bindings.js +147 -0
  485. package/dist/host-bindings.js.map +1 -0
  486. package/dist/host-registry.d.ts +14 -1
  487. package/dist/host-registry.d.ts.map +1 -1
  488. package/dist/host-registry.js +30 -2
  489. package/dist/host-registry.js.map +1 -1
  490. package/dist/index.d.ts +2 -2
  491. package/dist/index.d.ts.map +1 -1
  492. package/dist/index.js +5 -2
  493. package/dist/index.js.map +1 -1
  494. package/dist/lib/hosts/fanout-contract.d.ts +4 -0
  495. package/dist/lib/hosts/fanout-contract.d.ts.map +1 -1
  496. package/dist/lib/hosts/fanout-contract.js +15 -0
  497. package/dist/lib/hosts/fanout-contract.js.map +1 -1
  498. package/dist/lib/path-safety.d.ts +8 -0
  499. package/dist/lib/path-safety.d.ts.map +1 -0
  500. package/dist/lib/path-safety.js +24 -0
  501. package/dist/lib/path-safety.js.map +1 -0
  502. package/dist/lib/permission-policy/policy-ref.d.ts +89 -0
  503. package/dist/lib/permission-policy/policy-ref.d.ts.map +1 -0
  504. package/dist/lib/permission-policy/policy-ref.js +171 -0
  505. package/dist/lib/permission-policy/policy-ref.js.map +1 -0
  506. package/dist/lib/permission-policy/policy-spec.d.ts +34 -0
  507. package/dist/lib/permission-policy/policy-spec.d.ts.map +1 -0
  508. package/dist/lib/permission-policy/policy-spec.js +106 -0
  509. package/dist/lib/permission-policy/policy-spec.js.map +1 -0
  510. package/dist/lib/scope/logical-checkbox.d.ts +26 -0
  511. package/dist/lib/scope/logical-checkbox.d.ts.map +1 -0
  512. package/dist/lib/scope/logical-checkbox.js +65 -0
  513. package/dist/lib/scope/logical-checkbox.js.map +1 -0
  514. package/dist/lib/scope/scaffold-placeholder.d.ts +22 -0
  515. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  516. package/dist/lib/scope/scaffold-placeholder.js +24 -0
  517. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  518. package/dist/lib/scope/scope-audit.d.ts +1 -1
  519. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  520. package/dist/lib/scope/scope-audit.js.map +1 -1
  521. package/dist/lib/scope/scope-fs.d.ts +19 -3
  522. package/dist/lib/scope/scope-fs.d.ts.map +1 -1
  523. package/dist/lib/scope/scope-fs.js +37 -17
  524. package/dist/lib/scope/scope-fs.js.map +1 -1
  525. package/dist/lib/topology-trace.d.ts +36 -0
  526. package/dist/lib/topology-trace.d.ts.map +1 -0
  527. package/dist/lib/topology-trace.js +91 -0
  528. package/dist/lib/topology-trace.js.map +1 -0
  529. package/dist/release-surface/extract-surface.js +1 -1
  530. package/dist/release-surface/extract-surface.js.map +1 -1
  531. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  532. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +7 -4
  533. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  534. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +2 -2
  535. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +1 -1
  536. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts +11 -2
  537. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
  538. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js +18 -10
  539. package/node_modules/@openrig/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
  540. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +10 -2
  541. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  542. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +27 -7
  543. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  544. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  545. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  546. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +21 -0
  547. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +1 -1
  548. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  549. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +100 -2
  550. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  551. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +180 -6
  552. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  553. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  554. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  555. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  556. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  557. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  558. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  559. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  560. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  561. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  562. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  563. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  564. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  565. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  566. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  567. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  568. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  569. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  570. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  571. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  572. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  573. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  574. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  575. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  576. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts +173 -0
  577. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.d.ts.map +1 -0
  578. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js +233 -0
  579. package/node_modules/@openrig/daemon/dist/domain/crash-cart-conductor.js.map +1 -0
  580. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts +7 -6
  581. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.d.ts.map +1 -1
  582. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js +57 -7
  583. package/node_modules/@openrig/daemon/dist/domain/crash-cart-probes.js.map +1 -1
  584. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts +4 -0
  585. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -1
  586. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js +15 -0
  587. package/node_modules/@openrig/daemon/dist/domain/hosts/fanout-contract.js.map +1 -1
  588. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +11 -0
  589. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -1
  590. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js +34 -1
  591. package/node_modules/@openrig/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -1
  592. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +56 -0
  593. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  594. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +188 -0
  595. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +1 -0
  596. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +73 -0
  597. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -0
  598. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +204 -0
  599. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -0
  600. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts +13 -0
  601. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.d.ts.map +1 -0
  602. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js +163 -0
  603. package/node_modules/@openrig/daemon/dist/domain/model-divergence/effective-model-readers.js.map +1 -0
  604. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +125 -0
  605. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -0
  606. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +199 -0
  607. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -0
  608. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  609. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  610. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  611. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  612. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  613. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +6 -1
  614. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  615. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts +10 -3
  616. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.d.ts.map +1 -1
  617. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js +61 -14
  618. package/node_modules/@openrig/daemon/dist/domain/predecessor-recap-resolver.js.map +1 -1
  619. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +25 -0
  620. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +1 -0
  621. package/node_modules/@openrig/daemon/dist/domain/process-census.js +47 -0
  622. package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +1 -0
  623. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +41 -3
  624. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  625. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +74 -31
  626. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  627. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +5 -26
  628. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  629. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +31 -57
  630. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  631. package/node_modules/@openrig/daemon/dist/domain/review/gather.d.ts.map +1 -1
  632. package/node_modules/@openrig/daemon/dist/domain/review/gather.js +3 -2
  633. package/node_modules/@openrig/daemon/dist/domain/review/gather.js.map +1 -1
  634. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-defaults.d.ts → rig-mode/rig-mode-defaults.d.ts} +2 -2
  635. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.d.ts.map +1 -0
  636. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-defaults.js → rig-mode/rig-mode-defaults.js} +1 -1
  637. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-defaults.js.map +1 -0
  638. 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
  639. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.d.ts.map +1 -0
  640. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-store.js → rig-mode/rig-mode-store.js} +5 -5
  641. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-store.js.map +1 -0
  642. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-types.d.ts → rig-mode/rig-mode-types.d.ts} +1 -1
  643. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.d.ts.map +1 -0
  644. package/{daemon/dist/domain/rig-policy/rig-policy-types.js → node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js} +1 -1
  645. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-types.js.map +1 -0
  646. 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
  647. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.d.ts.map +1 -0
  648. package/node_modules/@openrig/daemon/dist/domain/{rig-policy/rig-policy-validator.js → rig-mode/rig-mode-validator.js} +3 -3
  649. package/node_modules/@openrig/daemon/dist/domain/rig-mode/rig-mode-validator.js.map +1 -0
  650. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +4 -0
  651. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  652. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +39 -0
  653. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  654. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts +7 -0
  655. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  656. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +25 -2
  657. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  658. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  659. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  660. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  661. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  662. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts +37 -0
  663. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.d.ts.map +1 -0
  664. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js +55 -0
  665. package/node_modules/@openrig/daemon/dist/domain/scope/node-file.js.map +1 -0
  666. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +12 -1
  667. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  668. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +42 -2
  669. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  670. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  671. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  672. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  673. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  674. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts +4 -0
  675. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
  676. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js +56 -7
  677. package/node_modules/@openrig/daemon/dist/domain/scope/scope-approve.js.map +1 -1
  678. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts +1 -1
  679. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  680. package/node_modules/@openrig/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  681. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.d.ts.map +1 -1
  682. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js +5 -2
  683. package/node_modules/@openrig/daemon/dist/domain/scope/scope-view-projection.js.map +1 -1
  684. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  685. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  686. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +39 -23
  687. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
  688. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +54 -15
  689. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  690. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +74 -19
  691. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  692. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts +17 -0
  693. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -1
  694. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js +22 -0
  695. package/node_modules/@openrig/daemon/dist/domain/seat-identity-reconciler.js.map +1 -1
  696. package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js +1 -1
  697. package/node_modules/@openrig/daemon/dist/domain/session-jsonl.js.map +1 -1
  698. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +8 -0
  699. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
  700. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +116 -0
  701. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  702. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +23 -0
  703. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  704. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +36 -0
  705. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +1 -0
  706. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  707. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +24 -3
  708. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  709. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
  710. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js +16 -3
  711. package/node_modules/@openrig/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
  712. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts +22 -0
  713. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.d.ts.map +1 -1
  714. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js +35 -0
  715. package/node_modules/@openrig/daemon/dist/domain/spec-live-conformance.js.map +1 -1
  716. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  717. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  718. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +38 -0
  719. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  720. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  721. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  722. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +38 -1
  723. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  724. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts +9 -0
  725. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.d.ts.map +1 -1
  726. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js +11 -0
  727. package/node_modules/@openrig/daemon/dist/domain/sync-site-wrap.js.map +1 -1
  728. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  729. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  730. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +92 -0
  731. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  732. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  733. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  734. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +61 -3
  735. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +1 -1
  736. package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  737. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +9 -2
  738. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +1 -1
  739. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +18 -0
  740. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  741. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  742. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  743. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  744. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +59 -0
  745. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  746. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts +7 -0
  747. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.d.ts.map +1 -1
  748. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js +27 -0
  749. package/node_modules/@openrig/daemon/dist/domain/watchdog-auto-registration.js.map +1 -1
  750. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  751. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js +4 -3
  752. package/node_modules/@openrig/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  753. package/node_modules/@openrig/daemon/dist/routes/activity.js +11 -2
  754. package/node_modules/@openrig/daemon/dist/routes/activity.js.map +1 -1
  755. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts +27 -0
  756. package/node_modules/@openrig/daemon/dist/routes/bundles.d.ts.map +1 -1
  757. package/node_modules/@openrig/daemon/dist/routes/bundles.js +107 -26
  758. package/node_modules/@openrig/daemon/dist/routes/bundles.js.map +1 -1
  759. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  760. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +205 -0
  761. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  762. package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts +4 -0
  763. package/node_modules/@openrig/daemon/dist/routes/crash-cart.d.ts.map +1 -0
  764. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js +144 -0
  765. package/node_modules/@openrig/daemon/dist/routes/crash-cart.js.map +1 -0
  766. package/node_modules/@openrig/daemon/dist/routes/missions.d.ts.map +1 -1
  767. package/node_modules/@openrig/daemon/dist/routes/missions.js +10 -6
  768. package/node_modules/@openrig/daemon/dist/routes/missions.js.map +1 -1
  769. package/node_modules/@openrig/daemon/dist/routes/{rig-policy.d.ts → rig-mode.d.ts} +3 -3
  770. package/node_modules/@openrig/daemon/dist/routes/rig-mode.d.ts.map +1 -0
  771. package/{daemon/dist/routes/rig-policy.js → node_modules/@openrig/daemon/dist/routes/rig-mode.js} +13 -13
  772. package/node_modules/@openrig/daemon/dist/routes/rig-mode.js.map +1 -0
  773. package/node_modules/@openrig/daemon/dist/routes/scope-approve.d.ts.map +1 -1
  774. package/node_modules/@openrig/daemon/dist/routes/scope-approve.js +4 -0
  775. package/node_modules/@openrig/daemon/dist/routes/scope-approve.js.map +1 -1
  776. package/node_modules/@openrig/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  777. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js +29 -2
  778. package/node_modules/@openrig/daemon/dist/routes/scope-audit.js.map +1 -1
  779. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  780. package/node_modules/@openrig/daemon/dist/routes/seat.js +18 -2
  781. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  782. package/node_modules/@openrig/daemon/dist/routes/sessions.d.ts.map +1 -1
  783. package/node_modules/@openrig/daemon/dist/routes/sessions.js +66 -1
  784. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  785. package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
  786. package/node_modules/@openrig/daemon/dist/routes/transport.js +12 -3
  787. package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
  788. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  789. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  790. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +6 -0
  791. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +1 -0
  792. package/node_modules/@openrig/daemon/dist/server.d.ts +3 -1
  793. package/node_modules/@openrig/daemon/dist/server.d.ts.map +1 -1
  794. package/node_modules/@openrig/daemon/dist/server.js +15 -5
  795. package/node_modules/@openrig/daemon/dist/server.js.map +1 -1
  796. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  797. package/node_modules/@openrig/daemon/dist/startup.js +166 -6
  798. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  799. package/node_modules/@openrig/daemon/package.json +6 -1
  800. package/package.json +1 -1
  801. package/tui/dist/crash-cart/from-emit.d.ts +9 -0
  802. package/tui/dist/crash-cart/from-emit.d.ts.map +1 -1
  803. package/tui/dist/crash-cart/from-emit.js.map +1 -1
  804. package/tui/dist/crash-cart/keys.d.ts +1 -1
  805. package/tui/dist/crash-cart/keys.d.ts.map +1 -1
  806. package/tui/dist/crash-cart/keys.js +13 -2
  807. package/tui/dist/crash-cart/keys.js.map +1 -1
  808. package/tui/dist/crash-cart/one-click-gate.d.ts +5 -0
  809. package/tui/dist/crash-cart/one-click-gate.d.ts.map +1 -1
  810. package/tui/dist/crash-cart/one-click-gate.js +8 -0
  811. package/tui/dist/crash-cart/one-click-gate.js.map +1 -1
  812. package/tui/dist/crash-cart/render-crash-cart.d.ts +11 -0
  813. package/tui/dist/crash-cart/render-crash-cart.d.ts.map +1 -1
  814. package/tui/dist/crash-cart/render-crash-cart.js +113 -0
  815. package/tui/dist/crash-cart/render-crash-cart.js.map +1 -1
  816. package/tui/dist/crash-cart/restore-input.d.ts +32 -0
  817. package/tui/dist/crash-cart/restore-input.d.ts.map +1 -0
  818. package/tui/dist/crash-cart/restore-input.js +37 -0
  819. package/tui/dist/crash-cart/restore-input.js.map +1 -0
  820. package/tui/dist/crash-cart/restore-lifecycle.d.ts +66 -0
  821. package/tui/dist/crash-cart/restore-lifecycle.d.ts.map +1 -0
  822. package/tui/dist/crash-cart/restore-lifecycle.js +96 -0
  823. package/tui/dist/crash-cart/restore-lifecycle.js.map +1 -0
  824. package/tui/dist/crash-cart/restore-scroll.d.ts +14 -0
  825. package/tui/dist/crash-cart/restore-scroll.d.ts.map +1 -0
  826. package/tui/dist/crash-cart/restore-scroll.js +27 -0
  827. package/tui/dist/crash-cart/restore-scroll.js.map +1 -0
  828. package/tui/dist/daemon-client.d.ts +38 -0
  829. package/tui/dist/daemon-client.d.ts.map +1 -1
  830. package/tui/dist/daemon-client.js +15 -0
  831. package/tui/dist/daemon-client.js.map +1 -1
  832. package/tui/dist/main.js +146 -2
  833. package/tui/dist/main.js.map +1 -1
  834. package/tui/dist/render.d.ts +10 -0
  835. package/tui/dist/render.d.ts.map +1 -1
  836. package/tui/dist/render.js +63 -10
  837. package/tui/dist/render.js.map +1 -1
  838. package/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +0 -1
  839. package/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +0 -1
  840. package/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +0 -1
  841. package/daemon/dist/domain/rig-policy/rig-policy-store.js.map +0 -1
  842. package/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +0 -1
  843. package/daemon/dist/domain/rig-policy/rig-policy-types.js.map +0 -1
  844. package/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +0 -1
  845. package/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +0 -1
  846. package/daemon/dist/routes/rig-policy.d.ts.map +0 -1
  847. package/daemon/dist/routes/rig-policy.js.map +0 -1
  848. package/dist/commands/rig-policy.d.ts.map +0 -1
  849. package/dist/commands/rig-policy.js.map +0 -1
  850. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +0 -1
  851. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +0 -1
  852. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +0 -1
  853. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-store.js.map +0 -1
  854. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +0 -1
  855. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-types.js.map +0 -1
  856. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +0 -1
  857. package/node_modules/@openrig/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +0 -1
  858. package/node_modules/@openrig/daemon/dist/routes/rig-policy.d.ts.map +0 -1
  859. package/node_modules/@openrig/daemon/dist/routes/rig-policy.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ import type { SourceKind } from "./profile-composer.js";
2
+ export declare class SourceResolutionError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ declare const TREE_KINDS: readonly ["seat", "mission"];
6
+ export type TreeKind = (typeof TREE_KINDS)[number];
7
+ export interface ParsedSourceRef {
8
+ kind: SourceKind;
9
+ /** Relative path under the pack dir (library) or the kind's configured root. */
10
+ rel: string;
11
+ }
12
+ /** Split a pre-`#` ref into its resolver kind + relative path. Fail-loud on an
13
+ * unknown prefix or a traversal-shaped path — a clean refusal, never an escape
14
+ * (the r2-B3 precedent from the trace verb). */
15
+ export declare function parseSourceRef(ref: string): ParsedSourceRef;
16
+ export interface ProfileSourceRoots {
17
+ /** The seat's tree directory (recap + lore beside LEARNED) — from config. */
18
+ seat?: string;
19
+ /** The mission's tree directory — from config. */
20
+ mission?: string;
21
+ }
22
+ /** Byte-provenance record for one successful read (r1 rider 1 via 4a's review):
23
+ * the label must be CHECKABLE, not merely asserted — with a symlink in play a
24
+ * source label is accurate about the REF and wrong about the BYTES, and that
25
+ * bites on benign symlinks, not just hostile ones. */
26
+ export interface SourceReadRecord {
27
+ ref: string;
28
+ kind: SourceKind;
29
+ /** The root the read was granted against. */
30
+ base: string;
31
+ /** base + rel, before symlink resolution. */
32
+ nominalPath: string;
33
+ /** Where the BYTES actually came from (realpath after the successful read). */
34
+ realPath: string;
35
+ /** True when realPath sits outside base. Computed via path.relative — never a
36
+ * bare string prefix (r1: `startsWith` says /seat-evil is inside /seat). */
37
+ escapesRoot: boolean;
38
+ }
39
+ /** Build the composer's fail-loud readFile over the pack dir + configured tree
40
+ * roots. Every failure names the source kind and what was being resolved —
41
+ * a missing root is a MISSING CONFIG error, never a silent empty; a DANGLING
42
+ * symlink is its own named failure (a realistic corpus state, not a generic
43
+ * unreadable). Each successful read reports byte provenance via onRead. */
44
+ export declare function makeProfileReadFile(opts: {
45
+ packDir: string;
46
+ roots: ProfileSourceRoots;
47
+ onRead?: (record: SourceReadRecord) => void;
48
+ }): (ref: string) => string;
49
+ /** The composer's per-piece source label (Q2-Amendment 1: every assembled piece
50
+ * is labeled with its source), derived from the atom's full address. */
51
+ export declare function sourceKindForAddress(address: string): SourceKind;
52
+ export {};
53
+ //# sourceMappingURL=profile-source-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-source-resolver.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/profile-source-resolver.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,QAAA,MAAM,UAAU,8BAA+B,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;iDAEiD;AACjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CA0B3D;AAED,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;uDAGuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,CAAC;IACjB,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB;iFAC6E;IAC7E,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;4EAI4E;AAC5E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC7C,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CA8D1B;AAED;yEACyE;AACzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAEhE"}
@@ -0,0 +1,129 @@
1
+ // OPR.0.5.3.5 Atom 4a — the two pre-`#` resolvers behind ONE grammar.
2
+ //
3
+ // Q2-Amendment 1 (locked), the desk's grammar ruling verbatim: non-library sources
4
+ // are addressable with the SAME `#H2-slug/H3-slug` grammar; only the pre-`#`
5
+ // resolver differs — a library ref resolves through the library (here: the pack's
6
+ // own directory), a tree path resolves from CONFIGURED roots — and both resolve
7
+ // FAIL-LOUD. One grammar held in memory, two resolvers behind it, no second
8
+ // addressing convention. The kind prefix is the entire pre-`#` dialect:
9
+ //
10
+ // walk.md#welcome -> library (the pack's declared files)
11
+ // seat:RECAP.md#decisions -> the seat tree (recap + lore live beside LEARNED)
12
+ // mission:NOTES.md#watch-items -> the mission tree
13
+ //
14
+ // Roots arrive from CONFIG through the caller (CE-v2 03-tree-addressability: an
15
+ // addressing verb resolves tree paths from config, never literals — this module
16
+ // holds no path literal and refuses to guess a missing root). Composability comes
17
+ // from ADDRESSING, not homing: nothing must be copied into the library to compose
18
+ // (a profile that copies seat or mission content into the library is a defect —
19
+ // Q2-Amendment 1(c)).
20
+ import { lstatSync, readFileSync, realpathSync } from "node:fs";
21
+ import { isAbsolute, join, normalize, relative, sep } from "node:path";
22
+ import { parseAddress } from "../markdown-address.js";
23
+ export class SourceResolutionError extends Error {
24
+ constructor(message) {
25
+ super(message);
26
+ this.name = "SourceResolutionError";
27
+ }
28
+ }
29
+ const TREE_KINDS = ["seat", "mission"];
30
+ /** Split a pre-`#` ref into its resolver kind + relative path. Fail-loud on an
31
+ * unknown prefix or a traversal-shaped path — a clean refusal, never an escape
32
+ * (the r2-B3 precedent from the trace verb). */
33
+ export function parseSourceRef(ref) {
34
+ const colon = ref.indexOf(":");
35
+ let kind = "library";
36
+ let rel = ref;
37
+ if (colon >= 0) {
38
+ const prefix = ref.slice(0, colon);
39
+ if (!TREE_KINDS.includes(prefix)) {
40
+ throw new SourceResolutionError(`source ref '${ref}' has unknown kind prefix '${prefix}' — the pre-'#' dialect is bare (library), ${TREE_KINDS.map((k) => `'${k}:'`).join(" or ")}.`);
41
+ }
42
+ kind = prefix;
43
+ rel = ref.slice(colon + 1);
44
+ }
45
+ if (rel.length === 0) {
46
+ throw new SourceResolutionError(`source ref '${ref}' has an empty path after its kind prefix.`);
47
+ }
48
+ const unsafe = isAbsolute(rel) ||
49
+ rel.split(/[\\/]/).some((segment) => segment === ".." || segment === "");
50
+ if (unsafe) {
51
+ throw new SourceResolutionError(`source ref '${ref}' is traversal-shaped (absolute path, '..' or empty segment) — refs stay inside their source root.`);
52
+ }
53
+ return { kind, rel };
54
+ }
55
+ /** Build the composer's fail-loud readFile over the pack dir + configured tree
56
+ * roots. Every failure names the source kind and what was being resolved —
57
+ * a missing root is a MISSING CONFIG error, never a silent empty; a DANGLING
58
+ * symlink is its own named failure (a realistic corpus state, not a generic
59
+ * unreadable). Each successful read reports byte provenance via onRead. */
60
+ export function makeProfileReadFile(opts) {
61
+ return (ref) => {
62
+ const { kind, rel } = parseSourceRef(ref);
63
+ let base;
64
+ if (kind === "library") {
65
+ base = opts.packDir;
66
+ }
67
+ else {
68
+ const configured = opts.roots[kind];
69
+ if (!configured) {
70
+ throw new SourceResolutionError(`source ref '${ref}' needs the ${kind} tree root, which is not configured for this compose — ` +
71
+ `tree paths resolve from config, never literals; supply the ${kind} root or drop the ${kind}-homed atom.`);
72
+ }
73
+ base = configured;
74
+ }
75
+ const abs = normalize(join(base, rel));
76
+ let text;
77
+ try {
78
+ text = readFileSync(abs, "utf-8");
79
+ }
80
+ catch (err) {
81
+ // Name the dangling-symlink state precisely: the path EXISTS as a link
82
+ // but its target does not — a generic "unreadable" would send an author
83
+ // hunting for a file that is right there in their listing.
84
+ let dangling = false;
85
+ try {
86
+ lstatSync(abs);
87
+ dangling = true;
88
+ }
89
+ catch {
90
+ /* genuinely absent */
91
+ }
92
+ throw new SourceResolutionError(dangling
93
+ ? `source ref '${ref}' (${kind}) is a DANGLING symlink: ${abs} exists but its target does not — ${err.message}`
94
+ : `source ref '${ref}' (${kind}) did not resolve: ${abs} is unreadable — ${err.message}`);
95
+ }
96
+ // Provenance AFTER the successful read (r1: realpath on a missing file
97
+ // throws, and that throw must never garble the honest read error above).
98
+ if (opts.onRead) {
99
+ let realPath = abs;
100
+ try {
101
+ realPath = realpathSync(abs);
102
+ }
103
+ catch {
104
+ /* raced away post-read; nominal stands as the best truth available */
105
+ }
106
+ let realBase = base;
107
+ try {
108
+ realBase = realpathSync(base);
109
+ }
110
+ catch {
111
+ /* root itself unresolvable; compare against the nominal base */
112
+ }
113
+ const relFromBase = relative(realBase, realPath);
114
+ // SEGMENT comparison, never a prefix test on a path-shaped string (r1
115
+ // round-3 F1: a file legitimately NAMED '..hidden-notes.md' inside the
116
+ // root satisfied startsWith('..') — the identical class as
117
+ // startsWith(base) saying /seat-evil is inside /seat, one level in).
118
+ const escapesRoot = relFromBase === ".." || relFromBase.startsWith(`..${sep}`) || isAbsolute(relFromBase);
119
+ opts.onRead({ ref, kind, base, nominalPath: abs, realPath, escapesRoot });
120
+ }
121
+ return text;
122
+ };
123
+ }
124
+ /** The composer's per-piece source label (Q2-Amendment 1: every assembled piece
125
+ * is labeled with its source), derived from the atom's full address. */
126
+ export function sourceKindForAddress(address) {
127
+ return parseSourceRef(parseAddress(address).ref).kind;
128
+ }
129
+ //# sourceMappingURL=profile-source-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-source-resolver.js","sourceRoot":"","sources":["../../../src/domain/context-packs/profile-source-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ export declare const RECAP_FILENAME = "RECAP.md";
2
+ export declare class RecapWriteError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export interface RecapChainEntry {
6
+ /** Absolute path of the superseded recap. */
7
+ path: string;
8
+ /** The supersession timestamp encoded in the filename (ms epoch). */
9
+ supersededAtMs: number;
10
+ /** Same-millisecond disambiguator (1 for the bare name, 2+ for -N suffixes). */
11
+ sequence: number;
12
+ }
13
+ /** Write the seat's current recap, superseding any existing one into the
14
+ * chain. The gate is ADDRESSABILITY only — never prose shape. */
15
+ export declare function writeSeatRecap(opts: {
16
+ seatDir: string;
17
+ content: string;
18
+ now?: () => number;
19
+ }): void;
20
+ /** The superseded chain, oldest first. Empty when no recap was ever superseded. */
21
+ export declare function listRecapChain(seatDir: string): RecapChainEntry[];
22
+ export type RecapContractFinding = {
23
+ kind: "no-decisions-section";
24
+ } | {
25
+ kind: "nonstandard-unverified-marker";
26
+ line: number;
27
+ };
28
+ /** The authoring contract's CHECKABLE subset (Q2): decisions-with-rationale has
29
+ * a structural proxy (a decisions-titled section exists); the UNVERIFIED
30
+ * marker has a canonical grammar (`UNVERIFIED:` uppercase) that must stay
31
+ * findable — a variant marker hides exactly the fact it exists to flag.
32
+ * Advisory: findings, never throws. */
33
+ export declare function validateRecapContract(content: string): RecapContractFinding[];
34
+ /** BUILD FOLLOW-UP (r1 verdict bb00e850; row 17015088) — the authored-recap
35
+ * pointer resolution, ONE-HOMED here beside the store it reads, parsing the
36
+ * seat ref through the CANONICAL parseSessionName (first-@ split, the
37
+ * documented greedy-rig ruling) — never a second parser. Safety floor
38
+ * preserved: an unresolved or non-canonical ref fails with a LABELED reason
39
+ * carrying what was tried; fuzzy-matching another seat's directory would hand
40
+ * a successor a DIFFERENT occupant's decisions, which is strictly worse than
41
+ * honest absence. */
42
+ export declare function resolveAuthoredRecapPointer(seatRef: string, topologyRoot: string): {
43
+ address: string;
44
+ chainLength: number;
45
+ } | {
46
+ absentReason: string;
47
+ };
48
+ //# sourceMappingURL=seat-recap-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-recap-store.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/seat-recap-store.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,cAAc,aAAa,CAAC;AAGzC,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;kEACkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CAAE,GAAG,IAAI,CA4BnG;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAiBjE;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,+BAA+B,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5D;;;;wCAIwC;AACxC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAa7E;AAED;;;;;;;sBAOsB;AACtB,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAUrE"}
@@ -0,0 +1,123 @@
1
+ // OPR.0.5.3.5 mini-req 7 (Q2 + Q2-Amendment 1) — the seat recap store.
2
+ //
3
+ // The AUTHORED recap: decisions-with-rationale written by the outgoing occupant
4
+ // at the boundary, extending the shipped from-record boot recap's name (the Q2
5
+ // unify-what-exists ruling — predecessor-recap-resolver.ts remains the
6
+ // transcript-derived sibling). SEAT-HOMED beside LEARNED (Q2-Amendment 1(a):
7
+ // the recap is POSITION knowledge, unshareable by construction — a
8
+ // library-homed recap would be position knowledge on the portable shelf).
9
+ // RETENTION (1(b)): superseded-chain versioning — the newest recap is
10
+ // RECAP.md, predecessors stay byte-preserved under recap-superseded/ in the
11
+ // seat directory, cleaned by seat-directory lifecycle, NEVER by library
12
+ // curation; no librarian job is created.
13
+ //
14
+ // Two validation altitudes, deliberately different:
15
+ // - ADDRESSABILITY is the one HARD gate on write: the recap is composed by
16
+ // address (seat:RECAP.md#...), so an unaddressable recap (duplicate header
17
+ // paths, unterminated fence) would fail every handover profile downstream,
18
+ // silently late. Structural, not prose-shaped.
19
+ // - The AUTHORING CONTRACT validates ADVISORY on its CHECKABLE subset only:
20
+ // findings flag for review, never gate the boundary (the D2 pattern). The
21
+ // contract's semantic halves (temporal order, derived-values-as-commands)
22
+ // are not mechanically checkable and are NOT pretended at.
23
+ import { mkdirSync, readdirSync, renameSync, writeFileSync, existsSync } from "node:fs";
24
+ import { join } from "node:path";
25
+ import { validateMarkdownAddressability, parseMarkdownSections } from "../markdown-address.js";
26
+ import { parseSessionName } from "../session-name.js";
27
+ export const RECAP_FILENAME = "RECAP.md";
28
+ const CHAIN_DIRNAME = "recap-superseded";
29
+ export class RecapWriteError extends Error {
30
+ constructor(message) {
31
+ super(message);
32
+ this.name = "RecapWriteError";
33
+ }
34
+ }
35
+ /** Write the seat's current recap, superseding any existing one into the
36
+ * chain. The gate is ADDRESSABILITY only — never prose shape. */
37
+ export function writeSeatRecap(opts) {
38
+ const findings = validateMarkdownAddressability(opts.content);
39
+ if (findings.length > 0) {
40
+ throw new RecapWriteError(`recap is not addressable and could never compose (seat:${RECAP_FILENAME}#... would fail every ` +
41
+ `handover profile): ${findings.map((f) => f.kind === "unterminated-fence" ? `unterminated fence at line ${f.line}` : `${f.kind} '${"headerPath" in f ? f.headerPath : ""}'`).join("; ")}. ` +
42
+ `Fix the structure (duplicate header paths / unterminated fences); prose shape is never gated.`);
43
+ }
44
+ const now = opts.now ?? Date.now;
45
+ const current = join(opts.seatDir, RECAP_FILENAME);
46
+ if (existsSync(current)) {
47
+ const chainDir = join(opts.seatDir, CHAIN_DIRNAME);
48
+ mkdirSync(chainDir, { recursive: true });
49
+ // COLLISION-SAFE naming (r1 F1): renameSync onto an existing path REPLACES
50
+ // it, so two supersessions in one millisecond silently destroyed a
51
+ // predecessor — the retention contract inverted. A counter suffix
52
+ // disambiguates: nothing is lost AND the boundary write still succeeds
53
+ // (better than throwing on both counts). `now` is injectable, so
54
+ // programmatic callers collide deterministically, not rarely.
55
+ const stamp = String(now()).padStart(15, "0");
56
+ let target = join(chainDir, `RECAP-${stamp}.md`);
57
+ for (let counter = 2; existsSync(target); counter++) {
58
+ target = join(chainDir, `RECAP-${stamp}-${counter}.md`);
59
+ }
60
+ renameSync(current, target);
61
+ }
62
+ writeFileSync(current, opts.content);
63
+ }
64
+ /** The superseded chain, oldest first. Empty when no recap was ever superseded. */
65
+ export function listRecapChain(seatDir) {
66
+ const chainDir = join(seatDir, CHAIN_DIRNAME);
67
+ let names;
68
+ try {
69
+ names = readdirSync(chainDir);
70
+ }
71
+ catch {
72
+ return [];
73
+ }
74
+ return names
75
+ .map((name) => {
76
+ const m = name.match(/^RECAP-(\d+)(?:-(\d+))?\.md$/);
77
+ return m
78
+ ? { path: join(chainDir, name), supersededAtMs: Number(m[1]), sequence: m[2] ? Number(m[2]) : 1 }
79
+ : null;
80
+ })
81
+ .filter((e) => e !== null)
82
+ .sort((a, b) => a.supersededAtMs - b.supersededAtMs || a.sequence - b.sequence);
83
+ }
84
+ /** The authoring contract's CHECKABLE subset (Q2): decisions-with-rationale has
85
+ * a structural proxy (a decisions-titled section exists); the UNVERIFIED
86
+ * marker has a canonical grammar (`UNVERIFIED:` uppercase) that must stay
87
+ * findable — a variant marker hides exactly the fact it exists to flag.
88
+ * Advisory: findings, never throws. */
89
+ export function validateRecapContract(content) {
90
+ const findings = [];
91
+ const sections = parseMarkdownSections(content);
92
+ const hasDecisions = sections.some((s) => s.headerPath[s.headerPath.length - 1].includes("decision"));
93
+ if (!hasDecisions)
94
+ findings.push({ kind: "no-decisions-section" });
95
+ const lines = content.split("\n");
96
+ for (let i = 0; i < lines.length; i++) {
97
+ const line = lines[i];
98
+ if (/unverified/i.test(line) && !line.includes("UNVERIFIED:")) {
99
+ findings.push({ kind: "nonstandard-unverified-marker", line: i });
100
+ }
101
+ }
102
+ return findings;
103
+ }
104
+ /** BUILD FOLLOW-UP (r1 verdict bb00e850; row 17015088) — the authored-recap
105
+ * pointer resolution, ONE-HOMED here beside the store it reads, parsing the
106
+ * seat ref through the CANONICAL parseSessionName (first-@ split, the
107
+ * documented greedy-rig ruling) — never a second parser. Safety floor
108
+ * preserved: an unresolved or non-canonical ref fails with a LABELED reason
109
+ * carrying what was tried; fuzzy-matching another seat's directory would hand
110
+ * a successor a DIFFERENT occupant's decisions, which is strictly worse than
111
+ * honest absence. */
112
+ export function resolveAuthoredRecapPointer(seatRef, topologyRoot) {
113
+ const parsed = parseSessionName(seatRef);
114
+ if (parsed.kind !== "canonical") {
115
+ return { absentReason: `seat ref '${seatRef}' did not parse as canonical <seat>@<rig> (parse verdict: ${parsed.kind}) — authored recap not resolved, never guessed` };
116
+ }
117
+ const seatDir = join(topologyRoot, "rigs", parsed.rig, "seats", parsed.member);
118
+ if (!existsSync(join(seatDir, RECAP_FILENAME))) {
119
+ return { absentReason: `no ${RECAP_FILENAME} on the seat tree (${seatDir}) — the predecessor never wrote one` };
120
+ }
121
+ return { address: `seat:${RECAP_FILENAME}`, chainLength: listRecapChain(seatDir).length };
122
+ }
123
+ //# sourceMappingURL=seat-recap-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seat-recap-store.js","sourceRoot":"","sources":["../../../src/domain/context-packs/seat-recap-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,173 @@
1
+ /** The shipped closed per-rig union (never widened at the fleet layer). `not_attempted`
2
+ * is first-class — a rig the conductor did not reach (no usable snapshot, or cancelled). */
3
+ export type PerRigOutcome = "fully_restored" | "partially_restored" | "failed" | "not_attempted";
4
+ /** One rig's conductor result. `receiptRef` references the durable restore event/attempt
5
+ * seq (the ledger lineage) — the conductor RENDERS receipts, it never re-authors them. */
6
+ export interface ConductorRigResult {
7
+ rigId: string;
8
+ outcome: PerRigOutcome;
9
+ receiptRef?: string | number;
10
+ /** Per-rig triage rows (seats needing operator action) — the fleet
11
+ * attention_required is the UNION of these across the sequence. */
12
+ attention?: AttentionRow[];
13
+ /** R3 — for a `not_attempted` rig, WHY it was skipped (no honest gap left blank). */
14
+ reason?: string;
15
+ /** R3 — the operator action that would let this rig be restored next time. */
16
+ remediation?: string;
17
+ }
18
+ export interface RestoreConductorDeps {
19
+ /** Rigs in restore order — KERNEL FIRST (the supervisor), then the rest. */
20
+ listRigsInOrder: () => Array<{
21
+ rigId: string;
22
+ isKernel: boolean;
23
+ }>;
24
+ /** Restore ONE rig. Default (wired at the route) = findLatestRestoreUsable(rigId) →
25
+ * RestoreOrchestrator.restore(snapshotId) → rollupRestoreRigResult; a rig with no
26
+ * usable snapshot returns `not_attempted` (never a silent older/partial substitute). */
27
+ restoreRig: (rigId: string) => Promise<{
28
+ outcome: PerRigOutcome;
29
+ receiptRef?: string | number;
30
+ attention?: AttentionRow[];
31
+ reason?: string;
32
+ remediation?: string;
33
+ }>;
34
+ /** Cancel signal, polled at each rig BOUNDARY (stop-before-next-rig). Optional. */
35
+ isCancelled?: () => boolean;
36
+ }
37
+ export declare class RestoreConductor {
38
+ private readonly deps;
39
+ constructor(deps: RestoreConductorDeps);
40
+ /** Restore the fleet, kernel-first, best-effort, honoring stop-before-next-rig cancel.
41
+ * Returns the ordered per-rig sequence (Atom C aggregates it into the FleetRollup). */
42
+ restoreFleet(opts?: {
43
+ onRigDone?: (result: ConductorRigResult) => void;
44
+ }): Promise<ConductorRigResult[]>;
45
+ }
46
+ /** Deps for the DEFAULT per-rig restore — structurally typed so the conductor stays
47
+ * decoupled from the full orchestrator (the real wiring passes
48
+ * `snapshotRepo.findLatestRestoreUsable` and `RestoreOrchestrator.restore`, whose
49
+ * RestoreOutcome satisfies this shape). */
50
+ export interface RestoreRigDeps {
51
+ /** Newest restore-usable snapshot for the rig, or null (→ `not_attempted`; never a silent substitute). */
52
+ findLatestRestoreUsable: (rigId: string) => {
53
+ id: string;
54
+ } | null;
55
+ /** The shipped per-rig restore. `onAttemptStarted` yields the restore-started event seq = the receipt ref. */
56
+ restore: (snapshotId: string, opts?: {
57
+ onAttemptStarted?: (attemptId: number) => void;
58
+ }) => Promise<{
59
+ ok: boolean;
60
+ result?: {
61
+ rigResult: PerRigOutcome;
62
+ nodes?: RestoreNodeLite[];
63
+ };
64
+ }>;
65
+ }
66
+ /** One seat of the subset-launch result, structurally the shipped RestoreNodeResult
67
+ * subset the triage mapper reads. */
68
+ export interface AdoptSubsetSeat extends RestoreNodeLite {
69
+ logicalId: string;
70
+ }
71
+ /** Structural slice of RestoreOrchestrator.launchNodeSubset's result — the shipped
72
+ * per-seat resume-verification machinery (FR-7: an unverifiable resume fail-closes
73
+ * to awaiting-decision carrying the exact `--fresh <logicalId>` remediation). */
74
+ export interface AdoptSubsetResult {
75
+ ok: boolean;
76
+ code?: string;
77
+ message?: string;
78
+ launched?: AdoptSubsetSeat[];
79
+ held?: Array<{
80
+ logicalId: string;
81
+ reason: string;
82
+ }>;
83
+ alreadyRunning?: Array<{
84
+ logicalId: string;
85
+ }>;
86
+ failedTargets?: Array<{
87
+ logicalId: string;
88
+ reason: string;
89
+ }>;
90
+ }
91
+ export interface AdoptRigDeps {
92
+ /** The rig's DB-running sessions whose tmux panes are ALIVE — the same
93
+ * classification restore's 409 guard runs (sessionRegistry rows ×
94
+ * tmuxAdapter.hasSession); the conductor never invents a probe. */
95
+ probeLiveSessions: (rigId: string) => Promise<Array<{
96
+ sessionName: string;
97
+ logicalId: string;
98
+ }>>;
99
+ /** The shipped no-launch adopt (ClaimService.reconcileSession — the
100
+ * `rig reconcile-session` precedent): session state only, never input. */
101
+ reconcileSession: (sessionName: string) => Promise<{
102
+ ok: boolean;
103
+ code?: string;
104
+ message?: string;
105
+ }>;
106
+ /** The rig's full seat roster (logical ids) — adoption's complement is what
107
+ * per-seat resume verification must cover. */
108
+ listRigSeats: (rigId: string) => string[];
109
+ /** The shipped subset launcher over the NOT-adopted seats. */
110
+ launchNodeSubset: (rigId: string, logicalIds: string[]) => Promise<AdoptSubsetResult>;
111
+ }
112
+ /** Build the default `restoreRig` dep: COMPOSE findLatestRestoreUsable → restore →
113
+ * rigResult. A rig with no usable snapshot is `not_attempted` (restore never runs);
114
+ * a restore that fails outright is `failed`. Never re-authors restore logic.
115
+ * With `adoptDeps` wired (Amendment 2), a rig whose panes survived takes the ADOPT
116
+ * branch above; DEAD panes (and callers without adoptDeps) run unchanged. */
117
+ export declare function createDefaultRestoreRig(_deps: RestoreRigDeps, adoptDeps?: AdoptRigDeps): (rigId: string) => Promise<{
118
+ outcome: PerRigOutcome;
119
+ receiptRef?: number;
120
+ attention?: AttentionRow[];
121
+ reason?: string;
122
+ remediation?: string;
123
+ }>;
124
+ export interface RigOrderDeps {
125
+ /** All (non-archived) rigs on this host — the conductor's fleet scope, v1. */
126
+ listRigs: () => Array<{
127
+ id: string;
128
+ name: string;
129
+ }>;
130
+ }
131
+ /** R2 — the founder's order: the KERNEL rig (the supervisor, name "kernel") restores
132
+ * FIRST, then the remaining rigs in listRigs order. No kernel rig → all rigs, none
133
+ * flagged kernel (honest, never fabricated). This is the `listRigsInOrder` source the
134
+ * conductor consumes. */
135
+ export declare function listRigsInKernelFirstOrder(deps: RigOrderDeps): Array<{
136
+ rigId: string;
137
+ isKernel: boolean;
138
+ }>;
139
+ /** A triage row: a seat + exactly what it needs (picker/auth/remediation), sourced
140
+ * from the shipped per-rig restore-check attention projection. The fleet
141
+ * `attention_required` is the UNION of these across rigs — a VIEW, not a parallel record. */
142
+ export interface AttentionRow {
143
+ rigId: string;
144
+ seat: string;
145
+ need: string;
146
+ }
147
+ /** Fleet rollup — PURE AGGREGATION over the conductor's per-rig sequence. The per-rig
148
+ * outcome stays the shipped CLOSED union (never widened). NO fleet verdict is stored
149
+ * here — a stored verdict could drift from the per-rig truth; derive it on demand via
150
+ * {@link deriveFleetVerdict}. `not_attempted` is first-class (never folded into failed). */
151
+ export interface FleetRollup {
152
+ counts: Record<PerRigOutcome, number>;
153
+ sequence: ConductorRigResult[];
154
+ attention_required: AttentionRow[];
155
+ }
156
+ /** The fleet verdict is a DERIVED function of the counts — never a stored field. */
157
+ export type FleetVerdict = "all_fully_restored" | "all_failed" | "none_attempted" | "mixed";
158
+ /** A restore node (structural subset of the shipped RestoreNodeResult) — enough to
159
+ * build a triage row from the seats that need operator action. */
160
+ export interface RestoreNodeLite {
161
+ logicalId: string;
162
+ status: string;
163
+ error?: string;
164
+ attentionEvidence?: string | null;
165
+ }
166
+ /** R5 — map a rig's restore nodes → triage rows: the seats needing operator action
167
+ * (a LIVE runtime prompt, an unresumable session, or a hard failure), each with its
168
+ * EXACT need. Running/resumed nodes are excluded. Never fabricates a need. */
169
+ export declare function attentionRowsFromNodes(rigId: string, nodes: RestoreNodeLite[]): AttentionRow[];
170
+ export declare function aggregateFleetRollup(sequence: ConductorRigResult[]): FleetRollup;
171
+ /** DERIVED f(counts) — computed, never stored (a stored verdict could drift). */
172
+ export declare function deriveFleetVerdict(counts: Record<PerRigOutcome, number>): FleetVerdict;
173
+ //# sourceMappingURL=crash-cart-conductor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crash-cart-conductor.d.ts","sourceRoot":"","sources":["../../src/domain/crash-cart-conductor.ts"],"names":[],"mappings":"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"}