@telora/daemon 0.24.25 → 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 (375) hide show
  1. package/build-info.json +9 -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/completion/completion-event/event.d.ts +4 -3
  6. package/dist/completion/completion-event/event.d.ts.map +1 -1
  7. package/dist/completion/completion-event/event.js.map +1 -1
  8. package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts +19 -11
  9. package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts.map +1 -1
  10. package/dist/completion/review-cycle-budget/review-cycle-cap.js +36 -36
  11. package/dist/completion/review-cycle-budget/review-cycle-cap.js.map +1 -1
  12. package/dist/completion/review-cycle-budget/review-loop-detection.d.ts +101 -0
  13. package/dist/completion/review-cycle-budget/review-loop-detection.d.ts.map +1 -0
  14. package/dist/completion/review-cycle-budget/review-loop-detection.js +105 -0
  15. package/dist/completion/review-cycle-budget/review-loop-detection.js.map +1 -0
  16. package/dist/completion/review-cycle-budget/spent-budget-release.d.ts +70 -0
  17. package/dist/completion/review-cycle-budget/spent-budget-release.d.ts.map +1 -0
  18. package/dist/completion/review-cycle-budget/spent-budget-release.js +98 -0
  19. package/dist/completion/review-cycle-budget/spent-budget-release.js.map +1 -0
  20. package/dist/completion/review-exit/review-defect-detector.d.ts +71 -49
  21. package/dist/completion/review-exit/review-defect-detector.d.ts.map +1 -1
  22. package/dist/completion/review-exit/review-defect-detector.js +75 -69
  23. package/dist/completion/review-exit/review-defect-detector.js.map +1 -1
  24. package/dist/completion/review-exit/review-exit-attribution.d.ts +1 -1
  25. package/dist/completion/review-exit/review-exit-attribution.js +1 -1
  26. package/dist/completion/review-exit/review-exit-deps.d.ts +5 -2
  27. package/dist/completion/review-exit/review-exit-deps.d.ts.map +1 -1
  28. package/dist/completion/review-exit/review-exit-deps.js +1 -1
  29. package/dist/completion/review-exit/review-exit-evidence.d.ts +10 -1
  30. package/dist/completion/review-exit/review-exit-evidence.d.ts.map +1 -1
  31. package/dist/completion/review-exit/review-exit-evidence.js +17 -14
  32. package/dist/completion/review-exit/review-exit-evidence.js.map +1 -1
  33. package/dist/completion/review-exit/review-exit-foreign-findings.d.ts +1 -1
  34. package/dist/completion/review-exit/review-exit-foreign-findings.d.ts.map +1 -1
  35. package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
  36. package/dist/completion/review-exit/review-exit-phase.js +12 -8
  37. package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
  38. package/dist/completion/state-cascade/review-next-step.d.ts +12 -3
  39. package/dist/completion/state-cascade/review-next-step.d.ts.map +1 -1
  40. package/dist/completion/state-cascade/review-next-step.js +10 -1
  41. package/dist/completion/state-cascade/review-next-step.js.map +1 -1
  42. package/dist/completion/state-cascade/standing-approval-convergence.d.ts +1 -1
  43. package/dist/completion/state-cascade/standing-approval-convergence.d.ts.map +1 -1
  44. package/dist/completion/state-cascade/standing-approval-convergence.js +10 -4
  45. package/dist/completion/state-cascade/standing-approval-convergence.js.map +1 -1
  46. package/dist/completion/state-cascade/state-cascade.d.ts +3 -0
  47. package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
  48. package/dist/completion/state-cascade/state-cascade.js +16 -1
  49. package/dist/completion/state-cascade/state-cascade.js.map +1 -1
  50. package/dist/completion/team-exit/status-advance-phase.d.ts +1 -1
  51. package/dist/completion/team-exit/status-advance-phase.d.ts.map +1 -1
  52. package/dist/completion/team-exit/status-advance-phase.js +6 -4
  53. package/dist/completion/team-exit/status-advance-phase.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 +9 -4
  56. package/dist/completion/team-outcome/apply-turn.js.map +1 -1
  57. package/dist/completion/team-outcome/decide-turn-entry-rows.d.ts.map +1 -1
  58. package/dist/completion/team-outcome/decide-turn-entry-rows.js +28 -3
  59. package/dist/completion/team-outcome/decide-turn-entry-rows.js.map +1 -1
  60. package/dist/completion/team-outcome/decide.d.ts.map +1 -1
  61. package/dist/completion/team-outcome/decide.js +1 -0
  62. package/dist/completion/team-outcome/decide.js.map +1 -1
  63. package/dist/completion/team-outcome/exit-limits.d.ts +6 -0
  64. package/dist/completion/team-outcome/exit-limits.d.ts.map +1 -1
  65. package/dist/completion/team-outcome/exit-limits.js +6 -0
  66. package/dist/completion/team-outcome/exit-limits.js.map +1 -1
  67. package/dist/completion/team-outcome/exit-pipeline-state.d.ts +5 -0
  68. package/dist/completion/team-outcome/exit-pipeline-state.d.ts.map +1 -1
  69. package/dist/completion/team-outcome/exit-pipeline-state.js.map +1 -1
  70. package/dist/completion/team-teardown/session-hold-bounds.d.ts +10 -1
  71. package/dist/completion/team-teardown/session-hold-bounds.d.ts.map +1 -1
  72. package/dist/completion/team-teardown/session-hold-bounds.js +11 -0
  73. package/dist/completion/team-teardown/session-hold-bounds.js.map +1 -1
  74. package/dist/completion/team-teardown/session-hold.d.ts.map +1 -1
  75. package/dist/completion/team-teardown/session-hold.js +2 -0
  76. package/dist/completion/team-teardown/session-hold.js.map +1 -1
  77. package/dist/composition/engine-start-context.d.ts.map +1 -1
  78. package/dist/composition/engine-start-context.js +9 -1
  79. package/dist/composition/engine-start-context.js.map +1 -1
  80. package/dist/composition/execution-spawn-context.d.ts.map +1 -1
  81. package/dist/composition/execution-spawn-context.js +2 -0
  82. package/dist/composition/execution-spawn-context.js.map +1 -1
  83. package/dist/composition/judgement-contexts.d.ts.map +1 -1
  84. package/dist/composition/judgement-contexts.js +8 -2
  85. package/dist/composition/judgement-contexts.js.map +1 -1
  86. package/dist/composition/review-exit-context.d.ts.map +1 -1
  87. package/dist/composition/review-exit-context.js +2 -0
  88. package/dist/composition/review-exit-context.js.map +1 -1
  89. package/dist/composition/review-loop-context.d.ts +28 -0
  90. package/dist/composition/review-loop-context.d.ts.map +1 -0
  91. package/dist/composition/review-loop-context.js +147 -0
  92. package/dist/composition/review-loop-context.js.map +1 -0
  93. package/dist/composition/runtime-heartbeat-context.d.ts.map +1 -1
  94. package/dist/composition/runtime-heartbeat-context.js +8 -2
  95. package/dist/composition/runtime-heartbeat-context.js.map +1 -1
  96. package/dist/composition/spawn-pass-deps.d.ts.map +1 -1
  97. package/dist/composition/spawn-pass-deps.js +3 -0
  98. package/dist/composition/spawn-pass-deps.js.map +1 -1
  99. package/dist/composition/state-cascade-context.d.ts.map +1 -1
  100. package/dist/composition/state-cascade-context.js +3 -1
  101. package/dist/composition/state-cascade-context.js.map +1 -1
  102. package/dist/composition/tower-escalation-context.d.ts +12 -0
  103. package/dist/composition/tower-escalation-context.d.ts.map +1 -0
  104. package/dist/composition/tower-escalation-context.js +109 -0
  105. package/dist/composition/tower-escalation-context.js.map +1 -0
  106. package/dist/composition/workstation-intervals-context.d.ts +3 -0
  107. package/dist/composition/workstation-intervals-context.d.ts.map +1 -0
  108. package/dist/composition/workstation-intervals-context.js +33 -0
  109. package/dist/composition/workstation-intervals-context.js.map +1 -0
  110. package/dist/daemon-state/awaiting-slot.d.ts +18 -1
  111. package/dist/daemon-state/awaiting-slot.d.ts.map +1 -1
  112. package/dist/daemon-state/awaiting-slot.js +7 -0
  113. package/dist/daemon-state/awaiting-slot.js.map +1 -1
  114. package/dist/delivery/delivery-reconciler.d.ts +7 -7
  115. package/dist/delivery/recorded-concerns.d.ts +63 -28
  116. package/dist/delivery/recorded-concerns.d.ts.map +1 -1
  117. package/dist/delivery/recorded-concerns.js +72 -28
  118. package/dist/delivery/recorded-concerns.js.map +1 -1
  119. package/dist/directive/directive-queue.d.ts +8 -0
  120. package/dist/directive/directive-queue.d.ts.map +1 -1
  121. package/dist/directive/directive-queue.js +1 -1
  122. package/dist/directive/directive-queue.js.map +1 -1
  123. package/dist/focus/control-state.d.ts +6 -4
  124. package/dist/focus/control-state.d.ts.map +1 -1
  125. package/dist/focus/control-state.js +6 -4
  126. package/dist/focus/control-state.js.map +1 -1
  127. package/dist/focus/daemon-contexts-judgement.d.ts +6 -0
  128. package/dist/focus/daemon-contexts-judgement.d.ts.map +1 -1
  129. package/dist/focus/daemon-contexts.d.ts +6 -0
  130. package/dist/focus/daemon-contexts.d.ts.map +1 -1
  131. package/dist/focus/daemon-contexts.js.map +1 -1
  132. package/dist/focus/focus-engine.d.ts.map +1 -1
  133. package/dist/focus/focus-engine.js +3 -1
  134. package/dist/focus/focus-engine.js.map +1 -1
  135. package/dist/focus/focus-executor.d.ts.map +1 -1
  136. package/dist/focus/focus-executor.js +3 -2
  137. package/dist/focus/focus-executor.js.map +1 -1
  138. package/dist/focus/focus-loop-registry.d.ts.map +1 -1
  139. package/dist/focus/focus-loop-registry.js +42 -0
  140. package/dist/focus/focus-loop-registry.js.map +1 -1
  141. package/dist/focus/focus-poller-auto-advance.d.ts +4 -2
  142. package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
  143. package/dist/focus/focus-poller-auto-advance.js +24 -18
  144. package/dist/focus/focus-poller-auto-advance.js.map +1 -1
  145. package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
  146. package/dist/focus/focus-poller-spawn.js +8 -6
  147. package/dist/focus/focus-poller-spawn.js.map +1 -1
  148. package/dist/focus/heartbeat.d.ts +9 -2
  149. package/dist/focus/heartbeat.d.ts.map +1 -1
  150. package/dist/focus/heartbeat.js +9 -1
  151. package/dist/focus/heartbeat.js.map +1 -1
  152. package/dist/focus/pending-directive-gates.d.ts +14 -0
  153. package/dist/focus/pending-directive-gates.d.ts.map +1 -1
  154. package/dist/focus/pending-directive-gates.js +25 -1
  155. package/dist/focus/pending-directive-gates.js.map +1 -1
  156. package/dist/focus/pending-spawn-pass-deps.d.ts +7 -0
  157. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  158. package/dist/focus/pending-spawn-review-next-step.d.ts +1 -1
  159. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  160. package/dist/focus/pending-spawn-review-next-step.js +2 -0
  161. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  162. package/dist/focus/ready-focus-team-work.d.ts +9 -4
  163. package/dist/focus/ready-focus-team-work.d.ts.map +1 -1
  164. package/dist/focus/ready-focus-team-work.js +14 -3
  165. package/dist/focus/ready-focus-team-work.js.map +1 -1
  166. package/dist/focus/verify-open-issues.d.ts +3 -2
  167. package/dist/focus/verify-open-issues.d.ts.map +1 -1
  168. package/dist/focus/verify-open-issues.js +6 -4
  169. package/dist/focus/verify-open-issues.js.map +1 -1
  170. package/dist/focus/workstation-intervals.d.ts +83 -0
  171. package/dist/focus/workstation-intervals.d.ts.map +1 -0
  172. package/dist/focus/workstation-intervals.js +81 -0
  173. package/dist/focus/workstation-intervals.js.map +1 -0
  174. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +5 -2
  175. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  176. package/dist/focus-stage-lifecycle/wedge-watchdog.js +2 -2
  177. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  178. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  179. package/dist/prompt-sections/persona-sections.js +4 -1
  180. package/dist/prompt-sections/persona-sections.js.map +1 -1
  181. package/dist/prompt-sections/qa-author-section.d.ts.map +1 -1
  182. package/dist/prompt-sections/qa-author-section.js +18 -1
  183. package/dist/prompt-sections/qa-author-section.js.map +1 -1
  184. package/dist/prompt-sections/scoping-sections.d.ts +0 -12
  185. package/dist/prompt-sections/scoping-sections.d.ts.map +1 -1
  186. package/dist/prompt-sections/scoping-sections.js +16 -2
  187. package/dist/prompt-sections/scoping-sections.js.map +1 -1
  188. package/dist/prompts/bounded-universals.d.ts +13 -0
  189. package/dist/prompts/bounded-universals.d.ts.map +1 -0
  190. package/dist/prompts/bounded-universals.js +32 -0
  191. package/dist/prompts/bounded-universals.js.map +1 -0
  192. package/dist/queries/api-client/shared.d.ts +2 -1
  193. package/dist/queries/api-client/shared.d.ts.map +1 -1
  194. package/dist/queries/api-client/shared.js +31 -1
  195. package/dist/queries/api-client/shared.js.map +1 -1
  196. package/dist/queries/deliveries/issues.d.ts.map +1 -1
  197. package/dist/queries/deliveries/issues.js +1 -0
  198. package/dist/queries/deliveries/issues.js.map +1 -1
  199. package/dist/queries/escalations/escalation-consumption.d.ts +13 -0
  200. package/dist/queries/escalations/escalation-consumption.d.ts.map +1 -1
  201. package/dist/queries/escalations/escalation-consumption.js +12 -2
  202. package/dist/queries/escalations/escalation-consumption.js.map +1 -1
  203. package/dist/queries/escalations/tower-escalations.d.ts +82 -0
  204. package/dist/queries/escalations/tower-escalations.d.ts.map +1 -0
  205. package/dist/queries/escalations/tower-escalations.js +97 -0
  206. package/dist/queries/escalations/tower-escalations.js.map +1 -0
  207. package/dist/queries/focus-review/recorded-concern-ids.d.ts +48 -11
  208. package/dist/queries/focus-review/recorded-concern-ids.d.ts.map +1 -1
  209. package/dist/queries/focus-review/recorded-concern-ids.js +42 -12
  210. package/dist/queries/focus-review/recorded-concern-ids.js.map +1 -1
  211. package/dist/queries/focus-review/review-criterion-verdicts.d.ts +37 -0
  212. package/dist/queries/focus-review/review-criterion-verdicts.d.ts.map +1 -0
  213. package/dist/queries/focus-review/review-criterion-verdicts.js +64 -0
  214. package/dist/queries/focus-review/review-criterion-verdicts.js.map +1 -0
  215. package/dist/queries/focus-review/review-finding-facts.d.ts +18 -6
  216. package/dist/queries/focus-review/review-finding-facts.d.ts.map +1 -1
  217. package/dist/queries/focus-review/review-finding-facts.js +21 -8
  218. package/dist/queries/focus-review/review-finding-facts.js.map +1 -1
  219. package/dist/queries/focuses/ended-arm.d.ts +56 -13
  220. package/dist/queries/focuses/ended-arm.d.ts.map +1 -1
  221. package/dist/queries/focuses/ended-arm.js +40 -14
  222. package/dist/queries/focuses/ended-arm.js.map +1 -1
  223. package/dist/queries/focuses/focus-criteria-standing.d.ts +12 -0
  224. package/dist/queries/focuses/focus-criteria-standing.d.ts.map +1 -1
  225. package/dist/queries/focuses/focus-criteria-standing.js +13 -0
  226. package/dist/queries/focuses/focus-criteria-standing.js.map +1 -1
  227. package/dist/queries/focuses/focus-discovery.d.ts +14 -3
  228. package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
  229. package/dist/queries/focuses/focus-discovery.js +2 -19
  230. package/dist/queries/focuses/focus-discovery.js.map +1 -1
  231. package/dist/queries/focuses/focuses.d.ts +15 -12
  232. package/dist/queries/focuses/focuses.d.ts.map +1 -1
  233. package/dist/queries/focuses/focuses.js +15 -13
  234. package/dist/queries/focuses/focuses.js.map +1 -1
  235. package/dist/queries/sessions/sessions.d.ts.map +1 -1
  236. package/dist/queries/sessions/sessions.js +2 -1
  237. package/dist/queries/sessions/sessions.js.map +1 -1
  238. package/dist/queries/tower-decisions/tower-decisions.d.ts +103 -0
  239. package/dist/queries/tower-decisions/tower-decisions.d.ts.map +1 -0
  240. package/dist/queries/tower-decisions/tower-decisions.js +138 -0
  241. package/dist/queries/tower-decisions/tower-decisions.js.map +1 -0
  242. package/dist/queries/wire-schemas/schemas.d.ts +2 -0
  243. package/dist/queries/wire-schemas/schemas.d.ts.map +1 -1
  244. package/dist/queries/wire-schemas/schemas.js +8 -2
  245. package/dist/queries/wire-schemas/schemas.js.map +1 -1
  246. package/dist/queries/workstation-intervals/workstation-intervals.d.ts +52 -0
  247. package/dist/queries/workstation-intervals/workstation-intervals.d.ts.map +1 -0
  248. package/dist/queries/workstation-intervals/workstation-intervals.js +49 -0
  249. package/dist/queries/workstation-intervals/workstation-intervals.js.map +1 -0
  250. package/dist/resolvers/escalation-answers.d.ts +31 -0
  251. package/dist/resolvers/escalation-answers.d.ts.map +1 -1
  252. package/dist/resolvers/escalation-answers.js +31 -17
  253. package/dist/resolvers/escalation-answers.js.map +1 -1
  254. package/dist/resolvers/focus-criteria-standing.d.ts.map +1 -1
  255. package/dist/resolvers/focus-criteria-standing.js +20 -0
  256. package/dist/resolvers/focus-criteria-standing.js.map +1 -1
  257. package/dist/shell/unified-engine-lifecycle.d.ts +11 -1
  258. package/dist/shell/unified-engine-lifecycle.d.ts.map +1 -1
  259. package/dist/shell/unified-engine-lifecycle.js +10 -1
  260. package/dist/shell/unified-engine-lifecycle.js.map +1 -1
  261. package/dist/spawn/directive-dispatch.d.ts.map +1 -1
  262. package/dist/spawn/directive-dispatch.js +1 -0
  263. package/dist/spawn/directive-dispatch.js.map +1 -1
  264. package/dist/spawn/lead-continuation.d.ts +4 -3
  265. package/dist/spawn/lead-continuation.d.ts.map +1 -1
  266. package/dist/spawn/lead-continuation.js.map +1 -1
  267. package/dist/spawn/live-answer-delivery.d.ts +53 -0
  268. package/dist/spawn/live-answer-delivery.d.ts.map +1 -0
  269. package/dist/spawn/live-answer-delivery.js +26 -0
  270. package/dist/spawn/live-answer-delivery.js.map +1 -0
  271. package/dist/spawn/routing-decider-spawn.d.ts +64 -2
  272. package/dist/spawn/routing-decider-spawn.d.ts.map +1 -1
  273. package/dist/spawn/routing-decider-spawn.js +65 -20
  274. package/dist/spawn/routing-decider-spawn.js.map +1 -1
  275. package/dist/spawn/worktree-session.d.ts +7 -5
  276. package/dist/spawn/worktree-session.d.ts.map +1 -1
  277. package/dist/spawn/worktree-session.js +11 -7
  278. package/dist/spawn/worktree-session.js.map +1 -1
  279. package/dist/supervision/review-cycle-cap-hold.d.ts +11 -5
  280. package/dist/supervision/review-cycle-cap-hold.d.ts.map +1 -1
  281. package/dist/supervision/review-cycle-cap-hold.js +29 -11
  282. package/dist/supervision/review-cycle-cap-hold.js.map +1 -1
  283. package/dist/supervision/review-loop-detector.d.ts +48 -0
  284. package/dist/supervision/review-loop-detector.d.ts.map +1 -0
  285. package/dist/supervision/review-loop-detector.js +13 -0
  286. package/dist/supervision/review-loop-detector.js.map +1 -0
  287. package/dist/supervision/review-loop-hold.d.ts +29 -0
  288. package/dist/supervision/review-loop-hold.d.ts.map +1 -0
  289. package/dist/supervision/review-loop-hold.js +99 -0
  290. package/dist/supervision/review-loop-hold.js.map +1 -0
  291. package/dist/supervision/stall-detector-config.d.ts +8 -0
  292. package/dist/supervision/stall-detector-config.d.ts.map +1 -1
  293. package/dist/supervision/stall-detector-config.js +14 -3
  294. package/dist/supervision/stall-detector-config.js.map +1 -1
  295. package/dist/supervision/stop-registry.d.ts +3 -0
  296. package/dist/supervision/stop-registry.d.ts.map +1 -1
  297. package/dist/supervision/stop-registry.js +3 -1
  298. package/dist/supervision/stop-registry.js.map +1 -1
  299. package/dist/supervision/stop-rows-review-loop.d.ts +35 -0
  300. package/dist/supervision/stop-rows-review-loop.d.ts.map +1 -0
  301. package/dist/supervision/stop-rows-review-loop.js +150 -0
  302. package/dist/supervision/stop-rows-review-loop.js.map +1 -0
  303. package/dist/supervision/stop-rows-team-session.d.ts +1 -1
  304. package/dist/supervision/stop-rows-team-session.d.ts.map +1 -1
  305. package/dist/supervision/stop-rows-team-session.js.map +1 -1
  306. package/dist/supervision/unreviewed-settle-detector.d.ts +7 -2
  307. package/dist/supervision/unreviewed-settle-detector.d.ts.map +1 -1
  308. package/dist/supervision/unreviewed-settle-detector.js +15 -2
  309. package/dist/supervision/unreviewed-settle-detector.js.map +1 -1
  310. package/dist/templates/agents-md.d.ts.map +1 -1
  311. package/dist/templates/agents-md.js +1 -0
  312. package/dist/templates/agents-md.js.map +1 -1
  313. package/dist/templates/claude-md.d.ts +1 -1
  314. package/dist/templates/claude-md.d.ts.map +1 -1
  315. package/dist/templates/claude-md.js +12 -0
  316. package/dist/templates/claude-md.js.map +1 -1
  317. package/dist/testing/fixtures/api-client.js +1 -1
  318. package/dist/testing/fixtures/index.js +1 -1
  319. package/dist/testing/fixtures/pending-spawn-world.d.ts +4 -0
  320. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  321. package/dist/testing/fixtures/pending-spawn-world.js +15 -2
  322. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  323. package/dist/testing/fixtures/recording-api-client.js +1 -1
  324. package/dist/testing/fixtures/review-exit-deps.d.ts.map +1 -1
  325. package/dist/testing/fixtures/review-exit-deps.js +3 -1
  326. package/dist/testing/fixtures/review-exit-deps.js.map +1 -1
  327. package/dist/testing/fixtures/review-loop.d.ts +19 -0
  328. package/dist/testing/fixtures/review-loop.d.ts.map +1 -0
  329. package/dist/testing/fixtures/review-loop.js +30 -0
  330. package/dist/testing/fixtures/review-loop.js.map +1 -0
  331. package/dist/testing/fixtures/shortfall-rework-hold-deps.d.ts.map +1 -1
  332. package/dist/testing/fixtures/shortfall-rework-hold-deps.js +1 -0
  333. package/dist/testing/fixtures/shortfall-rework-hold-deps.js.map +1 -1
  334. package/dist/testing/fixtures/tower-loop.d.ts +28 -0
  335. package/dist/testing/fixtures/tower-loop.d.ts.map +1 -0
  336. package/dist/testing/fixtures/tower-loop.js +83 -0
  337. package/dist/testing/fixtures/tower-loop.js.map +1 -0
  338. package/dist/tower/tower-escalation-gather.d.ts +33 -0
  339. package/dist/tower/tower-escalation-gather.d.ts.map +1 -0
  340. package/dist/tower/tower-escalation-gather.js +38 -0
  341. package/dist/tower/tower-escalation-gather.js.map +1 -0
  342. package/dist/tower/tower-escalation-prompt.d.ts +62 -0
  343. package/dist/tower/tower-escalation-prompt.d.ts.map +1 -0
  344. package/dist/tower/tower-escalation-prompt.js +130 -0
  345. package/dist/tower/tower-escalation-prompt.js.map +1 -0
  346. package/dist/tower/tower-escalation-routing.d.ts +49 -0
  347. package/dist/tower/tower-escalation-routing.d.ts.map +1 -0
  348. package/dist/tower/tower-escalation-routing.js +53 -0
  349. package/dist/tower/tower-escalation-routing.js.map +1 -0
  350. package/dist/tower/tower-escalation-session.d.ts +149 -0
  351. package/dist/tower/tower-escalation-session.d.ts.map +1 -0
  352. package/dist/tower/tower-escalation-session.js +238 -0
  353. package/dist/tower/tower-escalation-session.js.map +1 -0
  354. package/dist/tower/tower-supervisor-history.d.ts +129 -0
  355. package/dist/tower/tower-supervisor-history.d.ts.map +1 -0
  356. package/dist/tower/tower-supervisor-history.js +217 -0
  357. package/dist/tower/tower-supervisor-history.js.map +1 -0
  358. package/dist/tower/tower-supervisor-prompt.d.ts +21 -0
  359. package/dist/tower/tower-supervisor-prompt.d.ts.map +1 -0
  360. package/dist/tower/tower-supervisor-prompt.js +205 -0
  361. package/dist/tower/tower-supervisor-prompt.js.map +1 -0
  362. package/dist/tower/tower-supervisor-session.d.ts +220 -0
  363. package/dist/tower/tower-supervisor-session.d.ts.map +1 -0
  364. package/dist/tower/tower-supervisor-session.js +307 -0
  365. package/dist/tower/tower-supervisor-session.js.map +1 -0
  366. package/dist/tower/tower-supervisor.d.ts +86 -0
  367. package/dist/tower/tower-supervisor.d.ts.map +1 -0
  368. package/dist/tower/tower-supervisor.js +8 -0
  369. package/dist/tower/tower-supervisor.js.map +1 -0
  370. package/dist/types/index.js +1 -1
  371. package/dist/verify/outcome-routing/verification-rework-issue.d.ts +4 -4
  372. package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
  373. package/dist/verify/outcome-routing/verification-rework-issue.js +16 -6
  374. package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
  375. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-session.js","sourceRoot":"","sources":["../../src/spawn/worktree-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-session.js","sourceRoot":"","sources":["../../src/spawn/worktree-session.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type ReviewLoopHoldDeps } from './review-loop-hold.js';
1
2
  /** The facts the backstop reads. `null` count = the read failed. */
2
3
  export interface ReviewCycleCapFacts {
3
4
  /** product_focuses.review_cycle_count: consecutive unconverged review cycles. */
@@ -6,9 +7,14 @@ export interface ReviewCycleCapFacts {
6
7
  }
7
8
  /** Pure: whether the spent review budget holds the focus. An unreadable count holds. */
8
9
  export declare function isReviewCycleCapHeld(facts: ReviewCycleCapFacts): boolean;
9
- /** The cap reader (production: stall-detector-config.ts resolveReviewCycleCap, bound at the composition root). */
10
+ /**
11
+ * The cap reader (production: stall-detector-config.ts resolveReviewCycleCap)
12
+ * and the held-loop read (production: queries/tower-decisions
13
+ * listOpenReviewLoops), both bound at the composition root.
14
+ */
10
15
  export interface ReviewCycleCapHoldDeps {
11
16
  resolveReviewCycleCap: () => number;
17
+ reviewLoopHold: ReviewLoopHoldDeps;
12
18
  }
13
19
  /** Read the backstop's facts for a focus whose review_cycle_count the caller already read. */
14
20
  export declare function readReviewCycleCapFacts(focus: {
@@ -18,11 +24,11 @@ export declare function readReviewCycleCapFacts(focus: {
18
24
  export declare function __resetReviewCycleCapHoldLog(): void;
19
25
  /**
20
26
  * Resolve the backstop for a focus whose review_cycle_count the caller already
21
- * read (null when it could not), and log the held edge once per episode.
27
+ * read (null when it could not) -- the spent budget, then the held review loop
28
+ * -- logging each held edge once per episode.
22
29
  *
23
- * Async because every gate calls it in an await position and the un-arm that
24
- * normally precedes it is the asynchronous half of the same decision; keeping
25
- * the signature lets a future read rejoin here without touching four gates.
30
+ * Async because every gate calls it in an await position; the held-loop read
31
+ * (supervision/review-loop-hold.ts) is the read that signature was kept for.
26
32
  */
27
33
  export declare function resolveReviewCycleCapHold(focus: {
28
34
  focusId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"review-cycle-cap-hold.d.ts","sourceRoot":"","sources":["../../src/supervision/review-cycle-cap-hold.ts"],"names":[],"mappings":"AAmDA,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAExE;AAQD,kHAAkH;AAClH,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,EAAE,MAAM,MAAM,CAAC;CACrC;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CACrC,KAAK,EAAE;IAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,mBAAmB,CAErB;AAKD,qDAAqD;AACrD,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC9E,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAclB;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,4GAA4G;AAC5G,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACnE,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC;CAC3G;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,qBAAqB,GAC1B,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAkBlG"}
1
+ {"version":3,"file":"review-cycle-cap-hold.d.ts","sourceRoot":"","sources":["../../src/supervision/review-cycle-cap-hold.ts"],"names":[],"mappings":"AAwDA,OAAO,EAA4D,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAI1H,oEAAoE;AACpE,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wFAAwF;AACxF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAExE;AAQD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,EAAE,MAAM,MAAM,CAAC;IACpC,cAAc,EAAE,kBAAkB,CAAC;CACpC;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,CACrC,KAAK,EAAE;IAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC1C,IAAI,EAAE,sBAAsB,GAC3B,mBAAmB,CAErB;AAKD,qDAAqD;AACrD,wBAAgB,4BAA4B,IAAI,IAAI,CAEnD;AAsBD;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAC9E,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,4GAA4G;AAC5G,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACnE,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC;CAC3G;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,qBAAqB,GAC1B,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAoBlG"}
@@ -1,6 +1,7 @@
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
- // packages/daemon/src/supervision/review-cycle-cap-hold.test.ts
3
+ // packages/daemon/src/supervision/review-cycle-cap-hold.test.ts,
4
+ // packages/daemon/src/supervision/review-loop-hold.test.ts
4
5
  // PINNED-BY-END
5
6
  /**
6
7
  * The spawn-gate half of the spent review budget: a focus whose
@@ -37,6 +38,13 @@
37
38
  * poll, so a transient failure delays one poll instead of billing a pass the
38
39
  * budget exists to prevent.
39
40
  *
41
+ * THE HELD REVIEW LOOP rejoins here (the read the async signature was kept
42
+ * for): after the budget, every resolver below consults the review_loop_held
43
+ * row (supervision/review-loop-hold.ts) -- a focus whose review loop the review
44
+ * exit detected as non-converging is held by the same gates, the same way,
45
+ * until its loop is resolved. Two rows, one gate surface: the budget decides
46
+ * first, and its log line names it; the loop hold logs its own.
47
+ *
40
48
  * History: docs/daemon/history-team-lifecycle.md (supervision/review-cycle-cap-hold.ts).
41
49
  *
42
50
  * @module supervision/review-cycle-cap-hold
@@ -44,6 +52,7 @@
44
52
  import { safetyGateFailsClosed } from '../workflow/gate-failure-policy.js';
45
53
  import { createLogger } from '../log/daemon-log.js';
46
54
  import { evaluateStop } from './stop-registry.js';
55
+ import { createProductReviewLoopHoldReader, resolveReviewLoopHold } from './review-loop-hold.js';
47
56
  const log = createLogger({ module: 'focus' });
48
57
  /** Pure: whether the spent review budget holds the focus. An unreadable count holds. */
49
58
  export function isReviewCycleCapHeld(facts) {
@@ -65,15 +74,8 @@ const heldLoggedFocuses = new Set();
65
74
  export function __resetReviewCycleCapHoldLog() {
66
75
  heldLoggedFocuses.clear();
67
76
  }
68
- /**
69
- * Resolve the backstop for a focus whose review_cycle_count the caller already
70
- * read (null when it could not), and log the held edge once per episode.
71
- *
72
- * Async because every gate calls it in an await position and the un-arm that
73
- * normally precedes it is the asynchronous half of the same decision; keeping
74
- * the signature lets a future read rejoin here without touching four gates.
75
- */
76
- export async function resolveReviewCycleCapHold(focus, deps) {
77
+ /** The budget half alone: decide on the count the caller read and log the held edge once per episode. */
78
+ function resolveBudgetHold(focus, deps) {
77
79
  const facts = readReviewCycleCapFacts(focus, deps);
78
80
  const held = isReviewCycleCapHeld(facts);
79
81
  if (!held) {
@@ -87,6 +89,19 @@ export async function resolveReviewCycleCapHold(focus, deps) {
87
89
  }
88
90
  return held;
89
91
  }
92
+ /**
93
+ * Resolve the backstop for a focus whose review_cycle_count the caller already
94
+ * read (null when it could not) -- the spent budget, then the held review loop
95
+ * -- logging each held edge once per episode.
96
+ *
97
+ * Async because every gate calls it in an await position; the held-loop read
98
+ * (supervision/review-loop-hold.ts) is the read that signature was kept for.
99
+ */
100
+ export async function resolveReviewCycleCapHold(focus, deps) {
101
+ if (resolveBudgetHold(focus, deps))
102
+ return true;
103
+ return resolveReviewLoopHold(focus, deps.reviewLoopHold);
104
+ }
90
105
  /**
91
106
  * A backstop reader for the ready-focus spawn gate. getReadyFocuses rows do not
92
107
  * carry review_cycle_count, so the count comes from the active-focus read --
@@ -107,10 +122,13 @@ export function createReadyFocusCapHoldReader(organizationId, deps) {
107
122
  }
108
123
  return counts;
109
124
  };
125
+ const readLoopHold = createProductReviewLoopHoldReader(deps.reviewLoopHold);
110
126
  return async (focus) => {
111
127
  const counts = await readCounts(focus.product_id);
112
128
  const reviewCycleCount = counts?.get(focus.focus_id) ?? null;
113
- return resolveReviewCycleCapHold({ focusId: focus.focus_id, focusName: focus.focus_name, reviewCycleCount }, deps);
129
+ if (resolveBudgetHold({ focusId: focus.focus_id, focusName: focus.focus_name, reviewCycleCount }, deps))
130
+ return true;
131
+ return readLoopHold(focus);
114
132
  };
115
133
  }
116
134
  //# sourceMappingURL=review-cycle-cap-hold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"review-cycle-cap-hold.js","sourceRoot":"","sources":["../../src/supervision/review-cycle-cap-hold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review-cycle-cap-hold.js","sourceRoot":"","sources":["../../src/supervision/review-cycle-cap-hold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * THE NON-CONVERGING REVIEW LOOP: one criterion failing alone, review after
3
+ * review, each review naming a new blocking finding against it.
4
+ *
5
+ * Tinker Tailor f114 ran nine consecutive reviews that each judged every other
6
+ * criterion met and filed one new blocking Bug against the same criterion. The
7
+ * coding pass fixed each Bug and the next review found the next one: the
8
+ * criterion was unbounded, so the loop could not converge, and nothing saw it
9
+ * until the review budget (TELORA_REVIEW_CYCLE_CAP) ended the run. The loop is
10
+ * a judgement call -- is the criterion unbounded, or is the work really short?
11
+ * -- and the operator ruled a Tower supervisor makes it, not the operator. This
12
+ * module SEES the loop, so the review exit can hold it and call the supervisor
13
+ * (completion/review-cycle-budget/review-loop-detection.ts).
14
+ *
15
+ * THE RULE. On the N most recent consecutive verdict-bearing reviews under the
16
+ * arm (N = TELORA_REVIEW_LOOP_THRESHOLD, default 3):
17
+ * - exactly ONE criterion key is not_met, and it is the SAME key on all N;
18
+ * - every other criterion is met or excused (implied: a verdict is one of
19
+ * the three);
20
+ * - each of the N reviews names at least one BLOCKING issue against that
21
+ * criterion (an issue its not_met verdict names that is in the review's
22
+ * stored blocking set) that no EARLIER of the N reviews named.
23
+ * Fewer than N reviews, a second unmet criterion, a review whose verdicts
24
+ * name no criterion at all (a row from before focus_reviews.criterion_verdicts),
25
+ * a review re-naming only findings an earlier one named, or a review whose
26
+ * not_met names no blocking issue: no loop. The last two matter: a criterion
27
+ * whose one finding is simply not fixed yet is not a loop -- the coding pass
28
+ * still owes that finding -- and a reopening nobody demonstrated blocks
29
+ * nothing, so it moves nothing.
30
+ *
31
+ * Criterion identity is the criterion-reopenings identity (`node:<uuid>` /
32
+ * `text:<normalized>`), stored by focus_review_complete; the rule only compares
33
+ * keys. The decision itself is the review_loop_detected stop row
34
+ * (supervision/stop-rows-review-loop.ts); this module asks the registry.
35
+ *
36
+ * Pure: no I/O.
37
+ *
38
+ * @module supervision/review-loop-detector
39
+ */
40
+ import type { ReviewVerdictRecord } from '../queries/focus-review/review-criterion-verdicts.js';
41
+ import type { ReviewLoopDetection } from './stop-rows-review-loop.js';
42
+ /**
43
+ * Detect a non-converging loop over the focus's reviews since the arm, given
44
+ * NEWEST FIRST. `threshold` below 2 is read as 2 (one failing review is not a
45
+ * loop). Returns the loop (its reviews oldest first), or null.
46
+ */
47
+ export declare function detectNonConvergingReviewLoop(reviewsNewestFirst: readonly ReviewVerdictRecord[], threshold: number): ReviewLoopDetection | null;
48
+ //# sourceMappingURL=review-loop-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-loop-detector.d.ts","sourceRoot":"","sources":["../../src/supervision/review-loop-detector.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAEhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,EAClD,SAAS,EAAE,MAAM,GAChB,mBAAmB,GAAG,IAAI,CAE5B"}
@@ -0,0 +1,13 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/supervision/review-loop-detector.test.ts
3
+ // PINNED-BY-END
4
+ import { evaluateStop } from './stop-registry.js';
5
+ /**
6
+ * Detect a non-converging loop over the focus's reviews since the arm, given
7
+ * NEWEST FIRST. `threshold` below 2 is read as 2 (one failing review is not a
8
+ * loop). Returns the loop (its reviews oldest first), or null.
9
+ */
10
+ export function detectNonConvergingReviewLoop(reviewsNewestFirst, threshold) {
11
+ return evaluateStop('review_loop_detected', { reviewsNewestFirst, threshold });
12
+ }
13
+ //# sourceMappingURL=review-loop-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-loop-detector.js","sourceRoot":"","sources":["../../src/supervision/review-loop-detector.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,gBAAgB;AA2ChB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAC3C,kBAAkD,EAClD,SAAiB;IAEjB,OAAO,YAAY,CAAC,sBAAsB,EAAE,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;AACjF,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { OpenReviewLoop } from '../queries/tower-decisions/tower-decisions.js';
2
+ /** The open-loop read (production: queries/tower-decisions listOpenReviewLoops, bound at the composition root). */
3
+ export interface ReviewLoopHoldDeps {
4
+ listOpenReviewLoops: (scope: {
5
+ focusId: string;
6
+ } | {
7
+ productId: string | null;
8
+ }) => Promise<OpenReviewLoop[]>;
9
+ }
10
+ /** Pure: whether a focus's open loops (null = the read failed) hold it. */
11
+ export declare function isReviewLoopHeld(openLoopIds: readonly string[] | null): boolean;
12
+ /** Test seam: clear the per-episode log throttle. */
13
+ export declare function __resetReviewLoopHoldLog(): void;
14
+ /** Resolve the hold for one focus (one read). */
15
+ export declare function resolveReviewLoopHold(focus: {
16
+ focusId: string;
17
+ focusName: string;
18
+ }, deps: ReviewLoopHoldDeps): Promise<boolean>;
19
+ /**
20
+ * A hold reader for the ready-focus gate: the open loops are read once per
21
+ * product for the reader's lifetime (create one per poll). A failed read holds
22
+ * every focus of that product.
23
+ */
24
+ export declare function createProductReviewLoopHoldReader(deps: ReviewLoopHoldDeps): (focus: {
25
+ focus_id: string;
26
+ focus_name: string;
27
+ product_id: string | null;
28
+ }) => Promise<boolean>;
29
+ //# sourceMappingURL=review-loop-hold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-loop-hold.d.ts","sourceRoot":"","sources":["../../src/supervision/review-loop-hold.ts"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAIpF,mHAAmH;AACnH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAC/G;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,GAAG,OAAO,CAE/E;AAKD,qDAAqD;AACrD,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAoBD,iDAAiD;AACjD,wBAAsB,qBAAqB,CACzC,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC7C,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,kBAAkB,GACvB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAsBlG"}
@@ -0,0 +1,99 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/supervision/review-loop-hold.test.ts
3
+ // PINNED-BY-END
4
+ /**
5
+ * The spawn-gate hold of a non-converging review loop: a focus carrying an
6
+ * OPEN loop_detected decision (recorded under its current arm, no
7
+ * loop_resolved naming it) spawns no coding or review pass. The condition is
8
+ * the review_loop_held stop-registry row (supervision/stop-rows-review-spawn.ts).
9
+ *
10
+ * The review exit records the decision when it detects the loop
11
+ * (completion/review-cycle-budget/review-loop-detection.ts) and hands it to
12
+ * the Tower supervisor; this module is what makes the record HOLD. It never
13
+ * un-arms the focus and spends no review cycle: the loop waits for a decision,
14
+ * not for a human to grant a budget.
15
+ *
16
+ * Read by the same gates, through the same resolver, as the spent review
17
+ * budget: supervision/review-cycle-cap-hold.ts resolveReviewCycleCapHold and
18
+ * createReadyFocusCapHoldReader consult it after the budget, so the ready-focus
19
+ * gate, the pending-directive pass, the tower's demand probe and the
20
+ * auto-review window hold on a loop exactly as they hold on a spent budget --
21
+ * the read the cap hold's async signature was kept for.
22
+ *
23
+ * Fails CLOSED: an unreadable decision record holds. Same reasoning as the
24
+ * budget's count read (workflow/gate-failure-policy.ts, safety class): the
25
+ * read repeats every poll, so a transient failure delays one poll, while a
26
+ * fail-open read would spawn the very pass the loop is held against. A server
27
+ * that predates the record answers `unknown_action`, which the query reads as
28
+ * no loops (queries/tower-decisions/tower-decisions.ts) -- no loop can exist
29
+ * there, so nothing is held for one.
30
+ *
31
+ * @module supervision/review-loop-hold
32
+ */
33
+ import { safetyGateFailsClosed } from '../workflow/gate-failure-policy.js';
34
+ import { createLogger } from '../log/daemon-log.js';
35
+ import { evaluateStop } from './stop-registry.js';
36
+ const log = createLogger({ module: 'focus' });
37
+ /** Pure: whether a focus's open loops (null = the read failed) hold it. */
38
+ export function isReviewLoopHeld(openLoopIds) {
39
+ return evaluateStop('review_loop_held', { openLoopIds });
40
+ }
41
+ /** Focuses whose held episode was already logged (one line per episode, not per poll). */
42
+ const heldLoggedFocuses = new Set();
43
+ /** Test seam: clear the per-episode log throttle. */
44
+ export function __resetReviewLoopHoldLog() {
45
+ heldLoggedFocuses.clear();
46
+ }
47
+ /** Decide and log (once per held episode) for a focus whose open loops were read. */
48
+ function decideAndLog(focus, openLoopIds) {
49
+ const held = isReviewLoopHeld(openLoopIds);
50
+ if (!held) {
51
+ heldLoggedFocuses.delete(focus.focusId);
52
+ }
53
+ else if (!heldLoggedFocuses.has(focus.focusId)) {
54
+ heldLoggedFocuses.add(focus.focusId);
55
+ log.info(`[review-loop-hold] "${focus.focusName}" is held by ` +
56
+ (openLoopIds === null
57
+ ? 'an unreadable decision record (fail closed)'
58
+ : `${openLoopIds.length} open non-converging review loop(s) (${openLoopIds.map((id) => id.slice(0, 8)).join(', ')})`) +
59
+ `: no coding or review pass spawns until a loop_resolved decision names each loop, or a new arm. The focus stays armed.`);
60
+ }
61
+ return held;
62
+ }
63
+ /** Resolve the hold for one focus (one read). */
64
+ export async function resolveReviewLoopHold(focus, deps) {
65
+ const ids = await deps.listOpenReviewLoops({ focusId: focus.focusId })
66
+ .then((loops) => loops.map((l) => l.towerDecisionId))
67
+ .catch((err) => safetyGateFailsClosed(`review-loop-hold read (focus ${focus.focusId.slice(0, 8)})`, err, null));
68
+ return decideAndLog(focus, ids);
69
+ }
70
+ /**
71
+ * A hold reader for the ready-focus gate: the open loops are read once per
72
+ * product for the reader's lifetime (create one per poll). A failed read holds
73
+ * every focus of that product.
74
+ */
75
+ export function createProductReviewLoopHoldReader(deps) {
76
+ const byProduct = new Map();
77
+ const read = (productId) => {
78
+ const key = productId ?? '';
79
+ let loops = byProduct.get(key);
80
+ if (!loops) {
81
+ loops = deps.listOpenReviewLoops({ productId })
82
+ .then((rows) => {
83
+ const map = new Map();
84
+ for (const r of rows)
85
+ map.set(r.focusId, [...(map.get(r.focusId) ?? []), r.towerDecisionId]);
86
+ return map;
87
+ })
88
+ .catch((err) => safetyGateFailsClosed(`review-loop-hold read (product ${key || '<none>'})`, err, null));
89
+ byProduct.set(key, loops);
90
+ }
91
+ return loops;
92
+ };
93
+ return async (focus) => {
94
+ const map = await read(focus.product_id);
95
+ const ids = map === null ? null : (map.get(focus.focus_id) ?? []);
96
+ return decideAndLog({ focusId: focus.focus_id, focusName: focus.focus_name }, ids);
97
+ };
98
+ }
99
+ //# sourceMappingURL=review-loop-hold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-loop-hold.js","sourceRoot":"","sources":["../../src/supervision/review-loop-hold.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,14 @@ export declare function resolveReviewCycleCap(): number;
12
12
  export declare function resolveIdleTeamStallHours(): number;
13
13
  /** Resolve the review-exit hand-off cap (env override or default 3). */
14
14
  export declare function resolveReviewHandoffCap(): number;
15
+ /**
16
+ * Resolve the non-converging review-loop threshold (env override or default 3):
17
+ * the consecutive reviews on which ONE criterion fails alone before the daemon
18
+ * holds the loop and calls the Tower supervisor
19
+ * (supervision/review-loop-detector.ts). Never below 2: one failing review is
20
+ * not a loop. Read raw pending the daemon-core republish that carries the field.
21
+ */
22
+ export declare function resolveReviewLoopThreshold(): number;
15
23
  /** Resolve the review-liveness window in minutes (env override or default 15). */
16
24
  export declare function resolveReviewLivenessWindowMinutes(): number;
17
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stall-detector-config.d.ts","sourceRoot":"","sources":["../../src/supervision/stall-detector-config.ts"],"names":[],"mappings":"AAqCA,uEAAuE;AACvE,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wFAAwF;AACxF,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AASD,wEAAwE;AACxE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,kFAAkF;AAClF,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAE5D;AAED,yFAAyF;AACzF,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,4FAA4F;AAC5F,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
1
+ {"version":3,"file":"stall-detector-config.d.ts","sourceRoot":"","sources":["../../src/supervision/stall-detector-config.ts"],"names":[],"mappings":"AAsCA,uEAAuE;AACvE,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wFAAwF;AACxF,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AASD,wEAAwE;AACxE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,kFAAkF;AAClF,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAE5D;AAED,yFAAyF;AACzF,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,4FAA4F;AAC5F,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
@@ -1,7 +1,8 @@
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/completion-event/stall-guard-time-floor.test.ts,
3
3
  // packages/daemon/src/focus/focus-poller-auto-advance-teamless-wedge.test.ts,
4
- // packages/daemon/src/supervision/stall-detectors-clock-wiring.test.ts
4
+ // packages/daemon/src/supervision/stall-detectors-clock-wiring.test.ts,
5
+ // packages/daemon/src/tower/tower-supervisor.test.ts
5
6
  // PINNED-BY-END
6
7
  /**
7
8
  * Single in-daemon source for the stall-detector thresholds.
@@ -52,7 +53,7 @@ export function resolveReviewCycleCap() {
52
53
  export function resolveIdleTeamStallHours() {
53
54
  return loadEnvConfig().TELORA_IDLE_TEAM_STALL_HOURS;
54
55
  }
55
- // NOTE: the four resolvers below read process.env RAW (via rawPositiveNumber)
56
+ // NOTE: the resolvers below read process.env RAW (via rawPositiveNumber)
56
57
  // rather than loadEnvConfig() because their knobs are PENDING a daemon-core
57
58
  // republish (see rawPositiveNumber). The canonical declarations already live in
58
59
  // packages/daemon-core/src/env-config.ts; switch these to loadEnvConfig() and
@@ -60,7 +61,17 @@ export function resolveIdleTeamStallHours() {
60
61
  // is republished + pinned.
61
62
  /** Resolve the review-exit hand-off cap (env override or default 3). */
62
63
  export function resolveReviewHandoffCap() {
63
- return parsePositive(process.env.TELORA_REVIEW_HANDOFF_CAP, 3);
64
+ return loadEnvConfig().TELORA_REVIEW_HANDOFF_CAP;
65
+ }
66
+ /**
67
+ * Resolve the non-converging review-loop threshold (env override or default 3):
68
+ * the consecutive reviews on which ONE criterion fails alone before the daemon
69
+ * holds the loop and calls the Tower supervisor
70
+ * (supervision/review-loop-detector.ts). Never below 2: one failing review is
71
+ * not a loop. Read raw pending the daemon-core republish that carries the field.
72
+ */
73
+ export function resolveReviewLoopThreshold() {
74
+ return Math.max(2, Math.floor(parsePositive(process.env.TELORA_REVIEW_LOOP_THRESHOLD, 3)));
64
75
  }
65
76
  /** Resolve the review-liveness window in minutes (env override or default 15). */
66
77
  export function resolveReviewLivenessWindowMinutes() {
@@ -1 +1 @@
1
- {"version":3,"file":"stall-detector-config.js","sourceRoot":"","sources":["../../src/supervision/stall-detector-config.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,6FAA6F;AAC7F,gFAAgF;AAChF,yEAAyE;AACzE,gBAAgB;AAEhB;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,GAAuB,EAAE,QAAgB;IAC9D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,sBAAsB;IACpC,OAAO,aAAa,EAAE,CAAC,kCAAkC,CAAC;AAC5D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,6BAA6B;IAC3C,OAAO,aAAa,EAAE,CAAC,gCAAgC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,aAAa,EAAE,CAAC,uBAAuB,CAAC;AACjD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,EAAE,CAAC,4BAA4B,CAAC;AACtD,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,2BAA2B;AAE3B,wEAAwE;AACxE,MAAM,UAAU,uBAAuB;IACrC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kCAAkC;IAChD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,2BAA2B;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,2BAA2B;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iCAAiC;IAC/C,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"stall-detector-config.js","sourceRoot":"","sources":["../../src/supervision/stall-detector-config.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,6FAA6F;AAC7F,gFAAgF;AAChF,0EAA0E;AAC1E,uDAAuD;AACvD,gBAAgB;AAEhB;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,GAAuB,EAAE,QAAgB;IAC9D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,sBAAsB;IACpC,OAAO,aAAa,EAAE,CAAC,kCAAkC,CAAC;AAC5D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,6BAA6B;IAC3C,OAAO,aAAa,EAAE,CAAC,gCAAgC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,aAAa,EAAE,CAAC,uBAAuB,CAAC;AACjD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,EAAE,CAAC,4BAA4B,CAAC;AACtD,CAAC;AAED,yEAAyE;AACzE,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,2BAA2B;AAE3B,wEAAwE;AACxE,MAAM,UAAU,uBAAuB;IACrC,OAAO,aAAa,EAAE,CAAC,yBAAyB,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kCAAkC;IAChD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,2BAA2B;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,2BAA2B;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iCAAiC;IAC/C,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -70,6 +70,9 @@ export declare const STOP_REGISTRY: {
70
70
  readonly review_handoff_breaker_hold: StopRow<import("./stop-rows-review-spawn.js").ReviewHandoffBreakerHoldFacts, boolean>;
71
71
  readonly review_spawn_coverage_guard: StopRow<import("./stop-rows-review-spawn.js").ReviewSpawnCoverageGuardFacts, boolean>;
72
72
  readonly review_hold_park: StopRow<import("./stop-rows-review-spawn.js").ReviewHoldParkFacts, boolean>;
73
+ } & {
74
+ readonly review_loop_detected: StopRow<import("./stop-rows-review-loop.js").ReviewLoopDetectionFacts, import("./stop-rows-review-loop.js").ReviewLoopDetection | null>;
75
+ readonly review_loop_held: StopRow<import("./stop-rows-review-loop.js").ReviewLoopHeldFacts, boolean>;
73
76
  } & {
74
77
  readonly operator_hold: StopRow<import("./stop-rows-delivery.js").OperatorHoldFacts, boolean>;
75
78
  readonly operator_hold_escalation: StopRow<import("./stop-rows-delivery.js").OperatorHoldEscalationFacts, import("./stop-rows-delivery.js").OperatorHoldEscalationVerdict>;
@@ -1 +1 @@
1
- {"version":3,"file":"stop-registry.d.ts","sourceRoot":"","sources":["../../src/supervision/stop-registry.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAYnE,8CAA8C;AAC9C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;AACxC,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAEtF,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEjD,uCAAuC;AACvC,wBAAgB,YAAY,IAAI,SAAS,UAAU,EAAE,CAEpD;AAED,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAI1E;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAEpF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAK7F;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAGjF;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;CAAE,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE,CAQxE"}
1
+ {"version":3,"file":"stop-registry.d.ts","sourceRoot":"","sources":["../../src/supervision/stop-registry.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAanE,8CAA8C;AAC9C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYzB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;AACxC,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAEtF,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAEjD,uCAAuC;AACvC,wBAAgB,YAAY,IAAI,SAAS,UAAU,EAAE,CAEpD;AAED,2DAA2D;AAC3D,MAAM,MAAM,sBAAsB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAI1E;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAEpF;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAK7F;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAGjF;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qDAAqD;AACrD,MAAM,MAAM,aAAa,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;CAAE,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,aAAa,GAAG,cAAc,EAAE,CAQxE"}
@@ -1,6 +1,7 @@
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/completion-event/stall-termination-authority.test.ts,
3
3
  // packages/daemon/src/focus-stage-lifecycle/ratify-bar-gate.test.ts,
4
+ // packages/daemon/src/supervision/review-loop-detector.test.ts,
4
5
  // packages/daemon/src/supervision/stop-inventory.test.ts,
5
6
  // packages/daemon/src/supervision/stop-progress-record.test.ts,
6
7
  // packages/daemon/src/supervision/stop-registry.test.ts
@@ -34,13 +35,14 @@ import { COMPLETION_STALL_STOP_ROWS } from './stop-rows-completion-stall.js';
34
35
  import { TEAM_SESSION_STOP_ROWS } from './stop-rows-team-session.js';
35
36
  import { SPAWN_STOP_ROWS } from './stop-rows-spawn.js';
36
37
  import { REVIEW_SPAWN_STOP_ROWS } from './stop-rows-review-spawn.js';
38
+ import { REVIEW_LOOP_STOP_ROWS } from './stop-rows-review-loop.js';
37
39
  import { DELIVERY_STOP_ROWS } from './stop-rows-delivery.js';
38
40
  import { VERIFY_RERUN_STOP_ROWS } from './stop-rows-verify-rerun.js';
39
41
  import { FOCUS_HEALTH_STOP_ROWS } from './stop-rows-focus-health.js';
40
42
  import { TEAM_REGISTRATION_STOP_ROWS } from './stop-rows-team-registration.js';
41
43
  import { WORK_HOLD_STOP_ROWS } from './stop-rows-work-holds.js';
42
44
  /** Every registered stop, keyed by row id. */
43
- export const STOP_REGISTRY = combineStopRowTables(TEAM_STALL_STOP_ROWS, COMPLETION_STALL_STOP_ROWS, TEAM_SESSION_STOP_ROWS, SPAWN_STOP_ROWS, REVIEW_SPAWN_STOP_ROWS, DELIVERY_STOP_ROWS, VERIFY_RERUN_STOP_ROWS, FOCUS_HEALTH_STOP_ROWS, TEAM_REGISTRATION_STOP_ROWS, WORK_HOLD_STOP_ROWS);
45
+ export const STOP_REGISTRY = combineStopRowTables(TEAM_STALL_STOP_ROWS, COMPLETION_STALL_STOP_ROWS, TEAM_SESSION_STOP_ROWS, SPAWN_STOP_ROWS, REVIEW_SPAWN_STOP_ROWS, REVIEW_LOOP_STOP_ROWS, DELIVERY_STOP_ROWS, VERIFY_RERUN_STOP_ROWS, FOCUS_HEALTH_STOP_ROWS, TEAM_REGISTRATION_STOP_ROWS, WORK_HOLD_STOP_ROWS);
44
46
  /** Every row, in declaration order. */
45
47
  export function listStopRows() {
46
48
  return Object.values(STOP_REGISTRY);
@@ -1 +1 @@
1
- {"version":3,"file":"stop-registry.js","sourceRoot":"","sources":["../../src/supervision/stop-registry.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,kGAAkG;AAClG,uEAAuE;AACvE,4DAA4D;AAC5D,kEAAkE;AAClE,0DAA0D;AAC1D,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,oBAAoB,EAAgB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAC/C,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,CACpB,CAAC;AAUF,uCAAuC;AACvC,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAqC,CAAC;AAC1E,CAAC;AAKD,IAAI,kBAAkB,GAAkC,IAAI,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAuC;IAC5E,kBAAkB,GAAG,QAAQ,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAmB,EAAK,EAAE,KAAqB;IACzE,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAyD,CAAC;IACtF,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,kBAAkB,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAmB,EAAK,EAAE,KAAqB;IACtE,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAyD,CAAC;IACtF,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,SAAwB;IACpD,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAa,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC;YAAE,SAAS;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAA2B,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"stop-registry.js","sourceRoot":"","sources":["../../src/supervision/stop-registry.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,kGAAkG;AAClG,uEAAuE;AACvE,kEAAkE;AAClE,4DAA4D;AAC5D,kEAAkE;AAClE,0DAA0D;AAC1D,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,oBAAoB,EAAgB,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,8CAA8C;AAC9C,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAC/C,oBAAoB,EACpB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,mBAAmB,CACpB,CAAC;AAUF,uCAAuC;AACvC,MAAM,UAAU,YAAY;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAqC,CAAC;AAC1E,CAAC;AAKD,IAAI,kBAAkB,GAAkC,IAAI,CAAC;AAE7D;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAuC;IAC5E,kBAAkB,GAAG,QAAQ,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAmB,EAAK,EAAE,KAAqB;IACzE,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAyD,CAAC;IACtF,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpC,kBAAkB,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAmB,EAAK,EAAE,KAAqB;IACtE,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAyD,CAAC;IACtF,OAAO,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5C,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,SAAwB;IACpD,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAa,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC;YAAE,SAAS;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAA2B,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { ReviewVerdictRecord } from '../queries/focus-review/review-criterion-verdicts.js';
2
+ /** One review of a detected loop, oldest first. */
3
+ export interface ReviewLoopRound {
4
+ reviewId: string;
5
+ completedAt: string;
6
+ /** The blocking issues this review named against the criterion. */
7
+ blockingIssueIds: string[];
8
+ /** Of those, the ones no earlier review of the loop named. */
9
+ newBlockingIssueIds: string[];
10
+ }
11
+ /** A detected non-converging loop: the criterion and the reviews that show it. */
12
+ export interface ReviewLoopDetection {
13
+ criterionKey: string;
14
+ criterion: string;
15
+ nodeId: string | null;
16
+ /** The N reviews, OLDEST first. */
17
+ rounds: ReviewLoopRound[];
18
+ }
19
+ /** Facts for the non-converging review-loop detection (read at a review-session exit). */
20
+ export interface ReviewLoopDetectionFacts {
21
+ /** The focus's verdict-bearing reviews since the arm, NEWEST first (focus_reviews.criterion_verdicts). */
22
+ reviewsNewestFirst: readonly ReviewVerdictRecord[];
23
+ /** TELORA_REVIEW_LOOP_THRESHOLD. */
24
+ threshold: number;
25
+ }
26
+ /** Facts for the standing review-loop hold. `null` = the decision read failed. */
27
+ export interface ReviewLoopHeldFacts {
28
+ /** The focus's open loop_detected decisions (no loop_resolved names them; current arm). */
29
+ openLoopIds: readonly string[] | null;
30
+ }
31
+ export declare const REVIEW_LOOP_STOP_ROWS: {
32
+ readonly review_loop_detected: import("./stop-row.js").StopRow<ReviewLoopDetectionFacts, ReviewLoopDetection | null>;
33
+ readonly review_loop_held: import("./stop-row.js").StopRow<ReviewLoopHeldFacts, boolean>;
34
+ };
35
+ //# sourceMappingURL=stop-rows-review-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stop-rows-review-loop.d.ts","sourceRoot":"","sources":["../../src/supervision/stop-rows-review-loop.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sDAAsD,CAAC;AAEhG,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,8DAA8D;IAC9D,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,mCAAmC;IACnC,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAkDD,0FAA0F;AAC1F,MAAM,WAAW,wBAAwB;IACvC,0GAA0G;IAC1G,kBAAkB,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAmB;IAClC,2FAA2F;IAC3F,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;CACvC;AAYD,eAAO,MAAM,qBAAqB;;;CA6ExB,CAAC"}