@telora/daemon 0.22.306 → 0.23.0

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 (394) hide show
  1. package/build-info.json +13 -3
  2. package/dist/audit/audit-floor-policy.js +1 -1
  3. package/dist/audit/audit-floor-policy.js.map +1 -1
  4. package/dist/audit/audit-prompt.d.ts.map +1 -1
  5. package/dist/audit/audit-prompt.js +21 -14
  6. package/dist/audit/audit-prompt.js.map +1 -1
  7. package/dist/completion/completion-event/event.d.ts +7 -0
  8. package/dist/completion/completion-event/event.d.ts.map +1 -1
  9. package/dist/completion/completion-event/event.js.map +1 -1
  10. package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts +9 -1
  11. package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts.map +1 -1
  12. package/dist/completion/review-cycle-budget/review-cycle-cap.js +2 -1
  13. package/dist/completion/review-cycle-budget/review-cycle-cap.js.map +1 -1
  14. package/dist/completion/review-exit/review-exit-deps.d.ts +2 -0
  15. package/dist/completion/review-exit/review-exit-deps.d.ts.map +1 -1
  16. package/dist/completion/review-exit/review-exit-deps.js +1 -1
  17. package/dist/completion/review-exit/review-exit-evidence.d.ts +10 -0
  18. package/dist/completion/review-exit/review-exit-evidence.d.ts.map +1 -1
  19. package/dist/completion/review-exit/review-exit-evidence.js +12 -2
  20. package/dist/completion/review-exit/review-exit-evidence.js.map +1 -1
  21. package/dist/completion/review-exit/review-exit-falsifiers.d.ts +72 -0
  22. package/dist/completion/review-exit/review-exit-falsifiers.d.ts.map +1 -0
  23. package/dist/completion/review-exit/review-exit-falsifiers.js +84 -0
  24. package/dist/completion/review-exit/review-exit-falsifiers.js.map +1 -0
  25. package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
  26. package/dist/completion/review-exit/review-exit-phase.js +10 -8
  27. package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
  28. package/dist/completion/state-cascade/review-next-step.d.ts +11 -0
  29. package/dist/completion/state-cascade/review-next-step.d.ts.map +1 -1
  30. package/dist/completion/state-cascade/review-next-step.js +6 -3
  31. package/dist/completion/state-cascade/review-next-step.js.map +1 -1
  32. package/dist/completion/state-cascade/standing-approval-convergence.d.ts +3 -0
  33. package/dist/completion/state-cascade/standing-approval-convergence.d.ts.map +1 -1
  34. package/dist/completion/state-cascade/standing-approval-convergence.js +10 -5
  35. package/dist/completion/state-cascade/standing-approval-convergence.js.map +1 -1
  36. package/dist/completion/state-cascade/state-cascade.d.ts +8 -0
  37. package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
  38. package/dist/completion/state-cascade/state-cascade.js +2 -0
  39. package/dist/completion/state-cascade/state-cascade.js.map +1 -1
  40. package/dist/completion/team-exit/status-advance-phase.d.ts +6 -0
  41. package/dist/completion/team-exit/status-advance-phase.d.ts.map +1 -1
  42. package/dist/completion/team-exit/status-advance-phase.js +12 -9
  43. package/dist/completion/team-exit/status-advance-phase.js.map +1 -1
  44. package/dist/completion/team-exit/team-completion.d.ts.map +1 -1
  45. package/dist/completion/team-exit/team-completion.js +1 -0
  46. package/dist/completion/team-exit/team-completion.js.map +1 -1
  47. package/dist/completion/team-exit/terminated-work-reconcile.d.ts +6 -0
  48. package/dist/completion/team-exit/terminated-work-reconcile.d.ts.map +1 -1
  49. package/dist/completion/team-exit/terminated-work-reconcile.js +5 -7
  50. package/dist/completion/team-exit/terminated-work-reconcile.js.map +1 -1
  51. package/dist/completion/team-outcome/apply-close.d.ts.map +1 -1
  52. package/dist/completion/team-outcome/apply-close.js +1 -0
  53. package/dist/completion/team-outcome/apply-close.js.map +1 -1
  54. package/dist/completion/team-outcome/apply-turn.d.ts.map +1 -1
  55. package/dist/completion/team-outcome/apply-turn.js +13 -7
  56. package/dist/completion/team-outcome/apply-turn.js.map +1 -1
  57. package/dist/completion/team-outcome/decide-close-rows.d.ts.map +1 -1
  58. package/dist/completion/team-outcome/decide-close-rows.js +2 -7
  59. package/dist/completion/team-outcome/decide-close-rows.js.map +1 -1
  60. package/dist/completion/team-outcome/decide-turn-entry-rows.d.ts.map +1 -1
  61. package/dist/completion/team-outcome/decide-turn-entry-rows.js +5 -1
  62. package/dist/completion/team-outcome/decide-turn-entry-rows.js.map +1 -1
  63. package/dist/completion/team-outcome/exit-pipeline-state.d.ts +5 -0
  64. package/dist/completion/team-outcome/exit-pipeline-state.d.ts.map +1 -1
  65. package/dist/completion/team-outcome/exit-pipeline-state.js.map +1 -1
  66. package/dist/completion/team-outcome/work-facts.d.ts +7 -1
  67. package/dist/completion/team-outcome/work-facts.d.ts.map +1 -1
  68. package/dist/completion/team-outcome/work-facts.js +9 -4
  69. package/dist/completion/team-outcome/work-facts.js.map +1 -1
  70. package/dist/composition/advance-precheck-context.d.ts.map +1 -1
  71. package/dist/composition/advance-precheck-context.js +1 -0
  72. package/dist/composition/advance-precheck-context.js.map +1 -1
  73. package/dist/composition/completion-event-context.d.ts.map +1 -1
  74. package/dist/composition/completion-event-context.js +4 -0
  75. package/dist/composition/completion-event-context.js.map +1 -1
  76. package/dist/composition/daemon-contexts.js +1 -1
  77. package/dist/composition/execution-directive-context.d.ts.map +1 -1
  78. package/dist/composition/execution-directive-context.js +1 -0
  79. package/dist/composition/execution-directive-context.js.map +1 -1
  80. package/dist/composition/execution-resolver-context.d.ts.map +1 -1
  81. package/dist/composition/execution-resolver-context.js +2 -1
  82. package/dist/composition/execution-resolver-context.js.map +1 -1
  83. package/dist/composition/execution-spawn-context.d.ts +1 -1
  84. package/dist/composition/execution-spawn-context.d.ts.map +1 -1
  85. package/dist/composition/execution-spawn-context.js +6 -3
  86. package/dist/composition/execution-spawn-context.js.map +1 -1
  87. package/dist/composition/reopening-falsifier-context.d.ts +9 -0
  88. package/dist/composition/reopening-falsifier-context.d.ts.map +1 -0
  89. package/dist/composition/reopening-falsifier-context.js +82 -0
  90. package/dist/composition/reopening-falsifier-context.js.map +1 -0
  91. package/dist/composition/review-exit-context.d.ts.map +1 -1
  92. package/dist/composition/review-exit-context.js +5 -2
  93. package/dist/composition/review-exit-context.js.map +1 -1
  94. package/dist/composition/runtime-contexts.d.ts.map +1 -1
  95. package/dist/composition/runtime-contexts.js +4 -3
  96. package/dist/composition/runtime-contexts.js.map +1 -1
  97. package/dist/composition/runtime-delivery-advance-context.d.ts.map +1 -1
  98. package/dist/composition/runtime-delivery-advance-context.js +4 -0
  99. package/dist/composition/runtime-delivery-advance-context.js.map +1 -1
  100. package/dist/composition/runtime-spawn-pass-context.d.ts.map +1 -1
  101. package/dist/composition/runtime-spawn-pass-context.js +5 -1
  102. package/dist/composition/runtime-spawn-pass-context.js.map +1 -1
  103. package/dist/composition/spawn-pass-deps.d.ts.map +1 -1
  104. package/dist/composition/spawn-pass-deps.js +4 -0
  105. package/dist/composition/spawn-pass-deps.js.map +1 -1
  106. package/dist/composition/standing-approval-context.d.ts.map +1 -1
  107. package/dist/composition/standing-approval-context.js +3 -0
  108. package/dist/composition/standing-approval-context.js.map +1 -1
  109. package/dist/composition/state-cascade-context.d.ts.map +1 -1
  110. package/dist/composition/state-cascade-context.js +7 -2
  111. package/dist/composition/state-cascade-context.js.map +1 -1
  112. package/dist/config/live-daemon-config.d.ts.map +1 -1
  113. package/dist/config/live-daemon-config.js +2 -0
  114. package/dist/config/live-daemon-config.js.map +1 -1
  115. package/dist/daemon-state/focus-team-state.js +1 -1
  116. package/dist/delivery/commit-verdict-hold.d.ts +12 -0
  117. package/dist/delivery/commit-verdict-hold.d.ts.map +1 -1
  118. package/dist/delivery/commit-verdict-hold.js +11 -0
  119. package/dist/delivery/commit-verdict-hold.js.map +1 -1
  120. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  121. package/dist/delivery/delivery-lifecycle.js +1 -0
  122. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  123. package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
  124. package/dist/delivery/delivery-reconciler-apply.js +10 -2
  125. package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
  126. package/dist/delivery/delivery-reconciler.d.ts +33 -18
  127. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  128. package/dist/delivery/delivery-reconciler.js +33 -23
  129. package/dist/delivery/delivery-reconciler.js.map +1 -1
  130. package/dist/delivery/recorded-concerns.d.ts +57 -0
  131. package/dist/delivery/recorded-concerns.d.ts.map +1 -0
  132. package/dist/delivery/recorded-concerns.js +45 -0
  133. package/dist/delivery/recorded-concerns.js.map +1 -0
  134. package/dist/directive/directive-queue.d.ts +13 -0
  135. package/dist/directive/directive-queue.d.ts.map +1 -1
  136. package/dist/directive/directive-queue.js +19 -1
  137. package/dist/directive/directive-queue.js.map +1 -1
  138. package/dist/directive/phase-sync.d.ts +10 -0
  139. package/dist/directive/phase-sync.d.ts.map +1 -1
  140. package/dist/directive/phase-sync.js +11 -0
  141. package/dist/directive/phase-sync.js.map +1 -1
  142. package/dist/focus/closed-review-window.d.ts +26 -0
  143. package/dist/focus/closed-review-window.d.ts.map +1 -0
  144. package/dist/focus/closed-review-window.js +62 -0
  145. package/dist/focus/closed-review-window.js.map +1 -0
  146. package/dist/focus/daemon-contexts.js +1 -1
  147. package/dist/focus/directive-executor.d.ts.map +1 -1
  148. package/dist/focus/directive-executor.js +3 -8
  149. package/dist/focus/directive-executor.js.map +1 -1
  150. package/dist/focus/focus-executor.js +2 -2
  151. package/dist/focus/focus-executor.js.map +1 -1
  152. package/dist/focus/focus-poller-auto-advance.d.ts +7 -0
  153. package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
  154. package/dist/focus/focus-poller-auto-advance.js +8 -6
  155. package/dist/focus/focus-poller-auto-advance.js.map +1 -1
  156. package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
  157. package/dist/focus/focus-poller-spawn.js +39 -28
  158. package/dist/focus/focus-poller-spawn.js.map +1 -1
  159. package/dist/focus/focus-poller-state.d.ts.map +1 -1
  160. package/dist/focus/focus-poller-state.js +2 -0
  161. package/dist/focus/focus-poller-state.js.map +1 -1
  162. package/dist/focus/pending-review-approved-head.d.ts.map +1 -1
  163. package/dist/focus/pending-review-approved-head.js +2 -0
  164. package/dist/focus/pending-review-approved-head.js.map +1 -1
  165. package/dist/focus/pending-spawn-pass-deps.d.ts +3 -0
  166. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  167. package/dist/focus/pending-spawn-pass-deps.js +1 -0
  168. package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
  169. package/dist/focus/pending-spawn-review-next-step.d.ts +3 -0
  170. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  171. package/dist/focus/pending-spawn-review-next-step.js +3 -0
  172. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  173. package/dist/focus/ready-focus-team-work.d.ts +8 -0
  174. package/dist/focus/ready-focus-team-work.d.ts.map +1 -1
  175. package/dist/focus/ready-focus-team-work.js +5 -1
  176. package/dist/focus/ready-focus-team-work.js.map +1 -1
  177. package/dist/focus/stranded-review-reroute.d.ts +32 -1
  178. package/dist/focus/stranded-review-reroute.d.ts.map +1 -1
  179. package/dist/focus/stranded-review-reroute.js +50 -1
  180. package/dist/focus/stranded-review-reroute.js.map +1 -1
  181. package/dist/focus/verify-open-issues.d.ts +7 -0
  182. package/dist/focus/verify-open-issues.d.ts.map +1 -1
  183. package/dist/focus/verify-open-issues.js +8 -4
  184. package/dist/focus/verify-open-issues.js.map +1 -1
  185. package/dist/focus-stage-lifecycle/ratify-bar-gate.d.ts.map +1 -1
  186. package/dist/focus-stage-lifecycle/ratify-bar-gate.js +4 -3
  187. package/dist/focus-stage-lifecycle/ratify-bar-gate.js.map +1 -1
  188. package/dist/nexus/intake-prompt-sections.js +3 -3
  189. package/dist/nexus/intake-prompt-sections.js.map +1 -1
  190. package/dist/prd/arm-readiness.d.ts +49 -74
  191. package/dist/prd/arm-readiness.d.ts.map +1 -1
  192. package/dist/prd/arm-readiness.js +48 -196
  193. package/dist/prd/arm-readiness.js.map +1 -1
  194. package/dist/prd/frontier-arming.d.ts.map +1 -1
  195. package/dist/prd/frontier-arming.js +0 -2
  196. package/dist/prd/frontier-arming.js.map +1 -1
  197. package/dist/prd/scoping-prompt.js +3 -3
  198. package/dist/prd/scoping-prompt.js.map +1 -1
  199. package/dist/prompt/focus-prompt-builder.d.ts +9 -2
  200. package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
  201. package/dist/prompt/focus-prompt-builder.js +19 -8
  202. package/dist/prompt/focus-prompt-builder.js.map +1 -1
  203. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  204. package/dist/prompt/team-prompt-base.js +2 -1
  205. package/dist/prompt/team-prompt-base.js.map +1 -1
  206. package/dist/prompt-sections/execution-sections.d.ts +7 -1
  207. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  208. package/dist/prompt-sections/execution-sections.js +41 -22
  209. package/dist/prompt-sections/execution-sections.js.map +1 -1
  210. package/dist/prompt-sections/persona-sections.d.ts +6 -0
  211. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  212. package/dist/prompt-sections/persona-sections.js +27 -1
  213. package/dist/prompt-sections/persona-sections.js.map +1 -1
  214. package/dist/prompt-sections/prompt-listing.d.ts +21 -0
  215. package/dist/prompt-sections/prompt-listing.d.ts.map +1 -1
  216. package/dist/prompt-sections/prompt-listing.js +35 -0
  217. package/dist/prompt-sections/prompt-listing.js.map +1 -1
  218. package/dist/prompt-sections/role-sections.d.ts.map +1 -1
  219. package/dist/prompt-sections/role-sections.js +9 -6
  220. package/dist/prompt-sections/role-sections.js.map +1 -1
  221. package/dist/prompt-sections/shared.d.ts +7 -0
  222. package/dist/prompt-sections/shared.d.ts.map +1 -1
  223. package/dist/prompt-sections/shared.js +1 -1
  224. package/dist/prompt-sections/shared.js.map +1 -1
  225. package/dist/queries/deliveries/issues.d.ts.map +1 -1
  226. package/dist/queries/deliveries/issues.js +1 -0
  227. package/dist/queries/deliveries/issues.js.map +1 -1
  228. package/dist/queries/focus-review/criterion-reopenings.d.ts +62 -0
  229. package/dist/queries/focus-review/criterion-reopenings.d.ts.map +1 -0
  230. package/dist/queries/focus-review/criterion-reopenings.js +67 -0
  231. package/dist/queries/focus-review/criterion-reopenings.js.map +1 -0
  232. package/dist/queries/focus-review/recorded-concern-ids.d.ts +47 -0
  233. package/dist/queries/focus-review/recorded-concern-ids.d.ts.map +1 -0
  234. package/dist/queries/focus-review/recorded-concern-ids.js +33 -0
  235. package/dist/queries/focus-review/recorded-concern-ids.js.map +1 -0
  236. package/dist/queries/focus-review/review-finding-facts.d.ts.map +1 -1
  237. package/dist/queries/focus-review/review-finding-facts.js +5 -1
  238. package/dist/queries/focus-review/review-finding-facts.js.map +1 -1
  239. package/dist/queries/focuses/arm-covered-targets.d.ts +10 -1
  240. package/dist/queries/focuses/arm-covered-targets.d.ts.map +1 -1
  241. package/dist/queries/focuses/arm-covered-targets.js +9 -0
  242. package/dist/queries/focuses/arm-covered-targets.js.map +1 -1
  243. package/dist/queries/focuses/ended-arm.d.ts +12 -0
  244. package/dist/queries/focuses/ended-arm.d.ts.map +1 -1
  245. package/dist/queries/focuses/focus-criteria-standing.d.ts +17 -0
  246. package/dist/queries/focuses/focus-criteria-standing.d.ts.map +1 -1
  247. package/dist/queries/focuses/focus-criteria-standing.js +29 -1
  248. package/dist/queries/focuses/focus-criteria-standing.js.map +1 -1
  249. package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
  250. package/dist/queries/focuses/focus-discovery.js +2 -1
  251. package/dist/queries/focuses/focus-discovery.js.map +1 -1
  252. package/dist/queries/verification/verification.js +1 -1
  253. package/dist/reality/injection-writeback.d.ts +5 -4
  254. package/dist/reality/injection-writeback.d.ts.map +1 -1
  255. package/dist/reality/injection-writeback.js +3 -2
  256. package/dist/reality/injection-writeback.js.map +1 -1
  257. package/dist/reality/reality-writeback.d.ts +13 -12
  258. package/dist/reality/reality-writeback.d.ts.map +1 -1
  259. package/dist/reality/reality-writeback.js +5 -5
  260. package/dist/reality/reality-writeback.js.map +1 -1
  261. package/dist/resolvers/assembly-engine.js +1 -1
  262. package/dist/resolvers/compose/focus-injections-compose.d.ts.map +1 -1
  263. package/dist/resolvers/compose/focus-injections-compose.js +3 -2
  264. package/dist/resolvers/compose/focus-injections-compose.js.map +1 -1
  265. package/dist/resolvers/compose/loop-delivery-index-compose.d.ts +10 -0
  266. package/dist/resolvers/compose/loop-delivery-index-compose.d.ts.map +1 -1
  267. package/dist/resolvers/compose/loop-delivery-index-compose.js +15 -3
  268. package/dist/resolvers/compose/loop-delivery-index-compose.js.map +1 -1
  269. package/dist/resolvers/delivery-listing.d.ts +7 -0
  270. package/dist/resolvers/delivery-listing.d.ts.map +1 -1
  271. package/dist/resolvers/delivery-listing.js +26 -4
  272. package/dist/resolvers/delivery-listing.js.map +1 -1
  273. package/dist/resolvers/focus-anchoring-injections.d.ts +0 -24
  274. package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -1
  275. package/dist/resolvers/focus-anchoring-injections.js +38 -28
  276. package/dist/resolvers/focus-anchoring-injections.js.map +1 -1
  277. package/dist/resolvers/focus-criteria-standing.d.ts.map +1 -1
  278. package/dist/resolvers/focus-criteria-standing.js +19 -8
  279. package/dist/resolvers/focus-criteria-standing.js.map +1 -1
  280. package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
  281. package/dist/resolvers/loop-delivery-index.js +9 -1
  282. package/dist/resolvers/loop-delivery-index.js.map +1 -1
  283. package/dist/resolvers/shared/loop.d.ts +17 -0
  284. package/dist/resolvers/shared/loop.d.ts.map +1 -1
  285. package/dist/resolvers/shared/loop.js.map +1 -1
  286. package/dist/security/security-auto-inject.d.ts +19 -5
  287. package/dist/security/security-auto-inject.d.ts.map +1 -1
  288. package/dist/security/security-auto-inject.js +21 -6
  289. package/dist/security/security-auto-inject.js.map +1 -1
  290. package/dist/session/session-lineage.d.ts +29 -9
  291. package/dist/session/session-lineage.d.ts.map +1 -1
  292. package/dist/session/session-lineage.js +33 -8
  293. package/dist/session/session-lineage.js.map +1 -1
  294. package/dist/spawn/directive-dispatch.d.ts.map +1 -1
  295. package/dist/spawn/directive-dispatch.js +1 -0
  296. package/dist/spawn/directive-dispatch.js.map +1 -1
  297. package/dist/spawn/idle-work-stamp.d.ts +7 -0
  298. package/dist/spawn/idle-work-stamp.d.ts.map +1 -1
  299. package/dist/spawn/idle-work-stamp.js +2 -1
  300. package/dist/spawn/idle-work-stamp.js.map +1 -1
  301. package/dist/spawn/lead-continuation.d.ts +7 -0
  302. package/dist/spawn/lead-continuation.d.ts.map +1 -1
  303. package/dist/spawn/lead-continuation.js +5 -2
  304. package/dist/spawn/lead-continuation.js.map +1 -1
  305. package/dist/spawn/loop-llm-client.d.ts +10 -1
  306. package/dist/spawn/loop-llm-client.d.ts.map +1 -1
  307. package/dist/spawn/loop-llm-client.js +15 -7
  308. package/dist/spawn/loop-llm-client.js.map +1 -1
  309. package/dist/spawn/model-id-guards.d.ts +9 -4
  310. package/dist/spawn/model-id-guards.d.ts.map +1 -1
  311. package/dist/spawn/model-id-guards.js +11 -4
  312. package/dist/spawn/model-id-guards.js.map +1 -1
  313. package/dist/spawn/prompt-assembly.d.ts +2 -0
  314. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  315. package/dist/spawn/prompt-assembly.js +3 -1
  316. package/dist/spawn/prompt-assembly.js.map +1 -1
  317. package/dist/spawn/review-hold-park.d.ts +4 -2
  318. package/dist/spawn/review-hold-park.d.ts.map +1 -1
  319. package/dist/spawn/review-hold-park.js +9 -5
  320. package/dist/spawn/review-hold-park.js.map +1 -1
  321. package/dist/spawn/worktree-session.d.ts +14 -3
  322. package/dist/spawn/worktree-session.d.ts.map +1 -1
  323. package/dist/spawn/worktree-session.js +13 -3
  324. package/dist/spawn/worktree-session.js.map +1 -1
  325. package/dist/supervision/spawn-cooldown.js +1 -1
  326. package/dist/supervision/team-work.d.ts +15 -1
  327. package/dist/supervision/team-work.d.ts.map +1 -1
  328. package/dist/supervision/team-work.js +7 -2
  329. package/dist/supervision/team-work.js.map +1 -1
  330. package/dist/templates/agents-md.d.ts.map +1 -1
  331. package/dist/templates/agents-md.js +1 -0
  332. package/dist/templates/agents-md.js.map +1 -1
  333. package/dist/templates/claude-md.d.ts +1 -1
  334. package/dist/templates/claude-md.d.ts.map +1 -1
  335. package/dist/templates/claude-md.js +12 -0
  336. package/dist/templates/claude-md.js.map +1 -1
  337. package/dist/testing/arm-coverage-model.d.ts +13 -0
  338. package/dist/testing/arm-coverage-model.d.ts.map +1 -1
  339. package/dist/testing/arm-coverage-model.js +118 -9
  340. package/dist/testing/arm-coverage-model.js.map +1 -1
  341. package/dist/testing/fixtures/approved-head-inert-deps.d.ts.map +1 -1
  342. package/dist/testing/fixtures/approved-head-inert-deps.js +1 -0
  343. package/dist/testing/fixtures/approved-head-inert-deps.js.map +1 -1
  344. package/dist/testing/fixtures/completion-event-deps.d.ts +1 -1
  345. package/dist/testing/fixtures/completion-event-deps.d.ts.map +1 -1
  346. package/dist/testing/fixtures/completion-event-deps.js +1 -0
  347. package/dist/testing/fixtures/completion-event-deps.js.map +1 -1
  348. package/dist/testing/fixtures/index.js +1 -1
  349. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  350. package/dist/testing/fixtures/pending-spawn-world.js +3 -0
  351. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  352. package/dist/testing/fixtures/process-close-context.d.ts.map +1 -1
  353. package/dist/testing/fixtures/process-close-context.js +1 -0
  354. package/dist/testing/fixtures/process-close-context.js.map +1 -1
  355. package/dist/testing/fixtures/recording-api-client.js +1 -1
  356. package/dist/testing/fixtures/review-exit-deps.js +1 -1
  357. package/dist/testing/fixtures/session-wire.d.ts.map +1 -1
  358. package/dist/testing/fixtures/session-wire.js +2 -1
  359. package/dist/testing/fixtures/session-wire.js.map +1 -1
  360. package/dist/types/index.js +1 -1
  361. package/dist/verify/attribution/verification-baseline-run.d.ts.map +1 -1
  362. package/dist/verify/attribution/verification-baseline-run.js +2 -1
  363. package/dist/verify/attribution/verification-baseline-run.js.map +1 -1
  364. package/dist/verify/effect-reconciliation/recorded-targets.d.ts +14 -0
  365. package/dist/verify/effect-reconciliation/recorded-targets.d.ts.map +1 -1
  366. package/dist/verify/effect-reconciliation/recorded-targets.js +20 -0
  367. package/dist/verify/effect-reconciliation/recorded-targets.js.map +1 -1
  368. package/dist/verify/effect-reconciliation/verify-restatement.d.ts +15 -1
  369. package/dist/verify/effect-reconciliation/verify-restatement.d.ts.map +1 -1
  370. package/dist/verify/effect-reconciliation/verify-restatement.js +93 -59
  371. package/dist/verify/effect-reconciliation/verify-restatement.js.map +1 -1
  372. package/dist/verify/engine/reconciliation-step.d.ts.map +1 -1
  373. package/dist/verify/engine/reconciliation-step.js +4 -1
  374. package/dist/verify/engine/reconciliation-step.js.map +1 -1
  375. package/dist/verify/falsifier/falsifier-command.d.ts +37 -0
  376. package/dist/verify/falsifier/falsifier-command.d.ts.map +1 -0
  377. package/dist/verify/falsifier/falsifier-command.js +40 -0
  378. package/dist/verify/falsifier/falsifier-command.js.map +1 -0
  379. package/dist/verify/falsifier/falsifier-run.d.ts +47 -0
  380. package/dist/verify/falsifier/falsifier-run.d.ts.map +1 -0
  381. package/dist/verify/falsifier/falsifier-run.js +117 -0
  382. package/dist/verify/falsifier/falsifier-run.js.map +1 -0
  383. package/dist/verify/falsifier/falsifier-verdict.d.ts +52 -0
  384. package/dist/verify/falsifier/falsifier-verdict.d.ts.map +1 -0
  385. package/dist/verify/falsifier/falsifier-verdict.js +61 -0
  386. package/dist/verify/falsifier/falsifier-verdict.js.map +1 -0
  387. package/dist/verify/shortfalls/pre-judge-rulings.d.ts.map +1 -1
  388. package/dist/verify/shortfalls/pre-judge-rulings.js +2 -1
  389. package/dist/verify/shortfalls/pre-judge-rulings.js.map +1 -1
  390. package/dist/worktree/verify-hold-facts.d.ts +2 -0
  391. package/dist/worktree/verify-hold-facts.d.ts.map +1 -1
  392. package/dist/worktree/verify-hold-facts.js +1 -0
  393. package/dist/worktree/verify-hold-facts.js.map +1 -1
  394. package/package.json +2 -2
@@ -1,73 +1,41 @@
1
- /** A delivery as this check reads it. */
2
- export interface ArmReadinessDelivery {
3
- id: string;
4
- name: string;
5
- /**
6
- * The delivery's execution status. Nullable on the wire; a null status is
7
- * NOT 'cancelled', so it counts as live -- the bar below turns on the anchor
8
- * and the restatements, and a missing status must not silently drop a
9
- * delivery out of the evidence.
10
- */
11
- executionStatus: string | null;
12
- /** The injection the delivery is anchored to, or null when unanchored. */
13
- injectionId: string | null;
14
- }
15
1
  /**
16
- * One effect an injection promises to flip: the node id, and the restatement
17
- * declared on it (`frt_statement`), or null when none was declared.
2
+ * "Is this focus scoped enough to arm?" -- the question the PRD controller and
3
+ * the ratify crossing ask BEFORE they issue a go-signal the database may refuse.
4
+ *
5
+ * An arm covers the effects the focus held when the go-signal was given, and
6
+ * the database fixes that set AT THE ARM (`armed_baseline_target_node_ids`). So
7
+ * an arm placed on an unscoped focus covers nothing, permanently: every
8
+ * delivery scoped afterwards rests at `planning` until someone arms again.
9
+ *
10
+ * ONE DEFINITION, READ -- NOT RESTATED. What an arm covers is DERIVED from the
11
+ * tree (docs/DECISIONS.md, "Targets mean anchoring, coverage is derived"): the
12
+ * undesired effects the anchored injections' targeted causes EARN over
13
+ * `sufficient` / `and` edges, plus any undesired effect an injection targets
14
+ * directly. That derivation lives once per runtime -- `deriveArmCoveredEffects`
15
+ * at the edge, `focus_arm_baseline_snapshot()` in the database -- and the
16
+ * daemon cannot import either. So this module no longer derives anything: it
17
+ * reads the edge's LIVE `focus_criteria_standing` preview (the tree half an
18
+ * arm issued now would stamp) and maps it onto the database's two refusals.
19
+ *
20
+ * THE BAR, the database's own: the covered set holds at least one undesired
21
+ * effect, and every covered effect states its future. `stamp_focus_arm_baseline()`
22
+ * refuses on exactly this at both
23
+ * go-signals -- the role arm, and the read_only TRUE -> FALSE ratify crossing.
24
+ *
25
+ * A PRE-CHECK, NEVER THE AUTHORITY: the trigger derives its own answer at the
26
+ * instant of the write, and callers still handle the refusal arriving anyway.
27
+ *
28
+ * FAIL CLOSED = DO NOT ARM. An unreadable read, or a derivation the edge
29
+ * reports INCOMPLETE (a scan bound bit), answers "not ready" with the reason.
30
+ * Arming on an unproven scope costs the human's go-signal itself.
18
31
  */
19
- export interface ArmReadinessTarget {
20
- nodeId: string;
21
- frtStatement: string | null;
22
- }
32
+ import type { FocusCriteriaStanding } from '../queries/focuses/focus-criteria-standing.js';
23
33
  /** The answer, with the reason it came out that way (logged, never escalated). */
24
34
  export interface FocusArmReadiness {
25
35
  ready: boolean;
26
36
  /** Human-readable why -- goes straight into the daemon log line. */
27
37
  reason: string;
28
- /** The anchored deliveries that met the bar (empty when not ready). */
29
- readyDeliveryIds: string[];
30
38
  }
31
- /**
32
- * The bar, PURE. `targetsByInjectionId` maps each anchored delivery's injection
33
- * to the effects it promises to flip.
34
- *
35
- * A delivery is COUNTED when it is anchored, not cancelled, and its injection's
36
- * targets all carry a restatement. An injection with NO targets is not counted:
37
- * "every target carries a restatement" is vacuously true of an empty set, and
38
- * an arm over an empty set is precisely the zero-effect arm this check refuses.
39
- */
40
- export declare function assessArmReadiness(deliveries: ArmReadinessDelivery[], targetsByInjectionId: Map<string, ArmReadinessTarget[]>): FocusArmReadiness;
41
- /**
42
- * The reads this check needs. Required: the production binding (the two reads
43
- * below) is chosen at the composition root (composition/runtime-contexts.ts,
44
- * `armReadiness`); tests hand in stubs.
45
- */
46
- export interface ArmReadinessDeps {
47
- loadDeliveries: (focusId: string) => Promise<ArmReadinessDelivery[]>;
48
- loadTargetsByInjectionId: (injectionIds: string[]) => Promise<Map<string, ArmReadinessTarget[]>>;
49
- }
50
- /** Production read: the focus's deliveries, narrowed to the fields the bar reads. */
51
- export declare function loadArmReadinessDeliveries(focusId: string): Promise<ArmReadinessDelivery[]>;
52
- /**
53
- * Production read: the injection-context read's `nowTargets` -- per targeted undesired
54
- * effect, its current statement and the `frt_statement` it becomes.
55
- *
56
- * `nowTargets` reports the UDE targets, which is exactly the set this bar is
57
- * about: those are the effects an injection PROMISES TO FLIP, and the ones a
58
- * later verify reconciles against. An injection that targets only a cause
59
- * entity reports none here and is not counted -- it states no effect, so an arm
60
- * over it covers nothing checkable. A backend predating the field omits it,
61
- * which reads the same way: not ready, never a silent pass.
62
- */
63
- export declare function loadArmReadinessTargets(injectionIds: string[]): Promise<Map<string, ArmReadinessTarget[]>>;
64
- /**
65
- * Read a focus's arm readiness. NEVER throws: an unreadable input answers "not
66
- * ready" with the failure as its reason, and the caller logs it and re-tries on
67
- * a later tick. Nothing is escalated -- an unscoped focus is a waiting state,
68
- * not an incident.
69
- */
70
- export declare function readFocusArmReadiness(focusId: string, deps: ArmReadinessDeps): Promise<FocusArmReadiness>;
71
39
  /**
72
40
  * What a live read of the focus's covered effects says about its bar.
73
41
  *
@@ -79,7 +47,7 @@ export declare function readFocusArmReadiness(focusId: string, deps: ArmReadines
79
47
  export interface FocusBarStanding {
80
48
  /** True only when the covered set holds >= 1 effect and none is unstated. */
81
49
  statesABar: boolean;
82
- /** False when a read failed; the verdict is then a hold, not a finding. */
50
+ /** False when a read failed or was incomplete; the verdict is then a hold, not a finding. */
83
51
  readable: boolean;
84
52
  /** Human-readable why -- goes straight into a log line or a record. */
85
53
  reason: string;
@@ -88,24 +56,31 @@ export interface FocusBarStanding {
88
56
  /** The covered effects whose `frt_statement` is null or blank. */
89
57
  unstatedNodeIds: string[];
90
58
  }
59
+ /** The read this check needs: the edge's LIVE criteria-standing preview. */
60
+ export interface ArmReadinessDeps {
61
+ loadCoverage: (focusId: string) => Promise<FocusCriteriaStanding>;
62
+ }
91
63
  /**
92
- * The database's rule, PURE, over the same inputs `assessArmReadiness` reads.
64
+ * The database's rule, PURE, over the edge's live preview.
93
65
  *
94
- * Mirrors `stamp_focus_arm_baseline()` / `focus_arm_baseline_snapshot()`: the
95
- * covered set is the union of every non-cancelled anchored delivery's injection
96
- * targets (the injection-context read's `nowTargets`, which reports the
97
- * UNDESIRED EFFECT targets -- the same node type the trigger counts), it must be
98
- * non-empty, and every member must carry a non-blank restatement.
99
- *
100
- * It is a PRE-CHECK, never the authority: the trigger derives its own answer at
101
- * the instant of the write, and the two are read seconds apart. A caller still
102
- * handles the refusal arriving anyway.
66
+ * Covered effects = the TREE criteria (one per covered effect stating its
67
+ * future) plus the covered effects stating none. `untargetedSustainingCauses`
68
+ * is folded into the zero-effect reason so the log line names what to aim at.
103
69
  */
104
- export declare function assessFocusStatesABar(deliveries: ArmReadinessDelivery[], targetsByInjectionId: Map<string, ArmReadinessTarget[]>): FocusBarStanding;
70
+ export declare function assessFocusStatesABar(standing: FocusCriteriaStanding): FocusBarStanding;
71
+ /** The PRD frontier's question, answered by the database's rule. PURE. */
72
+ export declare function assessArmReadiness(standing: FocusCriteriaStanding): FocusArmReadiness;
105
73
  /**
106
74
  * Read whether a focus states a bar, live. NEVER throws: an unreadable input
107
75
  * answers `{ statesABar: false, readable: false }` with the failure as its
108
76
  * reason, so the caller holds rather than crossing on an unproven bar.
109
77
  */
110
78
  export declare function readFocusStatesABar(focusId: string, deps: ArmReadinessDeps): Promise<FocusBarStanding>;
79
+ /**
80
+ * Read a focus's arm readiness. NEVER throws: an unreadable input answers "not
81
+ * ready" with the failure as its reason, and the caller logs it and re-tries on
82
+ * a later tick. Nothing is escalated -- an unscoped focus is a waiting state,
83
+ * not an incident.
84
+ */
85
+ export declare function readFocusArmReadiness(focusId: string, deps: ArmReadinessDeps): Promise<FocusArmReadiness>;
111
86
  //# sourceMappingURL=arm-readiness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"arm-readiness.d.ts","sourceRoot":"","sources":["../../src/prd/arm-readiness.ts"],"names":[],"mappings":"AAqEA,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAQD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,oBAAoB,EAAE,EAClC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,GACtD,iBAAiB,CA8BnB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACrE,wBAAwB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;CAClG;AAED,qFAAqF;AACrF,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAQjG;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAa5C;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAmB5B;AAKD;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,UAAU,EAAE,OAAO,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,oBAAoB,EAAE,EAClC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,GACtD,gBAAgB,CA0ClB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAqB3B"}
1
+ {"version":3,"file":"arm-readiness.d.ts","sourceRoot":"","sources":["../../src/prd/arm-readiness.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAK3F,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,UAAU,EAAE,OAAO,CAAC;IACpB,6FAA6F;IAC7F,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACnE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,gBAAgB,CAkDvF;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,iBAAiB,CAGrF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAc3B;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,iBAAiB,CAAC,CAM5B"}
@@ -6,237 +6,76 @@
6
6
  // packages/daemon/src/prd/prd-frontier-arm-refused.test.ts,
7
7
  // packages/daemon/src/prd/prd-frontier-arming.test.ts
8
8
  // PINNED-BY-END
9
- /**
10
- * "Is this focus scoped enough to arm?" -- the question the PRD controller must
11
- * answer BEFORE it spends the PRD's Play on a frontier focus.
12
- *
13
- * An arm covers the effects the focus held when the go-signal was given, and
14
- * the database fixes that set AT THE ARM (`armed_baseline_target_node_ids`). So
15
- * an arm placed on an empty focus covers nothing, permanently: every delivery
16
- * scoped afterwards rests at `planning`, invisible to the running team, until
17
- * someone arms again. The controller therefore asks this first.
18
- *
19
- * THE BAR: the focus holds at least ONE anchored, non-cancelled delivery whose
20
- * injection names at least one target, and EVERY one of that injection's
21
- * targets carries an `frt_statement`. An anchor says which cause the delivery
22
- * changes; the restatement says what the world reads as once it has. A target
23
- * with no restatement states no future, so an arm covering it covers nothing a
24
- * later verify can check -- which is the whole failure this module exists to
25
- * prevent.
26
- *
27
- * PREFER `criteria_standing` ONCE IT LANDS. A sibling delivery is adding a
28
- * `criteria_standing` read that answers exactly this question for an un-armed
29
- * focus, derived live at the edge. When it lands, this module's IO half
30
- * (`readFocusArmReadiness`) should become a call to it and the local derivation
31
- * below should be deleted -- a second definition of "scoped enough" is exactly
32
- * the drift the arm-coverage work exists to remove. It has NOT landed yet, so
33
- * the derivation here is direct and deliberately narrow.
34
- *
35
- * FAIL CLOSED = DO NOT ARM. Every unreadable input answers "not ready" with the
36
- * reason. That is the safe direction here and the opposite of verify's: verify
37
- * holds a delivery to every target when it cannot prove coverage, because
38
- * judging one target too many costs a re-work cycle; arming on an unproven
39
- * scope costs the human's go-signal itself, which only a new arm restores.
40
- *
41
- * TWO QUESTIONS LIVE HERE, AND THEY ARE NOT THE SAME BAR. Read the one you
42
- * mean:
43
- *
44
- * `assessArmReadiness` -- "is there a delivery worth spending the PRD's Play
45
- * on?" PER-DELIVERY: one anchored delivery whose own injection's targets all
46
- * state futures is enough. The PRD frontier asks this because it chooses
47
- * WHETHER to arm.
48
- *
49
- * `assessFocusStatesABar` -- the DATABASE's rule, restated: across the whole
50
- * covered set, at least one undesired effect, and NOT ONE of them unstated.
51
- * `stamp_focus_arm_baseline()` (migration 20260922173056) refuses on exactly
52
- * this, at both go-signals -- the role arm, and the read_only TRUE -> FALSE
53
- * ratify crossing of an audit focus. A caller about to cross one of those
54
- * asks THIS one, so the refusal never has to arrive mid-crossing.
55
- *
56
- * The second is strictly the stricter: a focus with one stated delivery and one
57
- * unstated one passes the first and is refused by the second. That is why they
58
- * are separate functions rather than one with a flag -- they answer different
59
- * questions, and collapsing them would silently move the PRD frontier's bar.
60
- */
61
- import { DELIVERY_STATUS } from '@telora/daemon-core';
62
- import { getFocusDeliveries } from '../queries/focuses/focuses.js';
63
- import { fetchInjectionBundles } from '../resolvers/shared/loop.js';
64
9
  import { createLogger } from '../log/daemon-log.js';
65
10
  const log = createLogger({ module: 'prd-controller' });
66
- /** Does this injection's target set state a future? */
67
- function targetsStateAFuture(targets) {
68
- if (targets.length === 0)
69
- return false;
70
- return targets.every((t) => (t.frtStatement ?? '').trim().length > 0);
71
- }
72
11
  /**
73
- * The bar, PURE. `targetsByInjectionId` maps each anchored delivery's injection
74
- * to the effects it promises to flip.
12
+ * The database's rule, PURE, over the edge's live preview.
75
13
  *
76
- * A delivery is COUNTED when it is anchored, not cancelled, and its injection's
77
- * targets all carry a restatement. An injection with NO targets is not counted:
78
- * "every target carries a restatement" is vacuously true of an empty set, and
79
- * an arm over an empty set is precisely the zero-effect arm this check refuses.
80
- */
81
- export function assessArmReadiness(deliveries, targetsByInjectionId) {
82
- const live = deliveries.filter((d) => d.executionStatus !== DELIVERY_STATUS.CANCELLED);
83
- if (live.length === 0) {
84
- return { ready: false, reason: 'the focus holds no non-cancelled delivery', readyDeliveryIds: [] };
85
- }
86
- const anchored = live.filter((d) => (d.injectionId ?? '').length > 0);
87
- if (anchored.length === 0) {
88
- return {
89
- ready: false,
90
- reason: `${live.length} delivery/deliveries, none anchored to an injection`,
91
- readyDeliveryIds: [],
92
- };
93
- }
94
- const readyDeliveryIds = anchored
95
- .filter((d) => targetsStateAFuture(targetsByInjectionId.get(d.injectionId) ?? []))
96
- .map((d) => d.id);
97
- if (readyDeliveryIds.length === 0) {
98
- return {
99
- ready: false,
100
- reason: `${anchored.length} anchored delivery/deliveries, but none whose injection targets ` +
101
- 'all carry an frt_statement (an arm over them would cover no stated effect)',
102
- readyDeliveryIds: [],
103
- };
104
- }
105
- return {
106
- ready: true,
107
- reason: `${readyDeliveryIds.length} of ${anchored.length} anchored delivery/deliveries state their targets' futures`,
108
- readyDeliveryIds,
109
- };
110
- }
111
- /** Production read: the focus's deliveries, narrowed to the fields the bar reads. */
112
- export async function loadArmReadinessDeliveries(focusId) {
113
- const deliveries = await getFocusDeliveries(focusId);
114
- return deliveries.map((d) => ({
115
- id: d.id,
116
- name: d.name,
117
- executionStatus: d.executionStatus,
118
- injectionId: d.injectionId ?? null,
119
- }));
120
- }
121
- /**
122
- * Production read: the injection-context read's `nowTargets` -- per targeted undesired
123
- * effect, its current statement and the `frt_statement` it becomes.
124
- *
125
- * `nowTargets` reports the UDE targets, which is exactly the set this bar is
126
- * about: those are the effects an injection PROMISES TO FLIP, and the ones a
127
- * later verify reconciles against. An injection that targets only a cause
128
- * entity reports none here and is not counted -- it states no effect, so an arm
129
- * over it covers nothing checkable. A backend predating the field omits it,
130
- * which reads the same way: not ready, never a silent pass.
131
- */
132
- export async function loadArmReadinessTargets(injectionIds) {
133
- const bundles = await fetchInjectionBundles(injectionIds);
134
- const out = new Map();
135
- for (const [injectionId, bundle] of bundles) {
136
- out.set(injectionId, (bundle.nowTargets ?? [])
137
- .filter((t) => typeof t.nodeId === 'string' && t.nodeId.length > 0)
138
- .map((t) => ({ nodeId: t.nodeId, frtStatement: t.target })));
139
- }
140
- return out;
141
- }
142
- /**
143
- * Read a focus's arm readiness. NEVER throws: an unreadable input answers "not
144
- * ready" with the failure as its reason, and the caller logs it and re-tries on
145
- * a later tick. Nothing is escalated -- an unscoped focus is a waiting state,
146
- * not an incident.
14
+ * Covered effects = the TREE criteria (one per covered effect stating its
15
+ * future) plus the covered effects stating none. `untargetedSustainingCauses`
16
+ * is folded into the zero-effect reason so the log line names what to aim at.
147
17
  */
148
- export async function readFocusArmReadiness(focusId, deps) {
149
- const { loadDeliveries, loadTargetsByInjectionId: loadTargets } = deps;
150
- try {
151
- const deliveries = await loadDeliveries(focusId);
152
- const injectionIds = deliveries
153
- .filter((d) => d.executionStatus !== DELIVERY_STATUS.CANCELLED)
154
- .map((d) => d.injectionId)
155
- .filter((id) => typeof id === 'string' && id.length > 0);
156
- const targets = injectionIds.length > 0 ? await loadTargets(injectionIds) : new Map();
157
- return assessArmReadiness(deliveries, targets);
158
- }
159
- catch (err) {
160
- const message = err.message;
161
- log.warn(`[prd-controller] arm-readiness read failed for focus ${focusId}: ${message}`);
18
+ export function assessFocusStatesABar(standing) {
19
+ if (standing.treeCoverageIncomplete === true) {
162
20
  return {
163
- ready: false,
164
- reason: `arm-readiness could not be read (${message}) -- holding the arm`,
165
- readyDeliveryIds: [],
21
+ statesABar: false,
22
+ readable: false,
23
+ reason: "the focus's covered effects could not be fully read (a tree scan bound bit)",
24
+ coveredEffectCount: 0,
25
+ unstatedNodeIds: [],
166
26
  };
167
27
  }
168
- }
169
- /**
170
- * The database's rule, PURE, over the same inputs `assessArmReadiness` reads.
171
- *
172
- * Mirrors `stamp_focus_arm_baseline()` / `focus_arm_baseline_snapshot()`: the
173
- * covered set is the union of every non-cancelled anchored delivery's injection
174
- * targets (the injection-context read's `nowTargets`, which reports the
175
- * UNDESIRED EFFECT targets -- the same node type the trigger counts), it must be
176
- * non-empty, and every member must carry a non-blank restatement.
177
- *
178
- * It is a PRE-CHECK, never the authority: the trigger derives its own answer at
179
- * the instant of the write, and the two are read seconds apart. A caller still
180
- * handles the refusal arriving anyway.
181
- */
182
- export function assessFocusStatesABar(deliveries, targetsByInjectionId) {
183
- const covered = new Map();
184
- for (const delivery of deliveries) {
185
- if (delivery.executionStatus === DELIVERY_STATUS.CANCELLED)
186
- continue;
187
- const injectionId = delivery.injectionId ?? '';
188
- if (injectionId === '')
189
- continue;
190
- for (const target of targetsByInjectionId.get(injectionId) ?? []) {
191
- covered.set(target.nodeId, target);
192
- }
193
- }
194
- if (covered.size === 0) {
28
+ const stated = standing.criteria.filter((c) => c.source === 'tree');
29
+ const unstated = standing.unstatedCoveredEffects ?? [];
30
+ const covered = stated.length + unstated.length;
31
+ if (covered === 0) {
32
+ const causes = standing.untargetedSustainingCauses ?? [];
33
+ const aimAt = causes.length === 0
34
+ ? ''
35
+ : `; untargeted sustaining causes: ${causes.map((c) => `#${c.seq}`).join(', ')}`;
195
36
  return {
196
37
  statesABar: false,
197
38
  readable: true,
198
- reason: 'the focus covers no undesired effect (no non-cancelled delivery anchored to an ' +
199
- 'injection that targets one), so it states no future to judge the work against',
39
+ reason: 'the focus covers no undesired effect (its anchored injections\' targeted causes earn ' +
40
+ `none and it targets none directly), so it states no future to judge the work against${aimAt}`,
200
41
  coveredEffectCount: 0,
201
42
  unstatedNodeIds: [],
202
43
  };
203
44
  }
204
- const unstatedNodeIds = [...covered.values()]
205
- .filter((t) => (t.frtStatement ?? '').trim().length === 0)
206
- .map((t) => t.nodeId);
207
- if (unstatedNodeIds.length > 0) {
45
+ if (unstated.length > 0) {
46
+ const unstatedNodeIds = unstated.map((u) => u.nodeId);
208
47
  return {
209
48
  statesABar: false,
210
49
  readable: true,
211
- reason: `${unstatedNodeIds.length} of ${covered.size} covered undesired effect(s) state no ` +
50
+ reason: `${unstated.length} of ${covered} covered undesired effect(s) state no ` +
212
51
  `future (frt_statement null or blank): ${unstatedNodeIds.join(', ')}`,
213
- coveredEffectCount: covered.size,
52
+ coveredEffectCount: covered,
214
53
  unstatedNodeIds,
215
54
  };
216
55
  }
56
+ const earned = stated.filter((c) => c.basis === 'earned').length;
217
57
  return {
218
58
  statesABar: true,
219
59
  readable: true,
220
- reason: `${covered.size} covered undesired effect(s), every one of them stating its future`,
221
- coveredEffectCount: covered.size,
60
+ reason: `${covered} covered undesired effect(s) (${earned} earned, ${covered - earned} declared), ` +
61
+ 'every one of them stating its future',
62
+ coveredEffectCount: covered,
222
63
  unstatedNodeIds: [],
223
64
  };
224
65
  }
66
+ /** The PRD frontier's question, answered by the database's rule. PURE. */
67
+ export function assessArmReadiness(standing) {
68
+ const bar = assessFocusStatesABar(standing);
69
+ return { ready: bar.statesABar, reason: bar.reason };
70
+ }
225
71
  /**
226
72
  * Read whether a focus states a bar, live. NEVER throws: an unreadable input
227
73
  * answers `{ statesABar: false, readable: false }` with the failure as its
228
74
  * reason, so the caller holds rather than crossing on an unproven bar.
229
75
  */
230
76
  export async function readFocusStatesABar(focusId, deps) {
231
- const { loadDeliveries, loadTargetsByInjectionId: loadTargets } = deps;
232
77
  try {
233
- const deliveries = await loadDeliveries(focusId);
234
- const injectionIds = deliveries
235
- .filter((d) => d.executionStatus !== DELIVERY_STATUS.CANCELLED)
236
- .map((d) => d.injectionId)
237
- .filter((id) => typeof id === 'string' && id.length > 0);
238
- const targets = injectionIds.length > 0 ? await loadTargets(injectionIds) : new Map();
239
- return assessFocusStatesABar(deliveries, targets);
78
+ return assessFocusStatesABar(await deps.loadCoverage(focusId));
240
79
  }
241
80
  catch (err) {
242
81
  const message = err.message;
@@ -250,4 +89,17 @@ export async function readFocusStatesABar(focusId, deps) {
250
89
  };
251
90
  }
252
91
  }
92
+ /**
93
+ * Read a focus's arm readiness. NEVER throws: an unreadable input answers "not
94
+ * ready" with the failure as its reason, and the caller logs it and re-tries on
95
+ * a later tick. Nothing is escalated -- an unscoped focus is a waiting state,
96
+ * not an incident.
97
+ */
98
+ export async function readFocusArmReadiness(focusId, deps) {
99
+ const bar = await readFocusStatesABar(focusId, deps);
100
+ if (!bar.readable) {
101
+ return { ready: false, reason: `arm-readiness could not be read (${bar.reason}) -- holding the arm` };
102
+ }
103
+ return { ready: bar.statesABar, reason: bar.reason };
104
+ }
253
105
  //# sourceMappingURL=arm-readiness.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arm-readiness.js","sourceRoot":"","sources":["../../src/prd/arm-readiness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arm-readiness.js","sourceRoot":"","sources":["../../src/prd/arm-readiness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"frontier-arming.d.ts","sourceRoot":"","sources":["../../src/prd/frontier-arming.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAQhC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAU1C,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAE5F;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,iBAAiB,CAapB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AA0BD,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAM3D;AA2JD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmDlC;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAyCpC"}
1
+ {"version":3,"file":"frontier-arming.d.ts","sourceRoot":"","sources":["../../src/prd/frontier-arming.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACd,MAAM,wBAAwB,CAAC;AAQhC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAU1C,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAE5F;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,aAAa,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,iBAAiB,CAapB;AAED,8CAA8C;AAC9C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;;OAMG;IACH,UAAU,EAAE,OAAO,CAAC;CACrB;AAwBD,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAM3D;AA2JD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmDlC;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;CACzB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAyCpC"}
@@ -78,13 +78,11 @@ function outcome(action, armRefused = false) {
78
78
  const NOT_READ = {
79
79
  ready: false,
80
80
  reason: 'a scoping run is in flight; readiness not read',
81
- readyDeliveryIds: [],
82
81
  };
83
82
  /** Absent readiness read: the arm is refused (absence never restores arm-first). */
84
83
  const NO_READINESS_READ = {
85
84
  ready: false,
86
85
  reason: 'no arm-readiness read was handed to the controller',
87
- readyDeliveryIds: [],
88
86
  };
89
87
  /** The PRD's goal statement, from its goal node(s). Pure. */
90
88
  export function readPrdGoal(nodes) {
@@ -1 +1 @@
1
- {"version":3,"file":"frontier-arming.js","sourceRoot":"","sources":["../../src/prd/frontier-arming.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iEAAiE;AACjE,gBAAgB;AAmDhB,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAEvD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAK5D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAMvC;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC1D,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC;IACzC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,KAAK,GAAG,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;IAC9E,CAAC;IACD,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,IAAI,WAAW,CAAC;IAC9C,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,cAAc,IAAI,SAAS,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC;AACvD,CAAC;AAkBD,SAAS,OAAO,CAAC,MAAyB,EAAE,UAAU,GAAG,KAAK;IAC5D,OAAO;QACL,MAAM;QACN,KAAK,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC,UAAU;QACtC,cAAc,EAAE,MAAM,KAAK,eAAe;QAC1C,YAAY,EAAE,MAAM,KAAK,eAAe;QACxC,UAAU;KACX,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,QAAQ,GAAsB;IAClC,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,gDAAgD;IACxD,gBAAgB,EAAE,EAAE;CACrB,CAAC;AAEF,oFAAoF;AACpF,MAAM,iBAAiB,GAAsB;IAC3C,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,oDAAoD;IAC5D,gBAAgB,EAAE,EAAE;CACrB,CAAC;AAEF,6DAA6D;AAC7D,MAAM,UAAU,WAAW,CAAC,KAAgB;IAC1C,MAAM,UAAU,GAAG,KAAK;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/B,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,eAAe,CAC5B,IAAa,EACb,OAAe,EACf,GAAQ,EACR,OAAsB,EACtB,IAAuB,EACvB,KAAa;IAEb,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,IAAI,kBAAkB,CAAC;IACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,GAAG,GAAkB;QACzB,OAAO;QACP,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,MAAM,EAAE,WAAW;QACnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC;QACvC,SAAS,EAAE,KAAK;QAChB,YAAY,EAAE,IAAI;KACnB,CAAC;IACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACnC,OAAO;QACP,cAAc,EAAE,IAAI,CAAC,EAAE;QACvB,iBAAiB,EAAE,IAAI,CAAC,SAAS;QACjC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;QACxB,KAAK,EAAE,GAAG,CAAC,EAAE;QACb,QAAQ,EAAE,GAAG,CAAC,KAAK;QACnB,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/B,yEAAyE;QACzE,wEAAwE;QACxE,sEAAsE;QACtE,GAAG,CAAC,IAAI,CACN,0BAA0B,OAAO,cAAc,IAAI,CAAC,EAAE,iCAAiC;YACrF,yCAAyC,CAC5C,CAAC;QACF,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,oBAAoB,CAAC;YAC9B,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,MAAM;YACN,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG;oBAAE,OAAO,CAAC,4BAA4B;gBACnE,GAAG,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC3D,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC;YAC1B,CAAC;SACF,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CACN,sDAAsD,OAAO,cAAc,IAAI,CAAC,EAAE,IAAI;YACpF,WAAW,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,IAAI,wBAAwB,OAAO;YACxF,iEAAiE,CACpE,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,0EAA0E;QAC1E,GAAG,CAAC,MAAM,GAAG,eAAe,CAAC;QAC7B,GAAG,CAAC,IAAI,CACN,gEAAgE,OAAO,KAAM,GAAa,CAAC,OAAO,EAAE,CACrG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,KAAK,UAAU,kBAAkB,CAAC,IAQjC;IACC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACpE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxC,GAAG,CAAC,IAAI,CACN,qCAAqC,OAAO,cAAc,IAAI,CAAC,EAAE,gBAAgB;YAC/E,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS,MAAM,OAAO,CAAC,MAAM,uCAAuC;YACxF,uDAAuD,CAC1D,CAAC;QACF,2EAA2E;QAC3E,+EAA+E;QAC/E,4EAA4E;QAC5E,sEAAsE;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC;gBAC1B,OAAO;gBACP,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,QAAQ,EAAE,GAAG,CAAC,KAAK;gBACnB,OAAO;gBACP,eAAe,EAAE,SAAS,CAAC,MAAM;gBACjC,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE;aAC1C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CACN,8DAA8D,OAAO,IAAI;gBACvE,GAAI,SAAmB,CAAC,OAAO,EAAE,CACpC,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,GAAG,CAAC,IAAI,CACN,gCAAgC,OAAO,cAAc,IAAI,CAAC,EAAE,MAAM,SAAS,CAAC,MAAM,EAAE,CACrF,CAAC;IACF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,QAAQ,EAAE,CAAC;QAClB,wEAAwE;QACxE,GAAG,CAAC,KAAK,CACP,qEAAqE,OAAO,IAAI;YAC9E,GAAI,QAAkB,CAAC,OAAO,EAAE,CACnC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,IAO7C;IACC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,IAAI,kBAAkB,CAAC;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,IAAI,oBAAoB,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,IAAI,wBAAwB,CAAC;IAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE9B,yEAAyE;IACzE,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,GAAG,EAAE,MAAM,KAAK,WAAW,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;IAChF,MAAM,SAAS,GAAG,QAAQ;QACxB,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC,qBAAqB;YAC1B,CAAC,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YAC3C,CAAC,CAAC,iBAAiB,CAAC;IAExB,MAAM,MAAM,GAAG,uBAAuB,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAErG,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,KAAK;YACR,UAAU,GAAG,CAAC,CAAC,MAAM,kBAAkB,CAAC;gBACtC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;aACnD,CAAC,CAAC,CAAC;YACJ,MAAM;QACR,KAAK,eAAe;YAClB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACtC,qEAAqE;gBACrE,uEAAuE;gBACvE,yEAAyE;gBACzE,GAAG,CAAC,IAAI,CACN,0BAA0B,OAAO,cAAc,IAAI,CAAC,EAAE,2BAA2B;oBAC/E,gBAAgB,GAAG,CAAC,MAAM,UAAU,GAAG,CAAC,YAAY,IAAI,GAAG,MAAM,SAAS,CAAC,MAAM,gBAAgB,CACpG,CAAC;YACJ,CAAC;YACD,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAChE,MAAM;QACR,KAAK,eAAe;YAClB,GAAG,CAAC,KAAK,CAAC,0BAA0B,OAAO,wCAAwC,CAAC,CAAC;YACrF,MAAM;QACR,KAAK,eAAe;YAClB,wEAAwE;YACxE,yCAAyC;YACzC,GAAG,CAAC,IAAI,CACN,0BAA0B,OAAO,cAAc,IAAI,CAAC,EAAE,yBAAyB;gBAC7E,GAAG,GAAG,EAAE,QAAQ,IAAI,CAAC,wBAAwB,SAAS,CAAC,MAAM,EAAE,CAClE,CAAC;YACF,MAAM;IACV,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAaD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAO3C;IACC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACtE,MAAM,MAAM,GAA6B;QACvC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC;QAC/E,UAAU,EAAE,CAAC;KACd,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEnC,MAAM,KAAK,GAAG,CAAC,CAAyB,EAAQ,EAAE;QAChD,IAAI,CAAC,CAAC,KAAK;YAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,cAAc;YAAE,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,YAAY;YAAE,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,UAAU;YAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,2EAA2E;QAC3E,4CAA4C;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;QACzB,KAAK,CAAC,MAAM,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI;YAAE,SAAS;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,KAAK,CAAC,MAAM,uBAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"frontier-arming.js","sourceRoot":"","sources":["../../src/prd/frontier-arming.ts"],"names":[],"mappings":"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"}
@@ -74,10 +74,10 @@ export function buildPrdScopingPrompt(input) {
74
74
  `## Steps (do these in order, verifying each with a follow-up read)`,
75
75
  `1. telora_product_focus update -- append the marker line "${marker}" verbatim to the focus description, so a re-spawned run can find your work.`,
76
76
  `2. telora_reality_tree create on the focus, then author the CRT: the undesired effects that exist today because this capability is missing, and the causal edges between them.`,
77
- `3. Author the FRT: for EVERY node an injection will target, DECLARE A RESTATEMENT -- the frt_statement saying what that node reads as once the work lands. A target with no frt_statement states no future, and an arm that covers it covers nothing checkable. Use telora_reality_tree_node (frtStatement + frtNodeType) on each target.`,
78
- `4. Author the injections: one per phase of the capability above. Each injection must draw a \`targets\` edge to the node(s) it flips.`,
77
+ `3. Author the FRT: for EVERY undesired effect the injections will earn, DECLARE A RESTATEMENT -- the frt_statement saying what that effect reads as once the work lands. An effect with no frt_statement states no future, and an arm that covers it covers nothing checkable. Use telora_reality_tree_node (frtStatement + frtNodeType) on each effect.`,
78
+ `4. Author the injections: one per phase of the capability above. Each injection must draw a \`targets\` edge to the CAUSE(s) it changes -- never to an undesired effect -- and declare each targeted cause's future (its frt_statement) via the target action's restatements. An effect is earned, and covered by the arm, once every cause sustaining it is targeted.`,
79
79
  `5. telora_product_delivery create -- ONE delivery per injection, each anchored to its injection (injectionNodeId) and created with executionStatus "planning". One injection, one delivery: the pairing is what lets a later arm say which effects it covers. Carry a workFacing label ("outward" for new ground, "inward" for improving existing ground).`,
80
- `6. Verify your own work before exiting: re-read the focus's deliveries and confirm EVERY one is anchored to an injection, and that every node those injections target carries an frt_statement. The controller arms this focus only when that is true -- if it is not, your run leaves the focus un-armed and the work is re-scoped.`,
80
+ `6. Verify your own work before exiting: re-read the focus's deliveries and confirm EVERY one is anchored to an injection, and that every cause those injections target, and every effect they earn, carries an frt_statement. The controller arms this focus only when that is true -- if it is not, your run leaves the focus un-armed and the work is re-scoped.`,
81
81
  `7. Stop. Do NOT arm the focus (do NOT set assignedAgentRoleId), do NOT set any delivery to "queued", and do NOT begin implementing. Arming is the human go-signal the PRD's Play holds; the daemon spends it on the next tick once the focus states its future.`,
82
82
  ``,
83
83
  `Refer to focuses/deliveries/issues by title in any prose, never by UUID. Follow CLAUDE.md.`,
@@ -1 +1 @@
1
- {"version":3,"file":"scoping-prompt.js","sourceRoot":"","sources":["../../src/prd/scoping-prompt.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,gBAAgB;AA+BhB;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACrD,OAAO,yBAAyB,cAAc,EAAE,CAAC;AACnD,CAAC;AAmBD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,IAA6B;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM;SACf,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,MAAgB;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,gFAAgF;YAChF,6EAA6E;SAC9E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA4B;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,kCAAkC,CAAC;IACvF,OAAO;QACL,iHAAiH;QACjH,oIAAoI;QACpI,sGAAsG;QACtG,EAAE;QACF,kBAAkB;QAClB,UAAU,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,KAAK,GAAG;QACjD,eAAe,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,wEAAwE,EAAE;QAClH,wFAAwF;QACxF,EAAE;QACF,kFAAkF;QAClF,SAAS;QACT,EAAE;QACF,0DAA0D;QAC1D,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,EAAE;QACF,2DAA2D;QAC3D,cAAc,KAAK,CAAC,OAAO,EAAE;QAC7B,gEAAgE;QAChE,EAAE;QACF,0FAA0F;QAC1F,uCAAuC,KAAK,CAAC,OAAO,2DAA2D,MAAM,IAAI;QACzH,wJAAwJ;QACxJ,2EAA2E;QAC3E,EAAE;QACF,oEAAoE;QACpE,6DAA6D,MAAM,8EAA8E;QACjJ,gLAAgL;QAChL,2UAA2U;QAC3U,uIAAuI;QACvI,4VAA4V;QAC5V,sUAAsU;QACtU,iQAAiQ;QACjQ,EAAE;QACF,4FAA4F;KAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"scoping-prompt.js","sourceRoot":"","sources":["../../src/prd/scoping-prompt.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,gBAAgB;AA+BhB;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACrD,OAAO,yBAAyB,cAAc,EAAE,CAAC;AACnD,CAAC;AAmBD;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,IAA6B;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAC3C,OAAO,IAAI,CAAC,MAAM;SACf,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,0EAA0E;AAC1E,SAAS,YAAY,CAAC,MAAgB;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,gFAAgF;YAChF,6EAA6E;SAC9E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA4B;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,kCAAkC,CAAC;IACvF,OAAO;QACL,iHAAiH;QACjH,oIAAoI;QACpI,sGAAsG;QACtG,EAAE;QACF,kBAAkB;QAClB,UAAU,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,KAAK,GAAG;QACjD,eAAe,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,wEAAwE,EAAE;QAClH,wFAAwF;QACxF,EAAE;QACF,kFAAkF;QAClF,SAAS;QACT,EAAE;QACF,0DAA0D;QAC1D,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QAC7B,EAAE;QACF,2DAA2D;QAC3D,cAAc,KAAK,CAAC,OAAO,EAAE;QAC7B,gEAAgE;QAChE,EAAE;QACF,0FAA0F;QAC1F,uCAAuC,KAAK,CAAC,OAAO,2DAA2D,MAAM,IAAI;QACzH,wJAAwJ;QACxJ,2EAA2E;QAC3E,EAAE;QACF,oEAAoE;QACpE,6DAA6D,MAAM,8EAA8E;QACjJ,gLAAgL;QAChL,0VAA0V;QAC1V,wWAAwW;QACxW,4VAA4V;QAC5V,oWAAoW;QACpW,iQAAiQ;QACjQ,EAAE;QACF,4FAA4F;KAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -16,13 +16,20 @@ import type { ArmFacts } from '../supervision/recorded-new-intent.js';
16
16
  * team a delivery with nothing on it to do, and a lead told that repeatedly
17
17
  * escalates to a human for a status it cannot set (Tinker Tailor, 2026-09-25).
18
18
  * Used by the scope-coverage guard and the lead continuation turn.
19
+ *
20
+ * `recordedConcernIds` (delivery/recorded-concerns.ts): a review concern is
21
+ * recorded for the human, never owed by this team. A delivery holding only
22
+ * concerns is not named, and on a named delivery the open concerns are set
23
+ * apart on the labelled "recorded for the human" line instead of listed as work.
19
24
  */
20
- export declare function buildReEngagementMessage(nonTerminalDeliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], armFacts?: ArmFacts | null): string;
25
+ export declare function buildReEngagementMessage(nonTerminalDeliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], armFacts?: ArmFacts | null, recordedConcernIds?: ReadonlySet<string>): string;
21
26
  /**
22
27
  * Build a wake message for an idle team when new work is available.
23
28
  *
24
29
  * The team already has role context and execution instructions from the
25
30
  * initial prompt. This message is a lean update with just the new work.
31
+ * Recorded review concerns (`recordedConcernIds`) are named on the labelled
32
+ * "recorded for the human" line, never listed or counted as work.
26
33
  */
27
- export declare function buildWakeMessage(deliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], knownDeliveryIds: ReadonlySet<string>): string;
34
+ export declare function buildWakeMessage(deliveries: FocusDeliveryInfo[], issues: FocusIssueInfo[], knownDeliveryIds: ReadonlySet<string>, recordedConcernIds?: ReadonlySet<string>): string;
28
35
  //# sourceMappingURL=focus-prompt-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"AASA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAI3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GACzB,MAAM,CAoDR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,GACpC,MAAM,CAqER"}
1
+ {"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAO3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,EACxB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,EAC1B,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,MAAM,CAuDR;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,EACrC,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,MAAM,CAwER"}