@telora/daemon 0.24.17 → 0.24.26

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 (536) hide show
  1. package/build-info.json +12 -3
  2. package/dist/audit/audit-prompt.d.ts.map +1 -1
  3. package/dist/audit/audit-prompt.js +15 -0
  4. package/dist/audit/audit-prompt.js.map +1 -1
  5. package/dist/ci/candidate-failure-record.d.ts +104 -0
  6. package/dist/ci/candidate-failure-record.d.ts.map +1 -0
  7. package/dist/ci/candidate-failure-record.js +135 -0
  8. package/dist/ci/candidate-failure-record.js.map +1 -0
  9. package/dist/ci/candidate-ref.d.ts.map +1 -1
  10. package/dist/ci/candidate-ref.js +10 -3
  11. package/dist/ci/candidate-ref.js.map +1 -1
  12. package/dist/ci/ci-status-git.d.ts.map +1 -1
  13. package/dist/ci/ci-status-git.js +1 -0
  14. package/dist/ci/ci-status-git.js.map +1 -1
  15. package/dist/ci/ci-status.d.ts.map +1 -1
  16. package/dist/ci/ci-status.js +1 -0
  17. package/dist/ci/ci-status.js.map +1 -1
  18. package/dist/ci/gate-ref.d.ts +10 -1
  19. package/dist/ci/gate-ref.d.ts.map +1 -1
  20. package/dist/ci/gate-ref.js +11 -4
  21. package/dist/ci/gate-ref.js.map +1 -1
  22. package/dist/ci/product-ci-repo.d.ts.map +1 -1
  23. package/dist/ci/product-ci-repo.js +3 -2
  24. package/dist/ci/product-ci-repo.js.map +1 -1
  25. package/dist/completion/completion-event/event.d.ts +4 -3
  26. package/dist/completion/completion-event/event.d.ts.map +1 -1
  27. package/dist/completion/completion-event/event.js.map +1 -1
  28. package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts +19 -11
  29. package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts.map +1 -1
  30. package/dist/completion/review-cycle-budget/review-cycle-cap.js +36 -36
  31. package/dist/completion/review-cycle-budget/review-cycle-cap.js.map +1 -1
  32. package/dist/completion/review-cycle-budget/review-loop-detection.d.ts +101 -0
  33. package/dist/completion/review-cycle-budget/review-loop-detection.d.ts.map +1 -0
  34. package/dist/completion/review-cycle-budget/review-loop-detection.js +105 -0
  35. package/dist/completion/review-cycle-budget/review-loop-detection.js.map +1 -0
  36. package/dist/completion/review-cycle-budget/spent-budget-release.d.ts +70 -0
  37. package/dist/completion/review-cycle-budget/spent-budget-release.d.ts.map +1 -0
  38. package/dist/completion/review-cycle-budget/spent-budget-release.js +98 -0
  39. package/dist/completion/review-cycle-budget/spent-budget-release.js.map +1 -0
  40. package/dist/completion/review-exit/review-defect-detector.d.ts +71 -49
  41. package/dist/completion/review-exit/review-defect-detector.d.ts.map +1 -1
  42. package/dist/completion/review-exit/review-defect-detector.js +75 -69
  43. package/dist/completion/review-exit/review-defect-detector.js.map +1 -1
  44. package/dist/completion/review-exit/review-exit-attribution.d.ts +1 -1
  45. package/dist/completion/review-exit/review-exit-attribution.js +1 -1
  46. package/dist/completion/review-exit/review-exit-deps.d.ts +5 -2
  47. package/dist/completion/review-exit/review-exit-deps.d.ts.map +1 -1
  48. package/dist/completion/review-exit/review-exit-deps.js +1 -1
  49. package/dist/completion/review-exit/review-exit-evidence.d.ts +10 -1
  50. package/dist/completion/review-exit/review-exit-evidence.d.ts.map +1 -1
  51. package/dist/completion/review-exit/review-exit-evidence.js +17 -14
  52. package/dist/completion/review-exit/review-exit-evidence.js.map +1 -1
  53. package/dist/completion/review-exit/review-exit-foreign-findings.d.ts +1 -1
  54. package/dist/completion/review-exit/review-exit-foreign-findings.d.ts.map +1 -1
  55. package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
  56. package/dist/completion/review-exit/review-exit-phase.js +12 -8
  57. package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
  58. package/dist/completion/state-cascade/review-next-step.d.ts +12 -3
  59. package/dist/completion/state-cascade/review-next-step.d.ts.map +1 -1
  60. package/dist/completion/state-cascade/review-next-step.js +10 -1
  61. package/dist/completion/state-cascade/review-next-step.js.map +1 -1
  62. package/dist/completion/state-cascade/standing-approval-convergence.d.ts +1 -1
  63. package/dist/completion/state-cascade/standing-approval-convergence.d.ts.map +1 -1
  64. package/dist/completion/state-cascade/standing-approval-convergence.js +10 -4
  65. package/dist/completion/state-cascade/standing-approval-convergence.js.map +1 -1
  66. package/dist/completion/state-cascade/state-cascade.d.ts +3 -0
  67. package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
  68. package/dist/completion/state-cascade/state-cascade.js +16 -1
  69. package/dist/completion/state-cascade/state-cascade.js.map +1 -1
  70. package/dist/completion/team-exit/status-advance-phase.d.ts +1 -1
  71. package/dist/completion/team-exit/status-advance-phase.d.ts.map +1 -1
  72. package/dist/completion/team-exit/status-advance-phase.js +6 -4
  73. package/dist/completion/team-exit/status-advance-phase.js.map +1 -1
  74. package/dist/completion/team-outcome/apply-turn.d.ts.map +1 -1
  75. package/dist/completion/team-outcome/apply-turn.js +9 -4
  76. package/dist/completion/team-outcome/apply-turn.js.map +1 -1
  77. package/dist/completion/team-outcome/decide-turn-entry-rows.d.ts.map +1 -1
  78. package/dist/completion/team-outcome/decide-turn-entry-rows.js +28 -3
  79. package/dist/completion/team-outcome/decide-turn-entry-rows.js.map +1 -1
  80. package/dist/completion/team-outcome/decide.d.ts.map +1 -1
  81. package/dist/completion/team-outcome/decide.js +1 -0
  82. package/dist/completion/team-outcome/decide.js.map +1 -1
  83. package/dist/completion/team-outcome/exit-limits.d.ts +6 -0
  84. package/dist/completion/team-outcome/exit-limits.d.ts.map +1 -1
  85. package/dist/completion/team-outcome/exit-limits.js +6 -0
  86. package/dist/completion/team-outcome/exit-limits.js.map +1 -1
  87. package/dist/completion/team-outcome/exit-pipeline-state.d.ts +5 -0
  88. package/dist/completion/team-outcome/exit-pipeline-state.d.ts.map +1 -1
  89. package/dist/completion/team-outcome/exit-pipeline-state.js.map +1 -1
  90. package/dist/completion/team-teardown/session-hold-bounds.d.ts +10 -1
  91. package/dist/completion/team-teardown/session-hold-bounds.d.ts.map +1 -1
  92. package/dist/completion/team-teardown/session-hold-bounds.js +11 -0
  93. package/dist/completion/team-teardown/session-hold-bounds.js.map +1 -1
  94. package/dist/completion/team-teardown/session-hold.d.ts.map +1 -1
  95. package/dist/completion/team-teardown/session-hold.js +2 -0
  96. package/dist/completion/team-teardown/session-hold.js.map +1 -1
  97. package/dist/composition/engine-start-context.d.ts.map +1 -1
  98. package/dist/composition/engine-start-context.js +9 -1
  99. package/dist/composition/engine-start-context.js.map +1 -1
  100. package/dist/composition/execution-merge-context.d.ts +13 -0
  101. package/dist/composition/execution-merge-context.d.ts.map +1 -1
  102. package/dist/composition/execution-merge-context.js +76 -3
  103. package/dist/composition/execution-merge-context.js.map +1 -1
  104. package/dist/composition/execution-spawn-context.d.ts.map +1 -1
  105. package/dist/composition/execution-spawn-context.js +2 -0
  106. package/dist/composition/execution-spawn-context.js.map +1 -1
  107. package/dist/composition/focus-activity-live-sources.d.ts.map +1 -1
  108. package/dist/composition/focus-activity-live-sources.js +1 -0
  109. package/dist/composition/focus-activity-live-sources.js.map +1 -1
  110. package/dist/composition/judgement-contexts.d.ts.map +1 -1
  111. package/dist/composition/judgement-contexts.js +8 -2
  112. package/dist/composition/judgement-contexts.js.map +1 -1
  113. package/dist/composition/review-exit-context.d.ts.map +1 -1
  114. package/dist/composition/review-exit-context.js +2 -0
  115. package/dist/composition/review-exit-context.js.map +1 -1
  116. package/dist/composition/review-loop-context.d.ts +28 -0
  117. package/dist/composition/review-loop-context.d.ts.map +1 -0
  118. package/dist/composition/review-loop-context.js +147 -0
  119. package/dist/composition/review-loop-context.js.map +1 -0
  120. package/dist/composition/runtime-heartbeat-context.d.ts +11 -0
  121. package/dist/composition/runtime-heartbeat-context.d.ts.map +1 -1
  122. package/dist/composition/runtime-heartbeat-context.js +33 -2
  123. package/dist/composition/runtime-heartbeat-context.js.map +1 -1
  124. package/dist/composition/spawn-pass-deps.d.ts.map +1 -1
  125. package/dist/composition/spawn-pass-deps.js +3 -0
  126. package/dist/composition/spawn-pass-deps.js.map +1 -1
  127. package/dist/composition/state-cascade-context.d.ts.map +1 -1
  128. package/dist/composition/state-cascade-context.js +3 -1
  129. package/dist/composition/state-cascade-context.js.map +1 -1
  130. package/dist/composition/team-liveness-phase-sources.d.ts.map +1 -1
  131. package/dist/composition/team-liveness-phase-sources.js +1 -0
  132. package/dist/composition/team-liveness-phase-sources.js.map +1 -1
  133. package/dist/composition/tower-escalation-context.d.ts +12 -0
  134. package/dist/composition/tower-escalation-context.d.ts.map +1 -0
  135. package/dist/composition/tower-escalation-context.js +109 -0
  136. package/dist/composition/tower-escalation-context.js.map +1 -0
  137. package/dist/composition/verification-context.d.ts.map +1 -1
  138. package/dist/composition/verification-context.js +34 -4
  139. package/dist/composition/verification-context.js.map +1 -1
  140. package/dist/composition/workstation-intervals-context.d.ts +3 -0
  141. package/dist/composition/workstation-intervals-context.d.ts.map +1 -0
  142. package/dist/composition/workstation-intervals-context.js +33 -0
  143. package/dist/composition/workstation-intervals-context.js.map +1 -0
  144. package/dist/daemon-state/awaiting-slot.d.ts +18 -1
  145. package/dist/daemon-state/awaiting-slot.d.ts.map +1 -1
  146. package/dist/daemon-state/awaiting-slot.js +7 -0
  147. package/dist/daemon-state/awaiting-slot.js.map +1 -1
  148. package/dist/delivery/delivery-reconciler.d.ts +7 -7
  149. package/dist/delivery/recorded-concerns.d.ts +63 -28
  150. package/dist/delivery/recorded-concerns.d.ts.map +1 -1
  151. package/dist/delivery/recorded-concerns.js +72 -28
  152. package/dist/delivery/recorded-concerns.js.map +1 -1
  153. package/dist/directive/directive-queue.d.ts +8 -0
  154. package/dist/directive/directive-queue.d.ts.map +1 -1
  155. package/dist/directive/directive-queue.js +1 -1
  156. package/dist/directive/directive-queue.js.map +1 -1
  157. package/dist/focus/control-state.d.ts +6 -4
  158. package/dist/focus/control-state.d.ts.map +1 -1
  159. package/dist/focus/control-state.js +6 -4
  160. package/dist/focus/control-state.js.map +1 -1
  161. package/dist/focus/daemon-contexts-judgement.d.ts +6 -0
  162. package/dist/focus/daemon-contexts-judgement.d.ts.map +1 -1
  163. package/dist/focus/daemon-contexts.d.ts +6 -0
  164. package/dist/focus/daemon-contexts.d.ts.map +1 -1
  165. package/dist/focus/daemon-contexts.js.map +1 -1
  166. package/dist/focus/focus-engine.d.ts.map +1 -1
  167. package/dist/focus/focus-engine.js +3 -1
  168. package/dist/focus/focus-engine.js.map +1 -1
  169. package/dist/focus/focus-executor.d.ts.map +1 -1
  170. package/dist/focus/focus-executor.js +3 -2
  171. package/dist/focus/focus-executor.js.map +1 -1
  172. package/dist/focus/focus-loop-registry.d.ts.map +1 -1
  173. package/dist/focus/focus-loop-registry.js +42 -0
  174. package/dist/focus/focus-loop-registry.js.map +1 -1
  175. package/dist/focus/focus-poller-auto-advance.d.ts +4 -2
  176. package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
  177. package/dist/focus/focus-poller-auto-advance.js +24 -18
  178. package/dist/focus/focus-poller-auto-advance.js.map +1 -1
  179. package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
  180. package/dist/focus/focus-poller-spawn.js +8 -6
  181. package/dist/focus/focus-poller-spawn.js.map +1 -1
  182. package/dist/focus/heartbeat-metadata.d.ts +5 -0
  183. package/dist/focus/heartbeat-metadata.d.ts.map +1 -1
  184. package/dist/focus/heartbeat-metadata.js +12 -0
  185. package/dist/focus/heartbeat-metadata.js.map +1 -1
  186. package/dist/focus/heartbeat.d.ts +9 -2
  187. package/dist/focus/heartbeat.d.ts.map +1 -1
  188. package/dist/focus/heartbeat.js +10 -1
  189. package/dist/focus/heartbeat.js.map +1 -1
  190. package/dist/focus/host-pressure.d.ts +77 -0
  191. package/dist/focus/host-pressure.d.ts.map +1 -0
  192. package/dist/focus/host-pressure.js +83 -0
  193. package/dist/focus/host-pressure.js.map +1 -0
  194. package/dist/focus/pending-directive-gates.d.ts +14 -0
  195. package/dist/focus/pending-directive-gates.d.ts.map +1 -1
  196. package/dist/focus/pending-directive-gates.js +25 -1
  197. package/dist/focus/pending-directive-gates.js.map +1 -1
  198. package/dist/focus/pending-spawn-pass-deps.d.ts +7 -0
  199. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  200. package/dist/focus/pending-spawn-review-next-step.d.ts +1 -1
  201. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  202. package/dist/focus/pending-spawn-review-next-step.js +2 -0
  203. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  204. package/dist/focus/ready-focus-team-work.d.ts +9 -4
  205. package/dist/focus/ready-focus-team-work.d.ts.map +1 -1
  206. package/dist/focus/ready-focus-team-work.js +14 -3
  207. package/dist/focus/ready-focus-team-work.js.map +1 -1
  208. package/dist/focus/verify-open-issues.d.ts +3 -2
  209. package/dist/focus/verify-open-issues.d.ts.map +1 -1
  210. package/dist/focus/verify-open-issues.js +6 -4
  211. package/dist/focus/verify-open-issues.js.map +1 -1
  212. package/dist/focus/workstation-intervals.d.ts +83 -0
  213. package/dist/focus/workstation-intervals.d.ts.map +1 -0
  214. package/dist/focus/workstation-intervals.js +81 -0
  215. package/dist/focus/workstation-intervals.js.map +1 -0
  216. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +5 -2
  217. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  218. package/dist/focus-stage-lifecycle/wedge-watchdog.js +2 -2
  219. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  220. package/dist/git/types.js +1 -1
  221. package/dist/merge/candidate-ci-failures.d.ts +72 -0
  222. package/dist/merge/candidate-ci-failures.d.ts.map +1 -0
  223. package/dist/merge/candidate-ci-failures.js +240 -0
  224. package/dist/merge/candidate-ci-failures.js.map +1 -0
  225. package/dist/merge/candidate-red-record.d.ts +44 -0
  226. package/dist/merge/candidate-red-record.d.ts.map +1 -0
  227. package/dist/merge/candidate-red-record.js +98 -0
  228. package/dist/merge/candidate-red-record.js.map +1 -0
  229. package/dist/merge/candidate-rework.d.ts +4 -3
  230. package/dist/merge/candidate-rework.d.ts.map +1 -1
  231. package/dist/merge/candidate-rework.js +46 -14
  232. package/dist/merge/candidate-rework.js.map +1 -1
  233. package/dist/merge/candidate-tip-attribution.d.ts +135 -0
  234. package/dist/merge/candidate-tip-attribution.d.ts.map +1 -0
  235. package/dist/merge/candidate-tip-attribution.js +319 -0
  236. package/dist/merge/candidate-tip-attribution.js.map +1 -0
  237. package/dist/merge/completion-merge-driver.d.ts +49 -5
  238. package/dist/merge/completion-merge-driver.d.ts.map +1 -1
  239. package/dist/merge/completion-merge-driver.js +56 -2
  240. package/dist/merge/completion-merge-driver.js.map +1 -1
  241. package/dist/merge/completion-merge-gate.d.ts +4 -1
  242. package/dist/merge/completion-merge-gate.d.ts.map +1 -1
  243. package/dist/merge/completion-merge-gate.js +9 -8
  244. package/dist/merge/completion-merge-gate.js.map +1 -1
  245. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  246. package/dist/prompt-sections/persona-sections.js +4 -1
  247. package/dist/prompt-sections/persona-sections.js.map +1 -1
  248. package/dist/prompt-sections/qa-author-section.d.ts.map +1 -1
  249. package/dist/prompt-sections/qa-author-section.js +18 -1
  250. package/dist/prompt-sections/qa-author-section.js.map +1 -1
  251. package/dist/prompt-sections/scoping-sections.d.ts +0 -12
  252. package/dist/prompt-sections/scoping-sections.d.ts.map +1 -1
  253. package/dist/prompt-sections/scoping-sections.js +16 -2
  254. package/dist/prompt-sections/scoping-sections.js.map +1 -1
  255. package/dist/prompts/bounded-universals.d.ts +13 -0
  256. package/dist/prompts/bounded-universals.d.ts.map +1 -0
  257. package/dist/prompts/bounded-universals.js +32 -0
  258. package/dist/prompts/bounded-universals.js.map +1 -0
  259. package/dist/queries/api-client/shared.d.ts +2 -1
  260. package/dist/queries/api-client/shared.d.ts.map +1 -1
  261. package/dist/queries/api-client/shared.js +36 -1
  262. package/dist/queries/api-client/shared.js.map +1 -1
  263. package/dist/queries/candidate-ci-reds/candidate-ci-reds.d.ts +35 -0
  264. package/dist/queries/candidate-ci-reds/candidate-ci-reds.d.ts.map +1 -0
  265. package/dist/queries/candidate-ci-reds/candidate-ci-reds.js +42 -0
  266. package/dist/queries/candidate-ci-reds/candidate-ci-reds.js.map +1 -0
  267. package/dist/queries/candidate-ci-reds/gate-escape-files.d.ts +16 -0
  268. package/dist/queries/candidate-ci-reds/gate-escape-files.d.ts.map +1 -0
  269. package/dist/queries/candidate-ci-reds/gate-escape-files.js +51 -0
  270. package/dist/queries/candidate-ci-reds/gate-escape-files.js.map +1 -0
  271. package/dist/queries/deliveries/issues.d.ts.map +1 -1
  272. package/dist/queries/deliveries/issues.js +1 -0
  273. package/dist/queries/deliveries/issues.js.map +1 -1
  274. package/dist/queries/escalations/escalation-consumption.d.ts +13 -0
  275. package/dist/queries/escalations/escalation-consumption.d.ts.map +1 -1
  276. package/dist/queries/escalations/escalation-consumption.js +12 -2
  277. package/dist/queries/escalations/escalation-consumption.js.map +1 -1
  278. package/dist/queries/escalations/tower-escalations.d.ts +82 -0
  279. package/dist/queries/escalations/tower-escalations.d.ts.map +1 -0
  280. package/dist/queries/escalations/tower-escalations.js +97 -0
  281. package/dist/queries/escalations/tower-escalations.js.map +1 -0
  282. package/dist/queries/focus-review/recorded-concern-ids.d.ts +48 -11
  283. package/dist/queries/focus-review/recorded-concern-ids.d.ts.map +1 -1
  284. package/dist/queries/focus-review/recorded-concern-ids.js +42 -12
  285. package/dist/queries/focus-review/recorded-concern-ids.js.map +1 -1
  286. package/dist/queries/focus-review/review-criterion-verdicts.d.ts +37 -0
  287. package/dist/queries/focus-review/review-criterion-verdicts.d.ts.map +1 -0
  288. package/dist/queries/focus-review/review-criterion-verdicts.js +64 -0
  289. package/dist/queries/focus-review/review-criterion-verdicts.js.map +1 -0
  290. package/dist/queries/focus-review/review-finding-facts.d.ts +18 -6
  291. package/dist/queries/focus-review/review-finding-facts.d.ts.map +1 -1
  292. package/dist/queries/focus-review/review-finding-facts.js +21 -8
  293. package/dist/queries/focus-review/review-finding-facts.js.map +1 -1
  294. package/dist/queries/focuses/ended-arm.d.ts +56 -13
  295. package/dist/queries/focuses/ended-arm.d.ts.map +1 -1
  296. package/dist/queries/focuses/ended-arm.js +40 -14
  297. package/dist/queries/focuses/ended-arm.js.map +1 -1
  298. package/dist/queries/focuses/focus-criteria-standing.d.ts +12 -0
  299. package/dist/queries/focuses/focus-criteria-standing.d.ts.map +1 -1
  300. package/dist/queries/focuses/focus-criteria-standing.js +13 -0
  301. package/dist/queries/focuses/focus-criteria-standing.js.map +1 -1
  302. package/dist/queries/focuses/focus-discovery.d.ts +14 -3
  303. package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
  304. package/dist/queries/focuses/focus-discovery.js +2 -19
  305. package/dist/queries/focuses/focus-discovery.js.map +1 -1
  306. package/dist/queries/focuses/focuses.d.ts +15 -12
  307. package/dist/queries/focuses/focuses.d.ts.map +1 -1
  308. package/dist/queries/focuses/focuses.js +15 -13
  309. package/dist/queries/focuses/focuses.js.map +1 -1
  310. package/dist/queries/sessions/daemon-connection.d.ts.map +1 -1
  311. package/dist/queries/sessions/daemon-connection.js +1 -0
  312. package/dist/queries/sessions/daemon-connection.js.map +1 -1
  313. package/dist/queries/sessions/sessions.d.ts.map +1 -1
  314. package/dist/queries/sessions/sessions.js +2 -1
  315. package/dist/queries/sessions/sessions.js.map +1 -1
  316. package/dist/queries/tower-decisions/tower-decisions.d.ts +103 -0
  317. package/dist/queries/tower-decisions/tower-decisions.d.ts.map +1 -0
  318. package/dist/queries/tower-decisions/tower-decisions.js +138 -0
  319. package/dist/queries/tower-decisions/tower-decisions.js.map +1 -0
  320. package/dist/queries/verification/verification.js +1 -1
  321. package/dist/queries/wire-schemas/schemas.d.ts +2 -0
  322. package/dist/queries/wire-schemas/schemas.d.ts.map +1 -1
  323. package/dist/queries/wire-schemas/schemas.js +8 -2
  324. package/dist/queries/wire-schemas/schemas.js.map +1 -1
  325. package/dist/queries/workstation-intervals/workstation-intervals.d.ts +52 -0
  326. package/dist/queries/workstation-intervals/workstation-intervals.d.ts.map +1 -0
  327. package/dist/queries/workstation-intervals/workstation-intervals.js +49 -0
  328. package/dist/queries/workstation-intervals/workstation-intervals.js.map +1 -0
  329. package/dist/resolvers/escalation-answers.d.ts +31 -0
  330. package/dist/resolvers/escalation-answers.d.ts.map +1 -1
  331. package/dist/resolvers/escalation-answers.js +31 -17
  332. package/dist/resolvers/escalation-answers.js.map +1 -1
  333. package/dist/resolvers/focus-criteria-standing.d.ts.map +1 -1
  334. package/dist/resolvers/focus-criteria-standing.js +20 -0
  335. package/dist/resolvers/focus-criteria-standing.js.map +1 -1
  336. package/dist/shell/unified-engine-lifecycle.d.ts +11 -1
  337. package/dist/shell/unified-engine-lifecycle.d.ts.map +1 -1
  338. package/dist/shell/unified-engine-lifecycle.js +10 -1
  339. package/dist/shell/unified-engine-lifecycle.js.map +1 -1
  340. package/dist/shell/unified-shell.d.ts +25 -0
  341. package/dist/shell/unified-shell.d.ts.map +1 -1
  342. package/dist/shell/unified-shell.js +26 -80
  343. package/dist/shell/unified-shell.js.map +1 -1
  344. package/dist/shell/update-restart.d.ts +47 -0
  345. package/dist/shell/update-restart.d.ts.map +1 -0
  346. package/dist/shell/update-restart.js +124 -0
  347. package/dist/shell/update-restart.js.map +1 -0
  348. package/dist/spawn/directive-dispatch.d.ts.map +1 -1
  349. package/dist/spawn/directive-dispatch.js +1 -0
  350. package/dist/spawn/directive-dispatch.js.map +1 -1
  351. package/dist/spawn/lead-continuation.d.ts +4 -3
  352. package/dist/spawn/lead-continuation.d.ts.map +1 -1
  353. package/dist/spawn/lead-continuation.js.map +1 -1
  354. package/dist/spawn/live-answer-delivery.d.ts +53 -0
  355. package/dist/spawn/live-answer-delivery.d.ts.map +1 -0
  356. package/dist/spawn/live-answer-delivery.js +26 -0
  357. package/dist/spawn/live-answer-delivery.js.map +1 -0
  358. package/dist/spawn/routing-decider-spawn.d.ts +64 -2
  359. package/dist/spawn/routing-decider-spawn.d.ts.map +1 -1
  360. package/dist/spawn/routing-decider-spawn.js +65 -20
  361. package/dist/spawn/routing-decider-spawn.js.map +1 -1
  362. package/dist/spawn/worktree-session.d.ts +7 -5
  363. package/dist/spawn/worktree-session.d.ts.map +1 -1
  364. package/dist/spawn/worktree-session.js +11 -7
  365. package/dist/spawn/worktree-session.js.map +1 -1
  366. package/dist/supervision/escalation-suppression.js +1 -1
  367. package/dist/supervision/review-cycle-cap-hold.d.ts +11 -5
  368. package/dist/supervision/review-cycle-cap-hold.d.ts.map +1 -1
  369. package/dist/supervision/review-cycle-cap-hold.js +29 -11
  370. package/dist/supervision/review-cycle-cap-hold.js.map +1 -1
  371. package/dist/supervision/review-loop-detector.d.ts +48 -0
  372. package/dist/supervision/review-loop-detector.d.ts.map +1 -0
  373. package/dist/supervision/review-loop-detector.js +13 -0
  374. package/dist/supervision/review-loop-detector.js.map +1 -0
  375. package/dist/supervision/review-loop-hold.d.ts +29 -0
  376. package/dist/supervision/review-loop-hold.d.ts.map +1 -0
  377. package/dist/supervision/review-loop-hold.js +99 -0
  378. package/dist/supervision/review-loop-hold.js.map +1 -0
  379. package/dist/supervision/stall-detector-config.d.ts +8 -0
  380. package/dist/supervision/stall-detector-config.d.ts.map +1 -1
  381. package/dist/supervision/stall-detector-config.js +14 -3
  382. package/dist/supervision/stall-detector-config.js.map +1 -1
  383. package/dist/supervision/stop-registry.d.ts +3 -0
  384. package/dist/supervision/stop-registry.d.ts.map +1 -1
  385. package/dist/supervision/stop-registry.js +3 -1
  386. package/dist/supervision/stop-registry.js.map +1 -1
  387. package/dist/supervision/stop-rows-review-loop.d.ts +35 -0
  388. package/dist/supervision/stop-rows-review-loop.d.ts.map +1 -0
  389. package/dist/supervision/stop-rows-review-loop.js +150 -0
  390. package/dist/supervision/stop-rows-review-loop.js.map +1 -0
  391. package/dist/supervision/stop-rows-team-session.d.ts +1 -1
  392. package/dist/supervision/stop-rows-team-session.d.ts.map +1 -1
  393. package/dist/supervision/stop-rows-team-session.js.map +1 -1
  394. package/dist/supervision/unreviewed-settle-detector.d.ts +7 -2
  395. package/dist/supervision/unreviewed-settle-detector.d.ts.map +1 -1
  396. package/dist/supervision/unreviewed-settle-detector.js +15 -2
  397. package/dist/supervision/unreviewed-settle-detector.js.map +1 -1
  398. package/dist/templates/agents-md.d.ts.map +1 -1
  399. package/dist/templates/agents-md.js +1 -0
  400. package/dist/templates/agents-md.js.map +1 -1
  401. package/dist/templates/claude-md.d.ts +1 -1
  402. package/dist/templates/claude-md.d.ts.map +1 -1
  403. package/dist/templates/claude-md.js +12 -0
  404. package/dist/templates/claude-md.js.map +1 -1
  405. package/dist/testing/fixtures/api-client.js +1 -1
  406. package/dist/testing/fixtures/completion-judge-stubs.d.ts +7 -2
  407. package/dist/testing/fixtures/completion-judge-stubs.d.ts.map +1 -1
  408. package/dist/testing/fixtures/completion-judge-stubs.js +11 -1
  409. package/dist/testing/fixtures/completion-judge-stubs.js.map +1 -1
  410. package/dist/testing/fixtures/index.js +1 -1
  411. package/dist/testing/fixtures/merge-log-capture.d.ts.map +1 -1
  412. package/dist/testing/fixtures/merge-log-capture.js +1 -0
  413. package/dist/testing/fixtures/merge-log-capture.js.map +1 -1
  414. package/dist/testing/fixtures/pending-spawn-world.d.ts +4 -0
  415. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  416. package/dist/testing/fixtures/pending-spawn-world.js +15 -2
  417. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  418. package/dist/testing/fixtures/recording-api-client.js +1 -1
  419. package/dist/testing/fixtures/review-exit-deps.d.ts.map +1 -1
  420. package/dist/testing/fixtures/review-exit-deps.js +3 -1
  421. package/dist/testing/fixtures/review-exit-deps.js.map +1 -1
  422. package/dist/testing/fixtures/review-loop.d.ts +19 -0
  423. package/dist/testing/fixtures/review-loop.d.ts.map +1 -0
  424. package/dist/testing/fixtures/review-loop.js +30 -0
  425. package/dist/testing/fixtures/review-loop.js.map +1 -0
  426. package/dist/testing/fixtures/shortfall-rework-hold-deps.d.ts.map +1 -1
  427. package/dist/testing/fixtures/shortfall-rework-hold-deps.js +1 -0
  428. package/dist/testing/fixtures/shortfall-rework-hold-deps.js.map +1 -1
  429. package/dist/testing/fixtures/tower-loop.d.ts +28 -0
  430. package/dist/testing/fixtures/tower-loop.d.ts.map +1 -0
  431. package/dist/testing/fixtures/tower-loop.js +83 -0
  432. package/dist/testing/fixtures/tower-loop.js.map +1 -0
  433. package/dist/testing/fixtures/verification-deps.d.ts +7 -0
  434. package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
  435. package/dist/testing/fixtures/verification-deps.js +17 -1
  436. package/dist/testing/fixtures/verification-deps.js.map +1 -1
  437. package/dist/testing/fixtures/vitest-failure-log.d.ts.map +1 -1
  438. package/dist/testing/fixtures/vitest-failure-log.js +2 -1
  439. package/dist/testing/fixtures/vitest-failure-log.js.map +1 -1
  440. package/dist/tower/tower-escalation-gather.d.ts +33 -0
  441. package/dist/tower/tower-escalation-gather.d.ts.map +1 -0
  442. package/dist/tower/tower-escalation-gather.js +38 -0
  443. package/dist/tower/tower-escalation-gather.js.map +1 -0
  444. package/dist/tower/tower-escalation-prompt.d.ts +62 -0
  445. package/dist/tower/tower-escalation-prompt.d.ts.map +1 -0
  446. package/dist/tower/tower-escalation-prompt.js +130 -0
  447. package/dist/tower/tower-escalation-prompt.js.map +1 -0
  448. package/dist/tower/tower-escalation-routing.d.ts +49 -0
  449. package/dist/tower/tower-escalation-routing.d.ts.map +1 -0
  450. package/dist/tower/tower-escalation-routing.js +53 -0
  451. package/dist/tower/tower-escalation-routing.js.map +1 -0
  452. package/dist/tower/tower-escalation-session.d.ts +149 -0
  453. package/dist/tower/tower-escalation-session.d.ts.map +1 -0
  454. package/dist/tower/tower-escalation-session.js +238 -0
  455. package/dist/tower/tower-escalation-session.js.map +1 -0
  456. package/dist/tower/tower-supervisor-history.d.ts +129 -0
  457. package/dist/tower/tower-supervisor-history.d.ts.map +1 -0
  458. package/dist/tower/tower-supervisor-history.js +217 -0
  459. package/dist/tower/tower-supervisor-history.js.map +1 -0
  460. package/dist/tower/tower-supervisor-prompt.d.ts +21 -0
  461. package/dist/tower/tower-supervisor-prompt.d.ts.map +1 -0
  462. package/dist/tower/tower-supervisor-prompt.js +205 -0
  463. package/dist/tower/tower-supervisor-prompt.js.map +1 -0
  464. package/dist/tower/tower-supervisor-session.d.ts +220 -0
  465. package/dist/tower/tower-supervisor-session.d.ts.map +1 -0
  466. package/dist/tower/tower-supervisor-session.js +307 -0
  467. package/dist/tower/tower-supervisor-session.js.map +1 -0
  468. package/dist/tower/tower-supervisor.d.ts +86 -0
  469. package/dist/tower/tower-supervisor.d.ts.map +1 -0
  470. package/dist/tower/tower-supervisor.js +8 -0
  471. package/dist/tower/tower-supervisor.js.map +1 -0
  472. package/dist/types/index.js +1 -1
  473. package/dist/update/auto-update.d.ts +11 -5
  474. package/dist/update/auto-update.d.ts.map +1 -1
  475. package/dist/update/auto-update.js +11 -5
  476. package/dist/update/auto-update.js.map +1 -1
  477. package/dist/update/restart-contract.d.ts +62 -0
  478. package/dist/update/restart-contract.d.ts.map +1 -0
  479. package/dist/update/restart-contract.js +137 -0
  480. package/dist/update/restart-contract.js.map +1 -0
  481. package/dist/verify/attribution/verification-baseline-run.d.ts.map +1 -1
  482. package/dist/verify/attribution/verification-baseline-run.js +1 -0
  483. package/dist/verify/attribution/verification-baseline-run.js.map +1 -1
  484. package/dist/verify/ci-gate/ci-gate-dispatch.d.ts +3 -0
  485. package/dist/verify/ci-gate/ci-gate-dispatch.d.ts.map +1 -1
  486. package/dist/verify/ci-gate/ci-gate-dispatch.js +31 -9
  487. package/dist/verify/ci-gate/ci-gate-dispatch.js.map +1 -1
  488. package/dist/verify/ci-gate/ci-gate-wait-record.d.ts +6 -0
  489. package/dist/verify/ci-gate/ci-gate-wait-record.d.ts.map +1 -1
  490. package/dist/verify/ci-gate/ci-gate-wait-record.js +1 -0
  491. package/dist/verify/ci-gate/ci-gate-wait-record.js.map +1 -1
  492. package/dist/verify/deterministic-gate/verification-checkout.d.ts +12 -2
  493. package/dist/verify/deterministic-gate/verification-checkout.d.ts.map +1 -1
  494. package/dist/verify/deterministic-gate/verification-checkout.js +18 -3
  495. package/dist/verify/deterministic-gate/verification-checkout.js.map +1 -1
  496. package/dist/verify/deterministic-gate/verification-deterministic.js +1 -1
  497. package/dist/verify/deterministic-gate/verification-failure-parser.d.ts +30 -9
  498. package/dist/verify/deterministic-gate/verification-failure-parser.d.ts.map +1 -1
  499. package/dist/verify/deterministic-gate/verification-failure-parser.js +52 -8
  500. package/dist/verify/deterministic-gate/verification-failure-parser.js.map +1 -1
  501. package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
  502. package/dist/verify/engine/verification-commit-sharing.js +6 -2
  503. package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
  504. package/dist/verify/engine/verification-deps.d.ts +9 -0
  505. package/dist/verify/engine/verification-deps.d.ts.map +1 -1
  506. package/dist/verify/engine/verification-deps.js +1 -1
  507. package/dist/verify/engine/verification-engine.d.ts.map +1 -1
  508. package/dist/verify/engine/verification-engine.js +4 -1
  509. package/dist/verify/engine/verification-engine.js.map +1 -1
  510. package/dist/verify/escaped-tests/escaped-pass-store.d.ts +19 -0
  511. package/dist/verify/escaped-tests/escaped-pass-store.d.ts.map +1 -0
  512. package/dist/verify/escaped-tests/escaped-pass-store.js +90 -0
  513. package/dist/verify/escaped-tests/escaped-pass-store.js.map +1 -0
  514. package/dist/verify/escaped-tests/escaped-test-run.d.ts +39 -0
  515. package/dist/verify/escaped-tests/escaped-test-run.d.ts.map +1 -0
  516. package/dist/verify/escaped-tests/escaped-test-run.js +156 -0
  517. package/dist/verify/escaped-tests/escaped-test-run.js.map +1 -0
  518. package/dist/verify/escaped-tests/escaped-test-set.d.ts +65 -0
  519. package/dist/verify/escaped-tests/escaped-test-set.d.ts.map +1 -0
  520. package/dist/verify/escaped-tests/escaped-test-set.js +95 -0
  521. package/dist/verify/escaped-tests/escaped-test-set.js.map +1 -0
  522. package/dist/verify/escaped-tests/escaped-tests-source.d.ts +44 -0
  523. package/dist/verify/escaped-tests/escaped-tests-source.d.ts.map +1 -0
  524. package/dist/verify/escaped-tests/escaped-tests-source.js +142 -0
  525. package/dist/verify/escaped-tests/escaped-tests-source.js.map +1 -0
  526. package/dist/verify/gate-config/verification-manifest.d.ts +12 -1
  527. package/dist/verify/gate-config/verification-manifest.d.ts.map +1 -1
  528. package/dist/verify/gate-config/verification-manifest.js +12 -1
  529. package/dist/verify/gate-config/verification-manifest.js.map +1 -1
  530. package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
  531. package/dist/verify/outcome-routing/verification-rework-issue.d.ts +4 -4
  532. package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
  533. package/dist/verify/outcome-routing/verification-rework-issue.js +16 -6
  534. package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
  535. package/package.json +3 -3
  536. package/scripts/telora-daemon-wrapper.sh +16 -7
@@ -0,0 +1,37 @@
1
+ /** The action this module calls. */
2
+ export declare const LIST_REVIEW_CRITERION_VERDICTS_ACTION = "daemon_list_review_criterion_verdicts";
3
+ /** A review's verdict on one criterion (one element of focus_reviews.criterion_verdicts). */
4
+ export interface CriterionVerdictRecord {
5
+ /** `node:<uuid>` for a tree criterion, `text:<normalized>` for a declared one. */
6
+ criterionKey: string;
7
+ nodeId: string | null;
8
+ source: 'tree' | 'delivery' | 'focus';
9
+ criterion: string;
10
+ verdict: 'met' | 'not_met' | 'excused';
11
+ /** The issues a not_met verdict names. */
12
+ issueIds: string[];
13
+ }
14
+ /** One completed, verdict-bearing review under the arm. */
15
+ export interface ReviewVerdictRecord {
16
+ reviewId: string;
17
+ completedAt: string;
18
+ outcome: string;
19
+ criterionVerdicts: CriterionVerdictRecord[];
20
+ /**
21
+ * The agreed criteria the review left WITHOUT a verdict, by criterion key (a
22
+ * gaps_found may leave some). [] when it judged every criterion -- and on an
23
+ * older edge or a review stored before the edge recorded them, which
24
+ * therefore read as fully judged.
25
+ */
26
+ unjudgedCriterionKeys?: string[];
27
+ /** The review's stored blocking set; null = its not_met verdicts named no issue (nothing blocks). */
28
+ blockingIssueIds: string[] | null;
29
+ createdIssueIds: string[];
30
+ /** The focus-branch commit the review judged; absent/null when unrecorded or on an older edge. */
31
+ reviewedSha?: string | null;
32
+ /** The review's summary markdown (each verdict's reasoning); absent/null when none or on an older edge. */
33
+ summary?: string | null;
34
+ }
35
+ /** The focus's verdict-bearing reviews since its arm, newest first, at most `limit`. Throws on failure. */
36
+ export declare function listReviewCriterionVerdicts(focusId: string, limit: number): Promise<ReviewVerdictRecord[]>;
37
+ //# sourceMappingURL=review-criterion-verdicts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-criterion-verdicts.d.ts","sourceRoot":"","sources":["../../../src/queries/focus-review/review-criterion-verdicts.ts"],"names":[],"mappings":"AA2BA,oCAAoC;AACpC,eAAO,MAAM,qCAAqC,0CAA0C,CAAC;AAE7F,6FAA6F;AAC7F,MAAM,WAAW,sBAAsB;IACrC,kFAAkF;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;IACvC,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,2DAA2D;AAC3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,sBAAsB,EAAE,CAAC;IAC5C;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,qGAAqG;IACrG,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kGAAkG;IAClG,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,2GAA2G;IAC3G,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAyBD,2GAA2G;AAC3G,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAiBhH"}
@@ -0,0 +1,64 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/completion/review-cycle-budget/review-cycle-cap-regression.test.ts,
3
+ // packages/daemon/src/completion/review-cycle-budget/review-loop-detection.test.ts,
4
+ // packages/daemon/src/queries/focus-review/review-criterion-verdicts.test.ts,
5
+ // packages/daemon/src/supervision/review-loop-detector.test.ts,
6
+ // packages/daemon/src/tower/tower-supervisor.test.ts
7
+ // PINNED-BY-END
8
+ /**
9
+ * The read of a focus's per-criterion review verdicts: product-api
10
+ * `daemon_list_review_criterion_verdicts`, which answers the focus's
11
+ * verdict-bearing reviews completed since the arm instant, NEWEST FIRST, each
12
+ * with focus_reviews.criterion_verdicts and its stored blocking / created
13
+ * issue ids. A focus with no arm stamp answers none (the history starts at the
14
+ * arm, as the criterion-reopening history does).
15
+ *
16
+ * The review-loop detector decides on it
17
+ * (supervision/review-loop-detector.ts). Throws on a failed call or a
18
+ * malformed answer; the caller (completion/review-cycle-budget/review-loop-detection.ts)
19
+ * owns swallowing it.
20
+ *
21
+ * @module queries/focus-review/review-criterion-verdicts
22
+ */
23
+ import { z } from 'zod';
24
+ import { callApiValidated } from '../api-client/shared.js';
25
+ /** The action this module calls. */
26
+ export const LIST_REVIEW_CRITERION_VERDICTS_ACTION = 'daemon_list_review_criterion_verdicts';
27
+ const VerdictSchema = z.object({
28
+ criterionKey: z.string(),
29
+ nodeId: z.string().nullable(),
30
+ source: z.enum(['tree', 'delivery', 'focus']),
31
+ criterion: z.string(),
32
+ verdict: z.enum(['met', 'not_met', 'excused']),
33
+ issueIds: z.array(z.string()),
34
+ }).passthrough();
35
+ const ReviewSchema = z.object({
36
+ reviewId: z.string(),
37
+ completedAt: z.string(),
38
+ outcome: z.string(),
39
+ criterionVerdicts: z.array(VerdictSchema),
40
+ unjudgedCriterionKeys: z.array(z.string()).optional(),
41
+ blockingIssueIds: z.array(z.string()).nullable(),
42
+ createdIssueIds: z.array(z.string()),
43
+ reviewedSha: z.string().nullable().optional(),
44
+ summary: z.string().nullable().optional(),
45
+ }).passthrough();
46
+ const ResponseSchema = z.object({ reviews: z.array(ReviewSchema) }).passthrough();
47
+ /** The focus's verdict-bearing reviews since its arm, newest first, at most `limit`. Throws on failure. */
48
+ export async function listReviewCriterionVerdicts(focusId, limit) {
49
+ const res = await callApiValidated(LIST_REVIEW_CRITERION_VERDICTS_ACTION, ResponseSchema, { focusId, limit });
50
+ return res.reviews.map((r) => ({
51
+ reviewId: r.reviewId,
52
+ completedAt: r.completedAt,
53
+ outcome: r.outcome,
54
+ criterionVerdicts: r.criterionVerdicts.map((v) => ({
55
+ criterionKey: v.criterionKey, nodeId: v.nodeId, source: v.source, criterion: v.criterion, verdict: v.verdict, issueIds: v.issueIds,
56
+ })),
57
+ unjudgedCriterionKeys: r.unjudgedCriterionKeys ?? [],
58
+ blockingIssueIds: r.blockingIssueIds,
59
+ createdIssueIds: r.createdIssueIds,
60
+ reviewedSha: r.reviewedSha ?? null,
61
+ summary: r.summary ?? null,
62
+ }));
63
+ }
64
+ //# sourceMappingURL=review-criterion-verdicts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-criterion-verdicts.js","sourceRoot":"","sources":["../../../src/queries/focus-review/review-criterion-verdicts.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,17 @@
7
7
  * `focus_review_filed_issue_ids` returns `issueIds: string[]` and, from the edge
8
8
  * that records finding classes on, `findingClasses: Record<issueId,
9
9
  * 'blocking' | 'concern'>`. An OLDER edge omits `findingClasses`; that reads as
10
- * an empty map, so every finding falls back to the priority rule
11
- * (completion/review-exit/review-defect-detector.ts isBlockingReviewFinding). An issue
12
- * absent from the map likewise has no recorded fact.
10
+ * an empty map, and under the one rule (recorded-concern-ids.ts findingClassOf)
11
+ * every review-filed issue with no recorded 'blocking' is a concern -- the
12
+ * absence of a naming is never a naming.
13
13
  *
14
- * The response is validated (zod) -- a malformed class value throws, and the
15
- * caller's best-effort read degrades exactly as a failed id read does.
14
+ * The response is validated (zod) -- a malformed class value throws.
15
+ *
16
+ * A READ THAT FAILS THROWS. No earlier answer stands in for it: the facts
17
+ * change whenever a review is recorded, and facts kept from before that review
18
+ * can call a finding it re-judged blocking a concern. Every reader that cannot
19
+ * read the classes DEFERS its decision instead (delivery/recorded-concerns.ts;
20
+ * the review exit's findingFactsUnreadable).
16
21
  *
17
22
  * @module queries/focus-review/review-finding-facts
18
23
  */
@@ -39,6 +44,13 @@ export interface FocusReviewFindingFacts {
39
44
  }
40
45
  /** Pure: normalize a validated response (missing keys -> empty). Exported for tests. */
41
46
  export declare function toReviewFindingFacts(response: z.infer<typeof FocusReviewFindingFactsResponseSchema>): FocusReviewFindingFacts;
42
- /** Read the focus-wide review-filed issue ids AND their recorded finding classes. */
47
+ /** The wire shape of focus_review_filed_issue_ids. */
48
+ export type FocusReviewFindingFactsResponse = z.infer<typeof FocusReviewFindingFactsResponseSchema>;
49
+ /**
50
+ * Read the focus-wide review-filed issue ids AND their recorded finding classes
51
+ * through `read`. Throws when the read fails (module header).
52
+ */
53
+ export declare function readFocusReviewFindingFactsVia(focusId: string, read: (focusId: string) => Promise<FocusReviewFindingFactsResponse>): Promise<FocusReviewFindingFacts>;
54
+ /** Read the focus-wide review-filed issue ids AND their recorded finding classes over the API. */
43
55
  export declare function getFocusReviewFindingFacts(focusId: string): Promise<FocusReviewFindingFacts>;
44
56
  //# sourceMappingURL=review-finding-facts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-finding-facts.d.ts","sourceRoot":"","sources":["../../../src/queries/focus-review/review-finding-facts.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAAC;AAIxD,wGAAwG;AACxG,eAAO,MAAM,qCAAqC;;;;;;iBAGlC,CAAC;AAEjB,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACjD;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,GAC9D,uBAAuB,CAKzB;AAED,qFAAqF;AACrF,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAOlG"}
1
+ {"version":3,"file":"review-finding-facts.d.ts","sourceRoot":"","sources":["../../../src/queries/focus-review/review-finding-facts.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAAC;AAIxD,wGAAwG;AACxG,eAAO,MAAM,qCAAqC;;;;;;iBAGlC,CAAC;AAEjB,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CACjD;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,GAC9D,uBAAuB,CAKzB;AAED,sDAAsD;AACtD,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG;;;GAGG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,+BAA+B,CAAC,GAClE,OAAO,CAAC,uBAAuB,CAAC,CAElC;AAED,kGAAkG;AAClG,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAIlG"}
@@ -2,8 +2,10 @@
2
2
  // Pinned by: packages/daemon/src/completion/review-exit/review-finding-blocking-predicate.test.ts,
3
3
  // packages/daemon/src/completion/review-exit/review-finding-class-routing.test.ts,
4
4
  // packages/daemon/src/delivery/recorded-concerns.test.ts,
5
+ // packages/daemon/src/integration/f114-review-concern-never-holds-done-regression.test.ts,
5
6
  // packages/daemon/src/integration/reopening-routing-regression.test.ts,
6
7
  // packages/daemon/src/prompt/recorded-concerns-not-owed-work.test.ts,
8
+ // packages/daemon/src/queries/focus-review/review-finding-class-parity.test.ts,
7
9
  // packages/daemon/src/spawn/resolve-review-context.test.ts
8
10
  // PINNED-BY-END
9
11
  /**
@@ -15,12 +17,17 @@
15
17
  * `focus_review_filed_issue_ids` returns `issueIds: string[]` and, from the edge
16
18
  * that records finding classes on, `findingClasses: Record<issueId,
17
19
  * 'blocking' | 'concern'>`. An OLDER edge omits `findingClasses`; that reads as
18
- * an empty map, so every finding falls back to the priority rule
19
- * (completion/review-exit/review-defect-detector.ts isBlockingReviewFinding). An issue
20
- * absent from the map likewise has no recorded fact.
20
+ * an empty map, and under the one rule (recorded-concern-ids.ts findingClassOf)
21
+ * every review-filed issue with no recorded 'blocking' is a concern -- the
22
+ * absence of a naming is never a naming.
21
23
  *
22
- * The response is validated (zod) -- a malformed class value throws, and the
23
- * caller's best-effort read degrades exactly as a failed id read does.
24
+ * The response is validated (zod) -- a malformed class value throws.
25
+ *
26
+ * A READ THAT FAILS THROWS. No earlier answer stands in for it: the facts
27
+ * change whenever a review is recorded, and facts kept from before that review
28
+ * can call a finding it re-judged blocking a concern. Every reader that cannot
29
+ * read the classes DEFERS its decision instead (delivery/recorded-concerns.ts;
30
+ * the review exit's findingFactsUnreadable).
24
31
  *
25
32
  * @module queries/focus-review/review-finding-facts
26
33
  */
@@ -39,9 +46,15 @@ export function toReviewFindingFacts(response) {
39
46
  findingClasses: new Map(Object.entries(response.findingClasses ?? {})),
40
47
  };
41
48
  }
42
- /** Read the focus-wide review-filed issue ids AND their recorded finding classes. */
49
+ /**
50
+ * Read the focus-wide review-filed issue ids AND their recorded finding classes
51
+ * through `read`. Throws when the read fails (module header).
52
+ */
53
+ export async function readFocusReviewFindingFactsVia(focusId, read) {
54
+ return toReviewFindingFacts(await read(focusId));
55
+ }
56
+ /** Read the focus-wide review-filed issue ids AND their recorded finding classes over the API. */
43
57
  export async function getFocusReviewFindingFacts(focusId) {
44
- const response = await callApiValidated('focus_review_filed_issue_ids', FocusReviewFindingFactsResponseSchema, { focusId });
45
- return toReviewFindingFacts(response);
58
+ return readFocusReviewFindingFactsVia(focusId, (id) => callApiValidated('focus_review_filed_issue_ids', FocusReviewFindingFactsResponseSchema, { focusId: id }));
46
59
  }
47
60
  //# sourceMappingURL=review-finding-facts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-finding-facts.js","sourceRoot":"","sources":["../../../src/queries/focus-review/review-finding-facts.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,mGAAmG;AACnG,qFAAqF;AACrF,4DAA4D;AAC5D,0EAA0E;AAC1E,wEAAwE;AACxE,6DAA6D;AAC7D,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAS3D,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEjE,wGAAwG;AACxG,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,OAAO,EAAE;CACzE,CAAC,CAAC,WAAW,EAAE,CAAC;AAQjB,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAClC,QAA+D;IAE/D,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE;QACjC,cAAc,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAAe;IAC9D,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CACrC,8BAA8B,EAC9B,qCAAqC,EACrC,EAAE,OAAO,EAAE,CACZ,CAAC;IACF,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"review-finding-facts.js","sourceRoot":"","sources":["../../../src/queries/focus-review/review-finding-facts.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,mGAAmG;AACnG,qFAAqF;AACrF,4DAA4D;AAC5D,6FAA6F;AAC7F,0EAA0E;AAC1E,wEAAwE;AACxE,kFAAkF;AAClF,6DAA6D;AAC7D,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAU3D,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAEjE,wGAAwG;AACxG,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5D,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;IACvC,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,wBAAwB,CAAC,CAAC,OAAO,EAAE;CACzE,CAAC,CAAC,WAAW,EAAE,CAAC;AAQjB,wFAAwF;AACxF,MAAM,UAAU,oBAAoB,CAClC,QAA+D;IAE/D,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,EAAE;QACjC,cAAc,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;KACvE,CAAC;AACJ,CAAC;AAKD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAe,EACf,IAAmE;IAEnE,OAAO,oBAAoB,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,OAAe;IAC9D,OAAO,8BAA8B,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,CACpD,gBAAgB,CAAC,8BAA8B,EAAE,qCAAqC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACzG,CAAC;AACJ,CAAC"}
@@ -16,20 +16,37 @@
16
16
  * The ended-arm record that rides a release, stating WHY the daemon ended the
17
17
  * arm and what was still outstanding.
18
18
  *
19
- * The DAEMON writes ONE reason: 'review_budget_spent'. It is sent in the SAME
20
- * call as the release (the edge refuses it otherwise, handlers/focus/arm-ended.ts)
21
- * so the role-less focus is never readable without its reason, and so the record
22
- * can never be mistaken for the operator stop (operator_stopped_at, which this
23
- * path does not write).
19
+ * EVERY daemon release carries one (releaseFocusArm takes it as a required
20
+ * argument): no focus is un-armed by the daemon with a null reason. The daemon
21
+ * writes TWO reasons, 'review_budget_spent' and 'run_finished_unreviewed', each
22
+ * in the SAME call as the release (the edge refuses it otherwise,
23
+ * handlers/focus/arm-ended.ts) so the role-less focus is never readable without
24
+ * its reason, and so the record can never be mistaken for the operator stop
25
+ * (operator_stopped_at, which these paths do not write).
24
26
  *
25
27
  * `detail` carries only what the DAEMON counted. The edge adds the acceptance
26
28
  * criteria the last verdict-bearing review called not_met -- it owns the shape
27
29
  * that record lives in -- so this daemon never parses a review summary.
28
- *
29
- * ARM_ENDED_REVIEW_BUDGET_SPENT is a value the DB CHECK constraint on
30
- * product_focuses.arm_ended_reason allows and the wedge diagnosis reads back.
31
30
  */
32
31
  export declare const ARM_ENDED_REVIEW_BUDGET_SPENT = "review_budget_spent";
32
+ /**
33
+ * The UNREVIEWED SETTLE end: every delivery settled while the review window the
34
+ * focus opened never received a verdict, so the daemon released the stranded
35
+ * arm and kept the window open (supervision/unreviewed-settle-detector.ts). A
36
+ * finish -- the covered work is terminal -- but one whose review is still owed,
37
+ * which a re-arm runs.
38
+ */
39
+ export declare const ARM_ENDED_RUN_FINISHED_UNREVIEWED = "run_finished_unreviewed";
40
+ /**
41
+ * The LIFECYCLE end with nothing left over: every delivery the arm covered is
42
+ * terminal and the clear discounted no recorded work. Written ONLY by SQL -- the
43
+ * lifecycle arm clear (auto_terminate_focus_team /
44
+ * clear_focus_team_on_review_window_close, migration 20261020133821) in the same
45
+ * write that nulls the role, whatever closed the review window (a verdict, a
46
+ * deadline, the hand-off breaker, the spent-budget path) -- and never by this
47
+ * daemon.
48
+ */
49
+ export declare const ARM_ENDED_RUN_FINISHED = "run_finished";
33
50
  /**
34
51
  * The LIFECYCLE end: the run finished every delivery its arm covered while one
35
52
  * or more deliveries recorded as new intent under it still rest at planning.
@@ -45,12 +62,13 @@ export declare const ARM_ENDED_REVIEW_BUDGET_SPENT = "review_budget_spent";
45
62
  */
46
63
  export declare const ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS = "run_finished_recorded_work_waits";
47
64
  /** Every reason product_focuses.arm_ended_reason may hold (the DB CHECK set). */
48
- export type ArmEndedReason = typeof ARM_ENDED_REVIEW_BUDGET_SPENT | typeof ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS;
65
+ export type ArmEndedReason = typeof ARM_ENDED_REVIEW_BUDGET_SPENT | typeof ARM_ENDED_RUN_FINISHED | typeof ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS | typeof ARM_ENDED_RUN_FINISHED_UNREVIEWED;
49
66
  /**
50
- * True when the recorded reason is the LIFECYCLE end -- the run finished its
51
- * covered work and the recorded work waits for the next arm. False for a spent
52
- * budget, for no reason at all, and for any value this daemon does not know
53
- * (an unknown reason is never read as a finish).
67
+ * True when the recorded reason says the run FINISHED its covered work: the
68
+ * lifecycle clear (with or without recorded work waiting for the next arm) or
69
+ * the unreviewed settle. False for a spent budget, for no reason at all, and
70
+ * for any value this daemon does not know (an unknown reason is never read as
71
+ * a finish).
54
72
  */
55
73
  export declare function isRunFinishedArmEnd(reason: string | null | undefined): boolean;
56
74
  /** One delivery recorded as new intent under the arm that ended, as the record names it. */
@@ -76,6 +94,15 @@ export interface RecordedWorkWaitsDetail {
76
94
  * unnamed. A missing or non-numeric count falls back to the parsed list length.
77
95
  */
78
96
  export declare function parseRecordedWorkWaitsDetail(detail: unknown): RecordedWorkWaitsDetail | null;
97
+ /**
98
+ * How the spent-budget record's findings were arrived at. Absent = measured at
99
+ * the review exit that spent the budget. 'not_measured' = the release was
100
+ * re-attempted by the backstop (completion/review-cycle-budget/spent-budget-release.ts)
101
+ * with no exit measurement in hand, so the empty lists are an ABSENCE, not a
102
+ * measurement.
103
+ */
104
+ export type SpentBudgetFindingsBasis = 'not_measured';
105
+ /** The spent-review-budget record (reason 'review_budget_spent'). */
79
106
  export interface EndedArmRecord {
80
107
  reason: typeof ARM_ENDED_REVIEW_BUDGET_SPENT;
81
108
  detail: {
@@ -102,6 +129,22 @@ export interface EndedArmRecord {
102
129
  title: string;
103
130
  deliveryId: string | null;
104
131
  }>;
132
+ /** See SpentBudgetFindingsBasis; absent when the lists were measured at the exit. */
133
+ findingsBasis?: SpentBudgetFindingsBasis;
134
+ };
135
+ }
136
+ /** The unreviewed-settle record (reason 'run_finished_unreviewed'). */
137
+ export interface UnreviewedSettleArmRecord {
138
+ reason: typeof ARM_ENDED_RUN_FINISHED_UNREVIEWED;
139
+ detail: {
140
+ /** The settled deliveries whose review verdict was never rendered. */
141
+ settledDeliveries: Array<{
142
+ id: string;
143
+ name: string;
144
+ executionStatus: string | null;
145
+ }>;
105
146
  };
106
147
  }
148
+ /** Every record a daemon release may carry -- one is REQUIRED (releaseFocusArm). */
149
+ export type DaemonEndedArmRecord = EndedArmRecord | UnreviewedSettleArmRecord;
107
150
  //# sourceMappingURL=ended-arm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ended-arm.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/ended-arm.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0CAA0C,qCAAqC,CAAC;AAE7F,iFAAiF;AACjF,MAAM,MAAM,cAAc,GACtB,OAAO,6BAA6B,GACpC,OAAO,0CAA0C,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;IAC1C,gGAAgG;IAChG,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAY5F;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,6BAA6B,CAAC;IAC7C,MAAM,EAAE;QACN,mEAAmE;QACnE,gBAAgB,EAAE,MAAM,CAAC;QACzB,sDAAsD;QACtD,GAAG,EAAE,MAAM,CAAC;QACZ,yFAAyF;QACzF,oBAAoB,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;QACnG;;;;;WAKG;QACH,YAAY,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;KAC5F,CAAC;CACH"}
1
+ {"version":3,"file":"ended-arm.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/ended-arm.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,6BAA6B,wBAAwB,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,4BAA4B,CAAC;AAE3E;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0CAA0C,qCAAqC,CAAC;AAE7F,iFAAiF;AACjF,MAAM,MAAM,cAAc,GACtB,OAAO,6BAA6B,GACpC,OAAO,sBAAsB,GAC7B,OAAO,0CAA0C,GACjD,OAAO,iCAAiC,CAAC;AAS7C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE9E;AAED,4FAA4F;AAC5F,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,mBAAmB,EAAE,CAAC;IAC1C,gGAAgG;IAChG,KAAK,EAAE,MAAM,CAAC;CACf;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAY5F;AAED;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAEtD,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,6BAA6B,CAAC;IAC7C,MAAM,EAAE;QACN,mEAAmE;QACnE,gBAAgB,EAAE,MAAM,CAAC;QACzB,sDAAsD;QACtD,GAAG,EAAE,MAAM,CAAC;QACZ,yFAAyF;QACzF,oBAAoB,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;QACnG;;;;;WAKG;QACH,YAAY,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;QAC3F,qFAAqF;QACrF,aAAa,CAAC,EAAE,wBAAwB,CAAC;KAC1C,CAAC;CACH;AAED,uEAAuE;AACvE,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,OAAO,iCAAiC,CAAC;IACjD,MAAM,EAAE;QACN,sEAAsE;QACtE,iBAAiB,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,CAAC,CAAC;KACxF,CAAC;CACH;AAED,oFAAoF;AACpF,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,yBAAyB,CAAC"}
@@ -1,7 +1,9 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
2
  // Pinned by: packages/daemon/src/completion/review-cycle-budget/review-cycle-cap-regression.test.ts,
3
3
  // packages/daemon/src/completion/review-cycle-budget/review-cycle-churn-meter.test.ts,
4
- // packages/daemon/src/focus/disarm-reaper.test.ts, packages/daemon/src/queries/focuses/ended-arm.test.ts
4
+ // packages/daemon/src/completion/review-cycle-budget/spent-budget-release.test.ts,
5
+ // packages/daemon/src/focus/disarm-reaper.test.ts, packages/daemon/src/queries/focuses/ended-arm.test.ts,
6
+ // packages/daemon/src/supervision/unreviewed-settle-detector.test.ts
5
7
  // PINNED-BY-END
6
8
  /**
7
9
  * The ENDED-ARM record: the shape the daemon sends with a release to state WHY
@@ -21,20 +23,37 @@
21
23
  * The ended-arm record that rides a release, stating WHY the daemon ended the
22
24
  * arm and what was still outstanding.
23
25
  *
24
- * The DAEMON writes ONE reason: 'review_budget_spent'. It is sent in the SAME
25
- * call as the release (the edge refuses it otherwise, handlers/focus/arm-ended.ts)
26
- * so the role-less focus is never readable without its reason, and so the record
27
- * can never be mistaken for the operator stop (operator_stopped_at, which this
28
- * path does not write).
26
+ * EVERY daemon release carries one (releaseFocusArm takes it as a required
27
+ * argument): no focus is un-armed by the daemon with a null reason. The daemon
28
+ * writes TWO reasons, 'review_budget_spent' and 'run_finished_unreviewed', each
29
+ * in the SAME call as the release (the edge refuses it otherwise,
30
+ * handlers/focus/arm-ended.ts) so the role-less focus is never readable without
31
+ * its reason, and so the record can never be mistaken for the operator stop
32
+ * (operator_stopped_at, which these paths do not write).
29
33
  *
30
34
  * `detail` carries only what the DAEMON counted. The edge adds the acceptance
31
35
  * criteria the last verdict-bearing review called not_met -- it owns the shape
32
36
  * that record lives in -- so this daemon never parses a review summary.
33
- *
34
- * ARM_ENDED_REVIEW_BUDGET_SPENT is a value the DB CHECK constraint on
35
- * product_focuses.arm_ended_reason allows and the wedge diagnosis reads back.
36
37
  */
37
38
  export const ARM_ENDED_REVIEW_BUDGET_SPENT = 'review_budget_spent';
39
+ /**
40
+ * The UNREVIEWED SETTLE end: every delivery settled while the review window the
41
+ * focus opened never received a verdict, so the daemon released the stranded
42
+ * arm and kept the window open (supervision/unreviewed-settle-detector.ts). A
43
+ * finish -- the covered work is terminal -- but one whose review is still owed,
44
+ * which a re-arm runs.
45
+ */
46
+ export const ARM_ENDED_RUN_FINISHED_UNREVIEWED = 'run_finished_unreviewed';
47
+ /**
48
+ * The LIFECYCLE end with nothing left over: every delivery the arm covered is
49
+ * terminal and the clear discounted no recorded work. Written ONLY by SQL -- the
50
+ * lifecycle arm clear (auto_terminate_focus_team /
51
+ * clear_focus_team_on_review_window_close, migration 20261020133821) in the same
52
+ * write that nulls the role, whatever closed the review window (a verdict, a
53
+ * deadline, the hand-off breaker, the spent-budget path) -- and never by this
54
+ * daemon.
55
+ */
56
+ export const ARM_ENDED_RUN_FINISHED = 'run_finished';
38
57
  /**
39
58
  * The LIFECYCLE end: the run finished every delivery its arm covered while one
40
59
  * or more deliveries recorded as new intent under it still rest at planning.
@@ -49,14 +68,21 @@ export const ARM_ENDED_REVIEW_BUDGET_SPENT = 'review_budget_spent';
49
68
  * constants; never read "any non-null reason" as one meaning.
50
69
  */
51
70
  export const ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS = 'run_finished_recorded_work_waits';
71
+ /** The reasons that say the run FINISHED its covered work (every covered delivery terminal). */
72
+ const RUN_FINISHED_REASONS = new Set([
73
+ ARM_ENDED_RUN_FINISHED,
74
+ ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS,
75
+ ARM_ENDED_RUN_FINISHED_UNREVIEWED,
76
+ ]);
52
77
  /**
53
- * True when the recorded reason is the LIFECYCLE end -- the run finished its
54
- * covered work and the recorded work waits for the next arm. False for a spent
55
- * budget, for no reason at all, and for any value this daemon does not know
56
- * (an unknown reason is never read as a finish).
78
+ * True when the recorded reason says the run FINISHED its covered work: the
79
+ * lifecycle clear (with or without recorded work waiting for the next arm) or
80
+ * the unreviewed settle. False for a spent budget, for no reason at all, and
81
+ * for any value this daemon does not know (an unknown reason is never read as
82
+ * a finish).
57
83
  */
58
84
  export function isRunFinishedArmEnd(reason) {
59
- return reason === ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS;
85
+ return reason != null && RUN_FINISHED_REASONS.has(reason);
60
86
  }
61
87
  function isRecord(value) {
62
88
  return typeof value === 'object' && value !== null && !Array.isArray(value);
@@ -1 +1 @@
1
- {"version":3,"file":"ended-arm.js","sourceRoot":"","sources":["../../../src/queries/focuses/ended-arm.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qGAAqG;AACrG,yFAAyF;AACzF,2GAA2G;AAC3G,gBAAgB;AAEhB;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,kCAAkC,CAAC;AAO7F;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,OAAO,MAAM,KAAK,0CAA0C,CAAC;AAC/D,CAAC;AAmBD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAe;IAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,MAAM,kBAAkB,GAA0B,EAAE,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE;YAAE,SAAS;QAClF,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACzF,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7E,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"ended-arm.js","sourceRoot":"","sources":["../../../src/queries/focuses/ended-arm.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qGAAqG;AACrG,yFAAyF;AACzF,qFAAqF;AACrF,4GAA4G;AAC5G,uEAAuE;AACvE,gBAAgB;AAEhB;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,yBAAyB,CAAC;AAE3E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,kCAAkC,CAAC;AAS7F,gGAAgG;AAChG,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC;IACxD,sBAAsB;IACtB,0CAA0C;IAC1C,iCAAiC;CAClC,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,OAAO,MAAM,IAAI,IAAI,IAAI,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAmBD,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAe;IAC1D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IAChF,MAAM,kBAAkB,GAA0B,EAAE,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE;YAAE,SAAS;QAClF,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACzF,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7E,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC"}
@@ -122,6 +122,12 @@ declare const CriterionStandingSchema: z.ZodObject<{
122
122
  divergenceReason: z.ZodNullable<z.ZodString>;
123
123
  }, z.core.$loose>>;
124
124
  basis: z.ZodOptional<z.ZodString>;
125
+ amendment: z.ZodCatch<z.ZodOptional<z.ZodObject<{
126
+ originalCriterion: z.ZodString;
127
+ amendmentCount: z.ZodOptional<z.ZodNumber>;
128
+ amendedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
129
+ amendedByKind: z.ZodOptional<z.ZodNullable<z.ZodString>>;
130
+ }, z.core.$loose>>>;
125
131
  status: z.ZodEnum<{
126
132
  open: "open";
127
133
  met: "met";
@@ -225,6 +231,12 @@ export declare const FocusCriteriaStandingSchema: z.ZodObject<{
225
231
  divergenceReason: z.ZodNullable<z.ZodString>;
226
232
  }, z.core.$loose>>;
227
233
  basis: z.ZodOptional<z.ZodString>;
234
+ amendment: z.ZodCatch<z.ZodOptional<z.ZodObject<{
235
+ originalCriterion: z.ZodString;
236
+ amendmentCount: z.ZodOptional<z.ZodNumber>;
237
+ amendedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
238
+ amendedByKind: z.ZodOptional<z.ZodNullable<z.ZodString>>;
239
+ }, z.core.$loose>>>;
228
240
  status: z.ZodEnum<{
229
241
  open: "open";
230
242
  met: "met";
@@ -1 +1 @@
1
- {"version":3,"file":"focus-criteria-standing.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/focus-criteria-standing.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAExE;;;;;;;GAOG;AACH,QAAA,MAAM,oBAAoB;;;;;;;iBAOV,CAAC;AAEjB;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB;;;;;iBAKZ,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsBb,CAAC;AAEjB;;;;GAIG;AACH,QAAA,MAAM,2BAA2B;;;;iBAIjB,CAAC;AAEjB,uEAAuE;AACvE,QAAA,MAAM,0BAA0B;;;;iBAIhB,CAAC;AAEjB;;;;;;GAMG;AACH,QAAA,MAAM,cAAc;;;;;;;iBAQJ,CAAC;AAEjB;;;;;GAKG;AACH,QAAA,MAAM,kBAAkB;;;;;;;iBAmBR,CAAC;AAEjB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0CxB,CAAC;AAEjB,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,mFAAmF;AACnF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,yEAAyE;AACzE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,0EAA0E;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEtE,uEAAuE;AACvE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE9D,2EAA2E;AAC3E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAKhC"}
1
+ {"version":3,"file":"focus-criteria-standing.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/focus-criteria-standing.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,4BAA4B,CAAC;AAExE;;;;;;;GAOG;AACH,QAAA,MAAM,oBAAoB;;;;;;;iBAOV,CAAC;AAEjB;;;;;;;;GAQG;AACH,QAAA,MAAM,sBAAsB;;;;;iBAKZ,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmCb,CAAC;AAEjB;;;;GAIG;AACH,QAAA,MAAM,2BAA2B;;;;iBAIjB,CAAC;AAEjB,uEAAuE;AACvE,QAAA,MAAM,0BAA0B;;;;iBAIhB,CAAC;AAEjB;;;;;;GAMG;AACH,QAAA,MAAM,cAAc;;;;;;;iBAQJ,CAAC;AAEjB;;;;;GAKG;AACH,QAAA,MAAM,kBAAkB;;;;;;;iBAmBR,CAAC;AAEjB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0CxB,CAAC;AAEjB,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,6DAA6D;AAC7D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,mFAAmF;AACnF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,yEAAyE;AACzE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,0EAA0E;AAC1E,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEtE,uEAAuE;AACvE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE9D,2EAA2E;AAC3E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CAKhC"}
@@ -116,6 +116,19 @@ const CriterionStandingSchema = z.object({
116
116
  * string, echoed only; absent on an older edge or a pre-derivation stamp.
117
117
  */
118
118
  basis: z.string().optional(),
119
+ /**
120
+ * TREE, ARMED STAMP only: present when the criterion was AMENDED under the
121
+ * standing arm (amend_focus_criterion, migration 20261020142139). `criterion`
122
+ * is then the amended wording; `originalCriterion` the wording the arm
123
+ * stamped. Echoed only. A malformed value reads as absent (`.catch`) -- it
124
+ * labels a criterion and must never fail the whole read.
125
+ */
126
+ amendment: z.object({
127
+ originalCriterion: z.string(),
128
+ amendmentCount: z.number().optional(),
129
+ amendedAt: z.string().nullable().optional(),
130
+ amendedByKind: z.string().nullable().optional(),
131
+ }).passthrough().optional().catch(undefined),
119
132
  status: z.enum(['addressed', 'met', 'open']),
120
133
  }).passthrough();
121
134
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"focus-criteria-standing.js","sourceRoot":"","sources":["../../../src/queries/focuses/focus-criteria-standing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus-criteria-standing.js","sourceRoot":"","sources":["../../../src/queries/focuses/focus-criteria-standing.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,kEAAkE;AAClE,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,wEAAwE;AACxE,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAyB,CAAC;AAExE;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE;CAClC,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IAC1C,wEAAwE;IACxE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;IAClD,0EAA0E;IAC1E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,0EAA0E;IAC1E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,yEAAyE;IACzE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,gFAAgF;IAChF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,sEAAsE;IACtE,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC1C;;;;OAIG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC7B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;KAChD,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7C,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB;;;;GAIG;AACH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB,uEAAuE;AACvE,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;CAClB,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB;;;;;;GAMG;AACH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,uFAAuF;IACvF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB;;;;;OAKG;IACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC,WAAW,EAAE,CAAC;AAEjB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC;IAC1C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE;IACzB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC;QACjB,wBAAwB;QACxB,sBAAsB;QACtB,sBAAsB;QACtB,sBAAsB;QACtB,uEAAuE;QACvE,yEAAyE;QACzE,uEAAuE;QACvE,8DAA8D;QAC9D,yBAAyB;KAC1B,CAAC;IACF,SAAS,EAAE,CAAC;SACT,IAAI,CAAC,CAAC,aAAa,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,CAAC,CAAC;SACnF,QAAQ,EAAE;IACb,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IACvE;;;;OAIG;IACH,0BAA0B,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE;IAC3E,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;IACrE;;;;;OAKG;IACH,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9C;;;;OAIG;IACH,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC,WAAW,EAAE,CAAC;AA0BjB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAe;IAEf,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,2BAA2B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AACpG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAe;IAEf,OAAO,gBAAgB,CAAC,8BAA8B,EAAE,2BAA2B,EAAE;QACnF,OAAO;QACP,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;AACL,CAAC"}
@@ -189,9 +189,12 @@ export interface ActiveFocusRow {
189
189
  * a NEW arm. 'run_finished_recorded_work_waits' => the LIFECYCLE clear released
190
190
  * the arm with every covered delivery terminal while deliveries recorded as
191
191
  * new intent wait at planning for the next arm -- a finish, not a stop.
192
- * Null => no machine end recorded: the arm is live, was never made, ended at a
193
- * lifecycle clear that discounted nothing, or was an operator stop
194
- * (operator_stopped_at). Null on backends predating the column. Read by the
192
+ * 'run_finished' => the lifecycle clear with nothing left over;
193
+ * 'run_finished_unreviewed' => the daemon released a settled focus whose
194
+ * review never rendered a verdict (migration 20261020133821: every machine end
195
+ * records a reason). Null => no machine end recorded: the arm is live, was
196
+ * never made, was an operator stop (operator_stopped_at), or ended before
197
+ * every end recorded one. Null on backends predating the column. Read by the
195
198
  * disarm reaper and the wedge diagnosis, by value.
196
199
  *
197
200
  * OPTIONAL: `undefined` and `null` mean the same thing here (no machine end),
@@ -214,6 +217,14 @@ export interface ActiveFocusRow {
214
217
  * predating the column, which fails CLOSED to "covered".
215
218
  */
216
219
  armed_baseline_delivery_ids?: unknown;
220
+ /**
221
+ * When a stamped criterion of this focus was last amended under the arm
222
+ * (product_focuses.criteria_amended_at, amend_focus_criterion()). A REVIEW
223
+ * directive queued before it was assembled on the replaced wording and is
224
+ * dropped (focus/pending-directive-gates.ts), so the next review is a fresh
225
+ * session on the new wording. OPTIONAL: absent/null = never amended.
226
+ */
227
+ criteria_amended_at?: string | null;
217
228
  current_workflow_stage_id: string | null;
218
229
  review_requested_at: string | null;
219
230
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"focus-discovery.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/focus-discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus-discovery.d.ts","sourceRoot":"","sources":["../../../src/queries/focuses/focus-discovery.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,5 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: packages/daemon/src/composition/review-holds-context.test.ts,
3
- // packages/daemon/src/delivery/advance-hold.test.ts,
4
- // packages/daemon/src/delivery/discovery-only-auto-advance.test.ts,
5
- // packages/daemon/src/delivery/recorded-concerns.test.ts, packages/daemon/src/focus/awaiting-slot.test.ts,
6
- // packages/daemon/src/focus/disarm-reaper.test.ts,
7
- // packages/daemon/src/focus/focus-activity-progress-clock.test.ts,
8
- // packages/daemon/src/focus/focus-poller-auto-advance-guard-measure.test.ts,
9
- // packages/daemon/src/focus/focus-poller-auto-advance-team-presence.test.ts,
10
- // packages/daemon/src/focus/focus-poller-auto-advance-teamless-wedge.test.ts,
11
- // packages/daemon/src/focus/heartbeat-focus-activity.test.ts,
12
- // packages/daemon/src/focus/recorded-delivery-auto-advance.test.ts,
13
- // packages/daemon/src/focus/unarmed-advance-hold.test.ts,
14
- // packages/daemon/src/focus/unclaimed-notice-coding-precedence.test.ts,
15
- // packages/daemon/src/integration/advancement-path-parity.test.ts,
16
- // packages/daemon/src/nexus/nexus-return-path-e2e.test.ts,
17
- // packages/daemon/src/queries/focuses/answer-rearm-respawn.test.ts,
18
- // packages/daemon/src/tower/tower-entrypoints.test.ts,
19
- // packages/daemon/src/tower/tower-ready-row-ingestion.test.ts,
20
- // packages/daemon/src/tower/tower-spawn-modes.test.ts
2
+ // Pinned by: 21 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/queries/focuses/focus-discovery.ts
21
3
  // PINNED-BY-END
22
4
  import { callApi, callApiValidated } from '../api-client/shared.js';
23
5
  import { ReadyFocusesResponseSchema, ActiveFocusesResponseSchema } from '../wire-schemas/schemas.js';
@@ -105,6 +87,7 @@ export async function getActiveFocuses(_organizationId, productId) {
105
87
  arm_ended_reason: s.armEndedReason ?? null,
106
88
  arm_ended_detail: s.armEndedDetail ?? null,
107
89
  armed_baseline_delivery_ids: s.armedBaselineDeliveryIds ?? null,
90
+ criteria_amended_at: s.criteriaAmendedAt ?? null,
108
91
  current_workflow_stage_id: s.currentWorkflowStageId ?? null,
109
92
  review_requested_at: s.reviewRequestedAt ?? null,
110
93
  reviewed_through_sha: s.reviewedThroughSha ?? null,