@telora/daemon 0.21.98 → 0.21.144

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 (416) hide show
  1. package/build-info.json +6 -3
  2. package/dist/audit/audit-hooks.d.ts +120 -5
  3. package/dist/audit/audit-hooks.d.ts.map +1 -1
  4. package/dist/audit/audit-hooks.js +205 -45
  5. package/dist/audit/audit-hooks.js.map +1 -1
  6. package/dist/ci/ci-escalation.js +1 -1
  7. package/dist/ci/ci-escalation.js.map +1 -1
  8. package/dist/ci/ci-sensor-loop.d.ts +30 -0
  9. package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
  10. package/dist/ci/ci-sensor-loop.js +85 -12
  11. package/dist/ci/ci-sensor-loop.js.map +1 -1
  12. package/dist/cli/connect/config-write.d.ts +87 -0
  13. package/dist/cli/connect/config-write.d.ts.map +1 -0
  14. package/dist/cli/connect/config-write.js +255 -0
  15. package/dist/cli/connect/config-write.js.map +1 -0
  16. package/dist/cli/connect/registration.d.ts +76 -0
  17. package/dist/cli/connect/registration.d.ts.map +1 -0
  18. package/dist/cli/connect/registration.js +207 -0
  19. package/dist/cli/connect/registration.js.map +1 -0
  20. package/dist/cli/connect.d.ts +3 -141
  21. package/dist/cli/connect.d.ts.map +1 -1
  22. package/dist/cli/connect.js +9 -441
  23. package/dist/cli/connect.js.map +1 -1
  24. package/dist/completion/coverage-drift-state.d.ts +29 -2
  25. package/dist/completion/coverage-drift-state.d.ts.map +1 -1
  26. package/dist/completion/coverage-drift-state.js +42 -2
  27. package/dist/completion/coverage-drift-state.js.map +1 -1
  28. package/dist/completion/coverage-stabilized.d.ts +58 -0
  29. package/dist/completion/coverage-stabilized.d.ts.map +1 -0
  30. package/dist/completion/coverage-stabilized.js +84 -0
  31. package/dist/completion/coverage-stabilized.js.map +1 -0
  32. package/dist/completion/delivery-advancement-guard.d.ts +21 -0
  33. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  34. package/dist/completion/delivery-advancement-guard.js +31 -3
  35. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  36. package/dist/completion/escalation-provenance.d.ts +2 -1
  37. package/dist/completion/escalation-provenance.d.ts.map +1 -1
  38. package/dist/completion/escalation-provenance.js +2 -1
  39. package/dist/completion/escalation-provenance.js.map +1 -1
  40. package/dist/completion/escalations.js +1 -1
  41. package/dist/completion/escalations.js.map +1 -1
  42. package/dist/completion/event-escalations.d.ts +16 -1
  43. package/dist/completion/event-escalations.d.ts.map +1 -1
  44. package/dist/completion/event-escalations.js +43 -5
  45. package/dist/completion/event-escalations.js.map +1 -1
  46. package/dist/completion/event-phases.d.ts.map +1 -1
  47. package/dist/completion/event-phases.js +5 -2
  48. package/dist/completion/event-phases.js.map +1 -1
  49. package/dist/completion/event.d.ts +1 -1
  50. package/dist/completion/event.d.ts.map +1 -1
  51. package/dist/completion/event.js +2 -2
  52. package/dist/completion/event.js.map +1 -1
  53. package/dist/completion/machine-remediable-demotion.d.ts +74 -0
  54. package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
  55. package/dist/completion/machine-remediable-demotion.js +148 -0
  56. package/dist/completion/machine-remediable-demotion.js.map +1 -0
  57. package/dist/completion/read-only-pristine.d.ts +1 -1
  58. package/dist/completion/read-only-pristine.d.ts.map +1 -1
  59. package/dist/completion/read-only-pristine.js +1 -1
  60. package/dist/completion/read-only-pristine.js.map +1 -1
  61. package/dist/completion/review-exit-escalations.d.ts +1 -1
  62. package/dist/completion/review-exit-escalations.d.ts.map +1 -1
  63. package/dist/completion/review-exit-phase.d.ts +5 -2
  64. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  65. package/dist/completion/review-exit-phase.js +15 -8
  66. package/dist/completion/review-exit-phase.js.map +1 -1
  67. package/dist/completion/settle-injection-sweep.d.ts +55 -0
  68. package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
  69. package/dist/completion/settle-injection-sweep.js +88 -0
  70. package/dist/completion/settle-injection-sweep.js.map +1 -0
  71. package/dist/completion/state-cascade.d.ts.map +1 -1
  72. package/dist/completion/state-cascade.js +42 -1
  73. package/dist/completion/state-cascade.js.map +1 -1
  74. package/dist/completion/status-advance-phase.d.ts.map +1 -1
  75. package/dist/completion/status-advance-phase.js +18 -0
  76. package/dist/completion/status-advance-phase.js.map +1 -1
  77. package/dist/completion/team-lifecycle.d.ts +42 -0
  78. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  79. package/dist/completion/team-lifecycle.js +73 -1
  80. package/dist/completion/team-lifecycle.js.map +1 -1
  81. package/dist/delivery/delivery-advance-block.d.ts +1 -1
  82. package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
  83. package/dist/delivery/delivery-advance-block.js +1 -1
  84. package/dist/delivery/delivery-advance-block.js.map +1 -1
  85. package/dist/delivery/delivery-lifecycle.d.ts +19 -33
  86. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  87. package/dist/delivery/delivery-lifecycle.js +20 -148
  88. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  89. package/dist/delivery/delivery-merge-ops.d.ts +46 -0
  90. package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
  91. package/dist/delivery/delivery-merge-ops.js +154 -0
  92. package/dist/delivery/delivery-merge-ops.js.map +1 -0
  93. package/dist/delivery/delivery-reconciler-apply.d.ts +28 -0
  94. package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
  95. package/dist/delivery/delivery-reconciler-apply.js +30 -0
  96. package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
  97. package/dist/delivery/delivery-reconciler-shadow.d.ts +1 -1
  98. package/dist/delivery/delivery-reconciler-shadow.d.ts.map +1 -1
  99. package/dist/delivery/delivery-reconciler-shadow.js +1 -1
  100. package/dist/delivery/delivery-reconciler-shadow.js.map +1 -1
  101. package/dist/delivery/delivery-reconciler.d.ts +7 -2
  102. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  103. package/dist/delivery/delivery-reconciler.js +34 -5
  104. package/dist/delivery/delivery-reconciler.js.map +1 -1
  105. package/dist/delivery/external-hold-surface.d.ts +32 -0
  106. package/dist/delivery/external-hold-surface.d.ts.map +1 -0
  107. package/dist/delivery/external-hold-surface.js +67 -0
  108. package/dist/delivery/external-hold-surface.js.map +1 -0
  109. package/dist/delivery/external-hold.d.ts +21 -0
  110. package/dist/delivery/external-hold.d.ts.map +1 -1
  111. package/dist/delivery/external-hold.js +40 -5
  112. package/dist/delivery/external-hold.js.map +1 -1
  113. package/dist/delivery/operator-hold.d.ts +1 -1
  114. package/dist/delivery/operator-hold.d.ts.map +1 -1
  115. package/dist/delivery/paused-revival.d.ts +140 -0
  116. package/dist/delivery/paused-revival.d.ts.map +1 -0
  117. package/dist/delivery/paused-revival.js +230 -0
  118. package/dist/delivery/paused-revival.js.map +1 -0
  119. package/dist/delivery/wait-reachability.d.ts.map +1 -1
  120. package/dist/delivery/wait-reachability.js +11 -0
  121. package/dist/delivery/wait-reachability.js.map +1 -1
  122. package/dist/directive/close-loop-dispatcher.d.ts +16 -263
  123. package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
  124. package/dist/directive/close-loop-dispatcher.js +21 -259
  125. package/dist/directive/close-loop-dispatcher.js.map +1 -1
  126. package/dist/directive/directive-dispatch.d.ts +20 -1
  127. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  128. package/dist/directive/directive-dispatch.js +19 -1
  129. package/dist/directive/directive-dispatch.js.map +1 -1
  130. package/dist/directive/directive-executor.d.ts +1 -3
  131. package/dist/directive/directive-executor.d.ts.map +1 -1
  132. package/dist/directive/directive-executor.js +24 -22
  133. package/dist/directive/directive-executor.js.map +1 -1
  134. package/dist/directive/phase-sync.d.ts +28 -15
  135. package/dist/directive/phase-sync.d.ts.map +1 -1
  136. package/dist/directive/phase-sync.js +28 -36
  137. package/dist/directive/phase-sync.js.map +1 -1
  138. package/dist/directive/resolver-dispatch.d.ts +19 -92
  139. package/dist/directive/resolver-dispatch.d.ts.map +1 -1
  140. package/dist/directive/resolver-dispatch.js +19 -65
  141. package/dist/directive/resolver-dispatch.js.map +1 -1
  142. package/dist/drift/staleness-sensor.js +1 -1
  143. package/dist/drift/staleness-sensor.js.map +1 -1
  144. package/dist/focus/focus-engine.d.ts.map +1 -1
  145. package/dist/focus/focus-engine.js +29 -2
  146. package/dist/focus/focus-engine.js.map +1 -1
  147. package/dist/focus/focus-executor.d.ts.map +1 -1
  148. package/dist/focus/focus-executor.js +290 -256
  149. package/dist/focus/focus-executor.js.map +1 -1
  150. package/dist/focus/focus-lifecycle.d.ts.map +1 -1
  151. package/dist/focus/focus-lifecycle.js +2 -1
  152. package/dist/focus/focus-lifecycle.js.map +1 -1
  153. package/dist/focus/focus-loop-registry.d.ts.map +1 -1
  154. package/dist/focus/focus-loop-registry.js +43 -1
  155. package/dist/focus/focus-loop-registry.js.map +1 -1
  156. package/dist/focus/focus-respawn-guard.d.ts +1 -1
  157. package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
  158. package/dist/focus/focus-respawn-guard.js +12 -3
  159. package/dist/focus/focus-respawn-guard.js.map +1 -1
  160. package/dist/focus/focus-team-state.d.ts +11 -0
  161. package/dist/focus/focus-team-state.d.ts.map +1 -1
  162. package/dist/focus/focus-team-state.js +17 -0
  163. package/dist/focus/focus-team-state.js.map +1 -1
  164. package/dist/focus/listener-auto-advance.d.ts +17 -46
  165. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  166. package/dist/focus/listener-auto-advance.js +104 -256
  167. package/dist/focus/listener-auto-advance.js.map +1 -1
  168. package/dist/focus/listener-spawn.d.ts +62 -0
  169. package/dist/focus/listener-spawn.d.ts.map +1 -0
  170. package/dist/focus/listener-spawn.js +418 -0
  171. package/dist/focus/listener-spawn.js.map +1 -0
  172. package/dist/focus/listener-state.d.ts +57 -0
  173. package/dist/focus/listener-state.d.ts.map +1 -0
  174. package/dist/focus/listener-state.js +63 -0
  175. package/dist/focus/listener-state.js.map +1 -0
  176. package/dist/focus/listener.d.ts +0 -58
  177. package/dist/focus/listener.d.ts.map +1 -1
  178. package/dist/focus/listener.js +138 -516
  179. package/dist/focus/listener.js.map +1 -1
  180. package/dist/focus/tick-deadline.d.ts +55 -0
  181. package/dist/focus/tick-deadline.d.ts.map +1 -0
  182. package/dist/focus/tick-deadline.js +91 -0
  183. package/dist/focus/tick-deadline.js.map +1 -0
  184. package/dist/focus/verify-open-issues.d.ts +62 -0
  185. package/dist/focus/verify-open-issues.d.ts.map +1 -0
  186. package/dist/focus/verify-open-issues.js +265 -0
  187. package/dist/focus/verify-open-issues.js.map +1 -0
  188. package/dist/focus-stage-lifecycle/index.d.ts +19 -26
  189. package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
  190. package/dist/focus-stage-lifecycle/index.js +27 -39
  191. package/dist/focus-stage-lifecycle/index.js.map +1 -1
  192. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
  193. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
  194. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
  195. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
  196. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
  197. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  198. package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
  199. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  200. package/dist/git/index.d.ts +2 -0
  201. package/dist/git/index.d.ts.map +1 -1
  202. package/dist/git/index.js +2 -0
  203. package/dist/git/index.js.map +1 -1
  204. package/dist/git/merge-strategies.d.ts +80 -0
  205. package/dist/git/merge-strategies.d.ts.map +1 -0
  206. package/dist/git/merge-strategies.js +218 -0
  207. package/dist/git/merge-strategies.js.map +1 -0
  208. package/dist/git/merge-to-main.d.ts +76 -0
  209. package/dist/git/merge-to-main.d.ts.map +1 -0
  210. package/dist/git/merge-to-main.js +256 -0
  211. package/dist/git/merge-to-main.js.map +1 -0
  212. package/dist/git/merge.d.ts +27 -81
  213. package/dist/git/merge.d.ts.map +1 -1
  214. package/dist/git/merge.js +4 -448
  215. package/dist/git/merge.js.map +1 -1
  216. package/dist/git/state-detector.js +1 -1
  217. package/dist/git/state-detector.js.map +1 -1
  218. package/dist/guard/condition-evaluators.d.ts +9 -0
  219. package/dist/guard/condition-evaluators.d.ts.map +1 -1
  220. package/dist/guard/condition-evaluators.js +15 -0
  221. package/dist/guard/condition-evaluators.js.map +1 -1
  222. package/dist/guard/guard-evaluator.d.ts +17 -1
  223. package/dist/guard/guard-evaluator.d.ts.map +1 -1
  224. package/dist/guard/guard-evaluator.js +61 -2
  225. package/dist/guard/guard-evaluator.js.map +1 -1
  226. package/dist/guard/trigger-executor.d.ts +30 -18
  227. package/dist/guard/trigger-executor.d.ts.map +1 -1
  228. package/dist/guard/trigger-executor.js +55 -31
  229. package/dist/guard/trigger-executor.js.map +1 -1
  230. package/dist/loops/engine.js +1 -1
  231. package/dist/loops/engine.js.map +1 -1
  232. package/dist/merge/focus-merge.d.ts +1 -1
  233. package/dist/merge/focus-merge.d.ts.map +1 -1
  234. package/dist/merge/focus-merge.js +1 -1
  235. package/dist/merge/focus-merge.js.map +1 -1
  236. package/dist/merge/merge-back-loop.d.ts +1 -1
  237. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  238. package/dist/merge/merge-back-loop.js +2 -2
  239. package/dist/merge/merge-back-loop.js.map +1 -1
  240. package/dist/merge/merge-detector.js +1 -1
  241. package/dist/merge/merge-detector.js.map +1 -1
  242. package/dist/nexus/return.js +1 -1
  243. package/dist/nexus/return.js.map +1 -1
  244. package/dist/prd/controller-shared.d.ts +223 -0
  245. package/dist/prd/controller-shared.d.ts.map +1 -0
  246. package/dist/prd/controller-shared.js +77 -0
  247. package/dist/prd/controller-shared.js.map +1 -0
  248. package/dist/prd/controller.d.ts +5 -256
  249. package/dist/prd/controller.d.ts.map +1 -1
  250. package/dist/prd/controller.js +9 -166
  251. package/dist/prd/controller.js.map +1 -1
  252. package/dist/prd/done-sweep.d.ts +55 -0
  253. package/dist/prd/done-sweep.d.ts.map +1 -0
  254. package/dist/prd/done-sweep.js +112 -0
  255. package/dist/prd/done-sweep.js.map +1 -0
  256. package/dist/prompt/team-prompt-base.d.ts +1 -1
  257. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  258. package/dist/prompt/team-prompt-base.js +1 -1
  259. package/dist/prompt/team-prompt-base.js.map +1 -1
  260. package/dist/prompt-sections/execution-sections.d.ts +1 -1
  261. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  262. package/dist/prompt-sections/execution-sections.js +12 -2
  263. package/dist/prompt-sections/execution-sections.js.map +1 -1
  264. package/dist/prompt-sections/persona-sections.d.ts +0 -32
  265. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  266. package/dist/prompt-sections/persona-sections.js +19 -88
  267. package/dist/prompt-sections/persona-sections.js.map +1 -1
  268. package/dist/prompt-sections/shared.d.ts +1 -1
  269. package/dist/prompt-sections/shared.d.ts.map +1 -1
  270. package/dist/queries/agent-resolvable-promotion.d.ts +1 -1
  271. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  272. package/dist/queries/agent-resolvable-promotion.js +2 -1
  273. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  274. package/dist/queries/deliveries.d.ts +0 -172
  275. package/dist/queries/deliveries.d.ts.map +1 -1
  276. package/dist/queries/deliveries.js +1 -77
  277. package/dist/queries/deliveries.js.map +1 -1
  278. package/dist/queries/escalation-consumption.d.ts +120 -0
  279. package/dist/queries/escalation-consumption.d.ts.map +1 -0
  280. package/dist/queries/escalation-consumption.js +143 -0
  281. package/dist/queries/escalation-consumption.js.map +1 -0
  282. package/dist/queries/escalation-dispositions.d.ts +19 -0
  283. package/dist/queries/escalation-dispositions.d.ts.map +1 -0
  284. package/dist/queries/escalation-dispositions.js +18 -0
  285. package/dist/queries/escalation-dispositions.js.map +1 -0
  286. package/dist/queries/escalation-suppression.d.ts +1 -1
  287. package/dist/queries/escalation-suppression.d.ts.map +1 -1
  288. package/dist/queries/escalation-suppression.js +1 -1
  289. package/dist/queries/escalation-suppression.js.map +1 -1
  290. package/dist/queries/escalations.d.ts +343 -0
  291. package/dist/queries/escalations.d.ts.map +1 -0
  292. package/dist/queries/escalations.js +493 -0
  293. package/dist/queries/escalations.js.map +1 -0
  294. package/dist/queries/focus-discovery.d.ts +204 -0
  295. package/dist/queries/focus-discovery.d.ts.map +1 -0
  296. package/dist/queries/focus-discovery.js +92 -0
  297. package/dist/queries/focus-discovery.js.map +1 -0
  298. package/dist/queries/focuses.d.ts +36 -0
  299. package/dist/queries/focuses.d.ts.map +1 -1
  300. package/dist/queries/focuses.js +45 -0
  301. package/dist/queries/focuses.js.map +1 -1
  302. package/dist/queries/guards.d.ts +10 -0
  303. package/dist/queries/guards.d.ts.map +1 -1
  304. package/dist/queries/guards.js +14 -1
  305. package/dist/queries/guards.js.map +1 -1
  306. package/dist/queries/index.d.ts +4 -2
  307. package/dist/queries/index.d.ts.map +1 -1
  308. package/dist/queries/index.js +4 -2
  309. package/dist/queries/index.js.map +1 -1
  310. package/dist/queries/issues.d.ts +8 -372
  311. package/dist/queries/issues.d.ts.map +1 -1
  312. package/dist/queries/issues.js +7 -482
  313. package/dist/queries/issues.js.map +1 -1
  314. package/dist/queries/schemas.d.ts +51 -0
  315. package/dist/queries/schemas.d.ts.map +1 -1
  316. package/dist/queries/schemas.js +34 -0
  317. package/dist/queries/schemas.js.map +1 -1
  318. package/dist/queries/verification.d.ts +5 -6
  319. package/dist/queries/verification.d.ts.map +1 -1
  320. package/dist/queries/verification.js +5 -6
  321. package/dist/queries/verification.js.map +1 -1
  322. package/dist/resolvers/agent-escalations.d.ts +20 -0
  323. package/dist/resolvers/agent-escalations.d.ts.map +1 -1
  324. package/dist/resolvers/agent-escalations.js +40 -10
  325. package/dist/resolvers/agent-escalations.js.map +1 -1
  326. package/dist/resolvers/index.d.ts +2 -2
  327. package/dist/resolvers/index.d.ts.map +1 -1
  328. package/dist/resolvers/index.js +1 -1
  329. package/dist/resolvers/index.js.map +1 -1
  330. package/dist/resolvers/loop-persona.d.ts +1 -11
  331. package/dist/resolvers/loop-persona.d.ts.map +1 -1
  332. package/dist/resolvers/loop-persona.js +2 -16
  333. package/dist/resolvers/loop-persona.js.map +1 -1
  334. package/dist/resolvers/shared/git-diff.d.ts +99 -18
  335. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  336. package/dist/resolvers/shared/git-diff.js +98 -27
  337. package/dist/resolvers/shared/git-diff.js.map +1 -1
  338. package/dist/shell/control-state.d.ts +1 -1
  339. package/dist/shell/control-state.d.ts.map +1 -1
  340. package/dist/shell/control-state.js +1 -1
  341. package/dist/shell/control-state.js.map +1 -1
  342. package/dist/shell/crash-recovery.d.ts +1 -1
  343. package/dist/shell/crash-recovery.d.ts.map +1 -1
  344. package/dist/shell/crash-recovery.js +2 -2
  345. package/dist/shell/crash-recovery.js.map +1 -1
  346. package/dist/shell/install-probe-tick.d.ts +1 -1
  347. package/dist/shell/install-probe-tick.d.ts.map +1 -1
  348. package/dist/shell/install-probe-tick.js +1 -1
  349. package/dist/shell/install-probe-tick.js.map +1 -1
  350. package/dist/shell/unified-shell-provisioning.d.ts +40 -0
  351. package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
  352. package/dist/shell/unified-shell-provisioning.js +72 -0
  353. package/dist/shell/unified-shell-provisioning.js.map +1 -1
  354. package/dist/shell/unified-shell.d.ts.map +1 -1
  355. package/dist/shell/unified-shell.js +19 -2
  356. package/dist/shell/unified-shell.js.map +1 -1
  357. package/dist/spawn/helpers.d.ts.map +1 -1
  358. package/dist/spawn/helpers.js +6 -1
  359. package/dist/spawn/helpers.js.map +1 -1
  360. package/dist/spawn/model-routing.d.ts +1 -1
  361. package/dist/spawn/model-routing.d.ts.map +1 -1
  362. package/dist/spawn/model-routing.js +1 -1
  363. package/dist/spawn/model-routing.js.map +1 -1
  364. package/dist/spawn/process-spawn.d.ts.map +1 -1
  365. package/dist/spawn/process-spawn.js +7 -0
  366. package/dist/spawn/process-spawn.js.map +1 -1
  367. package/dist/spawn/prompt-assembly.d.ts +1 -1
  368. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  369. package/dist/spawn/prompt-assembly.js +1 -1
  370. package/dist/spawn/prompt-assembly.js.map +1 -1
  371. package/dist/spawn/spawn-cooldown.d.ts +41 -7
  372. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  373. package/dist/spawn/spawn-cooldown.js +47 -0
  374. package/dist/spawn/spawn-cooldown.js.map +1 -1
  375. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  376. package/dist/spawn/spawn-decision.js +34 -2
  377. package/dist/spawn/spawn-decision.js.map +1 -1
  378. package/dist/spawn/worktree-session.d.ts +1 -1
  379. package/dist/spawn/worktree-session.d.ts.map +1 -1
  380. package/dist/spawn/worktree-session.js +1 -1
  381. package/dist/spawn/worktree-session.js.map +1 -1
  382. package/dist/templates/claude-md.d.ts +1 -1
  383. package/dist/templates/claude-md.d.ts.map +1 -1
  384. package/dist/templates/claude-md.js +12 -0
  385. package/dist/templates/claude-md.js.map +1 -1
  386. package/dist/verify/stall-detectors.d.ts +20 -8
  387. package/dist/verify/stall-detectors.d.ts.map +1 -1
  388. package/dist/verify/stall-detectors.js +27 -46
  389. package/dist/verify/stall-detectors.js.map +1 -1
  390. package/dist/verify/verification-default-on.d.ts +1 -1
  391. package/dist/verify/verification-default-on.d.ts.map +1 -1
  392. package/dist/verify/verification-deps.d.ts +1 -1
  393. package/dist/verify/verification-deps.d.ts.map +1 -1
  394. package/dist/verify/verification-engine.d.ts.map +1 -1
  395. package/dist/verify/verification-engine.js +20 -12
  396. package/dist/verify/verification-engine.js.map +1 -1
  397. package/dist/workflow/gate-failure-policy.d.ts +48 -0
  398. package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
  399. package/dist/workflow/gate-failure-policy.js +57 -0
  400. package/dist/workflow/gate-failure-policy.js.map +1 -0
  401. package/dist/workflow/pipeline-config.d.ts +2 -2
  402. package/dist/workflow/pipeline-config.js +2 -2
  403. package/dist/worktree/provision.js +1 -1
  404. package/dist/worktree/provision.js.map +1 -1
  405. package/dist/worktree/scratch-guard.d.ts.map +1 -1
  406. package/dist/worktree/scratch-guard.js +23 -2
  407. package/dist/worktree/scratch-guard.js.map +1 -1
  408. package/package.json +1 -1
  409. package/dist/directive/close-loop-stage.d.ts +0 -50
  410. package/dist/directive/close-loop-stage.d.ts.map +0 -1
  411. package/dist/directive/close-loop-stage.js +0 -210
  412. package/dist/directive/close-loop-stage.js.map +0 -1
  413. package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
  414. package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
  415. package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
  416. package/dist/focus-stage-lifecycle/review-convergence.js.map +0 -1
@@ -1,133 +0,0 @@
1
- /**
2
- * Focus review-convergence transitions (extracted from focus-stage-lifecycle).
3
- *
4
- * Owns the two review-axis daemon-side transitions:
5
- * verify -> review (Issue 4: auto-enter review on verify-stage entry)
6
- * review -> close_loop (Issue 2 + 3: state-based convergence / nonconvergent
7
- * escalation)
8
- *
9
- * Plus the pure helpers (`hasReviewConverged`, `getReviewIterationCap`,
10
- * `hasInFlightRemediations`) these transitions rely on.
11
- *
12
- * @module focus-stage-lifecycle/review-convergence
13
- */
14
- import type { PipelineConfig } from '../types/index.js';
15
- import { getLatestCompletedFocusReview as defaultGetLatestCompletedFocusReview, getInFlightRemediationCount as defaultGetInFlightRemediationCount, getFocusReviewIterationCount as defaultGetFocusReviewIterationCount, updateFocusStage as defaultUpdateFocusStage } from '../queries/focuses.js';
16
- import { createEscalation as defaultCreateEscalation } from '../queries/issues.js';
17
- import { emitLoopTrigger } from '../loops/index.js';
18
- /**
19
- * Default cap on review iterations before the daemon files a
20
- * `review_nonconvergent` escalation and pauses the focus.
21
- *
22
- * Configurable per focus via `pipeline_config.review.maxIterations`.
23
- */
24
- export declare const DEFAULT_REVIEW_MAX_ITERATIONS = 3;
25
- /**
26
- * Decide whether a focus has converged out of review. Convergence is
27
- * deterministic and state-based:
28
- *
29
- * - If there are no in-flight remediation deliveries created during/after
30
- * the latest review pass, the focus has converged.
31
- *
32
- * Pure function: takes the in-flight count and returns the decision.
33
- * Exported so tests can drive it with synthetic counts.
34
- */
35
- export declare function hasReviewConverged(inFlightRemediationCount: number): boolean;
36
- /**
37
- * Compute the configured review iteration cap for a focus. Pulls
38
- * `pipeline_config.review.maxIterations` and falls back to
39
- * `DEFAULT_REVIEW_MAX_ITERATIONS` when unset or non-positive.
40
- *
41
- * Exported for unit testing.
42
- */
43
- export declare function getReviewIterationCap(pipelineConfig: PipelineConfig | null | undefined): number;
44
- /**
45
- * Returns true when the focus has any in-flight remediation deliveries
46
- * created during/after the latest review pass.
47
- *
48
- * "Latest review pass" is the `started_at` of the most recent focus_reviews
49
- * row; when no review has run yet, this returns false (no remediation
50
- * deliveries can exist before a review pass).
51
- *
52
- * In-flight means execution_status is NOT one of done/cancelled/verify.
53
- *
54
- * Exported for unit testing the convergence query independently of the
55
- * surrounding transition logic.
56
- */
57
- export declare function hasInFlightRemediations(focusId: string, latestReviewPassTimestamp: string | null, deps?: {
58
- getInFlightRemediationCount: typeof defaultGetInFlightRemediationCount;
59
- }): Promise<boolean>;
60
- /**
61
- * Dependencies for `advanceVerifyToReviewIfEnabled`. Defaults reach for the
62
- * real query module; tests can pass stub implementations.
63
- */
64
- export interface VerifyToReviewDeps {
65
- updateFocusStage: typeof defaultUpdateFocusStage;
66
- emitLoopTrigger: typeof emitLoopTrigger;
67
- }
68
- /**
69
- * When a focus's stage is `verify` and auto-review is enabled, advance it to
70
- * `review`. Auto-review is default-on (`isReviewEnabled`): only an explicit
71
- * `pipeline_config.review.enabled === false` keeps the focus at `verify` until
72
- * a human signals review. A focus with no stored review key auto-advances.
73
- *
74
- * Returns true when an advance was performed.
75
- */
76
- export declare function advanceVerifyToReviewIfEnabled(focus: {
77
- focusId: string;
78
- focusName: string;
79
- stage: string;
80
- pipelineConfig: PipelineConfig | null;
81
- }, deps?: VerifyToReviewDeps): Promise<boolean>;
82
- /**
83
- * Dependencies for `advanceReviewToCloseLoopIfConverged`. Defaults reach for
84
- * the real query modules; tests can pass stub implementations.
85
- */
86
- export interface ReviewConvergeDeps {
87
- getLatestCompletedFocusReview: typeof defaultGetLatestCompletedFocusReview;
88
- getInFlightRemediationCount: typeof defaultGetInFlightRemediationCount;
89
- getFocusReviewIterationCount: typeof defaultGetFocusReviewIterationCount;
90
- updateFocusStage: typeof defaultUpdateFocusStage;
91
- createEscalation: typeof defaultCreateEscalation;
92
- emitLoopTrigger: typeof emitLoopTrigger;
93
- }
94
- /**
95
- * Outcome of an attempt to advance a focus past the review stage.
96
- */
97
- export type ReviewTransitionOutcome = {
98
- kind: 'no_action';
99
- reason: string;
100
- } | {
101
- kind: 'converged';
102
- from: 'review';
103
- to: 'close_loop';
104
- } | {
105
- kind: 'nonconvergent';
106
- iterations: number;
107
- cap: number;
108
- };
109
- /**
110
- * Evaluate the review -> close_loop transition for a focus and apply the
111
- * appropriate action. Returns a structured outcome so callers can log /
112
- * test the decision path.
113
- *
114
- * Logic:
115
- * 1. If stage is not `review`, do nothing.
116
- * 2. If the review iteration count is >= the cap, file a
117
- * `review_nonconvergent` escalation (idempotent best-effort) and
118
- * LEAVE the focus stage at `review`. The focus is paused until a
119
- * human intervenes.
120
- * 3. Otherwise, check in-flight remediations against the latest review
121
- * pass. If zero, advance stage `review -> close_loop`.
122
- * 4. Otherwise, do nothing -- remediations are still in flight.
123
- *
124
- * Exported with injectable deps for unit testing.
125
- */
126
- export declare function advanceReviewToCloseLoopIfConverged(focus: {
127
- focusId: string;
128
- focusName: string;
129
- organizationId: string;
130
- stage: string;
131
- pipelineConfig: PipelineConfig | null;
132
- }, deps?: ReviewConvergeDeps): Promise<ReviewTransitionOutcome>;
133
- //# sourceMappingURL=review-convergence.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review-convergence.d.ts","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/review-convergence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,6BAA6B,IAAI,oCAAoC,EACrE,2BAA2B,IAAI,kCAAkC,EACjE,4BAA4B,IAAI,mCAAmC,EACnE,gBAAgB,IAAI,uBAAuB,EAC5C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAOnF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AASpD;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAI/C;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAChD,MAAM,CAMR;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,yBAAyB,EAAE,MAAM,GAAG,IAAI,EACxC,IAAI,GAAE;IACJ,2BAA2B,EAAE,OAAO,kCAAkC,CAAC;CACF,GACtE,OAAO,CAAC,OAAO,CAAC,CASlB;AAID;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,OAAO,uBAAuB,CAAC;IACjD,eAAe,EAAE,OAAO,eAAe,CAAC;CACzC;AAOD;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC,EACD,IAAI,GAAE,kBAA8C,GACnD,OAAO,CAAC,OAAO,CAAC,CAyBlB;AAID;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,6BAA6B,EAAE,OAAO,oCAAoC,CAAC;IAC3E,2BAA2B,EAAE,OAAO,kCAAkC,CAAC;IACvE,4BAA4B,EAAE,OAAO,mCAAmC,CAAC;IACzE,gBAAgB,EAAE,OAAO,uBAAuB,CAAC;IACjD,gBAAgB,EAAE,OAAO,uBAAuB,CAAC;IACjD,eAAe,EAAE,OAAO,eAAe,CAAC;CACzC;AAWD;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,YAAY,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mCAAmC,CACvD,KAAK,EAAE;IACL,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC,EACD,IAAI,GAAE,kBAA8C,GACnD,OAAO,CAAC,uBAAuB,CAAC,CAqHlC"}
@@ -1,237 +0,0 @@
1
- /**
2
- * Focus review-convergence transitions (extracted from focus-stage-lifecycle).
3
- *
4
- * Owns the two review-axis daemon-side transitions:
5
- * verify -> review (Issue 4: auto-enter review on verify-stage entry)
6
- * review -> close_loop (Issue 2 + 3: state-based convergence / nonconvergent
7
- * escalation)
8
- *
9
- * Plus the pure helpers (`hasReviewConverged`, `getReviewIterationCap`,
10
- * `hasInFlightRemediations`) these transitions rely on.
11
- *
12
- * @module focus-stage-lifecycle/review-convergence
13
- */
14
- import { getLatestCompletedFocusReview as defaultGetLatestCompletedFocusReview, getInFlightRemediationCount as defaultGetInFlightRemediationCount, getFocusReviewIterationCount as defaultGetFocusReviewIterationCount, updateFocusStage as defaultUpdateFocusStage, } from '../queries/focuses.js';
15
- import { createEscalation as defaultCreateEscalation } from '../queries/issues.js';
16
- import { ESCALATION_REASONS, ESCALATION_KINDS, ESCALATION_DISPOSITIONS, FOCUS_STAGE, } from '@telora/daemon-core';
17
- import { emitLoopTrigger } from '../loops/index.js';
18
- import { isReviewEnabled } from '../workflow/pipeline-config.js';
19
- import { createLogger } from '../shell/log.js';
20
- const log = createLogger({ module: 'focus-stage-lifecycle' });
21
- // ── Constants ─────────────────────────────────────────────────────
22
- /**
23
- * Default cap on review iterations before the daemon files a
24
- * `review_nonconvergent` escalation and pauses the focus.
25
- *
26
- * Configurable per focus via `pipeline_config.review.maxIterations`.
27
- */
28
- export const DEFAULT_REVIEW_MAX_ITERATIONS = 3;
29
- // ── Pure helpers (Issue 2 + Issue 3) ──────────────────────────────
30
- /**
31
- * Decide whether a focus has converged out of review. Convergence is
32
- * deterministic and state-based:
33
- *
34
- * - If there are no in-flight remediation deliveries created during/after
35
- * the latest review pass, the focus has converged.
36
- *
37
- * Pure function: takes the in-flight count and returns the decision.
38
- * Exported so tests can drive it with synthetic counts.
39
- */
40
- export function hasReviewConverged(inFlightRemediationCount) {
41
- return inFlightRemediationCount <= 0;
42
- }
43
- /**
44
- * Compute the configured review iteration cap for a focus. Pulls
45
- * `pipeline_config.review.maxIterations` and falls back to
46
- * `DEFAULT_REVIEW_MAX_ITERATIONS` when unset or non-positive.
47
- *
48
- * Exported for unit testing.
49
- */
50
- export function getReviewIterationCap(pipelineConfig) {
51
- const raw = pipelineConfig?.review?.maxIterations;
52
- if (typeof raw !== 'number' || !Number.isFinite(raw) || raw <= 0) {
53
- return DEFAULT_REVIEW_MAX_ITERATIONS;
54
- }
55
- return Math.floor(raw);
56
- }
57
- // ── Convergence check (Issue 2) ───────────────────────────────────
58
- /**
59
- * Returns true when the focus has any in-flight remediation deliveries
60
- * created during/after the latest review pass.
61
- *
62
- * "Latest review pass" is the `started_at` of the most recent focus_reviews
63
- * row; when no review has run yet, this returns false (no remediation
64
- * deliveries can exist before a review pass).
65
- *
66
- * In-flight means execution_status is NOT one of done/cancelled/verify.
67
- *
68
- * Exported for unit testing the convergence query independently of the
69
- * surrounding transition logic.
70
- */
71
- export async function hasInFlightRemediations(focusId, latestReviewPassTimestamp, deps = { getInFlightRemediationCount: defaultGetInFlightRemediationCount }) {
72
- if (!latestReviewPassTimestamp) {
73
- return false;
74
- }
75
- const count = await deps.getInFlightRemediationCount(focusId, latestReviewPassTimestamp);
76
- return count > 0;
77
- }
78
- const defaultVerifyToReviewDeps = {
79
- updateFocusStage: defaultUpdateFocusStage,
80
- emitLoopTrigger,
81
- };
82
- /**
83
- * When a focus's stage is `verify` and auto-review is enabled, advance it to
84
- * `review`. Auto-review is default-on (`isReviewEnabled`): only an explicit
85
- * `pipeline_config.review.enabled === false` keeps the focus at `verify` until
86
- * a human signals review. A focus with no stored review key auto-advances.
87
- *
88
- * Returns true when an advance was performed.
89
- */
90
- export async function advanceVerifyToReviewIfEnabled(focus, deps = defaultVerifyToReviewDeps) {
91
- if (focus.stage !== FOCUS_STAGE.VERIFY)
92
- return false;
93
- // Default-on: only an explicit review.enabled === false keeps the focus at
94
- // verify. Missing / undefined review reads as enabled (mirrors isCiEnabled).
95
- if (!isReviewEnabled(focus.pipelineConfig))
96
- return false;
97
- try {
98
- await deps.updateFocusStage(focus.focusId, 'review');
99
- log.info(`[focus-stage-lifecycle] Focus "${focus.focusName}" stage verify -> review ` +
100
- `(auto: pipeline_config.review.enabled)`);
101
- deps.emitLoopTrigger({
102
- type: 'focus_status_changed',
103
- focusId: focus.focusId,
104
- detail: 'stage:verify->review',
105
- });
106
- return true;
107
- }
108
- catch (err) {
109
- log.warn(`[focus-stage-lifecycle] Failed to advance "${focus.focusName}" ` +
110
- `verify -> review: ${err.message}`);
111
- return false;
112
- }
113
- }
114
- const defaultReviewConvergeDeps = {
115
- getLatestCompletedFocusReview: defaultGetLatestCompletedFocusReview,
116
- getInFlightRemediationCount: defaultGetInFlightRemediationCount,
117
- getFocusReviewIterationCount: defaultGetFocusReviewIterationCount,
118
- updateFocusStage: defaultUpdateFocusStage,
119
- createEscalation: defaultCreateEscalation,
120
- emitLoopTrigger,
121
- };
122
- /**
123
- * Evaluate the review -> close_loop transition for a focus and apply the
124
- * appropriate action. Returns a structured outcome so callers can log /
125
- * test the decision path.
126
- *
127
- * Logic:
128
- * 1. If stage is not `review`, do nothing.
129
- * 2. If the review iteration count is >= the cap, file a
130
- * `review_nonconvergent` escalation (idempotent best-effort) and
131
- * LEAVE the focus stage at `review`. The focus is paused until a
132
- * human intervenes.
133
- * 3. Otherwise, check in-flight remediations against the latest review
134
- * pass. If zero, advance stage `review -> close_loop`.
135
- * 4. Otherwise, do nothing -- remediations are still in flight.
136
- *
137
- * Exported with injectable deps for unit testing.
138
- */
139
- export async function advanceReviewToCloseLoopIfConverged(focus, deps = defaultReviewConvergeDeps) {
140
- if (focus.stage !== FOCUS_STAGE.REVIEW) {
141
- return { kind: 'no_action', reason: 'stage_not_review' };
142
- }
143
- const cap = getReviewIterationCap(focus.pipelineConfig);
144
- let iterations = 0;
145
- try {
146
- iterations = await deps.getFocusReviewIterationCount(focus.focusId);
147
- }
148
- catch (err) {
149
- log.warn(`[focus-stage-lifecycle] Failed to read review iteration count for ` +
150
- `"${focus.focusName}": ${err.message}`);
151
- // On read failure, fall through to the convergence check rather than
152
- // false-escalating; if iterations were actually high the next tick
153
- // will catch it.
154
- }
155
- if (iterations >= cap) {
156
- // N-iteration cap exceeded -- file an escalation and leave the focus
157
- // at review. The escalation is best-effort; downstream dedup keeps it
158
- // from spamming via the agent_escalations idx_kind_status partial index
159
- // (status in ('pending', 'in_review')).
160
- try {
161
- await deps.createEscalation({
162
- organizationId: focus.organizationId,
163
- sessionId: '',
164
- issueId: null,
165
- reasonType: ESCALATION_REASONS.DECISION_NEEDED,
166
- // The intent owner must decide: descope, extend the cap, or close.
167
- disposition: ESCALATION_DISPOSITIONS.NEEDS_INTENT,
168
- anchor: { focusId: focus.focusId },
169
- description: `Focus "${focus.focusName}" has not converged after ${iterations} ` +
170
- `review iteration(s) (cap: ${cap}). The review self-loop has been ` +
171
- `paused; a human must decide whether to descope remaining gaps, ` +
172
- `extend the cap via pipeline_config.review.maxIterations, or close ` +
173
- `the focus.`,
174
- escalationKind: ESCALATION_KINDS.REVIEW_NONCONVERGENT,
175
- // Evidence only -- focus provenance lives on the columns via the anchor.
176
- metadata: {
177
- iterations,
178
- cap,
179
- },
180
- });
181
- log.warn(`[focus-stage-lifecycle] review_nonconvergent escalation filed for ` +
182
- `"${focus.focusName}" (iterations=${iterations}, cap=${cap}); focus ` +
183
- `remains at stage=review.`);
184
- }
185
- catch (err) {
186
- log.warn(`[focus-stage-lifecycle] Failed to file review_nonconvergent ` +
187
- `escalation for "${focus.focusName}": ${err.message}`);
188
- }
189
- return { kind: 'nonconvergent', iterations, cap };
190
- }
191
- // Look up the latest completed review's started_at. If no review has
192
- // completed yet, there are no remediations created against it; treat as
193
- // "not yet converged" rather than "converged on zero" -- the agent must
194
- // produce a review before we can claim convergence.
195
- let latestReviewStartedAt = null;
196
- try {
197
- const latest = await deps.getLatestCompletedFocusReview(focus.focusId);
198
- latestReviewStartedAt = latest?.startedAt ?? null;
199
- }
200
- catch (err) {
201
- log.warn(`[focus-stage-lifecycle] Failed to read latest focus_review for ` +
202
- `"${focus.focusName}": ${err.message}`);
203
- return { kind: 'no_action', reason: 'review_read_failed' };
204
- }
205
- if (!latestReviewStartedAt) {
206
- return { kind: 'no_action', reason: 'no_completed_review_yet' };
207
- }
208
- let inFlightCount = 0;
209
- try {
210
- inFlightCount = await deps.getInFlightRemediationCount(focus.focusId, latestReviewStartedAt);
211
- }
212
- catch (err) {
213
- log.warn(`[focus-stage-lifecycle] Failed to count in-flight remediations for ` +
214
- `"${focus.focusName}": ${err.message}`);
215
- return { kind: 'no_action', reason: 'remediation_query_failed' };
216
- }
217
- if (!hasReviewConverged(inFlightCount)) {
218
- return { kind: 'no_action', reason: 'remediations_in_flight' };
219
- }
220
- try {
221
- await deps.updateFocusStage(focus.focusId, 'close_loop');
222
- log.info(`[focus-stage-lifecycle] Focus "${focus.focusName}" stage review -> ` +
223
- `close_loop (converged after ${iterations} iteration(s))`);
224
- deps.emitLoopTrigger({
225
- type: 'focus_status_changed',
226
- focusId: focus.focusId,
227
- detail: 'stage:review->close_loop',
228
- });
229
- return { kind: 'converged', from: 'review', to: 'close_loop' };
230
- }
231
- catch (err) {
232
- log.warn(`[focus-stage-lifecycle] Failed to advance "${focus.focusName}" ` +
233
- `review -> close_loop: ${err.message}`);
234
- return { kind: 'no_action', reason: 'stage_write_failed' };
235
- }
236
- }
237
- //# sourceMappingURL=review-convergence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review-convergence.js","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/review-convergence.ts"],"names":[],"mappings":"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"}