@openrig/cli 0.4.3 → 0.4.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 (287) hide show
  1. package/daemon/assets/guidance/openrig-start.md +6 -0
  2. package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +49 -21
  3. package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +12 -12
  4. package/daemon/dist/build-info.d.ts +12 -0
  5. package/daemon/dist/build-info.d.ts.map +1 -0
  6. package/daemon/dist/build-info.js +11 -0
  7. package/daemon/dist/build-info.js.map +1 -0
  8. package/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts +18 -0
  9. package/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts.map +1 -0
  10. package/daemon/dist/db/migrations/048_queue_item_evidence_ref.js +22 -0
  11. package/daemon/dist/db/migrations/048_queue_item_evidence_ref.js.map +1 -0
  12. package/daemon/dist/domain/feed/attention-aggregator.d.ts +31 -0
  13. package/daemon/dist/domain/feed/attention-aggregator.d.ts.map +1 -0
  14. package/daemon/dist/domain/feed/attention-aggregator.js +119 -0
  15. package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -0
  16. package/daemon/dist/domain/files/file-write-service.d.ts +11 -2
  17. package/daemon/dist/domain/files/file-write-service.d.ts.map +1 -1
  18. package/daemon/dist/domain/files/file-write-service.js +77 -0
  19. package/daemon/dist/domain/files/file-write-service.js.map +1 -1
  20. package/daemon/dist/domain/hosts/fanout-contract.d.ts +33 -0
  21. package/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -0
  22. package/daemon/dist/domain/hosts/fanout-contract.js +23 -0
  23. package/daemon/dist/domain/hosts/fanout-contract.js.map +1 -0
  24. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +49 -0
  25. package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -0
  26. package/daemon/dist/domain/hosts/hosts-registry-reader.js +165 -0
  27. package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -0
  28. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +35 -0
  29. package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -0
  30. package/daemon/dist/domain/hosts/remote-daemon-http.js +105 -0
  31. package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -0
  32. package/daemon/dist/domain/human-route-enforcer.d.ts +71 -0
  33. package/daemon/dist/domain/human-route-enforcer.d.ts.map +1 -0
  34. package/daemon/dist/domain/human-route-enforcer.js +80 -0
  35. package/daemon/dist/domain/human-route-enforcer.js.map +1 -0
  36. package/daemon/dist/domain/mission-control/audit-browse.d.ts +8 -0
  37. package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
  38. package/daemon/dist/domain/mission-control/audit-browse.js +19 -0
  39. package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
  40. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +1 -1
  41. package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -1
  42. package/daemon/dist/domain/mission-control/mission-control-action-log.js +4 -0
  43. package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -1
  44. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +1 -1
  45. package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
  46. package/daemon/dist/domain/mission-control/mission-control-read-layer.js +1 -1
  47. package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
  48. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +28 -0
  49. package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
  50. package/daemon/dist/domain/mission-control/mission-control-write-contract.js +125 -0
  51. package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
  52. package/daemon/dist/domain/ps-projection.d.ts +28 -1
  53. package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
  54. package/daemon/dist/domain/ps-projection.js +39 -0
  55. package/daemon/dist/domain/ps-projection.js.map +1 -1
  56. package/daemon/dist/domain/queue-repository.d.ts +25 -1
  57. package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
  58. package/daemon/dist/domain/queue-repository.js +111 -7
  59. package/daemon/dist/domain/queue-repository.js.map +1 -1
  60. package/daemon/dist/domain/review/brief-spine.d.ts +19 -0
  61. package/daemon/dist/domain/review/brief-spine.d.ts.map +1 -0
  62. package/daemon/dist/domain/review/brief-spine.js +86 -0
  63. package/daemon/dist/domain/review/brief-spine.js.map +1 -0
  64. package/daemon/dist/domain/review/compose.d.ts +228 -0
  65. package/daemon/dist/domain/review/compose.d.ts.map +1 -0
  66. package/daemon/dist/domain/review/compose.js +773 -0
  67. package/daemon/dist/domain/review/compose.js.map +1 -0
  68. package/daemon/dist/domain/review/freeze.d.ts +31 -0
  69. package/daemon/dist/domain/review/freeze.d.ts.map +1 -0
  70. package/daemon/dist/domain/review/freeze.js +257 -0
  71. package/daemon/dist/domain/review/freeze.js.map +1 -0
  72. package/daemon/dist/domain/review/gather.d.ts +100 -0
  73. package/daemon/dist/domain/review/gather.d.ts.map +1 -0
  74. package/daemon/dist/domain/review/gather.js +676 -0
  75. package/daemon/dist/domain/review/gather.js.map +1 -0
  76. package/daemon/dist/domain/review/types.d.ts +258 -0
  77. package/daemon/dist/domain/review/types.d.ts.map +1 -0
  78. package/daemon/dist/domain/review/types.js +35 -0
  79. package/daemon/dist/domain/review/types.js.map +1 -0
  80. package/daemon/dist/domain/scope/scope-approve.d.ts +64 -0
  81. package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -0
  82. package/daemon/dist/domain/scope/scope-approve.js +153 -0
  83. package/daemon/dist/domain/scope/scope-approve.js.map +1 -0
  84. package/daemon/dist/domain/scope/scope-audit.d.ts +9 -1
  85. package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
  86. package/daemon/dist/domain/scope/scope-audit.js +173 -1
  87. package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
  88. package/daemon/dist/domain/topology/multi-rig-launcher.d.ts +49 -0
  89. package/daemon/dist/domain/topology/multi-rig-launcher.d.ts.map +1 -0
  90. package/daemon/dist/domain/topology/multi-rig-launcher.js +132 -0
  91. package/daemon/dist/domain/topology/multi-rig-launcher.js.map +1 -0
  92. package/daemon/dist/domain/topology/remote-up-leaf.d.ts +29 -0
  93. package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -0
  94. package/daemon/dist/domain/topology/remote-up-leaf.js +60 -0
  95. package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -0
  96. package/daemon/dist/domain/topology/topology-manifest.d.ts +34 -0
  97. package/daemon/dist/domain/topology/topology-manifest.d.ts.map +1 -0
  98. package/daemon/dist/domain/topology/topology-manifest.js +195 -0
  99. package/daemon/dist/domain/topology/topology-manifest.js.map +1 -0
  100. package/daemon/dist/domain/types.d.ts +5 -0
  101. package/daemon/dist/domain/types.d.ts.map +1 -1
  102. package/daemon/dist/domain/types.js.map +1 -1
  103. package/daemon/dist/domain/up-command-router.d.ts +1 -1
  104. package/daemon/dist/domain/up-command-router.d.ts.map +1 -1
  105. package/daemon/dist/domain/up-command-router.js +34 -2
  106. package/daemon/dist/domain/up-command-router.js.map +1 -1
  107. package/daemon/dist/domain/user-settings/settings-store.d.ts +17 -0
  108. package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
  109. package/daemon/dist/domain/user-settings/settings-store.js +109 -0
  110. package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
  111. package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
  112. package/daemon/dist/domain/workspace/default-workspace-scaffold.js +51 -6
  113. package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
  114. package/daemon/dist/domain/workspace/workspace-doctor.d.ts +11 -0
  115. package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
  116. package/daemon/dist/domain/workspace/workspace-doctor.js +82 -0
  117. package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
  118. package/daemon/dist/routes/config.d.ts.map +1 -1
  119. package/daemon/dist/routes/config.js +15 -6
  120. package/daemon/dist/routes/config.js.map +1 -1
  121. package/daemon/dist/routes/files.d.ts.map +1 -1
  122. package/daemon/dist/routes/files.js +45 -1
  123. package/daemon/dist/routes/files.js.map +1 -1
  124. package/daemon/dist/routes/mission-control.d.ts.map +1 -1
  125. package/daemon/dist/routes/mission-control.js +67 -2
  126. package/daemon/dist/routes/mission-control.js.map +1 -1
  127. package/daemon/dist/routes/queue.d.ts +8 -2
  128. package/daemon/dist/routes/queue.d.ts.map +1 -1
  129. package/daemon/dist/routes/queue.js +44 -4
  130. package/daemon/dist/routes/queue.js.map +1 -1
  131. package/daemon/dist/routes/review.d.ts +3 -0
  132. package/daemon/dist/routes/review.d.ts.map +1 -0
  133. package/daemon/dist/routes/review.js +169 -0
  134. package/daemon/dist/routes/review.js.map +1 -0
  135. package/daemon/dist/routes/scope-approve.d.ts +3 -0
  136. package/daemon/dist/routes/scope-approve.d.ts.map +1 -0
  137. package/daemon/dist/routes/scope-approve.js +55 -0
  138. package/daemon/dist/routes/scope-approve.js.map +1 -0
  139. package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
  140. package/daemon/dist/routes/scope-audit.js +28 -1
  141. package/daemon/dist/routes/scope-audit.js.map +1 -1
  142. package/daemon/dist/routes/slices.d.ts.map +1 -1
  143. package/daemon/dist/routes/slices.js +49 -9
  144. package/daemon/dist/routes/slices.js.map +1 -1
  145. package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
  146. package/daemon/dist/routes/terminal-ws.js +58 -21
  147. package/daemon/dist/routes/terminal-ws.js.map +1 -1
  148. package/daemon/dist/routes/up.d.ts.map +1 -1
  149. package/daemon/dist/routes/up.js +84 -0
  150. package/daemon/dist/routes/up.js.map +1 -1
  151. package/daemon/dist/routes/workspace.js +2 -2
  152. package/daemon/dist/server.d.ts +1 -0
  153. package/daemon/dist/server.d.ts.map +1 -1
  154. package/daemon/dist/server.js +14 -1
  155. package/daemon/dist/server.js.map +1 -1
  156. package/daemon/dist/startup.d.ts.map +1 -1
  157. package/daemon/dist/startup.js +18 -3
  158. package/daemon/dist/startup.js.map +1 -1
  159. package/daemon/docs/reference/agent-startup-guide.md +1 -1
  160. package/daemon/docs/reference/product-factory-vps-runbook.md +132 -0
  161. package/daemon/docs/reference/sdlc-conventions.md +187 -0
  162. package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
  163. package/daemon/specs/agents/conveyor/builder/guidance/role.md +1 -0
  164. package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
  165. package/daemon/specs/agents/conveyor/lead/guidance/role.md +1 -0
  166. package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
  167. package/daemon/specs/agents/conveyor/planner/guidance/role.md +1 -0
  168. package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -1
  169. package/daemon/specs/agents/conveyor/reviewer/guidance/role.md +1 -0
  170. package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
  171. package/daemon/specs/agents/design/product-designer/guidance/role.md +1 -0
  172. package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
  173. package/daemon/specs/agents/development/implementer/guidance/role.md +1 -0
  174. package/daemon/specs/agents/development/qa/agent.yaml +1 -1
  175. package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
  176. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
  177. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +1 -0
  178. package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
  179. package/daemon/specs/agents/product-management/pm/guidance/role.md +13 -0
  180. package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
  181. package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +1 -0
  182. package/daemon/specs/agents/shared/agent.yaml +2 -0
  183. package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +115 -0
  184. package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +4 -4
  185. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +69 -23
  186. package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +2 -2
  187. package/daemon/specs/rigs/focused/pm-team/CULTURE.md +4 -0
  188. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +1 -1
  189. package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +1 -1
  190. package/daemon/specs/rigs/preview/product-team/CULTURE.md +4 -0
  191. package/dist/build-info.d.ts +8 -0
  192. package/dist/build-info.d.ts.map +1 -0
  193. package/dist/build-info.js +11 -0
  194. package/dist/build-info.js.map +1 -0
  195. package/dist/commands/config-init-workspace.d.ts.map +1 -1
  196. package/dist/commands/config-init-workspace.js +20 -4
  197. package/dist/commands/config-init-workspace.js.map +1 -1
  198. package/dist/commands/doctor.js +2 -2
  199. package/dist/commands/doctor.js.map +1 -1
  200. package/dist/commands/expand.js +1 -1
  201. package/dist/commands/expand.js.map +1 -1
  202. package/dist/commands/file.d.ts +7 -0
  203. package/dist/commands/file.d.ts.map +1 -0
  204. package/dist/commands/file.js +77 -0
  205. package/dist/commands/file.js.map +1 -0
  206. package/dist/commands/host.d.ts +34 -0
  207. package/dist/commands/host.d.ts.map +1 -0
  208. package/dist/commands/host.js +448 -0
  209. package/dist/commands/host.js.map +1 -0
  210. package/dist/commands/proof.d.ts +54 -0
  211. package/dist/commands/proof.d.ts.map +1 -0
  212. package/dist/commands/proof.js +311 -0
  213. package/dist/commands/proof.js.map +1 -0
  214. package/dist/commands/ps.d.ts +41 -7
  215. package/dist/commands/ps.d.ts.map +1 -1
  216. package/dist/commands/ps.js +343 -131
  217. package/dist/commands/ps.js.map +1 -1
  218. package/dist/commands/queue.d.ts.map +1 -1
  219. package/dist/commands/queue.js +76 -0
  220. package/dist/commands/queue.js.map +1 -1
  221. package/dist/commands/scope.d.ts.map +1 -1
  222. package/dist/commands/scope.js +140 -3
  223. package/dist/commands/scope.js.map +1 -1
  224. package/dist/commands/send.js +13 -4
  225. package/dist/commands/send.js.map +1 -1
  226. package/dist/commands/up.d.ts +2 -0
  227. package/dist/commands/up.d.ts.map +1 -1
  228. package/dist/commands/up.js +69 -2
  229. package/dist/commands/up.js.map +1 -1
  230. package/dist/commands/workspace.js +6 -6
  231. package/dist/commands/workspace.js.map +1 -1
  232. package/dist/config-store.d.ts +4 -0
  233. package/dist/config-store.d.ts.map +1 -1
  234. package/dist/config-store.js +68 -0
  235. package/dist/config-store.js.map +1 -1
  236. package/dist/cross-host-executor.d.ts +1 -0
  237. package/dist/cross-host-executor.d.ts.map +1 -1
  238. package/dist/cross-host-executor.js +4 -1
  239. package/dist/cross-host-executor.js.map +1 -1
  240. package/dist/daemon-lifecycle.d.ts.map +1 -1
  241. package/dist/daemon-lifecycle.js +4 -1
  242. package/dist/daemon-lifecycle.js.map +1 -1
  243. package/dist/host-registry.d.ts +9 -0
  244. package/dist/host-registry.d.ts.map +1 -1
  245. package/dist/host-registry.js +32 -2
  246. package/dist/host-registry.js.map +1 -1
  247. package/dist/index.d.ts.map +1 -1
  248. package/dist/index.js +7 -0
  249. package/dist/index.js.map +1 -1
  250. package/dist/lib/file-transfer.d.ts +89 -0
  251. package/dist/lib/file-transfer.d.ts.map +1 -0
  252. package/dist/lib/file-transfer.js +300 -0
  253. package/dist/lib/file-transfer.js.map +1 -0
  254. package/dist/lib/hosts/fanout-contract.d.ts +33 -0
  255. package/dist/lib/hosts/fanout-contract.d.ts.map +1 -0
  256. package/dist/lib/hosts/fanout-contract.js +23 -0
  257. package/dist/lib/hosts/fanout-contract.js.map +1 -0
  258. package/dist/lib/scope/scope-audit.d.ts +9 -1
  259. package/dist/lib/scope/scope-audit.d.ts.map +1 -1
  260. package/dist/lib/scope/scope-audit.js +173 -1
  261. package/dist/lib/scope/scope-audit.js.map +1 -1
  262. package/dist/lib/scope/templates.d.ts +1 -0
  263. package/dist/lib/scope/templates.d.ts.map +1 -1
  264. package/dist/lib/scope/templates.js +9 -0
  265. package/dist/lib/scope/templates.js.map +1 -1
  266. package/dist/lib/scope-templates/backlog-deprecation.md +16 -0
  267. package/dist/lib/scope-templates/backlog-tech-debt.md +16 -0
  268. package/dist/lib/scope-templates/bug-fix.md +16 -0
  269. package/dist/lib/scope-templates/implementation-prd.md +33 -0
  270. package/dist/lib/scope-templates/mission-placeholder.md +1 -1
  271. package/dist/lib/scope-templates/mission-progress.md +1 -1
  272. package/dist/lib/scope-templates/mission-release.md +1 -1
  273. package/dist/lib/scope-templates/placeholder.md +11 -7
  274. package/dist/lib/scope-templates/proof.md +5 -1
  275. package/dist/lib/scope-templates/release-feature.md +14 -6
  276. package/dist/lib/scope-templates/research.md +16 -0
  277. package/dist/lib/scope-templates/slice-progress.md +1 -1
  278. package/dist/version.d.ts +5 -0
  279. package/dist/version.d.ts.map +1 -1
  280. package/dist/version.js +11 -1
  281. package/dist/version.js.map +1 -1
  282. package/package.json +1 -1
  283. package/ui/dist/assets/index-D69ZhNIr.js +598 -0
  284. package/ui/dist/assets/index-DJYun-8d.css +32 -0
  285. package/ui/dist/index.html +2 -2
  286. package/ui/dist/assets/index-DYZniQcc.js +0 -597
  287. package/ui/dist/assets/index-trcb4Yf_.css +0 -32
@@ -0,0 +1,19 @@
1
+ import type { ComposedMissionReview } from "./types.js";
2
+ export interface BriefSpine {
3
+ building: string;
4
+ progress: string;
5
+ proven: string;
6
+ needsYou: string;
7
+ }
8
+ /** The four generated section bodies — derived from the same composer
9
+ * queries FR-7 renders (no second computation path). */
10
+ export declare function renderBriefSpine(m: ComposedMissionReview): BriefSpine;
11
+ /**
12
+ * Section-scoped application: replaces ONLY the four spine section bodies in
13
+ * an existing MISSION_BRIEF.md, preserving every other byte (hand-authored
14
+ * "What & why"/"Pointers", the H1, frontmatter, ordering). Returns null when
15
+ * the brief does not carry the pinned schema (never guess-rewrite a
16
+ * malformed brief — the audit owns that finding).
17
+ */
18
+ export declare function applyBriefSpine(briefContent: string, spine: BriefSpine): string | null;
19
+ //# sourceMappingURL=brief-spine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-spine.d.ts","sourceRoot":"","sources":["../../../src/domain/review/brief-spine.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;yDACyD;AACzD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,qBAAqB,GAAG,UAAU,CA6BrE;AASD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAiCtF"}
@@ -0,0 +1,86 @@
1
+ // Living Notes Packet 2 — MISSION_BRIEF status-spine convergence (OPR.0.4.4.20 FR-8).
2
+ //
3
+ // ONE computation path: the spine sections (Building / Progress / Proven /
4
+ // Needs you) are rendered HERE from the composed mission review; the tab
5
+ // serves them always-fresh (pure projection, zero writes) and the SAME
6
+ // strings are written into MISSION_BRIEF.md ONLY at the deliberate freeze
7
+ // moments — never a watcher, never a continuous writer. Generation is
8
+ // SECTION-SCOPED: hand-authored prose in non-spine sections ("What & why",
9
+ // "Pointers") is byte-untouched, and the pinned exact-order H2 schema the
10
+ // scope audit enforces is preserved by construction (the header list is
11
+ // IMPORTED from the audit, not re-declared).
12
+ import { MISSION_BRIEF_HEADERS } from "../scope/scope-audit.js";
13
+ /** The four generated section bodies — derived from the same composer
14
+ * queries FR-7 renders (no second computation path). */
15
+ export function renderBriefSpine(m) {
16
+ const byLane = (lane) => m.board.filter((b) => b.laneLabel === lane);
17
+ const buildingRows = [...byLane("BUILD"), ...byLane("PLAN")];
18
+ const building = buildingRows.length === 0
19
+ ? "_Nothing in flight._"
20
+ : buildingRows.map((b) => `- ${b.slice} — ${b.laneLabel} · ${b.stageCell}`).join("\n");
21
+ const progress = m.board.length === 0
22
+ ? "_No slices yet._"
23
+ : ["INTENT", "PLAN", "BUILD", "REVIEW", "LOCKED"]
24
+ .map((lane) => `- ${lane}: ${byLane(lane).length}`)
25
+ .join("\n");
26
+ const greenRows = m.ledger.filter((r) => r.green);
27
+ const proven = greenRows.length === 0
28
+ ? "_Nothing proven yet._"
29
+ : greenRows
30
+ .map((r) => `- ${r.slice} — proven at ${r.candidateSha ?? "unknown"} · merged ${r.mergeSha ?? "UNMERGED"}`)
31
+ .join("\n") + `\n\nCut-gating: ${m.cutComplete ? "COMPLETE" : "incomplete"} — ${m.cutCompleteBasis}`;
32
+ const needsYou = m.needsYou.items.length === 0
33
+ ? `_${m.needsYou.provenance}_`
34
+ : m.needsYou.items.map((i) => `- ${i.source === "derived" ? "▲" : "●"} ${i.summary} (${i.leg})`).join("\n");
35
+ return { building, progress, proven, needsYou };
36
+ }
37
+ const SPINE_BY_HEADER = {
38
+ Building: "building",
39
+ Progress: "progress",
40
+ Proven: "proven",
41
+ "Needs you": "needsYou",
42
+ };
43
+ /**
44
+ * Section-scoped application: replaces ONLY the four spine section bodies in
45
+ * an existing MISSION_BRIEF.md, preserving every other byte (hand-authored
46
+ * "What & why"/"Pointers", the H1, frontmatter, ordering). Returns null when
47
+ * the brief does not carry the pinned schema (never guess-rewrite a
48
+ * malformed brief — the audit owns that finding).
49
+ */
50
+ export function applyBriefSpine(briefContent, spine) {
51
+ const lines = briefContent.split("\n");
52
+ // Locate each pinned H2 (exact-order schema).
53
+ const headerIdx = [];
54
+ const headerName = [];
55
+ for (let i = 0; i < lines.length; i++) {
56
+ const m = lines[i].match(/^##\s+(.+?)\s*$/);
57
+ if (m) {
58
+ headerIdx.push(i);
59
+ headerName.push(m[1]);
60
+ }
61
+ }
62
+ // The brief must carry the exact pinned sequence to be generation-safe.
63
+ if (headerName.length !== MISSION_BRIEF_HEADERS.length)
64
+ return null;
65
+ for (let i = 0; i < MISSION_BRIEF_HEADERS.length; i++) {
66
+ if (headerName[i] !== MISSION_BRIEF_HEADERS[i])
67
+ return null;
68
+ }
69
+ const out = [];
70
+ out.push(...lines.slice(0, headerIdx[0]));
71
+ for (let h = 0; h < headerIdx.length; h++) {
72
+ const start = headerIdx[h];
73
+ const end = h + 1 < headerIdx.length ? headerIdx[h + 1] : lines.length;
74
+ const name = headerName[h];
75
+ const spineKey = SPINE_BY_HEADER[name];
76
+ out.push(lines[start]);
77
+ if (spineKey) {
78
+ out.push("", spine[spineKey], "");
79
+ }
80
+ else {
81
+ out.push(...lines.slice(start + 1, end));
82
+ }
83
+ }
84
+ return out.join("\n");
85
+ }
86
+ //# sourceMappingURL=brief-spine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brief-spine.js","sourceRoot":"","sources":["../../../src/domain/review/brief-spine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ import { type AgentRow, type AgentsBand, type AgentsScope, type C1ArtifactType, type C1Verdict, type ComposedMissionReview, type ComposedRigAgents, type ComposedSliceReview, type DeliveredItem, type LockState, type LockedArtifact, type NeedsYouBand, type NeedsYouItem, type ProofArtifact, type ReviewMedia, type ReviewPhase, type SettledRow, type VerdictCell, type VerifyLineage } from "./types.js";
2
+ export declare const IDLE_WITH_WORK_THRESHOLD_MIN = 30;
3
+ export declare function mediaKind(ref: string): ReviewMedia["kind"] | null;
4
+ /** Markdown/HTML media refs in a source string (http(s) refs excluded —
5
+ * media is co-located slice content, FR-5). */
6
+ export declare function extractMediaRefs(markdown: string | null): string[];
7
+ /** Normalizes a media ref written relative to `baseDir` (slice-relative "")
8
+ * into a slice-relative path. Returns null when the ref is absolute or
9
+ * escapes the slice dir — the caller records the defect (FR-5), never a
10
+ * silent drop. */
11
+ export declare function sliceRelativeMediaPath(ref: string, baseDir: string): string | null;
12
+ /** Parses a proof artifact's YAML frontmatter into a ProofArtifact.
13
+ * Out-of-set / missing verdicts become null (a present artifact is not a
14
+ * verdict — FR-2); the parse never throws on malformed input. Body media
15
+ * refs are captured for the §3.4 curated-proof projection. */
16
+ export declare function parseC1Header(content: string, relPath: string, droppedAtIso: string): ProofArtifact;
17
+ /** The pinned pass-mapping ("passing" is never left to interpretation). */
18
+ export declare function isPassing(artifactType: C1ArtifactType, verdict: C1Verdict | null): boolean;
19
+ /** Latest-wins per (candidate_sha, artifact_type) — the ratified C1 selection
20
+ * rule. A non-passing verdict is superseded only by a LATER artifact of the
21
+ * SAME tuple, never by adjacent artifacts, presence, or approval. */
22
+ export declare function selectWinning(artifacts: ProofArtifact[], candidateSha: string | null): Map<C1ArtifactType, ProofArtifact>;
23
+ /** The candidate under judgment: the candidate_sha of the latest-dropped gate
24
+ * artifact (deterministic; ties broken by relPath). Null when no artifact
25
+ * carries one. */
26
+ export declare function deriveCandidateSha(artifacts: ProofArtifact[]): string | null;
27
+ export declare function deriveGateCells(artifacts: ProofArtifact[], candidateSha: string | null): VerdictCell[];
28
+ export interface GitFacts {
29
+ mainTip: string;
30
+ /** Parsed from `Merge OPR.<id>` subjects; null = unmerged. */
31
+ mergeSha: string | null;
32
+ /** Post-merge: is the merge an ancestor of tip? */
33
+ mergeIsAncestorOfTip: boolean | null;
34
+ /** Pre-merge: commits the candidate's merge-base is behind tip; null = unknown. */
35
+ candidateBehindTip: number | null;
36
+ }
37
+ export declare function composeLineage(candidateSha: string | null, git: GitFacts, gateCells: VerdictCell[]): VerifyLineage;
38
+ export interface ApprovalStampFacts {
39
+ by: string;
40
+ at: string;
41
+ /** One-query cross-check against the pinned scope-approval audit shape. */
42
+ auditRowPresent: boolean;
43
+ }
44
+ export interface ApprovalFacts {
45
+ /** `--scope spec` stamp (approved-spec-by/at) → plan.lock. */
46
+ spec: ApprovalStampFacts | null;
47
+ /** `--scope delivery` stamp (approved-by/at) → delivered.lock. */
48
+ delivery: ApprovalStampFacts | null;
49
+ }
50
+ export declare function lockFrom(stamp: ApprovalStampFacts | null): LockState | null;
51
+ export interface RecordedGreen {
52
+ green: boolean;
53
+ /** 1 = full gate-verdict set; 2 = adjudicated confirm-faithful; null when not green. */
54
+ regime: 1 | 2 | null;
55
+ }
56
+ export declare function computeRecordedGreen(gateCells: VerdictCell[], artifacts: ProofArtifact[], candidateSha: string | null): RecordedGreen;
57
+ /** Convenience for the mission gatherer: derive the ledger green straight
58
+ * from a slice's artifacts (candidate + gate cells derived internally). */
59
+ export declare function composeRecordedGreenForSlice(artifacts: ProofArtifact[]): RecordedGreen;
60
+ /** Extracts a `## <heading>` section body, verbatim (character-identical). */
61
+ export declare function extractSection(markdown: string | null, heading: string): string | null;
62
+ /** The pinned mini-requirements tier at the PRD top (plan.concise.text). */
63
+ export declare function extractMiniReqs(prd: string | null): string | null;
64
+ /** One promised deliverable from the D2 `## Proof contract` (§3.1): the item
65
+ * text plus an optional planned-mockup ref written as a markdown image on
66
+ * the same checkbox line (`- [ ] drawer opens right ![mockup](mockups/x.png)`). */
67
+ export interface PromisedItem {
68
+ text: string;
69
+ plannedRef: string | null;
70
+ }
71
+ export declare function extractProofContract(prd: string | null): PromisedItem[];
72
+ export interface PhaseSignals {
73
+ prdPresent: boolean;
74
+ /** ANY delivery signal: a proof artifact OR a claimed/in-progress slice-tagged qitem. */
75
+ proofArtifactPresent: boolean;
76
+ activeQitemPresent: boolean;
77
+ /** Evidence/verdict set present (any recorded verdict OR a claimed PROOF.md + media set). */
78
+ verdictOrEvidenceSetPresent: boolean;
79
+ /** The delivery approval stamp. */
80
+ approved: boolean;
81
+ }
82
+ /** Top-down by precedence — locked > review > building > spec > intent —
83
+ * stated explicitly because one signal can satisfy two lanes. */
84
+ export declare function derivePhase(s: PhaseSignals): ReviewPhase;
85
+ export interface ComposedDelivered {
86
+ items: DeliveredItem[];
87
+ extraProof: ReviewMedia[];
88
+ /** Feeds ▲ insufficient-proof (FR-4) and the board's building-cell n/m (FR-7). */
89
+ missingCount: number;
90
+ /** Artifact media refs that escape the slice dir (FR-5 defect findings). */
91
+ escapingRefs: string[];
92
+ }
93
+ /**
94
+ * `delivered.items` IS the join, reframed (§3.1): each `## Proof contract`
95
+ * deliverable pairs with the CURATED proof media of the artifacts covering it
96
+ * and QA's recorded comparison signal.
97
+ *
98
+ * `verified` binds to the SHIPPED C1 fields (arch F3), never presence:
99
+ * verified — a covering qa|adjudication artifact records the comparison
100
+ * (self_check) AND its recorded verdict is passing;
101
+ * unverified — some covering artifact exists but no passing recorded QA
102
+ * comparison (QA's why-kicked-back note still surfaces);
103
+ * missing — promised, nothing delivered.
104
+ * Fail-open by construction: these are render states, never blocks.
105
+ */
106
+ export declare function composeDelivered(promised: PromisedItem[], artifacts: ProofArtifact[]): ComposedDelivered;
107
+ export interface AttentionInput {
108
+ qitemId: string;
109
+ summary: string | null;
110
+ leg: string;
111
+ where: string;
112
+ createdAtIso: string | null;
113
+ priority: string | null;
114
+ tier: string | null;
115
+ evidenceRef: string | null;
116
+ unblocks: string | null;
117
+ destinationSession: string | null;
118
+ closureRequiredAtIso: string | null;
119
+ }
120
+ export interface AgentInput {
121
+ agentName: string;
122
+ sessionName: string;
123
+ runtime: AgentRow["runtime"];
124
+ /** Queue-proven park target (human/qitem/etc.); null means no parked row state. */
125
+ parkedOn: string | null;
126
+ /** null = telemetry down (honest-unknown). */
127
+ idle: boolean | null;
128
+ idleSinceIso: string | null;
129
+ doing: string | null;
130
+ holdsCount: number;
131
+ lastTransitionIso: string | null;
132
+ slices: string[];
133
+ }
134
+ /** The delivered-completeness facts the ▲ insufficient-proof rule reads
135
+ * (was the old join's counts; §3.1 re-bind — the signal is the
136
+ * delivered.items MISSING count). */
137
+ export interface DeliveredCounts {
138
+ promisedCount: number;
139
+ missingCount: number;
140
+ }
141
+ /** The four ▲ exception rules over captured signals. Every row carries its
142
+ * evidence + crossed threshold; no evidence -> no exception (never a bare
143
+ * accusation). A ▲ is information for the human, invisible to the flagged
144
+ * agent's workflow. */
145
+ export declare function deriveExceptions(agents: AgentInput[], attention: AttentionInput[], delivered: DeliveredCounts, scopeLabel: string, nowIso: string, latestArtifactIso: string | null, governingStampIso: string | null): NeedsYouItem[];
146
+ export declare function composeNeedsYou(attention: AttentionInput[], derived: NeedsYouItem[], confirmFaithful: NeedsYouItem[], computedOver: string, nowIso: string): NeedsYouBand;
147
+ /** The third NAMED ▲ heuristic's visible v1 default (slice-22 FR-3:
148
+ * too-long-in-state — no transition beyond threshold). Lives HERE because
149
+ * compose.ts is the single threshold home (P2 arch note N2): changes land
150
+ * once and every altitude inherits. Same markdown-steered tuning
151
+ * fast-follow as IDLE_WITH_WORK_THRESHOLD_MIN. */
152
+ export declare const TOO_LONG_IN_STATE_THRESHOLD_MIN = 120;
153
+ /**
154
+ * Slice-22 FR-3 — the agent-scope ▲ set: exactly the three NAMED heuristics
155
+ * (idle-with-assigned-work, overdue handoff, too-long-in-state). The first
156
+ * two REUSE deriveExceptions' rules (called with zero delivered counts and
157
+ * no artifact/stamp facts, so the slice-only insufficient-proof /
158
+ * stale-after-change rules cannot fire); too-long-in-state is added here —
159
+ * additively, so slice-scope composition is byte-unchanged. No evidence →
160
+ * no exception (unknown is not idle; unknown lastTransition is not
161
+ * too-long).
162
+ */
163
+ export declare function deriveAgentScopeExceptions(agents: AgentInput[], attention: AttentionInput[], scopeLabel: string, nowIso: string): NeedsYouItem[];
164
+ export interface RigComposeInputs {
165
+ agents: AgentInput[];
166
+ overdue: AttentionInput[];
167
+ attention: AttentionInput[];
168
+ settled: SettledRow[];
169
+ handoffsToday: number;
170
+ overdueCount: number;
171
+ /** The FR-1 roster display window, named on-surface in provenance
172
+ * (plan-review ruling: "computed from queue+ps · window: today"). */
173
+ rosterWindow: string;
174
+ nowIso: string;
175
+ }
176
+ /** Slice-22 FR-1..FR-4 — the rig-scope composition root. PURE: same inputs,
177
+ * byte-identical output (idempotence is a money proof). */
178
+ export declare function composeRigAgents(inputs: RigComposeInputs): ComposedRigAgents;
179
+ /** Region membership derives from work-on-THIS-scope, never rig co-residency. */
180
+ export declare function composeAgentsBand(agents: AgentInput[], scope: AgentsScope, exceptions: NeedsYouItem[], nowIso: string): AgentsBand;
181
+ export interface SliceComposeInputs {
182
+ slice: {
183
+ name: string;
184
+ id: string | null;
185
+ title: string;
186
+ missionId: string | null;
187
+ };
188
+ /** Raw file contents (null = absent). */
189
+ readme: string | null;
190
+ prd: string | null;
191
+ proofMd: string | null;
192
+ artifacts: ProofArtifact[];
193
+ /** The pinned plan set — a frontmatter READ (`locked-artifacts:` on the slice README). */
194
+ lockedArtifacts: LockedArtifact[];
195
+ /** Media refs found in composed sources; absolute/escaping paths are defect findings (FR-5). */
196
+ mediaRefs: string[];
197
+ /** True when the slice's proof/ dir exists (the "see all proof" drill-in target). */
198
+ proofDirExists: boolean;
199
+ attention: AttentionInput[];
200
+ agents: AgentInput[];
201
+ activeQitemPresent: boolean;
202
+ git: GitFacts;
203
+ approval: ApprovalFacts;
204
+ nowIso: string;
205
+ }
206
+ /** A self-asserted PASS in the slice's own PROOF.md (never a verdict). */
207
+ export declare function proofClaimsPass(proofMd: string | null): boolean;
208
+ export declare function composeSliceReview(inputs: SliceComposeInputs): ComposedSliceReview;
209
+ export interface MissionSliceEntry {
210
+ review: ComposedSliceReview;
211
+ /** Recorded-verdict green for the completion ledger (computeRecordedGreen
212
+ * over the slice's artifacts — supplied by the gatherer, which holds them). */
213
+ green: boolean;
214
+ }
215
+ export interface MissionComposeInputs {
216
+ mission: {
217
+ name: string;
218
+ id: string | null;
219
+ title: string;
220
+ intent?: string | null;
221
+ };
222
+ slices: MissionSliceEntry[];
223
+ missionAttention: AttentionInput[];
224
+ agents: AgentInput[];
225
+ nowIso: string;
226
+ }
227
+ export declare function composeMissionReview(inputs: MissionComposeInputs): ComposedMissionReview;
228
+ //# sourceMappingURL=compose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../../src/domain/review/compose.ts"],"names":[],"mappings":"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"}