@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
@@ -5,19 +5,25 @@
5
5
  * and transitions verify deliveries back to verify_failed when new
6
6
  * open issues are found (e.g., from review agents).
7
7
  */
8
- import { getActiveFocuses, updateDeliveryStatus } from '../queries/deliveries.js';
8
+ import { updateDeliveryStatus } from '../queries/deliveries.js';
9
+ import { getActiveFocuses } from '../queries/focus-discovery.js';
9
10
  import { getFocusDeliveries } from '../queries/focuses.js';
10
11
  import { fetchEffectiveWorkflow } from '../queries/workflows.js';
11
12
  import { getActiveTeams } from './focus-executor.js';
12
13
  import { isStatusAgentActionable } from '../workflow/stage-classifier.js';
13
14
  import { OPEN_ISSUE_STATUSES, filterWorkIssues, filterContextGroups } from '../shell/constants.js';
14
15
  import { autoCloseContextGroups, sweepDeliveryCloseIssues } from '../delivery/delivery-close-actions.js';
15
- import { resolveReconciledWrite, workStartReconcileInput } from '../delivery/delivery-reconciler-apply.js';
16
+ import { resolveReconciledWrite, workStartReconcileInput, advanceReconcileInput } from '../delivery/delivery-reconciler-apply.js';
16
17
  import { isAuditPhaseFocus } from '../audit/audit-shape.js';
17
- import { ensureWorktreeCommittedBeforeAdvance } from '../delivery/delivery-lifecycle.js';
18
- import { createEscalation as defaultCreateEscalation, findOpenOperatorHoldForDelivery, getDeliveryIssues, updateIssueStatus } from '../queries/issues.js';
18
+ import { ensureWorktreeCommittedBeforeAdvance, evaluateGuardsForDeliveryTransition } from '../delivery/delivery-lifecycle.js';
19
+ import { determineTransition } from '../workflow/workflow-engine.js';
20
+ import { getDeliveryIssues, updateIssueStatus } from '../queries/issues.js';
21
+ import { resolveOpenFocusEscalationsOfKind } from '../queries/escalations.js';
22
+ import { findOpenOperatorHoldForDelivery } from '../queries/holds.js';
19
23
  import { resolveOperatorHold, writeOperatorHoldGateState, describeOperatorHold } from '../delivery/operator-hold.js';
20
24
  import { resolveExternalHold, makeDeferredRequestClosureEvaluator, describeExternalHold } from '../delivery/external-hold.js';
25
+ import { surfaceStaleReferenceLessExternalHold } from '../delivery/external-hold-surface.js';
26
+ import { clearSpawnCooldown } from '../spawn/spawn-cooldown.js';
21
27
  import { createLogger } from '../shell/log.js';
22
28
  const log = createLogger({ module: 'listener' });
23
29
  /**
@@ -28,52 +34,49 @@ const log = createLogger({ module: 'listener' });
28
34
  * canonical enums in packages/daemon-core/src/execution-status.ts and
29
35
  * packages/daemon-core/src/escalation-types.ts.
30
36
  */
31
- const ESCALATION_REASON_ERROR_ENCOUNTERED = 'error_encountered';
32
- // Mirror of ESCALATION_DISPOSITIONS.NEEDS_OPERATOR (daemon-core disposition.ts);
33
- // inlined for the same no-runtime-import reason as the reason constant above.
34
- const ESCALATION_DISPOSITION_NEEDS_OPERATOR = 'needs_operator';
35
37
  const DELIVERY_STATUS_QUEUED = 'queued';
38
+ const DELIVERY_STATUS_CODING = 'coding';
36
39
  const DELIVERY_STATUS_VERIFY = 'verify';
37
40
  const DELIVERY_STATUS_VERIFY_FAILED = 'verify_failed';
38
- function isSchemaConstraintViolation(err) {
39
- return (typeof err === 'object' &&
40
- err !== null &&
41
- err.name === 'SchemaConstraintViolation');
42
- }
43
- function isReadOnlyModeError(err) {
44
- return (typeof err === 'object' &&
45
- err !== null &&
46
- err.name === 'ReadOnlyModeError');
47
- }
48
- /** Synthetic constraint name used to key ReadOnlyModeError into the violation counter. */
49
- const READ_ONLY_MODE_CONSTRAINT = 'read_only_mode';
50
- /**
51
- * Cap on consecutive SchemaConstraintViolation attempts for the same
52
- * (deliveryId, constraintName, rejectedValue) combo before filing a
53
- * terminal schema_drift_blocked escalation. Tuned for the 2026-05-21
54
- * incident profile (listener ran ~17 silent retries before discovery).
55
- */
56
- const SCHEMA_VIOLATION_RETRY_CAP = 3;
57
41
  /**
58
- * Escalation kind used when the bounded retry cap is hit. The dashboard
59
- * and merge-back loop scan for this kind to surface schema drift to humans.
60
- */
61
- export const SCHEMA_DRIFT_BLOCKED_KIND = 'schema_drift_blocked';
62
- const violationAttempts = new Map();
63
- function violationKey(deliveryId, constraintName, rejectedValue) {
64
- return `${deliveryId}::${constraintName ?? '<unknown>'}::${rejectedValue ?? '<null>'}`;
65
- }
66
- /**
67
- * Reset internal violation-attempt state. Test-only.
68
- */
69
- export function __resetSchemaViolationStateForTests() {
70
- violationAttempts.clear();
71
- }
72
- /**
73
- * Snapshot of the violation counter. Test-only.
42
+ * Measure the guard at a teamless delivery's advance edge (coding->verify), the
43
+ * SAME way the team path (advanceDeliveryStage) does, so a blocking guard is not
44
+ * silently skipped on the teamless path (TEL-2: identical delivery state yields
45
+ * the identical decision). Inputs are the canonical ones for a teamless advance:
46
+ * all work issues are Done (openIssueCount 0, so determineTransition selects the
47
+ * forward edge, not a retry) and exitCode 0 (the same value paused-revival uses
48
+ * to re-evaluate a block -- so the entry gate and the revival gate agree).
49
+ *
50
+ * evaluateGuardsForDeliveryTransition MEASURES and, on a block, writes the
51
+ * transition_blocks row (the human decision_paths that name the exit, and the
52
+ * record paused-revival reads back to revive the pause) -- but it does NOT write
53
+ * the delivery's execution_status (that stays the reconciler's single write).
54
+ * Returns null when the edge has no workflow transition (nothing to gate).
74
55
  */
75
- export function __getSchemaViolationAttemptsForTests() {
76
- return violationAttempts;
56
+ async function defaultMeasureGuardAtAdvance(config, delivery, workflow, fromStatus) {
57
+ const currentStage = workflow.stages.find((s) => s.name === fromStatus);
58
+ if (!currentStage)
59
+ return null;
60
+ const transition = determineTransition({
61
+ workflow,
62
+ currentStageId: currentStage.id,
63
+ exitCode: 0,
64
+ openIssueCount: 0,
65
+ attemptCount: 0,
66
+ maxRetries: 5,
67
+ });
68
+ if (!transition.nextStage || !transition.workflowTransition)
69
+ return null;
70
+ const outcome = await evaluateGuardsForDeliveryTransition({
71
+ deliveryId: delivery.id,
72
+ organizationId: config.organizationId,
73
+ workflowTransition: transition.workflowTransition,
74
+ exitCode: 0,
75
+ policyFailureMode: config.policyFailureMode,
76
+ deliveryName: delivery.name,
77
+ sessionId: null,
78
+ });
79
+ return { blocked: outcome.blocked, gateState: outcome.gateState ?? null };
77
80
  }
78
81
  export async function checkDeliveryAutoAdvance(config, deps = {}) {
79
82
  const _getActiveTeams = deps.getActiveTeams ?? getActiveTeams;
@@ -89,6 +92,7 @@ export async function checkDeliveryAutoAdvance(config, deps = {}) {
89
92
  const _fetchEffectiveWorkflow = deps.fetchEffectiveWorkflow ?? fetchEffectiveWorkflow;
90
93
  const _updateDeliveryStatus = deps.updateDeliveryStatus ?? updateDeliveryStatus;
91
94
  const _findOpenOperatorHoldForDelivery = deps.findOpenOperatorHoldForDelivery ?? findOpenOperatorHoldForDelivery;
95
+ const _measureGuardAtAdvance = deps.measureGuardAtAdvance ?? defaultMeasureGuardAtAdvance;
92
96
  // Only auto-advance for teamless focuses (e.g., after daemon restart where
93
97
  // deliveries are stuck in coding with all issues Done and no team will ever
94
98
  // run advanceDeliveryStatuses). Active teams handle their own advancement
@@ -174,14 +178,14 @@ export async function checkDeliveryAutoAdvance(config, deps = {}) {
174
178
  const requeueStatus = (delivery.executionStatus ?? '');
175
179
  const requeueWorkflow = await _fetchEffectiveWorkflow(delivery.id);
176
180
  const requeueDecision = resolveReconciledWrite({
177
- input: {
181
+ // Status-only back-path (verify_failed -> queued): no git touch, no
182
+ // guard, no review -- guardVerdict:null is the explicit choice.
183
+ input: advanceReconcileInput({
178
184
  currentStatus: requeueStatus,
179
- issues: issues.map(i => ({ status: i.status, issueType: i.issueType })),
180
- gitState: { worktreeCommitted: true },
185
+ issues,
181
186
  guardVerdict: null,
182
- reviewState: null,
183
187
  discoveryOnly: false,
184
- },
188
+ }),
185
189
  });
186
190
  if (requeueDecision.target !== requeueStatus) {
187
191
  const requeueStage = requeueWorkflow.stages.find(s => s.name === requeueDecision.target);
@@ -224,31 +228,48 @@ export async function checkDeliveryAutoAdvance(config, deps = {}) {
224
228
  let currentStatus = (delivery.executionStatus ?? '');
225
229
  if (currentStatus === DELIVERY_STATUS_QUEUED) {
226
230
  const decision = resolveReconciledWrite({
227
- input: {
231
+ // queued -> coding has no guard (the work-start crossing) -- null is
232
+ // the explicit choice; discoveryOnly threads the discovery terminal.
233
+ input: advanceReconcileInput({
228
234
  currentStatus,
229
235
  issues: reconcilerIssues,
230
- gitState: { worktreeCommitted: true },
231
236
  guardVerdict: null,
232
- reviewState: null,
233
237
  discoveryOnly: discoveryComplete,
234
- },
238
+ }),
235
239
  });
236
240
  const stage = workflow.stages.find(s => s.name === decision.target);
237
241
  await _updateDeliveryStatus(delivery.id, decision.target, stage?.id, undefined, undefined, { organizationId: config.organizationId, fromStatus: currentStatus });
238
242
  currentStatus = decision.target;
239
243
  }
244
+ // Measure the coding->verify guard the SAME way the team path does, so
245
+ // a blocking guard is not silently skipped on the teamless path (TEL-2).
246
+ // A block -> paused + a transition_blocks row (which paused-revival reads
247
+ // back to revive once the guard clears -- the daemon-traversable exit);
248
+ // a pass -> null verdict + cleared gate_state, advancing to verify. Only
249
+ // the coding->verify edge is gated here: queued->coding has no guard, and
250
+ // the discovery verify->done edge is handled below.
251
+ let advanceGuardVerdict = null;
252
+ let advanceGateState = null;
253
+ if (currentStatus === DELIVERY_STATUS_CODING) {
254
+ const measured = await _measureGuardAtAdvance(config, delivery, workflow, currentStatus);
255
+ if (measured) {
256
+ advanceGuardVerdict = { blocked: measured.blocked };
257
+ advanceGateState = measured.blocked ? measured.gateState : null;
258
+ }
259
+ }
240
260
  const verifyDecision = resolveReconciledWrite({
241
- input: {
261
+ // coding -> verify: the guard verdict is the MEASURED one
262
+ // (advanceGuardVerdict from measureGuardAtAdvance above) -- the same
263
+ // measurement the team path makes, never a bypassing null (D6 parity).
264
+ input: advanceReconcileInput({
242
265
  currentStatus,
243
266
  issues: reconcilerIssues,
244
- gitState: { worktreeCommitted: true },
245
- guardVerdict: null,
246
- reviewState: null,
267
+ guardVerdict: advanceGuardVerdict,
247
268
  discoveryOnly: discoveryComplete,
248
- },
269
+ }),
249
270
  });
250
271
  const verifyStage = workflow.stages.find(s => s.name === verifyDecision.target);
251
- await _updateDeliveryStatus(delivery.id, verifyDecision.target, verifyStage?.id, undefined, undefined, { organizationId: config.organizationId, fromStatus: currentStatus });
272
+ await _updateDeliveryStatus(delivery.id, verifyDecision.target, verifyStage?.id, advanceGateState, undefined, { organizationId: config.organizationId, fromStatus: currentStatus });
252
273
  currentStatus = verifyDecision.target;
253
274
  // Discovery-only terminal step: verify -> done (no review window). A
254
275
  // completed discovery-only delivery walks one step further than a
@@ -256,14 +277,14 @@ export async function checkDeliveryAutoAdvance(config, deps = {}) {
256
277
  // to await.
257
278
  if (discoveryComplete && currentStatus === DELIVERY_STATUS_VERIFY) {
258
279
  const doneDecision = resolveReconciledWrite({
259
- input: {
280
+ // Discovery-only verify -> done: no review window and no guard at
281
+ // this edge (its findings ARE the output) -- null is explicit.
282
+ input: advanceReconcileInput({
260
283
  currentStatus,
261
284
  issues: reconcilerIssues,
262
- gitState: { worktreeCommitted: true },
263
285
  guardVerdict: null,
264
- reviewState: null,
265
286
  discoveryOnly: true,
266
- },
287
+ }),
267
288
  });
268
289
  if (doneDecision.target !== currentStatus) {
269
290
  // Operator-hold gate (FAIL-CLOSED): even this discovery-only
@@ -283,6 +304,10 @@ export async function checkDeliveryAutoAdvance(config, deps = {}) {
283
304
  const externalHold = hold.held
284
305
  ? { held: false, hold: null, cleared: false }
285
306
  : await resolveExternalHold(holdDeps, delivery.id, delivery.gateState, makeDeferredRequestClosureEvaluator(config.productId));
307
+ // Surface (or clear) a stale reference-less external hold as
308
+ // operator-visible state (TEL-5, delivery 2). The `in` guard covers
309
+ // the operator-held short-circuit branch (no external eval ran).
310
+ surfaceStaleReferenceLessExternalHold(delivery.id, delivery.name, ('staleReferenceLess' in externalHold && externalHold.staleReferenceLess) || false, externalHold.hold);
286
311
  if (hold.held) {
287
312
  await writeOperatorHoldGateState(holdDeps, delivery.id, hold);
288
313
  log.info(`[listener] Delivery "${delivery.name}" NOT moved to done -- ${describeOperatorHold(hold)}. ` +
@@ -303,6 +328,21 @@ export async function checkDeliveryAutoAdvance(config, deps = {}) {
303
328
  (discoveryComplete
304
329
  ? `discovery-only delivery, ${contextGroups.length} finding(s) resolved`
305
330
  : `all ${workIssues.length} work issue(s) Done`));
331
+ // Spawn-independent genuine progress clears the halt (delivery 3, TEL-3
332
+ // + TEL-4). checkDeliveryAutoAdvance is teamless and forward-only, so a
333
+ // delivery advancing here is real progress the daemon observed WITHOUT a
334
+ // spawn -- the ONE path that can recover a focus whose spawn-cooldown
335
+ // `exhausted` latch would otherwise block every respawn (a team can't
336
+ // spawn to make progress, so only a spawn-independent advance breaks the
337
+ // deadlock). Reset the teardown streak + latch via clearSpawnCooldown.
338
+ clearSpawnCooldown(focusId);
339
+ // Close half for the team_failure spawn block (delivery 7 Task 1): the
340
+ // ESSENTIAL deadlock break. applyRespawnGuard parks every spawn while a
341
+ // team_failure escalation is open, so no team can run to observe its
342
+ // clearing condition -- only this spawn-independent advance can. Resolve
343
+ // the open team_failure escalation so the armed focus resumes spawning,
344
+ // with no human act. Best-effort, fire-and-forget.
345
+ void resolveOpenFocusEscalationsOfKind(focusId, 'team_failure', 'Auto-resolved by the daemon: the focus made genuine progress (a delivery advanced), so the team_failure spawn block cleared.').catch(() => { });
306
346
  }
307
347
  catch (err) {
308
348
  log.warn(`[listener] Auto-advance: failed to check/advance delivery "${delivery.name}":`, err.message);
@@ -389,196 +429,4 @@ export async function checkDeliveryWorkStart(config, deps = {}) {
389
429
  }
390
430
  }
391
431
  }
392
- export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
393
- const createEscalation = deps.createEscalation ?? defaultCreateEscalation;
394
- const _getActiveFocuses = deps.getActiveFocuses ?? getActiveFocuses;
395
- const _getFocusDeliveries = deps.getFocusDeliveries ?? getFocusDeliveries;
396
- const _getDeliveryIssues = deps.getDeliveryIssues ?? getDeliveryIssues;
397
- const _fetchEffectiveWorkflow = deps.fetchEffectiveWorkflow ?? fetchEffectiveWorkflow;
398
- const _updateDeliveryStatus = deps.updateDeliveryStatus ?? updateDeliveryStatus;
399
- const _updateIssueStatus = deps.updateIssueStatus ?? updateIssueStatus;
400
- const activeTeams = (deps.getActiveTeams ?? getActiveTeams)();
401
- if (activeTeams.size === 0)
402
- return;
403
- // Review-window single-writer discipline: while a focus has an open review
404
- // window (review_requested_at set), the live reconciler must NOT apply
405
- // verify -> verify_failed to that focus's deliveries. A review agent's own
406
- // first defect filing would otherwise regress the delivery mid-pass, cascade
407
- // the phase to coding, and cancel the review -- so only find-nothing reviews
408
- // ever complete. Defects filed during the pass accumulate and route once, at
409
- // review exit, via the deterministic review-exit router
410
- // (completion/review-exit-phase.ts runReviewExitHandler). The suppression is
411
- // per-focus (keyed on that focus's review_requested_at), NOT global: deliveries
412
- // of OTHER focuses with no open window still route promptly in this same tick.
413
- const reviewWindowFocusIds = new Set();
414
- try {
415
- const focuses = await _getActiveFocuses(config.organizationId, config.productId);
416
- for (const f of focuses) {
417
- if (f.review_requested_at)
418
- reviewWindowFocusIds.add(f.focus_id);
419
- }
420
- }
421
- catch (err) {
422
- // On a read failure, fall through with an empty set (pre-existing behavior:
423
- // every focus routes). The review-exit router remains the backstop writer.
424
- log.warn(`[listener] Failed to resolve review-window focuses for verify open-issue check: ${err.message}`);
425
- }
426
- for (const [focusId, team] of activeTeams) {
427
- if (team.phase !== 'executing')
428
- continue;
429
- // Only operate on teams belonging to this product — without this guard,
430
- // one product's poll cycle would modify another product's issues/deliveries.
431
- if (team.productId !== config.productId)
432
- continue;
433
- // Suppress the live verify -> verify_failed write for a focus whose review
434
- // window is open; the review-exit router owns the transition during the
435
- // window (batching all filed defects at exit). Per-focus, never global.
436
- if (reviewWindowFocusIds.has(focusId)) {
437
- log.info(`[listener] Skipping verify open-issue routing for focus ${focusId} ` +
438
- `("${team.focusName}"): review window open -- defects route at review exit.`);
439
- continue;
440
- }
441
- try {
442
- const deliveries = await _getFocusDeliveries(focusId);
443
- const verifyDeliveries = deliveries.filter(d => d.executionStatus === DELIVERY_STATUS_VERIFY);
444
- for (const delivery of verifyDeliveries) {
445
- try {
446
- const issues = await _getDeliveryIssues(delivery.id);
447
- // Context Groups are reference material, not actionable work.
448
- // Auto-close any that are still open when all tasks/bugs are done.
449
- const workIssues = filterWorkIssues(issues);
450
- const contextGroups = filterContextGroups(issues);
451
- // Single shared open-work predicate (delivery-reconciler / constants).
452
- const openWork = workIssues.filter(i => OPEN_ISSUE_STATUSES.has(i.status));
453
- // Auto-close Context Groups when all work issues are done
454
- // (shared close action -- single definition).
455
- if (openWork.length === 0) {
456
- await autoCloseContextGroups(contextGroups, _updateIssueStatus, log);
457
- continue;
458
- }
459
- // Route verify -> verify_failed through the single-writer reconciler.
460
- // Open work on a verify delivery is the trigger; the reconciler agrees
461
- // (verify + open work -> verify_failed) ahead of any review signal.
462
- const workflow = await _fetchEffectiveWorkflow(delivery.id);
463
- const decision = resolveReconciledWrite({
464
- input: {
465
- currentStatus: 'verify',
466
- issues: issues.map(i => ({ status: i.status, issueType: i.issueType })),
467
- gitState: { worktreeCommitted: true },
468
- guardVerdict: null,
469
- reviewState: { reviewRequested: true, reportExists: false, sessionType: 'coding', succeeded: false },
470
- },
471
- });
472
- const awaitingVerifyStage = workflow.stages.find(s => s.name === decision.target);
473
- const verifyFailedTransition = { organizationId: config.organizationId, fromStatus: 'verify' };
474
- try {
475
- await _updateDeliveryStatus(delivery.id, decision.target, awaitingVerifyStage?.id, undefined, undefined, verifyFailedTransition);
476
- // Successful update -- evict any prior violation counters
477
- // for this delivery so transient earlier violations do not
478
- // accumulate across distinct (constraint, value) windows.
479
- for (const key of [...violationAttempts.keys()]) {
480
- if (key.startsWith(`${delivery.id}::`))
481
- violationAttempts.delete(key);
482
- }
483
- log.info(`[listener] Delivery "${delivery.name}" moved from ${delivery.executionStatus} to verify_failed: ` +
484
- `${openWork.length} open issue(s) found`);
485
- }
486
- catch (err) {
487
- // SchemaConstraintViolation: typed runtime CHECK rejection.
488
- // ReadOnlyModeError: startup schema-gate fired in warn mode.
489
- // Both are schema-drift signals routed through the same bounded-
490
- // retry + schema_drift_blocked escalation path. The operator
491
- // response is identical: deploy the missing migration.
492
- const schemaErr = isSchemaConstraintViolation(err)
493
- ? { constraintName: err.constraintName, rejectedValue: err.rejectedValue, cause: 'check_violation' }
494
- : isReadOnlyModeError(err)
495
- ? { constraintName: READ_ONLY_MODE_CONSTRAINT, rejectedValue: err.action, cause: 'read_only_mode' }
496
- : null;
497
- if (schemaErr) {
498
- const key = violationKey(delivery.id, schemaErr.constraintName, schemaErr.rejectedValue);
499
- const attempts = (violationAttempts.get(key) ?? 0) + 1;
500
- violationAttempts.set(key, attempts);
501
- if (attempts < SCHEMA_VIOLATION_RETRY_CAP) {
502
- log.warn(`[listener] Schema drift (${schemaErr.cause}) rejected verify_failed transition for "${delivery.name}" ` +
503
- `(${schemaErr.constraintName ?? '<unknown>'} rejected ${schemaErr.rejectedValue ?? '<null>'}): ` +
504
- `attempt ${attempts}/${SCHEMA_VIOLATION_RETRY_CAP}, will retry next poll`);
505
- }
506
- else {
507
- log.error(`[listener] Schema drift blocked (${schemaErr.cause}): ${schemaErr.constraintName ?? '<unknown>'} ` +
508
- `rejects ${schemaErr.rejectedValue ?? '<null>'} after ${attempts} attempts on delivery "${delivery.name}". ` +
509
- `Filing escalation.`);
510
- const description = schemaErr.cause === 'read_only_mode'
511
- ? `Schema drift: daemon is in read-only mode (schema-version gate fired in warn ` +
512
- `mode) so action '${schemaErr.rejectedValue}' is blocked after ${attempts} attempts.\n\n` +
513
- `**Delivery:** ${delivery.name} (${delivery.id})\n` +
514
- `**Focus:** ${team.focusName} (${focusId})\n` +
515
- `**Last error:** ${err.message}`
516
- : `Schema drift: CHECK constraint ${schemaErr.constraintName ?? '<unknown>'} ` +
517
- `rejects value ${schemaErr.rejectedValue ?? '<null>'} after ${attempts} attempts.\n\n` +
518
- `**Delivery:** ${delivery.name} (${delivery.id})\n` +
519
- `**Focus:** ${team.focusName} (${focusId})\n` +
520
- `**Last error:** ${err.message}`;
521
- const whatWasTried = schemaErr.cause === 'read_only_mode'
522
- ? `Listener attempted verify_failed transition ${attempts} times; each was ` +
523
- `blocked by the read-only gate before the network call.`
524
- : `Listener attempted verify_failed transition ${attempts} times; each was ` +
525
- `rejected by the same CHECK constraint.`;
526
- const helpNeeded = schemaErr.cause === 'read_only_mode'
527
- ? `Apply the missing migrations the daemon expects (see schema-gate log line ` +
528
- `at startup) and restart the daemon, OR set TELORA_SCHEMA_GATE=off to bypass ` +
529
- `the gate if you know the missing migrations are intentional.`
530
- : `Confirm the production DB schema includes the migration that teaches ` +
531
- `the CHECK constraint to accept '${schemaErr.rejectedValue ?? '<null>'}'. ` +
532
- `If the schema is correct, the daemon source may be writing a stale value.`;
533
- try {
534
- await createEscalation({
535
- organizationId: config.organizationId,
536
- sessionId: '',
537
- issueId: null,
538
- reasonType: ESCALATION_REASON_ERROR_ENCOUNTERED,
539
- // Operator triage: apply the missing migration / fix the schema.
540
- disposition: ESCALATION_DISPOSITION_NEEDS_OPERATOR,
541
- anchor: { deliveryId: delivery.id, focusId },
542
- description,
543
- whatWasTried,
544
- helpNeeded,
545
- escalationKind: SCHEMA_DRIFT_BLOCKED_KIND,
546
- // Evidence/payload only -- provenance lives on the columns
547
- // via the anchor.
548
- metadata: {
549
- cause: schemaErr.cause,
550
- constraintName: schemaErr.constraintName,
551
- rejectedValue: schemaErr.rejectedValue,
552
- deliveryName: delivery.name,
553
- attempts,
554
- lastAttemptAt: new Date().toISOString(),
555
- },
556
- });
557
- }
558
- catch (escErr) {
559
- log.warn(`[listener] Failed to file schema_drift_blocked escalation for "${delivery.name}":`, escErr.message);
560
- }
561
- // Evict so a later schema fix can heal cleanly without manual reset.
562
- violationAttempts.delete(key);
563
- }
564
- }
565
- else {
566
- // Non-schema failure of the verify -> verify_failed status WRITE
567
- // (distinct from the issue-fetch failure handled by the outer catch).
568
- log.warn(`[listener] Failed to write verify -> verify_failed transition for "${delivery.name}":`, err.message);
569
- }
570
- }
571
- }
572
- catch (err) {
573
- // Failure fetching/processing this verify delivery's issues (the outer
574
- // per-delivery guard, distinct from the transition-write failure above).
575
- log.warn(`[listener] Failed to check issues for verify delivery "${delivery.name}":`, err.message);
576
- }
577
- }
578
- }
579
- catch (err) {
580
- log.warn(`[listener] Failed to check verify deliveries for "${team.focusName}":`, err.message);
581
- }
582
- }
583
- }
584
432
  //# sourceMappingURL=listener-auto-advance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"listener-auto-advance.js","sourceRoot":"","sources":["../../src/focus/listener-auto-advance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACzG,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,+BAA+B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC1J,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACrH,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;AAGjD;;;;;;;GAOG;AACH,MAAM,mCAAmC,GAAG,mBAAmB,CAAC;AAChE,iFAAiF;AACjF,8EAA8E;AAC9E,MAAM,qCAAqC,GAAG,gBAAgB,CAAC;AAC/D,MAAM,sBAAsB,GAAG,QAAiB,CAAC;AACjD,MAAM,sBAAsB,GAAG,QAAiB,CAAC;AACjD,MAAM,6BAA6B,GAAG,eAAwB,CAAC;AAa/D,SAAS,2BAA2B,CAAC,GAAY;IAC/C,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACX,GAAyB,CAAC,IAAI,KAAK,2BAA2B,CAChE,CAAC;AACJ,CAAC;AAmBD,SAAS,mBAAmB,CAAC,GAAY;IACvC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACX,GAAyB,CAAC,IAAI,KAAK,mBAAmB,CACxD,CAAC;AACJ,CAAC;AAED,0FAA0F;AAC1F,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAErC;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC;AAEhE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEpD,SAAS,YAAY,CAAC,UAAkB,EAAE,cAA6B,EAAE,aAA4B;IACnG,OAAO,GAAG,UAAU,KAAK,cAAc,IAAI,WAAW,KAAK,aAAa,IAAI,QAAQ,EAAE,CAAC;AACzF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mCAAmC;IACjD,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oCAAoC;IAClD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AA+BD,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAoB,EACpB,OAAqC,EAAE;IAEvC,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC;IAC9D,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;IACpE,wEAAwE;IACxE,6EAA6E;IAC7E,8EAA8E;IAC9E,wEAAwE;IACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC;IAC1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;IACvE,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;IACvE,MAAM,qCAAqC,GAAG,IAAI,CAAC,oCAAoC,IAAI,oCAAoC,CAAC;IAChI,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,IAAI,sBAAsB,CAAC;IACtF,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC;IAChF,MAAM,gCAAgC,GAAG,IAAI,CAAC,+BAA+B,IAAI,+BAA+B,CAAC;IAEjH,2EAA2E;IAC3E,4EAA4E;IAC5E,0EAA0E;IAC1E,sEAAsE;IACtE,8CAA8C;IAC9C,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,kEAAkE;IAClE,qEAAqE;IACrE,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEnD,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACvF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,sEAAsE;YACtE,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAE9C,kEAAkE;YAClE,uEAAuE;YACvE,4DAA4D;YAC5D,qEAAqE;YACrE,0EAA0E;YAC1E,wEAAwE;YACxE,yEAAyE;YACzE,uEAAuE;YACvE,2EAA2E;YAC3E,6EAA6E;YAC7E,eAAe,CAAC,GAAG,CACjB,KAAK,CAAC,QAAQ,EACd,iBAAiB,CAAC;gBAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI;gBAClC,WAAW,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI;gBACxC,QAAQ,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;aACpC,CAAC,CACH,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,+CAA+C,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,eAAe,EAAE,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAEtD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAClC,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC;oBAAE,SAAS;gBAEvE,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAErD,6DAA6D;oBAC7D,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;oBAElD,uEAAuE;oBACvE,uEAAuE;oBACvE,qEAAqE;oBACrE,8DAA8D;oBAC9D,qEAAqE;oBACrE,oEAAoE;oBACpE,mEAAmE;oBACnE,qEAAqE;oBACrE,MAAM,iBAAiB,GACrB,UAAU;wBACV,UAAU,CAAC,MAAM,KAAK,CAAC;wBACvB,aAAa,CAAC,MAAM,GAAG,CAAC;wBACxB,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;oBAEjE,sEAAsE;oBACtE,qEAAqE;oBACrE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,iBAAiB;wBAAE,SAAS;oBAE5D,uEAAuE;oBACvE,gDAAgD;oBAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC3E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,iEAAiE;wBACjE,oEAAoE;wBACpE,kEAAkE;wBAClE,kEAAkE;wBAClE,oEAAoE;wBACpE,mEAAmE;wBACnE,oEAAoE;wBACpE,sEAAsE;wBACtE,kEAAkE;wBAClE,qEAAqE;wBACrE,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,KAAK,6BAA6B,EAAE,CAAC;4BACvE,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAoB,CAAC;4BAC1E,MAAM,eAAe,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;4BACnE,MAAM,eAAe,GAAG,sBAAsB,CAAC;gCAC7C,KAAK,EAAE;oCACL,aAAa,EAAE,aAAa;oCAC5B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;oCACvE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;oCACrC,YAAY,EAAE,IAAI;oCAClB,WAAW,EAAE,IAAI;oCACjB,aAAa,EAAE,KAAK;iCACrB;6BACF,CAAC,CAAC;4BACH,IAAI,eAAe,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gCAC7C,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;gCACzF,MAAM,qBAAqB,CACzB,QAAQ,CAAC,EAAE,EACX,eAAe,CAAC,MAAM,EACtB,YAAY,EAAE,EAAE,EAChB,SAAS,EACT,SAAS,EACT,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CACrE,CAAC;gCACF,GAAG,CAAC,IAAI,CACN,kCAAkC,QAAQ,CAAC,IAAI,UAAU,aAAa,OAAO,eAAe,CAAC,MAAM,IAAI;oCACvG,GAAG,QAAQ,CAAC,MAAM,wDAAwD,CAC3E,CAAC;4BACJ,CAAC;wBACH,CAAC;wBACD,SAAS;oBACX,CAAC;oBAED,sEAAsE;oBACtE,oDAAoD;oBACpD,MAAM,sBAAsB,CAAC,aAAa,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;oBACrE,MAAM,wBAAwB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;oBAEpE,yDAAyD;oBACzD,+DAA+D;oBAC/D,mEAAmE;oBACnE,kCAAkC;oBAClC,MAAM,QAAQ,GAAG,MAAM,qCAAqC,CAAC;wBAC3D,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,YAAY,EAAE,QAAQ,CAAC,IAAI;wBAC3B,OAAO;wBACP,cAAc,EAAE,MAAM,CAAC,cAAc;wBACrC,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;oBACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;wBACjB,GAAG,CAAC,IAAI,CAAC,yBAAyB,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;wBACxE,SAAS;oBACX,CAAC;oBAED,qEAAqE;oBACrE,kEAAkE;oBAClE,sEAAsE;oBACtE,sEAAsE;oBACtE,6DAA6D;oBAC7D,kEAAkE;oBAClE,wEAAwE;oBACxE,+DAA+D;oBAC/D,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC5D,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAEzF,IAAI,aAAa,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAoB,CAAC;oBAExE,IAAI,aAAa,KAAK,sBAAsB,EAAE,CAAC;wBAC7C,MAAM,QAAQ,GAAG,sBAAsB,CAAC;4BACtC,KAAK,EAAE;gCACL,aAAa;gCACb,MAAM,EAAE,gBAAgB;gCACxB,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;gCACrC,YAAY,EAAE,IAAI;gCAClB,WAAW,EAAE,IAAI;gCACjB,aAAa,EAAE,iBAAiB;6BACjC;yBACF,CAAC,CAAC;wBACH,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;wBACpE,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;wBACjK,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAClC,CAAC;oBAED,MAAM,cAAc,GAAG,sBAAsB,CAAC;wBAC5C,KAAK,EAAE;4BACL,aAAa;4BACb,MAAM,EAAE,gBAAgB;4BACxB,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;4BACrC,YAAY,EAAE,IAAI;4BAClB,WAAW,EAAE,IAAI;4BACjB,aAAa,EAAE,iBAAiB;yBACjC;qBACF,CAAC,CAAC;oBACH,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC;oBAChF,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;oBAC7K,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC;oBAEtC,qEAAqE;oBACrE,kEAAkE;oBAClE,uEAAuE;oBACvE,YAAY;oBACZ,IAAI,iBAAiB,IAAI,aAAa,KAAK,sBAAsB,EAAE,CAAC;wBAClE,MAAM,YAAY,GAAG,sBAAsB,CAAC;4BAC1C,KAAK,EAAE;gCACL,aAAa;gCACb,MAAM,EAAE,gBAAgB;gCACxB,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;gCACrC,YAAY,EAAE,IAAI;gCAClB,WAAW,EAAE,IAAI;gCACjB,aAAa,EAAE,IAAI;6BACpB;yBACF,CAAC,CAAC;wBACH,IAAI,YAAY,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;4BAC1C,6DAA6D;4BAC7D,kEAAkE;4BAClE,kEAAkE;4BAClE,+DAA+D;4BAC/D,4DAA4D;4BAC5D,MAAM,QAAQ,GAAG;gCACf,+BAA+B,EAAE,gCAAgC;gCACjE,oBAAoB,EAAE,qBAAqB;6BAC5C,CAAC;4BACF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;4BACvE,6DAA6D;4BAC7D,mEAAmE;4BACnE,+DAA+D;4BAC/D,8DAA8D;4BAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI;gCAC5B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAW;gCACtD,CAAC,CAAC,MAAM,mBAAmB,CACvB,QAAQ,EACR,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,SAAS,EAClB,mCAAmC,CAAC,MAAM,CAAC,SAAS,CAAC,CACtD,CAAC;4BACN,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gCACd,MAAM,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gCAC9D,GAAG,CAAC,IAAI,CACN,wBAAwB,QAAQ,CAAC,IAAI,0BAA0B,oBAAoB,CAAC,IAAI,CAAC,IAAI;oCAC7F,6CAA6C,CAC9C,CAAC;4BACJ,CAAC;iCAAM,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gCAC7B,GAAG,CAAC,IAAI,CACN,wBAAwB,QAAQ,CAAC,IAAI,0BAA0B,oBAAoB,CAAC,YAAY,CAAC,IAAI;oCACrG,oDAAoD,CACrD,CAAC;4BACJ,CAAC;iCAAM,CAAC;gCACN,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;gCAC5E,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;gCACzK,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC;4BACtC,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,GAAG,CAAC,IAAI,CACN,sCAAsC,QAAQ,CAAC,IAAI,UAAU,QAAQ,CAAC,eAAe,OAAO,aAAa,IAAI;wBAC7G,CAAC,iBAAiB;4BAChB,CAAC,CAAC,4BAA4B,aAAa,CAAC,MAAM,sBAAsB;4BACxE,CAAC,CAAC,OAAO,UAAU,CAAC,MAAM,qBAAqB,CAAC,CACnD,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CACN,8DAA8D,QAAQ,CAAC,IAAI,IAAI,EAC9E,GAAa,CAAC,OAAO,CACvB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,iEAAiE,OAAO,GAAG,EAC1E,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAeD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,OAAmC,EAAE;IAErC,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;IACpE,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC;IAC1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;IACvE,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,IAAI,sBAAsB,CAAC;IACtF,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC;IAEhF,IAAI,aAAa,CAAC;IAClB,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACnF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,6CAA6C,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAChF,OAAO;IACT,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,UAAU,CAAC;QACf,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,oDAAoD,KAAK,CAAC,QAAQ,GAAG,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YACxG,SAAS;QACX,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,2DAA2D;YAC3D,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,KAAK,sBAAsB;gBAAE,SAAS;YAE1E,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACrD,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBAEzF,yEAAyE;gBACzE,qEAAqE;gBACrE,uEAAuE;gBACvE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,KAAK,EAAE,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBAC9F,IAAI,QAAQ,CAAC,MAAM,KAAK,sBAAsB;oBAAE,SAAS,CAAC,qBAAqB;gBAE/E,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACpE,wEAAwE;gBACxE,4EAA4E;gBAC5E,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,sBAAsB,EAAE,CAAC,CAAC;gBAC1K,GAAG,CAAC,IAAI,CACN,oCAAoC,QAAQ,CAAC,IAAI,aAAa,sBAAsB,OAAO,QAAQ,CAAC,MAAM,GAAG;oBAC7G,0BAA0B,CAC3B,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CAAC,IAAI,CAAC,2CAA2C,QAAQ,CAAC,IAAI,IAAI,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAgCD,MAAM,CAAC,KAAK,UAAU,kCAAkC,CACtD,MAAoB,EACpB,OAAkC,EAAE;IAEpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;IAC1E,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;IACpE,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC;IAC1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;IACvE,MAAM,uBAAuB,GAAG,IAAI,CAAC,sBAAsB,IAAI,sBAAsB,CAAC;IACtF,MAAM,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC;IAChF,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC;IACvE,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,EAAE,CAAC;IAC9D,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO;IAEnC,2EAA2E;IAC3E,uEAAuE;IACvE,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,wDAAwD;IACxD,6EAA6E;IAC7E,gFAAgF;IAChF,+EAA+E;IAC/E,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,mBAAmB;gBAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,4EAA4E;QAC5E,2EAA2E;QAC3E,GAAG,CAAC,IAAI,CACN,mFAAoF,GAAa,CAAC,OAAO,EAAE,CAC5G,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;YAAE,SAAS;QAEzC,wEAAwE;QACxE,6EAA6E;QAC7E,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS;YAAE,SAAS;QAElD,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,IAAI,CACN,2DAA2D,OAAO,GAAG;gBACrE,KAAK,IAAI,CAAC,SAAS,yDAAyD,CAC7E,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,sBAAsB,CAAC,CAAC;YAE9F,KAAK,MAAM,QAAQ,IAAI,gBAAgB,EAAE,CAAC;gBACxC,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAErD,8DAA8D;oBAC9D,mEAAmE;oBACnE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC5C,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;oBAClD,uEAAuE;oBACvE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;oBAE3E,0DAA0D;oBAC1D,8CAA8C;oBAC9C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,MAAM,sBAAsB,CAAC,aAAa,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;wBACrE,SAAS;oBACX,CAAC;oBAED,sEAAsE;oBACtE,uEAAuE;oBACvE,oEAAoE;oBACpE,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAC5D,MAAM,QAAQ,GAAG,sBAAsB,CAAC;wBACtC,KAAK,EAAE;4BACL,aAAa,EAAE,QAAQ;4BACvB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;4BACvE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;4BACrC,YAAY,EAAE,IAAI;4BAClB,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;yBACrG;qBACF,CAAC,CAAC;oBACH,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAElF,MAAM,sBAAsB,GAAG,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;oBAC/F,IAAI,CAAC;wBACH,MAAM,qBAAqB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,CAAC,CAAC;wBAEjI,0DAA0D;wBAC1D,2DAA2D;wBAC3D,0DAA0D;wBAC1D,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;4BAChD,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,IAAI,CAAC;gCAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACxE,CAAC;wBAED,GAAG,CAAC,IAAI,CACN,wBAAwB,QAAQ,CAAC,IAAI,gBAAgB,QAAQ,CAAC,eAAe,qBAAqB;4BAClG,GAAG,QAAQ,CAAC,MAAM,sBAAsB,CACzC,CAAC;oBACJ,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,4DAA4D;wBAC5D,6DAA6D;wBAC7D,iEAAiE;wBACjE,6DAA6D;wBAC7D,uDAAuD;wBACvD,MAAM,SAAS,GAAG,2BAA2B,CAAC,GAAG,CAAC;4BAChD,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,iBAA0B,EAAE;4BAC7G,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC;gCACxB,CAAC,CAAC,EAAE,cAAc,EAAE,yBAAyB,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAyB,EAAE;gCAC5G,CAAC,CAAC,IAAI,CAAC;wBAEX,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;4BACzF,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;4BACvD,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;4BAErC,IAAI,QAAQ,GAAG,0BAA0B,EAAE,CAAC;gCAC1C,GAAG,CAAC,IAAI,CACN,4BAA4B,SAAS,CAAC,KAAK,4CAA4C,QAAQ,CAAC,IAAI,IAAI;oCACxG,IAAI,SAAS,CAAC,cAAc,IAAI,WAAW,aAAa,SAAS,CAAC,aAAa,IAAI,QAAQ,KAAK;oCAChG,WAAW,QAAQ,IAAI,0BAA0B,wBAAwB,CAC1E,CAAC;4BACJ,CAAC;iCAAM,CAAC;gCACN,GAAG,CAAC,KAAK,CACP,oCAAoC,SAAS,CAAC,KAAK,MAAM,SAAS,CAAC,cAAc,IAAI,WAAW,GAAG;oCACnG,WAAW,SAAS,CAAC,aAAa,IAAI,QAAQ,UAAU,QAAQ,0BAA0B,QAAQ,CAAC,IAAI,KAAK;oCAC5G,oBAAoB,CACrB,CAAC;gCACF,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,KAAK,gBAAgB;oCACtD,CAAC,CAAC,+EAA+E;wCAC/E,oBAAoB,SAAS,CAAC,aAAa,sBAAsB,QAAQ,gBAAgB;wCACzF,iBAAiB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK;wCACnD,cAAc,IAAI,CAAC,SAAS,KAAK,OAAO,KAAK;wCAC7C,mBAAoB,GAAa,CAAC,OAAO,EAAE;oCAC7C,CAAC,CAAC,kCAAkC,SAAS,CAAC,cAAc,IAAI,WAAW,GAAG;wCAC5E,iBAAiB,SAAS,CAAC,aAAa,IAAI,QAAQ,UAAU,QAAQ,gBAAgB;wCACtF,iBAAiB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK;wCACnD,cAAc,IAAI,CAAC,SAAS,KAAK,OAAO,KAAK;wCAC7C,mBAAoB,GAAa,CAAC,OAAO,EAAE,CAAC;gCAChD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,KAAK,gBAAgB;oCACvD,CAAC,CAAC,+CAA+C,QAAQ,mBAAmB;wCAC1E,wDAAwD;oCAC1D,CAAC,CAAC,+CAA+C,QAAQ,mBAAmB;wCAC1E,wCAAwC,CAAC;gCAC7C,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,KAAK,gBAAgB;oCACrD,CAAC,CAAC,4EAA4E;wCAC5E,8EAA8E;wCAC9E,8DAA8D;oCAChE,CAAC,CAAC,uEAAuE;wCACvE,mCAAmC,SAAS,CAAC,aAAa,IAAI,QAAQ,KAAK;wCAC3E,2EAA2E,CAAC;gCAChF,IAAI,CAAC;oCACH,MAAM,gBAAgB,CAAC;wCACrB,cAAc,EAAE,MAAM,CAAC,cAAc;wCACrC,SAAS,EAAE,EAAE;wCACb,OAAO,EAAE,IAAI;wCACb,UAAU,EAAE,mCAAmC;wCAC/C,iEAAiE;wCACjE,WAAW,EAAE,qCAAqC;wCAClD,MAAM,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE;wCAC5C,WAAW;wCACX,YAAY;wCACZ,UAAU;wCACV,cAAc,EAAE,yBAAyB;wCACzC,2DAA2D;wCAC3D,kBAAkB;wCAClB,QAAQ,EAAE;4CACR,KAAK,EAAE,SAAS,CAAC,KAAK;4CACtB,cAAc,EAAE,SAAS,CAAC,cAAc;4CACxC,aAAa,EAAE,SAAS,CAAC,aAAa;4CACtC,YAAY,EAAE,QAAQ,CAAC,IAAI;4CAC3B,QAAQ;4CACR,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yCACxC;qCACF,CAAC,CAAC;gCACL,CAAC;gCAAC,OAAO,MAAM,EAAE,CAAC;oCAChB,GAAG,CAAC,IAAI,CACN,kEAAkE,QAAQ,CAAC,IAAI,IAAI,EAClF,MAAgB,CAAC,OAAO,CAC1B,CAAC;gCACJ,CAAC;gCACD,qEAAqE;gCACrE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;4BAChC,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,iEAAiE;4BACjE,sEAAsE;4BACtE,GAAG,CAAC,IAAI,CACN,sEAAsE,QAAQ,CAAC,IAAI,IAAI,EACtF,GAAa,CAAC,OAAO,CACvB,CAAC;wBACJ,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,uEAAuE;oBACvE,yEAAyE;oBACzE,GAAG,CAAC,IAAI,CACN,0DAA0D,QAAQ,CAAC,IAAI,IAAI,EAC1E,GAAa,CAAC,OAAO,CACvB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,qDAAqD,IAAI,CAAC,SAAS,IAAI,EACtE,GAAa,CAAC,OAAO,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"listener-auto-advance.js","sourceRoot":"","sources":["../../src/focus/listener-auto-advance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Focus poll-loop spawn processing.
3
+ *
4
+ * decideFocusSpawn (the per-focus spawn-gate decision) + processReadyFocuses
5
+ * (ready-focus spawns) + processPendingSpawnFocuses (pending-directive spawns for
6
+ * focuses getReadyFocuses does not surface). Split out of focus/listener.ts
7
+ * (file-size limit). Shares the poll-loop singletons via focus/listener-state.ts
8
+ * (live-binding reads; setters for reassignments); listener.ts calls these and
9
+ * both import listener-state -- no cycle.
10
+ */
11
+ /**
12
+ * The per-focus spawn-gate decision -- the heart of the event/advance loop
13
+ * dispatch. Given a single ready focus's resolved gate state, decide what the
14
+ * processReadyFocuses loop should do with it. Extracted as a pure function so
15
+ * the dispatch ordering (which a regression here turns into a missed spawn, a
16
+ * double-spawn, or a capacity-overrun) can be tested directly.
17
+ *
18
+ * Order matters and mirrors the original inline checks exactly:
19
+ * 1. unknown role -> skip this focus (logged error)
20
+ * 2. already has a team -> skip (do not double-spawn)
21
+ * 3. in spawn cooldown -> skip (recently torn down)
22
+ * 4. at total capacity -> STOP the whole loop (break)
23
+ * 5. otherwise -> spawn
24
+ *
25
+ * The capacity check reads the LIVE active-team count, so the caller passes a
26
+ * freshly-sampled count per focus (a successful spawn raises it for the next
27
+ * focus; a skipped spawn does not).
28
+ */
29
+ export type FocusSpawnAction = 'spawn' | 'skip_unknown_role' | 'skip_active_team' | 'skip_cooldown' | 'stop_capacity';
30
+ export interface FocusSpawnGate {
31
+ /** Whether the focus's assigned_agent_role_id resolves to a known role. */
32
+ hasRole: boolean;
33
+ hasActiveTeam: boolean;
34
+ inSpawnCooldown: boolean;
35
+ /** Live count of active teams as of this focus's turn. */
36
+ activeTeamCount: number;
37
+ maxTotalSessions: number;
38
+ }
39
+ export declare function decideFocusSpawn(gate: FocusSpawnGate): FocusSpawnAction;
40
+ /**
41
+ * Process any focuses ready for agent work.
42
+ *
43
+ * For each ready focus without an active team, spawns a single
44
+ * Agent Team that manages all deliveries within that focus.
45
+ * Also detects focuses that have been deactivated and shuts down
46
+ * their teams.
47
+ */
48
+ export declare function processReadyFocuses(): Promise<void>;
49
+ /**
50
+ * Spawn teams for focuses that have a pending spawn directive but were
51
+ * not surfaced by getReadyFocuses.
52
+ *
53
+ * getReadyFocuses (daemon-focus-handlers.ts) only returns focuses with
54
+ * queued/coding deliveries (or zero deliveries). A review-stage spawn
55
+ * directive on a focus whose deliveries are all in verify never makes
56
+ * it to processReadyFocuses -- the pending directive sits forever and
57
+ * the team never starts. This function bridges that gap: scan the
58
+ * pending-spawn map directly and spawn for any focus that's not
59
+ * already running.
60
+ */
61
+ export declare function processPendingSpawnFocuses(): Promise<void>;
62
+ //# sourceMappingURL=listener-spawn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listener-spawn.d.ts","sourceRoot":"","sources":["../../src/focus/listener-spawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmCH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAMvE;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgLzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,IAAI,CAAC,CAgOhE"}