@openrig/cli 0.5.2 → 0.5.4

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 (586) hide show
  1. package/daemon/assets/plugins/openrig-core/.claude-plugin/plugin.json +1 -1
  2. package/daemon/assets/plugins/openrig-core/.codex-plugin/plugin.json +1 -1
  3. package/daemon/assets/plugins/openrig-core/README.md +1 -1
  4. package/daemon/assets/plugins/openrig-core/hooks/claude.json +36 -0
  5. package/daemon/assets/plugins/openrig-core/hooks/codex.json +27 -0
  6. package/daemon/assets/plugins/openrig-core/hooks/scripts/refocus.cjs +152 -0
  7. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/SKILL.md +35 -3
  8. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +8 -95
  9. package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +63 -20
  10. package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +6 -2
  11. package/daemon/assets/plugins/openrig-core/skills/messaging-the-human/SKILL.md +28 -2
  12. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +42 -52
  13. package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +26 -1
  14. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +7 -2
  15. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/CHANGELOG.md +64 -0
  16. package/daemon/assets/plugins/openrig-core/skills/orienting-to-an-inherited-seat/SKILL.md +235 -0
  17. package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +31 -1
  18. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/CHANGELOG.md +48 -0
  19. package/daemon/assets/plugins/openrig-core/skills/retiring-and-inheriting-a-seat/SKILL.md +211 -0
  20. package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +8 -0
  21. package/daemon/assets/plugins/openrig-core/skills/software-for-agents/SKILL.md +31 -9
  22. package/daemon/context-packs/skills/core/agent-starters/SKILL.md +132 -0
  23. package/daemon/context-packs/skills/core/agent-starters/manifest.yaml +9 -0
  24. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/SKILL.md +112 -0
  25. package/daemon/context-packs/skills/core/agent-startup-and-context-ingestion/manifest.yaml +9 -0
  26. package/daemon/context-packs/skills/core/attention-queue/SKILL.md +264 -0
  27. package/daemon/context-packs/skills/core/attention-queue/manifest.yaml +9 -0
  28. package/daemon/context-packs/skills/core/cross-host-rig-commands/SKILL.md +195 -0
  29. package/daemon/context-packs/skills/core/cross-host-rig-commands/manifest.yaml +9 -0
  30. package/daemon/context-packs/skills/core/human-in-the-loop/SKILL.md +104 -0
  31. package/daemon/context-packs/skills/core/human-in-the-loop/manifest.yaml +9 -0
  32. package/daemon/context-packs/skills/core/openrig-architect/SKILL.md +378 -0
  33. package/daemon/context-packs/skills/core/openrig-architect/manifest.yaml +9 -0
  34. package/daemon/context-packs/skills/core/openrig-cmux/SKILL.md +81 -0
  35. package/daemon/context-packs/skills/core/openrig-cmux/manifest.yaml +9 -0
  36. package/daemon/context-packs/skills/core/openrig-herdr/SKILL.md +153 -0
  37. package/daemon/context-packs/skills/core/openrig-herdr/manifest.yaml +9 -0
  38. package/daemon/context-packs/skills/core/openrig-upgrade/SKILL.md +460 -0
  39. package/daemon/context-packs/skills/core/openrig-upgrade/manifest.yaml +9 -0
  40. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/SKILL.md +101 -0
  41. package/daemon/context-packs/skills/core/rig-bundles-and-shareable-artifacts/manifest.yaml +9 -0
  42. package/daemon/context-packs/skills/core/rig-lifecycle/SKILL.md +127 -0
  43. package/daemon/context-packs/skills/core/rig-lifecycle/manifest.yaml +9 -0
  44. package/daemon/context-packs/skills/core/session-source-fork/SKILL.md +160 -0
  45. package/daemon/context-packs/skills/core/session-source-fork/manifest.yaml +9 -0
  46. package/daemon/context-packs/skills/core/specification-system/SKILL.md +103 -0
  47. package/daemon/context-packs/skills/core/specification-system/manifest.yaml +9 -0
  48. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/SKILL.md +118 -0
  49. package/daemon/context-packs/skills/core/topology-mutation-and-seat-management/manifest.yaml +9 -0
  50. package/daemon/context-packs/skills/core/watchdog/SKILL.md +126 -0
  51. package/daemon/context-packs/skills/core/watchdog/manifest.yaml +9 -0
  52. package/daemon/context-packs/skills/pm/backlog-capture/SKILL.md +43 -0
  53. package/daemon/context-packs/skills/pm/backlog-capture/manifest.yaml +9 -0
  54. package/daemon/context-packs/skills/pm/context-builder/SKILL.md +87 -0
  55. package/daemon/context-packs/skills/pm/context-builder/manifest.yaml +9 -0
  56. package/daemon/context-packs/skills/pm/exec-summary/SKILL.md +84 -0
  57. package/daemon/context-packs/skills/pm/exec-summary/manifest.yaml +9 -0
  58. package/daemon/context-packs/skills/pm/office-hours/SKILL.md +129 -0
  59. package/daemon/context-packs/skills/pm/office-hours/manifest.yaml +9 -0
  60. package/daemon/context-packs/skills/pm/plan-review/SKILL.md +98 -0
  61. package/daemon/context-packs/skills/pm/plan-review/manifest.yaml +9 -0
  62. package/daemon/context-packs/skills/pm/requirements-writer/SKILL.md +113 -0
  63. package/daemon/context-packs/skills/pm/requirements-writer/manifest.yaml +9 -0
  64. package/daemon/context-packs/skills/pm/ui-mockup/SKILL.md +76 -0
  65. package/daemon/context-packs/skills/pm/ui-mockup/manifest.yaml +9 -0
  66. package/daemon/context-packs/skills/pods/development-team/SKILL.md +156 -0
  67. package/daemon/context-packs/skills/pods/development-team/manifest.yaml +9 -0
  68. package/daemon/context-packs/skills/pods/orchestration-team/SKILL.md +307 -0
  69. package/daemon/context-packs/skills/pods/orchestration-team/manifest.yaml +9 -0
  70. package/daemon/context-packs/skills/pods/oversight-team/SKILL.md +106 -0
  71. package/daemon/context-packs/skills/pods/oversight-team/manifest.yaml +9 -0
  72. package/daemon/context-packs/skills/pods/review-team/SKILL.md +213 -0
  73. package/daemon/context-packs/skills/pods/review-team/manifest.yaml +9 -0
  74. package/daemon/context-packs/skills/process/agent-browser/LOCAL-INSIGHTS.md +189 -0
  75. package/daemon/context-packs/skills/process/agent-browser/OPENRIG.md +40 -0
  76. package/daemon/context-packs/skills/process/agent-browser/SKILL.md +427 -0
  77. package/daemon/context-packs/skills/process/agent-browser/manifest.yaml +13 -0
  78. package/daemon/context-packs/skills/process/brainstorming/OPENRIG.md +48 -0
  79. package/daemon/context-packs/skills/process/brainstorming/SKILL.md +107 -0
  80. package/daemon/context-packs/skills/process/brainstorming/manifest.yaml +11 -0
  81. package/daemon/context-packs/skills/process/context-engineering/SKILL.md +479 -0
  82. package/daemon/context-packs/skills/process/context-engineering/manifest.yaml +9 -0
  83. package/daemon/context-packs/skills/process/dogfood/SKILL.md +225 -0
  84. package/daemon/context-packs/skills/process/dogfood/manifest.yaml +13 -0
  85. package/daemon/context-packs/skills/process/dogfood/references/issue-taxonomy.md +109 -0
  86. package/daemon/context-packs/skills/process/dogfood/templates/dogfood-report-template.md +53 -0
  87. package/daemon/context-packs/skills/process/executing-plans/OPENRIG.md +56 -0
  88. package/daemon/context-packs/skills/process/executing-plans/SKILL.md +94 -0
  89. package/daemon/context-packs/skills/process/executing-plans/manifest.yaml +11 -0
  90. package/daemon/context-packs/skills/process/frontend-design/LICENSE.txt +177 -0
  91. package/daemon/context-packs/skills/process/frontend-design/SKILL.md +50 -0
  92. package/daemon/context-packs/skills/process/frontend-design/manifest.yaml +11 -0
  93. package/daemon/context-packs/skills/process/systematic-debugging/SKILL.md +301 -0
  94. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting-example.ts +158 -0
  95. package/daemon/context-packs/skills/process/systematic-debugging/condition-based-waiting.md +115 -0
  96. package/daemon/context-packs/skills/process/systematic-debugging/defense-in-depth.md +122 -0
  97. package/daemon/context-packs/skills/process/systematic-debugging/find-polluter.sh +63 -0
  98. package/daemon/context-packs/skills/process/systematic-debugging/manifest.yaml +19 -0
  99. package/daemon/context-packs/skills/process/systematic-debugging/root-cause-tracing.md +169 -0
  100. package/daemon/context-packs/skills/process/test-driven-development/SKILL.md +385 -0
  101. package/daemon/context-packs/skills/process/test-driven-development/manifest.yaml +11 -0
  102. package/daemon/context-packs/skills/process/test-driven-development/testing-anti-patterns.md +299 -0
  103. package/daemon/context-packs/skills/process/using-superpowers/OPENRIG.md +48 -0
  104. package/daemon/context-packs/skills/process/using-superpowers/SKILL.md +106 -0
  105. package/daemon/context-packs/skills/process/using-superpowers/manifest.yaml +11 -0
  106. package/daemon/context-packs/skills/process/verification-before-completion/SKILL.md +155 -0
  107. package/daemon/context-packs/skills/process/verification-before-completion/manifest.yaml +9 -0
  108. package/daemon/context-packs/skills/process/writing-plans/OPENRIG.md +52 -0
  109. package/daemon/context-packs/skills/process/writing-plans/SKILL.md +126 -0
  110. package/daemon/context-packs/skills/process/writing-plans/manifest.yaml +11 -0
  111. package/daemon/context-packs/world/install/01-world-from-primitives.md +97 -0
  112. package/daemon/context-packs/world/install/02-permission-self-sleep.md +141 -0
  113. package/daemon/context-packs/world/install/03-what-this-is-for.md +86 -0
  114. package/daemon/context-packs/world/install/04-ontology.md +790 -0
  115. package/daemon/context-packs/world/install/05-harness-power-use.md +355 -0
  116. package/daemon/context-packs/world/install/06-a-competent-turn.md +225 -0
  117. package/daemon/context-packs/world/install/manifest.yaml +125 -0
  118. package/daemon/context-packs/world/install/reference-material.md +125 -0
  119. package/daemon/context-packs/world/install/what-you-can-do.md +416 -0
  120. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  121. package/daemon/dist/adapters/claude-code-adapter.js +7 -4
  122. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  123. package/daemon/dist/adapters/claude-resume.js +2 -2
  124. package/daemon/dist/adapters/claude-resume.js.map +1 -1
  125. package/daemon/dist/adapters/tmux.d.ts +41 -2
  126. package/daemon/dist/adapters/tmux.d.ts.map +1 -1
  127. package/daemon/dist/adapters/tmux.js +58 -18
  128. package/daemon/dist/adapters/tmux.js.map +1 -1
  129. package/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  130. package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  131. package/daemon/dist/adapters/yolo-mode.js +21 -0
  132. package/daemon/dist/adapters/yolo-mode.js.map +1 -1
  133. package/daemon/dist/build-info.js +3 -3
  134. package/daemon/dist/daemon-db-path.d.ts.map +1 -1
  135. package/daemon/dist/daemon-db-path.js +50 -2
  136. package/daemon/dist/daemon-db-path.js.map +1 -1
  137. package/daemon/dist/domain/codex-thread-id.d.ts +95 -0
  138. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  139. package/daemon/dist/domain/codex-thread-id.js +171 -2
  140. package/daemon/dist/domain/codex-thread-id.js.map +1 -1
  141. package/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  142. package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  143. package/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  144. package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  145. package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  146. package/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  147. package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  148. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  149. package/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  150. package/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  151. package/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  152. package/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  153. package/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  154. package/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  155. package/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  156. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  157. package/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  158. package/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  159. package/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  160. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  161. package/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  162. package/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  163. package/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  164. package/daemon/dist/domain/markdown-address.d.ts +56 -0
  165. package/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  166. package/daemon/dist/domain/markdown-address.js +188 -0
  167. package/daemon/dist/domain/markdown-address.js.map +1 -0
  168. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
  169. package/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  170. package/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
  171. package/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  172. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
  173. package/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  174. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
  175. package/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  176. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  177. package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  178. package/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  179. package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  180. package/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  181. package/daemon/dist/domain/permission-drift-observer.js +6 -1
  182. package/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  183. package/daemon/dist/domain/plugin-discovery-service.d.ts +16 -0
  184. package/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  185. package/daemon/dist/domain/plugin-discovery-service.js +175 -1
  186. package/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  187. package/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
  188. package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  189. package/daemon/dist/domain/plugin-vendor-service.js +101 -12
  190. package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  191. package/daemon/dist/domain/process-census.d.ts +25 -0
  192. package/daemon/dist/domain/process-census.d.ts.map +1 -0
  193. package/daemon/dist/domain/process-census.js +47 -0
  194. package/daemon/dist/domain/process-census.js.map +1 -0
  195. package/daemon/dist/domain/queue-repository.d.ts +3 -1
  196. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  197. package/daemon/dist/domain/queue-repository.js +50 -2
  198. package/daemon/dist/domain/queue-repository.js.map +1 -1
  199. package/daemon/dist/domain/reconciler.d.ts.map +1 -1
  200. package/daemon/dist/domain/reconciler.js +6 -1
  201. package/daemon/dist/domain/reconciler.js.map +1 -1
  202. package/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
  203. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  204. package/daemon/dist/domain/resume-metadata-refresher.js +64 -29
  205. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  206. package/daemon/dist/domain/review/compose.d.ts +5 -26
  207. package/daemon/dist/domain/review/compose.d.ts.map +1 -1
  208. package/daemon/dist/domain/review/compose.js +31 -57
  209. package/daemon/dist/domain/review/compose.js.map +1 -1
  210. package/daemon/dist/domain/rig-repository.d.ts +4 -0
  211. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  212. package/daemon/dist/domain/rig-repository.js +9 -0
  213. package/daemon/dist/domain/rig-repository.js.map +1 -1
  214. package/daemon/dist/domain/rigspec-instantiator.d.ts +13 -0
  215. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  216. package/daemon/dist/domain/rigspec-instantiator.js +71 -0
  217. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  218. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  219. package/daemon/dist/domain/rigspec-schema.js +19 -3
  220. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  221. package/daemon/dist/domain/running-name-guard.d.ts +52 -0
  222. package/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
  223. package/daemon/dist/domain/running-name-guard.js +34 -0
  224. package/daemon/dist/domain/running-name-guard.js.map +1 -0
  225. package/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  226. package/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  227. package/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  228. package/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  229. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
  230. package/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  231. package/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
  232. package/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  233. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  234. package/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  235. package/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  236. package/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  237. package/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  238. package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  239. package/daemon/dist/domain/seat-activity-service.js +39 -23
  240. package/daemon/dist/domain/seat-activity-service.js.map +1 -1
  241. package/daemon/dist/domain/seat-handover-service.d.ts +22 -0
  242. package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  243. package/daemon/dist/domain/seat-handover-service.js +32 -2
  244. package/daemon/dist/domain/seat-handover-service.js.map +1 -1
  245. package/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
  246. package/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
  247. package/daemon/dist/domain/seat-lifecycle-service.js +312 -0
  248. package/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
  249. package/daemon/dist/domain/session-transport.d.ts +16 -5
  250. package/daemon/dist/domain/session-transport.d.ts.map +1 -1
  251. package/daemon/dist/domain/session-transport.js +155 -16
  252. package/daemon/dist/domain/session-transport.js.map +1 -1
  253. package/daemon/dist/domain/shell-classifier.d.ts +23 -0
  254. package/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  255. package/daemon/dist/domain/shell-classifier.js +36 -0
  256. package/daemon/dist/domain/shell-classifier.js.map +1 -0
  257. package/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  258. package/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
  259. package/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  260. package/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  261. package/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  262. package/daemon/dist/domain/spec-validation-advisory.js +38 -0
  263. package/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  264. package/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  265. package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  266. package/daemon/dist/domain/successor-session-launcher.js +38 -1
  267. package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  268. package/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  269. package/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  270. package/daemon/dist/domain/topology-defaults-installer.js +92 -0
  271. package/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  272. package/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  273. package/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  274. package/daemon/dist/domain/transcript-rotation.js +61 -3
  275. package/daemon/dist/domain/transcript-rotation.js.map +1 -1
  276. package/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  277. package/daemon/dist/domain/transcript-store.js +9 -2
  278. package/daemon/dist/domain/transcript-store.js.map +1 -1
  279. package/daemon/dist/domain/types.d.ts +39 -0
  280. package/daemon/dist/domain/types.d.ts.map +1 -1
  281. package/daemon/dist/domain/types.js.map +1 -1
  282. package/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  283. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  284. package/daemon/dist/domain/user-settings/settings-store.js +39 -0
  285. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  286. package/daemon/dist/routes/context-packs.d.ts.map +1 -1
  287. package/daemon/dist/routes/context-packs.js +205 -0
  288. package/daemon/dist/routes/context-packs.js.map +1 -1
  289. package/daemon/dist/routes/queue.d.ts.map +1 -1
  290. package/daemon/dist/routes/queue.js +29 -24
  291. package/daemon/dist/routes/queue.js.map +1 -1
  292. package/daemon/dist/routes/rigspec.js +20 -6
  293. package/daemon/dist/routes/rigspec.js.map +1 -1
  294. package/daemon/dist/routes/seat.d.ts.map +1 -1
  295. package/daemon/dist/routes/seat.js +69 -0
  296. package/daemon/dist/routes/seat.js.map +1 -1
  297. package/daemon/dist/routes/sessions.js +55 -0
  298. package/daemon/dist/routes/sessions.js.map +1 -1
  299. package/daemon/dist/routes/transport.d.ts.map +1 -1
  300. package/daemon/dist/routes/transport.js +52 -39
  301. package/daemon/dist/routes/transport.js.map +1 -1
  302. package/daemon/dist/routes/up.js +21 -2
  303. package/daemon/dist/routes/up.js.map +1 -1
  304. package/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  305. package/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  306. package/daemon/dist/seat-recap-store-surface.js +6 -0
  307. package/daemon/dist/seat-recap-store-surface.js.map +1 -0
  308. package/daemon/dist/startup.d.ts.map +1 -1
  309. package/daemon/dist/startup.js +37 -6
  310. package/daemon/dist/startup.js.map +1 -1
  311. package/daemon/docs/reference/chain-file-convention.md +115 -0
  312. package/daemon/docs/reference/legacy-topology-migration.md +53 -0
  313. package/daemon/docs/reference/refocus-channel.md +80 -0
  314. package/daemon/docs/reference/sdlc-conventions.md +24 -0
  315. package/daemon/specs/agents/shared/skills/core/attention-queue/SKILL.md +1 -1
  316. package/daemon/specs/agents/shared/skills/core/human-in-the-loop/SKILL.md +1 -1
  317. package/daemon/specs/agents/shared/skills/core/session-source-fork/SKILL.md +1 -1
  318. package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +4 -4
  319. package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +8 -0
  320. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +72 -31
  321. package/daemon/specs/agents/shared/skills/pods/oversight-team/SKILL.md +106 -0
  322. package/daemon/specs/agents/shared/skills/process/context-engineering/SKILL.md +479 -0
  323. package/daemon/specs/agents/shared/skills/process/test-driven-development/SKILL.md +9 -0
  324. package/daemon/specs/rigs/launch/demo/project-example/README.md +25 -0
  325. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/SPEC.md +19 -0
  326. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROGRESS.md +6 -0
  327. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/PROOF.md +7 -0
  328. package/daemon/specs/rigs/launch/demo/project-example/missions/improve-onboarding/slices/01-shorten-first-run/SPEC.md +31 -0
  329. package/daemon/specs/rigs/preview/product-team/topology/instance/CRAFT.md +24 -0
  330. package/daemon/specs/rigs/preview/product-team/topology/rig/CRAFT.md +21 -0
  331. package/daemon/specs/rigs/preview/product-team/topology/rig/ORCHESTRATION-CRAFT.md +50 -0
  332. package/daemon/specs/rigs/preview/product-team/topology/seats/dev1-qa/CRAFT.md +13 -0
  333. package/daemon/specs/rigs/preview/product-team/topology/seats/orch1-lead/CRAFT.md +17 -0
  334. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r1/CRAFT.md +17 -0
  335. package/daemon/specs/rigs/preview/product-team/topology/seats/rev1-r2/CRAFT.md +15 -0
  336. package/dist/build-info.js +3 -3
  337. package/dist/cli-error.js +1 -1
  338. package/dist/cli-error.js.map +1 -1
  339. package/dist/commands/broadcast.js +6 -0
  340. package/dist/commands/broadcast.js.map +1 -1
  341. package/dist/commands/config.d.ts.map +1 -1
  342. package/dist/commands/config.js +8 -0
  343. package/dist/commands/config.js.map +1 -1
  344. package/dist/commands/context.d.ts.map +1 -1
  345. package/dist/commands/context.js +363 -48
  346. package/dist/commands/context.js.map +1 -1
  347. package/dist/commands/daemon.d.ts.map +1 -1
  348. package/dist/commands/daemon.js +23 -2
  349. package/dist/commands/daemon.js.map +1 -1
  350. package/dist/commands/import.d.ts.map +1 -1
  351. package/dist/commands/import.js +10 -0
  352. package/dist/commands/import.js.map +1 -1
  353. package/dist/commands/proof.d.ts.map +1 -1
  354. package/dist/commands/proof.js +70 -12
  355. package/dist/commands/proof.js.map +1 -1
  356. package/dist/commands/queue.d.ts.map +1 -1
  357. package/dist/commands/queue.js +36 -13
  358. package/dist/commands/queue.js.map +1 -1
  359. package/dist/commands/rig.d.ts.map +1 -1
  360. package/dist/commands/rig.js +5 -0
  361. package/dist/commands/rig.js.map +1 -1
  362. package/dist/commands/seat.d.ts.map +1 -1
  363. package/dist/commands/seat.js +88 -0
  364. package/dist/commands/seat.js.map +1 -1
  365. package/dist/commands/send.d.ts.map +1 -1
  366. package/dist/commands/send.js +224 -20
  367. package/dist/commands/send.js.map +1 -1
  368. package/dist/commands/transcript.d.ts.map +1 -1
  369. package/dist/commands/transcript.js +25 -1
  370. package/dist/commands/transcript.js.map +1 -1
  371. package/dist/commands/up.d.ts.map +1 -1
  372. package/dist/commands/up.js +8 -0
  373. package/dist/commands/up.js.map +1 -1
  374. package/dist/commands/walk.d.ts +1 -1
  375. package/dist/commands/walk.d.ts.map +1 -1
  376. package/dist/commands/walk.js +293 -30
  377. package/dist/commands/walk.js.map +1 -1
  378. package/dist/config-store.d.ts +15 -1
  379. package/dist/config-store.d.ts.map +1 -1
  380. package/dist/config-store.js +35 -1
  381. package/dist/config-store.js.map +1 -1
  382. package/dist/lib/scope/logical-checkbox.d.ts +26 -0
  383. package/dist/lib/scope/logical-checkbox.d.ts.map +1 -0
  384. package/dist/lib/scope/logical-checkbox.js +65 -0
  385. package/dist/lib/scope/logical-checkbox.js.map +1 -0
  386. package/dist/lib/scope/scaffold-placeholder.d.ts +22 -0
  387. package/dist/lib/scope/scaffold-placeholder.d.ts.map +1 -1
  388. package/dist/lib/scope/scaffold-placeholder.js +24 -0
  389. package/dist/lib/scope/scaffold-placeholder.js.map +1 -1
  390. package/dist/lib/topology-trace.d.ts +36 -0
  391. package/dist/lib/topology-trace.d.ts.map +1 -0
  392. package/dist/lib/topology-trace.js +91 -0
  393. package/dist/lib/topology-trace.js.map +1 -0
  394. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
  395. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js +7 -4
  396. package/node_modules/@openrig/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
  397. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js +2 -2
  398. package/node_modules/@openrig/daemon/dist/adapters/claude-resume.js.map +1 -1
  399. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts +41 -2
  400. package/node_modules/@openrig/daemon/dist/adapters/tmux.d.ts.map +1 -1
  401. package/node_modules/@openrig/daemon/dist/adapters/tmux.js +58 -18
  402. package/node_modules/@openrig/daemon/dist/adapters/tmux.js.map +1 -1
  403. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts +18 -0
  404. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.d.ts.map +1 -1
  405. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js +21 -0
  406. package/node_modules/@openrig/daemon/dist/adapters/yolo-mode.js.map +1 -1
  407. package/node_modules/@openrig/daemon/dist/build-info.js +3 -3
  408. package/node_modules/@openrig/daemon/dist/daemon-db-path.d.ts.map +1 -1
  409. package/node_modules/@openrig/daemon/dist/daemon-db-path.js +50 -2
  410. package/node_modules/@openrig/daemon/dist/daemon-db-path.js.map +1 -1
  411. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts +95 -0
  412. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.d.ts.map +1 -1
  413. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js +171 -2
  414. package/node_modules/@openrig/daemon/dist/domain/codex-thread-id.js.map +1 -1
  415. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts +48 -0
  416. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
  417. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js +8 -0
  418. package/node_modules/@openrig/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
  419. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
  420. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js +234 -2
  421. package/node_modules/@openrig/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
  422. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts +34 -0
  423. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.d.ts.map +1 -0
  424. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js +38 -0
  425. package/node_modules/@openrig/daemon/dist/domain/context-packs/probe-eval-bridge.js.map +1 -0
  426. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts +49 -0
  427. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.d.ts.map +1 -0
  428. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js +125 -0
  429. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-composer.js.map +1 -0
  430. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts +53 -0
  431. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.d.ts.map +1 -0
  432. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js +129 -0
  433. package/node_modules/@openrig/daemon/dist/domain/context-packs/profile-source-resolver.js.map +1 -0
  434. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts +48 -0
  435. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.d.ts.map +1 -0
  436. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js +123 -0
  437. package/node_modules/@openrig/daemon/dist/domain/context-packs/seat-recap-store.js.map +1 -0
  438. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts +56 -0
  439. package/node_modules/@openrig/daemon/dist/domain/markdown-address.d.ts.map +1 -0
  440. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js +188 -0
  441. package/node_modules/@openrig/daemon/dist/domain/markdown-address.js.map +1 -0
  442. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts +8 -2
  443. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.d.ts.map +1 -1
  444. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js +1 -1
  445. package/node_modules/@openrig/daemon/dist/domain/model-divergence/current-generation-record.js.map +1 -1
  446. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts +33 -21
  447. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.d.ts.map +1 -1
  448. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js +64 -55
  449. package/node_modules/@openrig/daemon/dist/domain/model-divergence/model-divergence-monitor.js.map +1 -1
  450. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
  451. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
  452. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js +5 -1
  453. package/node_modules/@openrig/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
  454. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.d.ts.map +1 -1
  455. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js +6 -1
  456. package/node_modules/@openrig/daemon/dist/domain/permission-drift-observer.js.map +1 -1
  457. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts +16 -0
  458. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.d.ts.map +1 -1
  459. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js +175 -1
  460. package/node_modules/@openrig/daemon/dist/domain/plugin-discovery-service.js.map +1 -1
  461. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts +9 -5
  462. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
  463. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js +101 -12
  464. package/node_modules/@openrig/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
  465. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts +25 -0
  466. package/node_modules/@openrig/daemon/dist/domain/process-census.d.ts.map +1 -0
  467. package/node_modules/@openrig/daemon/dist/domain/process-census.js +47 -0
  468. package/node_modules/@openrig/daemon/dist/domain/process-census.js.map +1 -0
  469. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts +3 -1
  470. package/node_modules/@openrig/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  471. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js +50 -2
  472. package/node_modules/@openrig/daemon/dist/domain/queue-repository.js.map +1 -1
  473. package/node_modules/@openrig/daemon/dist/domain/reconciler.d.ts.map +1 -1
  474. package/node_modules/@openrig/daemon/dist/domain/reconciler.js +6 -1
  475. package/node_modules/@openrig/daemon/dist/domain/reconciler.js.map +1 -1
  476. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts +31 -2
  477. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
  478. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js +64 -29
  479. package/node_modules/@openrig/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
  480. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts +5 -26
  481. package/node_modules/@openrig/daemon/dist/domain/review/compose.d.ts.map +1 -1
  482. package/node_modules/@openrig/daemon/dist/domain/review/compose.js +31 -57
  483. package/node_modules/@openrig/daemon/dist/domain/review/compose.js.map +1 -1
  484. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts +4 -0
  485. package/node_modules/@openrig/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  486. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js +9 -0
  487. package/node_modules/@openrig/daemon/dist/domain/rig-repository.js.map +1 -1
  488. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts +13 -0
  489. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  490. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js +71 -0
  491. package/node_modules/@openrig/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  492. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  493. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js +19 -3
  494. package/node_modules/@openrig/daemon/dist/domain/rigspec-schema.js.map +1 -1
  495. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts +52 -0
  496. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.d.ts.map +1 -0
  497. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js +34 -0
  498. package/node_modules/@openrig/daemon/dist/domain/running-name-guard.js.map +1 -0
  499. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts +26 -0
  500. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.d.ts.map +1 -0
  501. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js +65 -0
  502. package/node_modules/@openrig/daemon/dist/domain/scope/logical-checkbox.js.map +1 -0
  503. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts +1 -1
  504. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.d.ts.map +1 -1
  505. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js +2 -2
  506. package/node_modules/@openrig/daemon/dist/domain/scope/plan-lock-artifacts.js.map +1 -1
  507. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts +22 -0
  508. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.d.ts.map +1 -1
  509. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js +24 -0
  510. package/node_modules/@openrig/daemon/dist/domain/scope/scaffold-placeholder.js.map +1 -1
  511. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts +1 -0
  512. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.d.ts.map +1 -1
  513. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js +39 -23
  514. package/node_modules/@openrig/daemon/dist/domain/seat-activity-service.js.map +1 -1
  515. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts +22 -0
  516. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
  517. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js +32 -2
  518. package/node_modules/@openrig/daemon/dist/domain/seat-handover-service.js.map +1 -1
  519. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts +97 -0
  520. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.d.ts.map +1 -0
  521. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js +312 -0
  522. package/node_modules/@openrig/daemon/dist/domain/seat-lifecycle-service.js.map +1 -0
  523. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts +16 -5
  524. package/node_modules/@openrig/daemon/dist/domain/session-transport.d.ts.map +1 -1
  525. package/node_modules/@openrig/daemon/dist/domain/session-transport.js +155 -16
  526. package/node_modules/@openrig/daemon/dist/domain/session-transport.js.map +1 -1
  527. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts +23 -0
  528. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.d.ts.map +1 -0
  529. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js +36 -0
  530. package/node_modules/@openrig/daemon/dist/domain/shell-classifier.js.map +1 -0
  531. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.d.ts.map +1 -1
  532. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js +10 -1
  533. package/node_modules/@openrig/daemon/dist/domain/slices/slice-detail-projector.js.map +1 -1
  534. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts +17 -0
  535. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.d.ts.map +1 -0
  536. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js +38 -0
  537. package/node_modules/@openrig/daemon/dist/domain/spec-validation-advisory.js.map +1 -0
  538. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts +7 -0
  539. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
  540. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js +38 -1
  541. package/node_modules/@openrig/daemon/dist/domain/successor-session-launcher.js.map +1 -1
  542. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts +47 -0
  543. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.d.ts.map +1 -0
  544. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js +92 -0
  545. package/node_modules/@openrig/daemon/dist/domain/topology-defaults-installer.js.map +1 -0
  546. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts +4 -0
  547. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.d.ts.map +1 -1
  548. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js +61 -3
  549. package/node_modules/@openrig/daemon/dist/domain/transcript-rotation.js.map +1 -1
  550. package/node_modules/@openrig/daemon/dist/domain/transcript-store.d.ts.map +1 -1
  551. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js +9 -2
  552. package/node_modules/@openrig/daemon/dist/domain/transcript-store.js.map +1 -1
  553. package/node_modules/@openrig/daemon/dist/domain/types.d.ts +39 -0
  554. package/node_modules/@openrig/daemon/dist/domain/types.d.ts.map +1 -1
  555. package/node_modules/@openrig/daemon/dist/domain/types.js.map +1 -1
  556. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts +10 -1
  557. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  558. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js +39 -0
  559. package/node_modules/@openrig/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  560. package/node_modules/@openrig/daemon/dist/routes/context-packs.d.ts.map +1 -1
  561. package/node_modules/@openrig/daemon/dist/routes/context-packs.js +205 -0
  562. package/node_modules/@openrig/daemon/dist/routes/context-packs.js.map +1 -1
  563. package/node_modules/@openrig/daemon/dist/routes/queue.d.ts.map +1 -1
  564. package/node_modules/@openrig/daemon/dist/routes/queue.js +29 -24
  565. package/node_modules/@openrig/daemon/dist/routes/queue.js.map +1 -1
  566. package/node_modules/@openrig/daemon/dist/routes/rigspec.js +20 -6
  567. package/node_modules/@openrig/daemon/dist/routes/rigspec.js.map +1 -1
  568. package/node_modules/@openrig/daemon/dist/routes/seat.d.ts.map +1 -1
  569. package/node_modules/@openrig/daemon/dist/routes/seat.js +69 -0
  570. package/node_modules/@openrig/daemon/dist/routes/seat.js.map +1 -1
  571. package/node_modules/@openrig/daemon/dist/routes/sessions.js +55 -0
  572. package/node_modules/@openrig/daemon/dist/routes/sessions.js.map +1 -1
  573. package/node_modules/@openrig/daemon/dist/routes/transport.d.ts.map +1 -1
  574. package/node_modules/@openrig/daemon/dist/routes/transport.js +52 -39
  575. package/node_modules/@openrig/daemon/dist/routes/transport.js.map +1 -1
  576. package/node_modules/@openrig/daemon/dist/routes/up.js +21 -2
  577. package/node_modules/@openrig/daemon/dist/routes/up.js.map +1 -1
  578. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts +2 -0
  579. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.d.ts.map +1 -0
  580. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js +6 -0
  581. package/node_modules/@openrig/daemon/dist/seat-recap-store-surface.js.map +1 -0
  582. package/node_modules/@openrig/daemon/dist/startup.d.ts.map +1 -1
  583. package/node_modules/@openrig/daemon/dist/startup.js +37 -6
  584. package/node_modules/@openrig/daemon/dist/startup.js.map +1 -1
  585. package/node_modules/@openrig/daemon/package.json +6 -1
  586. package/package.json +1 -1
@@ -5,9 +5,16 @@
5
5
  // shape with structured-error rejects on malformed input. Pure
6
6
  // (no fs touches in the parser itself; caller hands in raw YAML).
7
7
  import { parse as parseYaml } from "yaml";
8
- import { ContextPackError } from "./context-pack-types.js";
8
+ import { ATOM_PRIORITIES, ATOM_PURPOSES, ATOM_REGIONS, ATOM_RUNTIMES, ATOM_SITUATIONS, ATOM_TAXONOMIES, ContextPackError, } from "./context-pack-types.js";
9
9
  import { isSafePackVersion } from "./ref-safety.js";
10
- const ALLOWED_FILE_SUFFIXES = [".md", ".markdown", ".yaml", ".yml", ".txt"];
10
+ import { AddressResolutionError, parseAddress } from "../markdown-address.js";
11
+ import { parseSourceRef, SourceResolutionError } from "./profile-source-resolver.js";
12
+ // Served as UTF-8 bundle text. `.sh`/`.ts` (OPR.0.5.3.7 R2) carry canonical skill
13
+ // helper assets the served prose references (e.g. find-polluter.sh,
14
+ // condition-based-waiting-example.ts) — text content, never executed. An unlisted
15
+ // suffix still rejects loud, so a genuinely new pack file type fails at ingest
16
+ // rather than serving a silently-incomplete bundle.
17
+ const ALLOWED_FILE_SUFFIXES = [".md", ".markdown", ".yaml", ".yml", ".txt", ".sh", ".ts"];
11
18
  export function parseManifest(rawYaml, sourcePath) {
12
19
  let parsed;
13
20
  try {
@@ -74,12 +81,237 @@ export function parseManifest(rawYaml, sourcePath) {
74
81
  const estimatedTokens = typeof estimatedTokensRaw === "number" && Number.isFinite(estimatedTokensRaw)
75
82
  ? Math.max(0, Math.floor(estimatedTokensRaw))
76
83
  : undefined;
84
+ const atoms = obj["atoms"] !== undefined ? parseAtoms(obj["atoms"], files, sourcePath) : undefined;
77
85
  return {
78
86
  name,
79
87
  version,
80
88
  ...(purpose !== undefined ? { purpose } : {}),
81
89
  files,
82
90
  ...(estimatedTokens !== undefined ? { estimatedTokens } : {}),
91
+ ...(atoms !== undefined ? { atoms } : {}),
83
92
  };
84
93
  }
94
+ // ---------------------------------------------------------------------------
95
+ // OPR.0.5.3.5 mini-req 1 — install atoms. An atom is an ADDRESS plus
96
+ // composition metadata, never a new file: fresh/handover/post-compaction all
97
+ // compose addresses into the same bytes (mini-req 5 by construction). Every
98
+ // rule here fails LOUD with the atom's index and id — a malformed atom must
99
+ // stop ingest, never thin a later compose.
100
+ const MARKDOWN_SUFFIXES = [".md", ".markdown"];
101
+ const ATOM_ID = /^[a-z0-9][a-z0-9-]{0,63}$/;
102
+ const ALLOWED_ATOM_KEYS = new Set([
103
+ "id", "address", "taxonomy", "regions", "situations", "purpose", "runtime", "order", "requires", "priority", "probe",
104
+ ]);
105
+ // The typos worth a kindness (r1 F2): singular/plural slips on the fields whose
106
+ // silent loss is sharpest.
107
+ const ALLOWED_PROBE_KEYS = new Set(["prompt", "expect", "expectedPatterns", "rubric"]);
108
+ const NEAR_MISS_ATOM_KEYS = {
109
+ require: "requires", region: "regions", situation: "situations", probes: "probe",
110
+ };
111
+ function atomError(sourcePath, index, detail) {
112
+ return new ContextPackError("manifest_invalid", `manifest at ${sourcePath} atoms[${index}]: ${detail}`, { sourcePath, index });
113
+ }
114
+ function enumField(value, allowed, field, sourcePath, index) {
115
+ if (typeof value !== "string" || !allowed.includes(value)) {
116
+ throw atomError(sourcePath, index, `'${field}' must be one of ${allowed.join(" | ")} (got: ${JSON.stringify(value)})`);
117
+ }
118
+ return value;
119
+ }
120
+ function parseAtoms(raw, files, sourcePath) {
121
+ if (!Array.isArray(raw)) {
122
+ throw new ContextPackError("manifest_invalid", `manifest at ${sourcePath} 'atoms' must be an array`, { sourcePath });
123
+ }
124
+ const declaredFiles = new Set(files.map((f) => f.path));
125
+ const atoms = [];
126
+ const seenIds = new Set();
127
+ for (let i = 0; i < raw.length; i++) {
128
+ const entry = raw[i];
129
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
130
+ throw atomError(sourcePath, i, "must be an object");
131
+ }
132
+ const a = entry;
133
+ // r1 F2: ingest knows the complete legal key set — an unknown key rejects
134
+ // LOUD. A `require:` typo silently dropping a dependency edge is the exact
135
+ // failure the field exists to prevent; every REQUIRED field failing loud
136
+ // while a typo'd OPTIONAL one fails silent would break the module contract.
137
+ for (const key of Object.keys(a)) {
138
+ if (!ALLOWED_ATOM_KEYS.has(key)) {
139
+ const hint = NEAR_MISS_ATOM_KEYS[key];
140
+ throw atomError(sourcePath, i, `unknown field '${key}'${hint ? ` — did you mean '${hint}'?` : ""} (allowed: ${[...ALLOWED_ATOM_KEYS].join(", ")})`);
141
+ }
142
+ }
143
+ const id = a["id"];
144
+ if (typeof id !== "string" || !ATOM_ID.test(id)) {
145
+ throw atomError(sourcePath, i, `'id' must be a stable slug matching [a-z0-9][a-z0-9-]{0,63} (got: ${JSON.stringify(id)})`);
146
+ }
147
+ if (seenIds.has(id))
148
+ throw atomError(sourcePath, i, `duplicate atom id '${id}' — ids are the join key for order/requires/probes`);
149
+ seenIds.add(id);
150
+ const addressRaw = a["address"];
151
+ if (typeof addressRaw !== "string" || addressRaw.length === 0) {
152
+ throw atomError(sourcePath, i, "'address' is required: file or file#H2-slug/H3-slug");
153
+ }
154
+ let parsedAddr;
155
+ try {
156
+ parsedAddr = parseAddress(addressRaw);
157
+ }
158
+ catch (err) {
159
+ if (err instanceof AddressResolutionError)
160
+ throw atomError(sourcePath, i, `'address' is malformed — ${err.message}`);
161
+ throw err;
162
+ }
163
+ // Atom 4a — the pre-'#' ref carries its resolver kind (Q2-Amendment 1's
164
+ // one-grammar-two-resolvers ruling): a bare LIBRARY ref must be a declared
165
+ // pack file; a seat:/mission: TREE ref lives outside the pack by design
166
+ // (nothing must be library-homed to be composable), so it validates
167
+ // structurally here (unknown prefix / traversal reject loud) and resolves
168
+ // from configured roots at compose.
169
+ let sourceRef;
170
+ try {
171
+ sourceRef = parseSourceRef(parsedAddr.ref);
172
+ }
173
+ catch (err) {
174
+ if (err instanceof SourceResolutionError)
175
+ throw atomError(sourcePath, i, `'address' — ${err.message}`);
176
+ throw err;
177
+ }
178
+ if (sourceRef.kind === "library" && !declaredFiles.has(parsedAddr.ref)) {
179
+ throw atomError(sourcePath, i, `'address' references '${parsedAddr.ref}', which is not a declared pack file — a library atom addresses INTO the pack's own files (tree sources use the seat:/mission: prefix)`);
180
+ }
181
+ if (parsedAddr.headerPath.length > 0 && !MARKDOWN_SUFFIXES.some((s) => sourceRef.rel.endsWith(s))) {
182
+ throw atomError(sourcePath, i, `'address' uses a header path on '${parsedAddr.ref}' — header addressing only applies to markdown files (${MARKDOWN_SUFFIXES.join(", ")})`);
183
+ }
184
+ const taxonomy = enumField(a["taxonomy"], ATOM_TAXONOMIES, "taxonomy", sourcePath, i);
185
+ const purpose = enumField(a["purpose"], ATOM_PURPOSES, "purpose", sourcePath, i);
186
+ const priority = enumField(a["priority"], ATOM_PRIORITIES, "priority", sourcePath, i);
187
+ const runtime = a["runtime"] === undefined ? "any" : enumField(a["runtime"], ATOM_RUNTIMES, "runtime", sourcePath, i);
188
+ const situationsRaw = a["situations"];
189
+ if (!Array.isArray(situationsRaw) || situationsRaw.length === 0) {
190
+ throw atomError(sourcePath, i, `'situations' must be a non-empty array of ${ATOM_SITUATIONS.join(" | ")} — it is the composition algebra's selector`);
191
+ }
192
+ const situations = situationsRaw.map((s) => enumField(s, ATOM_SITUATIONS, "situations", sourcePath, i));
193
+ let regions;
194
+ if (a["regions"] !== undefined) {
195
+ const regionsRaw = a["regions"];
196
+ if (!Array.isArray(regionsRaw))
197
+ throw atomError(sourcePath, i, "'regions' must be an array when present");
198
+ regions = regionsRaw.map((r) => enumField(r, ATOM_REGIONS, "regions", sourcePath, i));
199
+ }
200
+ const order = a["order"];
201
+ if (typeof order !== "number" || !Number.isInteger(order)) {
202
+ throw atomError(sourcePath, i, `'order' must be an integer — walks are ordered and absorption depends on sequence (got: ${JSON.stringify(order)})`);
203
+ }
204
+ let requires;
205
+ if (a["requires"] !== undefined) {
206
+ const requiresRaw = a["requires"];
207
+ if (!Array.isArray(requiresRaw) || requiresRaw.some((r) => typeof r !== "string")) {
208
+ throw atomError(sourcePath, i, "'requires' must be an array of atom ids when present");
209
+ }
210
+ requires = requiresRaw;
211
+ if (requires.includes(id))
212
+ throw atomError(sourcePath, i, `atom '${id}' requires itself`);
213
+ }
214
+ let probe;
215
+ if (a["probe"] !== undefined) {
216
+ const p = a["probe"];
217
+ if (!p || typeof p !== "object" || Array.isArray(p))
218
+ throw atomError(sourcePath, i, "'probe' must be an object { prompt, expect, expectedPatterns?, rubric? }");
219
+ const pr = p;
220
+ // Q3 bridge: the key gate extends INSIDE probe (the dispositioned Atom-2
221
+ // note landing at its recorded spot), and the shape reconciles with the
222
+ // harness's EvalCase — expectedPatterns/rubric are LEGAL here, so the
223
+ // natural mistake r1 predicted becomes the schema instead of silent loss.
224
+ for (const key of Object.keys(pr)) {
225
+ if (!ALLOWED_PROBE_KEYS.has(key)) {
226
+ throw atomError(sourcePath, i, `'probe' has unknown field '${key}'${key === "rubrics" ? " — did you mean 'rubric'?" : ""} (allowed: ${[...ALLOWED_PROBE_KEYS].join(", ")})`);
227
+ }
228
+ }
229
+ if (typeof pr["prompt"] !== "string" || pr["prompt"].length === 0 || typeof pr["expect"] !== "string" || pr["expect"].length === 0) {
230
+ throw atomError(sourcePath, i, "'probe' needs BOTH a natural 'prompt' and the 'expect'ed observable behavior — acceptance is changed behavior, never files delivered");
231
+ }
232
+ let expectedPatterns;
233
+ if (pr["expectedPatterns"] !== undefined) {
234
+ const eps = pr["expectedPatterns"];
235
+ if (!Array.isArray(eps) || eps.some((e) => typeof e !== "string")) {
236
+ throw atomError(sourcePath, i, "'probe.expectedPatterns' must be an array of regex source strings when present");
237
+ }
238
+ for (const src of eps) {
239
+ try {
240
+ new RegExp(src);
241
+ }
242
+ catch {
243
+ throw atomError(sourcePath, i, `'probe.expectedPatterns' entry '${src}' is not a compilable regex source`);
244
+ }
245
+ }
246
+ expectedPatterns = eps;
247
+ }
248
+ if (pr["rubric"] !== undefined && typeof pr["rubric"] !== "string") {
249
+ throw atomError(sourcePath, i, "'probe.rubric' must be a string when present");
250
+ }
251
+ probe = {
252
+ prompt: pr["prompt"],
253
+ expect: pr["expect"],
254
+ ...(expectedPatterns !== undefined ? { expectedPatterns } : {}),
255
+ ...(pr["rubric"] !== undefined ? { rubric: pr["rubric"] } : {}),
256
+ };
257
+ }
258
+ atoms.push({
259
+ id,
260
+ address: addressRaw,
261
+ taxonomy,
262
+ ...(regions !== undefined ? { regions } : {}),
263
+ situations,
264
+ purpose,
265
+ runtime,
266
+ order,
267
+ ...(requires !== undefined ? { requires } : {}),
268
+ priority,
269
+ ...(probe !== undefined ? { probe } : {}),
270
+ });
271
+ }
272
+ // Cross-atom edges, after all ids are known.
273
+ for (let i = 0; i < atoms.length; i++) {
274
+ for (const req of atoms[i].requires ?? []) {
275
+ if (!seenIds.has(req)) {
276
+ throw atomError(sourcePath, i, `atom '${atoms[i].id}' requires '${req}', which no atom declares`);
277
+ }
278
+ }
279
+ }
280
+ // A requires CYCLE can never be closed over by any subset profile — reject at
281
+ // ingest with the cycle spelled out. The walk is ITERATIVE with an explicit
282
+ // stack (r1 F1): the recursive form threw a bare RangeError past ~5000 atoms —
283
+ // outside the ContextPackError channel this module promises — and depth is
284
+ // attacker-choosable (packs install from URLs, slice-07 R4); no recursion
285
+ // threshold is safe across Node versions/platforms, so there isn't one.
286
+ const state = new Map();
287
+ const byId = new Map(atoms.map((atom) => [atom.id, atom]));
288
+ for (const root of atoms) {
289
+ if (state.get(root.id) === "done")
290
+ continue;
291
+ // Each frame tracks how far through its requires list it has walked.
292
+ const stack = [{ id: root.id, next: 0 }];
293
+ state.set(root.id, "visiting");
294
+ while (stack.length > 0) {
295
+ const frame = stack[stack.length - 1];
296
+ const reqs = byId.get(frame.id).requires ?? [];
297
+ if (frame.next >= reqs.length) {
298
+ state.set(frame.id, "done");
299
+ stack.pop();
300
+ continue;
301
+ }
302
+ const req = reqs[frame.next++];
303
+ const s = state.get(req);
304
+ if (s === "done")
305
+ continue;
306
+ if (s === "visiting") {
307
+ const trail = stack.map((f) => f.id);
308
+ const cycle = [...trail.slice(trail.indexOf(req)), req].join(" -> ");
309
+ throw new ContextPackError("manifest_invalid", `manifest at ${sourcePath} atoms: requires cycle ${cycle} — no subset profile could ever close over it`, { sourcePath });
310
+ }
311
+ state.set(req, "visiting");
312
+ stack.push({ id: req, next: 0 });
313
+ }
314
+ }
315
+ return atoms;
316
+ }
85
317
  //# sourceMappingURL=manifest-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest-parser.js","sourceRoot":"","sources":["../../../src/domain/context-packs/manifest-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest-parser.js","sourceRoot":"","sources":["../../../src/domain/context-packs/manifest-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { ContextPackManifest } from "./context-pack-types.js";
2
+ /** A plain eval-case object in the harness's declarative format. The harness's
3
+ * validateEvalCase is the authority on this shape; the bridge emits data. */
4
+ export type CompiledEvalCaseData = Record<string, unknown>;
5
+ /**
6
+ * Compile every probed atom of a manifest into behavior-category eval-case
7
+ * data. Atoms without probes are skipped (a probe is acceptance evidence,
8
+ * not an obligation). Case ids are namespaced by the pack ref so cases from
9
+ * multiple packs never collide in one harness run.
10
+ *
11
+ * The mapping, field by field:
12
+ * id <- <packRef>/<atomId>
13
+ * name <- the probe's expect (the observable-behavior contract
14
+ * IS the case's human name — what a grader reads first)
15
+ * category <- "behavior"
16
+ * prompt <- probe.prompt (the natural prompt, mini-req 2)
17
+ * expectedPatterns <- probe.expectedPatterns (the deterministic door leg;
18
+ * validated compilable at manifest ingest)
19
+ * rubric <- probe.rubric, else the expect prose (the judged leg
20
+ * always has at least the behavior contract to judge by)
21
+ */
22
+ export interface CompiledProbeCases {
23
+ cases: CompiledEvalCaseData[];
24
+ /** Probes that could not become harness cases, WITH reasons — a bound the
25
+ * caller must surface (no silent caps): a probe without expectedPatterns
26
+ * has no deterministic-door leg, and the bridge refuses both to fabricate
27
+ * a pattern from prose and to lose the atom silently. */
28
+ skipped: Array<{
29
+ atomId: string;
30
+ reason: string;
31
+ }>;
32
+ }
33
+ export declare function compileAtomProbesToEvalCases(manifest: ContextPackManifest, packRef: string): CompiledProbeCases;
34
+ //# sourceMappingURL=probe-eval-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe-eval-bridge.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/probe-eval-bridge.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;8EAC8E;AAC9E,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B;;;8DAG0D;IAC1D,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAsB/G"}
@@ -0,0 +1,38 @@
1
+ // OPR.0.5.3.5 Q3 harness bridge (mini-req 8, amended per desk ruling 9103302d):
2
+ // slice-05's behavior probes execute in the SAME live-model eval harness as
3
+ // slice-07's selection/loading cases, as the "behavior" case CATEGORY — one
4
+ // harness, one runner, one grading door; two runners would fork the eval
5
+ // convention itself (the drift class this release keeps killing).
6
+ //
7
+ // This bridge is DATA-SHAPED on purpose: it compiles atom probes (mini-req 1
8
+ // metadata) into plain eval-case objects that the harness validates through
9
+ // ITS OWN schema at load time — exactly how the authored YAML cases travel.
10
+ // No import from the harness's modules, so the product side and the
11
+ // test-system side stay decoupled by data (the schema's own stated design:
12
+ // "no cross-package TS import"), and the one-harness property is preserved
13
+ // by construction rather than by discipline.
14
+ export function compileAtomProbesToEvalCases(manifest, packRef) {
15
+ const cases = [];
16
+ const skipped = [];
17
+ for (const atom of manifest.atoms ?? []) {
18
+ if (!atom.probe)
19
+ continue;
20
+ if (!atom.probe.expectedPatterns || atom.probe.expectedPatterns.length === 0) {
21
+ skipped.push({
22
+ atomId: atom.id,
23
+ reason: "probe has no expectedPatterns — the harness's deterministic door requires at least one compilable pattern; author them on the atom's probe",
24
+ });
25
+ continue;
26
+ }
27
+ cases.push({
28
+ id: `${packRef}/${atom.id}`,
29
+ name: atom.probe.expect,
30
+ category: "behavior",
31
+ prompt: atom.probe.prompt,
32
+ expectedPatterns: atom.probe.expectedPatterns,
33
+ rubric: atom.probe.rubric ?? atom.probe.expect,
34
+ });
35
+ }
36
+ return { cases, skipped };
37
+ }
38
+ //# sourceMappingURL=probe-eval-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe-eval-bridge.js","sourceRoot":"","sources":["../../../src/domain/context-packs/probe-eval-bridge.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,4EAA4E;AAC5E,4EAA4E;AAC5E,yEAAyE;AACzE,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,oEAAoE;AACpE,2EAA2E;AAC3E,2EAA2E;AAC3E,6CAA6C;AAkC7C,MAAM,UAAU,4BAA4B,CAAC,QAA6B,EAAE,OAAe;IACzF,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,MAAM,OAAO,GAAkC,EAAE,CAAC;IAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,SAAS;QAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,MAAM,EAAE,4IAA4I;aACrJ,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,GAAG,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE;YAC3B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACvB,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAC7C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;SAC/C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { ContextPackAtom } from "./context-pack-types.js";
2
+ export declare class ProfileComposeError extends Error {
3
+ constructor(message: string);
4
+ }
5
+ export type ComposeSituation = "fresh" | "handover" | "post-compaction";
6
+ export type ComposeRuntime = "claude" | "codex";
7
+ export type SourceKind = "library" | "seat" | "mission";
8
+ export interface ComposeInput {
9
+ /** The one atom graph (possibly gathered across sources by the caller). */
10
+ atoms: ContextPackAtom[];
11
+ situation: ComposeSituation;
12
+ runtime: ComposeRuntime;
13
+ /** Fail-loud file reader keyed by the address's pre-`#` ref. */
14
+ readFile: (ref: string) => string;
15
+ /** The situation's token budget (D2 targets); omitted = no budget check. */
16
+ budgetTokens?: number;
17
+ /** Source labelling per atom (Q2-Amendment 1); defaults to "library". */
18
+ sourceKindFor?: (atom: ContextPackAtom) => SourceKind;
19
+ }
20
+ export interface ComposedPiece {
21
+ atomId: string;
22
+ address: string;
23
+ sourceKind: SourceKind;
24
+ order: number;
25
+ priority: ContextPackAtom["priority"];
26
+ /** The resolved bytes: the addressed span (Q1 full-span rule) or the whole file. */
27
+ text: string;
28
+ estimatedTokens: number;
29
+ }
30
+ export interface ComposedProfile {
31
+ situation: ComposeSituation;
32
+ runtime: ComposeRuntime;
33
+ pieces: ComposedPiece[];
34
+ totalEstimatedTokens: number;
35
+ /** Present ONLY when the budget binds: the report, never a truncation. */
36
+ budget?: {
37
+ limitTokens: number;
38
+ overageTokens: number;
39
+ /** What to drop FIRST, in drop order: optional, then recommended, then core;
40
+ * larger pieces first within a tier (the biggest cheap win leads). */
41
+ dropCandidates: Array<{
42
+ atomId: string;
43
+ priority: ContextPackAtom["priority"];
44
+ estimatedTokens: number;
45
+ }>;
46
+ };
47
+ }
48
+ export declare function composeProfile(input: ComposeInput): ComposedProfile;
49
+ //# sourceMappingURL=profile-composer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-composer.d.ts","sourceRoot":"","sources":["../../../src/domain/context-packs/profile-composer.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,iBAAiB,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,gEAAgE;IAChE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,UAAU,CAAC;CACvD;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;IACtC,oFAAoF;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,MAAM,CAAC,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB;+EACuE;QACvE,cAAc,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC3G,CAAC;CACH;AAgBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,CAsFnE"}
@@ -0,0 +1,125 @@
1
+ // OPR.0.5.3.5 Atom 3 — the composition algebra (locked SPEC, founder refinement):
2
+ //
3
+ // FRESH = the base walk (atoms tagged fresh)
4
+ // HANDOVER = FRESH + the handover material (atoms tagged handover)
5
+ // POST-COMPACTION = the tagged subset of fresh + the handover material
6
+ //
7
+ // Every profile is CLOSED over requires (a subset profile must close — intake rule);
8
+ // the runtime filter runs per mini-req 3 (claude and codex are never assumed to have
9
+ // lost the same dimensions, so they compose different profiles from the SAME graph);
10
+ // each piece resolves through the Atom-1 address machinery and carries a per-piece
11
+ // SOURCE LABEL (Q2-Amendment 1: composition is multi-source by contract — library /
12
+ // seat tree / mission tree — and every assembled piece names its source; the caller's
13
+ // resolver decides the kind, this module labels). Budgets are evaluated AT COMPOSE
14
+ // and on overage REPORT the amount and the priority-ordered drop candidates —
15
+ // composition never silently truncates (mini-req 9; D2: budgets flag for review,
16
+ // never silently govern).
17
+ //
18
+ // PURE by contract, like the manifest parser: file text arrives through the caller's
19
+ // readFile so the same algebra serves library packs today and configured tree roots
20
+ // (seat/mission sources) when the wiring atom lands. Every failure is LOUD and names
21
+ // the atom — a compose stops rather than thinning the walk (the Q1 rationale).
22
+ import { estimateTokensFromBytes } from "./token-estimate.js";
23
+ import { AddressResolutionError, parseAddress, resolveAddress } from "../markdown-address.js";
24
+ export class ProfileComposeError extends Error {
25
+ constructor(message) {
26
+ super(message);
27
+ this.name = "ProfileComposeError";
28
+ }
29
+ }
30
+ /** Which situation tags select atoms for a profile, per the locked algebra. */
31
+ function selectionTags(situation) {
32
+ switch (situation) {
33
+ case "fresh":
34
+ return ["fresh"];
35
+ case "handover":
36
+ return ["fresh", "handover"];
37
+ case "post-compaction":
38
+ return ["post-compaction", "handover"];
39
+ }
40
+ }
41
+ const DROP_ORDER = { optional: 0, recommended: 1, core: 2 };
42
+ export function composeProfile(input) {
43
+ const { atoms, situation, runtime, readFile, budgetTokens, sourceKindFor } = input;
44
+ const byId = new Map(atoms.map((a) => [a.id, a]));
45
+ // 1. SELECT by situation tag, then filter by runtime (an "any" atom serves both).
46
+ const tags = selectionTags(situation);
47
+ const runtimeFits = (a) => a.runtime === "any" || a.runtime === runtime;
48
+ const selected = new Map();
49
+ for (const a of atoms) {
50
+ if (a.situations.some((s) => tags.includes(s)) && runtimeFits(a))
51
+ selected.set(a.id, a);
52
+ }
53
+ // 2. CLOSE over requires: a required atom joins the profile even when untagged.
54
+ // A dependency that exists but is excluded by the RUNTIME filter is a broken
55
+ // graph for this runtime — fail loud, never a quietly thinner walk.
56
+ const queue = [...selected.keys()];
57
+ while (queue.length > 0) {
58
+ const id = queue.pop();
59
+ for (const req of selected.get(id)?.requires ?? byId.get(id)?.requires ?? []) {
60
+ if (selected.has(req))
61
+ continue;
62
+ const dep = byId.get(req);
63
+ if (!dep) {
64
+ throw new ProfileComposeError(`atom '${id}' requires '${req}', which is not in the graph — the ${situation} profile cannot close.`);
65
+ }
66
+ if (!runtimeFits(dep)) {
67
+ throw new ProfileComposeError(`atom '${id}' requires '${req}', but '${req}' is declared runtime=${dep.runtime} and this compose targets runtime=${runtime} — ` +
68
+ `the closure would silently thin the ${situation} walk; fix the graph (retag '${req}' or drop the edge).`);
69
+ }
70
+ selected.set(req, dep);
71
+ queue.push(req);
72
+ }
73
+ }
74
+ // 3. ORDER the walk (stable: order, then id — absorption depends on sequence).
75
+ const walk = [...selected.values()].sort((x, y) => x.order - y.order || x.id.localeCompare(y.id));
76
+ // 4. RESOLVE every piece through the one address machinery; label its source.
77
+ const pieces = walk.map((a) => {
78
+ const { ref, headerPath } = parseAddress(a.address);
79
+ let fileText;
80
+ try {
81
+ fileText = readFile(ref);
82
+ }
83
+ catch (err) {
84
+ throw new ProfileComposeError(`atom '${a.id}' (${a.address}): source file '${ref}' is unreadable — ${err.message}`);
85
+ }
86
+ let text;
87
+ if (headerPath.length === 0) {
88
+ text = fileText;
89
+ }
90
+ else {
91
+ try {
92
+ text = resolveAddress(fileText, headerPath).text;
93
+ }
94
+ catch (err) {
95
+ if (err instanceof AddressResolutionError) {
96
+ throw new ProfileComposeError(`atom '${a.id}' (${a.address}): ${err.message}`);
97
+ }
98
+ throw err;
99
+ }
100
+ }
101
+ return {
102
+ atomId: a.id,
103
+ address: a.address,
104
+ sourceKind: sourceKindFor?.(a) ?? "library",
105
+ order: a.order,
106
+ priority: a.priority,
107
+ text,
108
+ estimatedTokens: estimateTokensFromBytes(Buffer.byteLength(text, "utf-8")),
109
+ };
110
+ });
111
+ const totalEstimatedTokens = pieces.reduce((sum, p) => sum + p.estimatedTokens, 0);
112
+ // 5. BUDGET report (mini-req 9): flag, never govern — all pieces stay.
113
+ let budget;
114
+ if (budgetTokens !== undefined && totalEstimatedTokens > budgetTokens) {
115
+ budget = {
116
+ limitTokens: budgetTokens,
117
+ overageTokens: totalEstimatedTokens - budgetTokens,
118
+ dropCandidates: [...pieces]
119
+ .sort((x, y) => DROP_ORDER[x.priority] - DROP_ORDER[y.priority] || y.estimatedTokens - x.estimatedTokens || x.atomId.localeCompare(y.atomId))
120
+ .map((p) => ({ atomId: p.atomId, priority: p.priority, estimatedTokens: p.estimatedTokens })),
121
+ };
122
+ }
123
+ return { situation, runtime, pieces, totalEstimatedTokens, ...(budget !== undefined ? { budget } : {}) };
124
+ }
125
+ //# sourceMappingURL=profile-composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-composer.js","sourceRoot":"","sources":["../../../src/domain/context-packs/profile-composer.ts"],"names":[],"mappings":"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"}
@@ -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"}