@telora/daemon 0.21.98 → 0.21.134

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 (226) hide show
  1. package/build-info.json +6 -3
  2. package/dist/audit/audit-hooks.d.ts +106 -0
  3. package/dist/audit/audit-hooks.d.ts.map +1 -1
  4. package/dist/audit/audit-hooks.js +149 -17
  5. package/dist/audit/audit-hooks.js.map +1 -1
  6. package/dist/ci/ci-sensor-loop.d.ts +6 -0
  7. package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
  8. package/dist/ci/ci-sensor-loop.js +50 -3
  9. package/dist/ci/ci-sensor-loop.js.map +1 -1
  10. package/dist/completion/coverage-drift-state.d.ts +29 -2
  11. package/dist/completion/coverage-drift-state.d.ts.map +1 -1
  12. package/dist/completion/coverage-drift-state.js +42 -2
  13. package/dist/completion/coverage-drift-state.js.map +1 -1
  14. package/dist/completion/coverage-stabilized.d.ts +58 -0
  15. package/dist/completion/coverage-stabilized.d.ts.map +1 -0
  16. package/dist/completion/coverage-stabilized.js +84 -0
  17. package/dist/completion/coverage-stabilized.js.map +1 -0
  18. package/dist/completion/delivery-advancement-guard.d.ts +21 -0
  19. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  20. package/dist/completion/delivery-advancement-guard.js +31 -3
  21. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  22. package/dist/completion/event-escalations.d.ts +15 -0
  23. package/dist/completion/event-escalations.d.ts.map +1 -1
  24. package/dist/completion/event-escalations.js +42 -4
  25. package/dist/completion/event-escalations.js.map +1 -1
  26. package/dist/completion/event-phases.d.ts.map +1 -1
  27. package/dist/completion/event-phases.js +5 -2
  28. package/dist/completion/event-phases.js.map +1 -1
  29. package/dist/completion/machine-remediable-demotion.d.ts +74 -0
  30. package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
  31. package/dist/completion/machine-remediable-demotion.js +147 -0
  32. package/dist/completion/machine-remediable-demotion.js.map +1 -0
  33. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  34. package/dist/completion/review-exit-phase.js +10 -6
  35. package/dist/completion/review-exit-phase.js.map +1 -1
  36. package/dist/completion/settle-injection-sweep.d.ts +55 -0
  37. package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
  38. package/dist/completion/settle-injection-sweep.js +88 -0
  39. package/dist/completion/settle-injection-sweep.js.map +1 -0
  40. package/dist/completion/state-cascade.d.ts.map +1 -1
  41. package/dist/completion/state-cascade.js +41 -0
  42. package/dist/completion/state-cascade.js.map +1 -1
  43. package/dist/completion/status-advance-phase.d.ts.map +1 -1
  44. package/dist/completion/status-advance-phase.js +18 -1
  45. package/dist/completion/status-advance-phase.js.map +1 -1
  46. package/dist/completion/team-lifecycle.d.ts +42 -0
  47. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  48. package/dist/completion/team-lifecycle.js +71 -0
  49. package/dist/completion/team-lifecycle.js.map +1 -1
  50. package/dist/delivery/delivery-lifecycle.d.ts +19 -33
  51. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  52. package/dist/delivery/delivery-lifecycle.js +19 -147
  53. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  54. package/dist/delivery/delivery-merge-ops.d.ts +46 -0
  55. package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
  56. package/dist/delivery/delivery-merge-ops.js +154 -0
  57. package/dist/delivery/delivery-merge-ops.js.map +1 -0
  58. package/dist/delivery/delivery-reconciler-apply.d.ts +28 -0
  59. package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
  60. package/dist/delivery/delivery-reconciler-apply.js +30 -0
  61. package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
  62. package/dist/delivery/delivery-reconciler.d.ts +7 -2
  63. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  64. package/dist/delivery/delivery-reconciler.js +34 -5
  65. package/dist/delivery/delivery-reconciler.js.map +1 -1
  66. package/dist/delivery/external-hold-surface.d.ts +32 -0
  67. package/dist/delivery/external-hold-surface.d.ts.map +1 -0
  68. package/dist/delivery/external-hold-surface.js +67 -0
  69. package/dist/delivery/external-hold-surface.js.map +1 -0
  70. package/dist/delivery/external-hold.d.ts +21 -0
  71. package/dist/delivery/external-hold.d.ts.map +1 -1
  72. package/dist/delivery/external-hold.js +40 -5
  73. package/dist/delivery/external-hold.js.map +1 -1
  74. package/dist/delivery/paused-revival.d.ts +140 -0
  75. package/dist/delivery/paused-revival.d.ts.map +1 -0
  76. package/dist/delivery/paused-revival.js +229 -0
  77. package/dist/delivery/paused-revival.js.map +1 -0
  78. package/dist/delivery/wait-reachability.d.ts.map +1 -1
  79. package/dist/delivery/wait-reachability.js +11 -0
  80. package/dist/delivery/wait-reachability.js.map +1 -1
  81. package/dist/directive/close-loop-dispatcher.d.ts +16 -263
  82. package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
  83. package/dist/directive/close-loop-dispatcher.js +21 -259
  84. package/dist/directive/close-loop-dispatcher.js.map +1 -1
  85. package/dist/directive/directive-dispatch.d.ts +19 -0
  86. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  87. package/dist/directive/directive-dispatch.js +18 -0
  88. package/dist/directive/directive-dispatch.js.map +1 -1
  89. package/dist/directive/directive-executor.d.ts +1 -3
  90. package/dist/directive/directive-executor.d.ts.map +1 -1
  91. package/dist/directive/directive-executor.js +23 -21
  92. package/dist/directive/directive-executor.js.map +1 -1
  93. package/dist/directive/phase-sync.d.ts +28 -15
  94. package/dist/directive/phase-sync.d.ts.map +1 -1
  95. package/dist/directive/phase-sync.js +28 -36
  96. package/dist/directive/phase-sync.js.map +1 -1
  97. package/dist/directive/resolver-dispatch.d.ts +19 -92
  98. package/dist/directive/resolver-dispatch.d.ts.map +1 -1
  99. package/dist/directive/resolver-dispatch.js +19 -65
  100. package/dist/directive/resolver-dispatch.js.map +1 -1
  101. package/dist/focus/focus-engine.d.ts.map +1 -1
  102. package/dist/focus/focus-engine.js +26 -0
  103. package/dist/focus/focus-engine.js.map +1 -1
  104. package/dist/focus/focus-executor.d.ts.map +1 -1
  105. package/dist/focus/focus-executor.js +290 -256
  106. package/dist/focus/focus-executor.js.map +1 -1
  107. package/dist/focus/focus-loop-registry.d.ts.map +1 -1
  108. package/dist/focus/focus-loop-registry.js +43 -1
  109. package/dist/focus/focus-loop-registry.js.map +1 -1
  110. package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
  111. package/dist/focus/focus-respawn-guard.js +11 -2
  112. package/dist/focus/focus-respawn-guard.js.map +1 -1
  113. package/dist/focus/focus-team-state.d.ts +11 -0
  114. package/dist/focus/focus-team-state.d.ts.map +1 -1
  115. package/dist/focus/focus-team-state.js +17 -0
  116. package/dist/focus/focus-team-state.js.map +1 -1
  117. package/dist/focus/listener-auto-advance.d.ts +13 -1
  118. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  119. package/dist/focus/listener-auto-advance.js +103 -22
  120. package/dist/focus/listener-auto-advance.js.map +1 -1
  121. package/dist/focus/listener.d.ts.map +1 -1
  122. package/dist/focus/listener.js +125 -75
  123. package/dist/focus/listener.js.map +1 -1
  124. package/dist/focus/tick-deadline.d.ts +55 -0
  125. package/dist/focus/tick-deadline.d.ts.map +1 -0
  126. package/dist/focus/tick-deadline.js +91 -0
  127. package/dist/focus/tick-deadline.js.map +1 -0
  128. package/dist/focus-stage-lifecycle/index.d.ts +18 -25
  129. package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
  130. package/dist/focus-stage-lifecycle/index.js +26 -38
  131. package/dist/focus-stage-lifecycle/index.js.map +1 -1
  132. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
  133. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
  134. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
  135. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
  136. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
  137. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  138. package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
  139. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  140. package/dist/guard/condition-evaluators.d.ts +9 -0
  141. package/dist/guard/condition-evaluators.d.ts.map +1 -1
  142. package/dist/guard/condition-evaluators.js +15 -0
  143. package/dist/guard/condition-evaluators.js.map +1 -1
  144. package/dist/guard/guard-evaluator.d.ts +17 -1
  145. package/dist/guard/guard-evaluator.d.ts.map +1 -1
  146. package/dist/guard/guard-evaluator.js +61 -2
  147. package/dist/guard/guard-evaluator.js.map +1 -1
  148. package/dist/guard/trigger-executor.d.ts +30 -18
  149. package/dist/guard/trigger-executor.d.ts.map +1 -1
  150. package/dist/guard/trigger-executor.js +55 -31
  151. package/dist/guard/trigger-executor.js.map +1 -1
  152. package/dist/prompt/team-prompt-base.d.ts +1 -1
  153. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  154. package/dist/prompt/team-prompt-base.js +1 -1
  155. package/dist/prompt/team-prompt-base.js.map +1 -1
  156. package/dist/prompt-sections/persona-sections.d.ts +0 -32
  157. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  158. package/dist/prompt-sections/persona-sections.js +19 -88
  159. package/dist/prompt-sections/persona-sections.js.map +1 -1
  160. package/dist/queries/deliveries.d.ts +23 -0
  161. package/dist/queries/deliveries.d.ts.map +1 -1
  162. package/dist/queries/deliveries.js +6 -0
  163. package/dist/queries/deliveries.js.map +1 -1
  164. package/dist/queries/focuses.d.ts +36 -0
  165. package/dist/queries/focuses.d.ts.map +1 -1
  166. package/dist/queries/focuses.js +45 -0
  167. package/dist/queries/focuses.js.map +1 -1
  168. package/dist/queries/guards.d.ts +10 -0
  169. package/dist/queries/guards.d.ts.map +1 -1
  170. package/dist/queries/guards.js +14 -1
  171. package/dist/queries/guards.js.map +1 -1
  172. package/dist/queries/issues.d.ts +65 -1
  173. package/dist/queries/issues.d.ts.map +1 -1
  174. package/dist/queries/issues.js +135 -2
  175. package/dist/queries/issues.js.map +1 -1
  176. package/dist/queries/schemas.d.ts +51 -0
  177. package/dist/queries/schemas.d.ts.map +1 -1
  178. package/dist/queries/schemas.js +34 -0
  179. package/dist/queries/schemas.js.map +1 -1
  180. package/dist/queries/verification.d.ts +5 -6
  181. package/dist/queries/verification.d.ts.map +1 -1
  182. package/dist/queries/verification.js +5 -6
  183. package/dist/queries/verification.js.map +1 -1
  184. package/dist/resolvers/loop-persona.d.ts +1 -11
  185. package/dist/resolvers/loop-persona.d.ts.map +1 -1
  186. package/dist/resolvers/loop-persona.js +2 -16
  187. package/dist/resolvers/loop-persona.js.map +1 -1
  188. package/dist/shell/unified-shell-provisioning.d.ts +40 -0
  189. package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
  190. package/dist/shell/unified-shell-provisioning.js +72 -0
  191. package/dist/shell/unified-shell-provisioning.js.map +1 -1
  192. package/dist/shell/unified-shell.d.ts.map +1 -1
  193. package/dist/shell/unified-shell.js +18 -1
  194. package/dist/shell/unified-shell.js.map +1 -1
  195. package/dist/spawn/helpers.d.ts.map +1 -1
  196. package/dist/spawn/helpers.js +6 -1
  197. package/dist/spawn/helpers.js.map +1 -1
  198. package/dist/spawn/process-spawn.d.ts.map +1 -1
  199. package/dist/spawn/process-spawn.js +7 -0
  200. package/dist/spawn/process-spawn.js.map +1 -1
  201. package/dist/spawn/spawn-cooldown.d.ts +41 -7
  202. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  203. package/dist/spawn/spawn-cooldown.js +47 -0
  204. package/dist/spawn/spawn-cooldown.js.map +1 -1
  205. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  206. package/dist/spawn/spawn-decision.js +33 -1
  207. package/dist/spawn/spawn-decision.js.map +1 -1
  208. package/dist/verify/stall-detectors.d.ts +20 -8
  209. package/dist/verify/stall-detectors.d.ts.map +1 -1
  210. package/dist/verify/stall-detectors.js +27 -46
  211. package/dist/verify/stall-detectors.js.map +1 -1
  212. package/dist/workflow/gate-failure-policy.d.ts +48 -0
  213. package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
  214. package/dist/workflow/gate-failure-policy.js +57 -0
  215. package/dist/workflow/gate-failure-policy.js.map +1 -0
  216. package/dist/workflow/pipeline-config.d.ts +2 -2
  217. package/dist/workflow/pipeline-config.js +2 -2
  218. package/package.json +1 -1
  219. package/dist/directive/close-loop-stage.d.ts +0 -50
  220. package/dist/directive/close-loop-stage.d.ts.map +0 -1
  221. package/dist/directive/close-loop-stage.js +0 -210
  222. package/dist/directive/close-loop-stage.js.map +0 -1
  223. package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
  224. package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
  225. package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
  226. package/dist/focus-stage-lifecycle/review-convergence.js.map +0 -1
@@ -32,6 +32,25 @@ export declare const AGENTLESS_EXECUTION_MODE = "none";
32
32
  * Pure + exported for testing and for the checkDirectives silent-entry path.
33
33
  */
34
34
  export declare function isAgentlessDirective(directive: Pick<StageDirective, 'execution'> | null | undefined): boolean;
35
+ /**
36
+ * True when a workflow stage is a QUIET TERMINAL: terminal AND non-agent-actionable
37
+ * (its own declared shape, e.g. winding_down: is_terminal=true +
38
+ * is_agent_actionable=false). No agent runs at such a stage regardless of what
39
+ * agent_directive the row still carries -- winding_down's directive is
40
+ * execution:'inject', which without this predicate falls through to the no-team
41
+ * inject fallback and spawns a full team with nothing to do (TEL, delivery 5).
42
+ *
43
+ * Pure + exported for testing and for the checkDirectives silent-entry path. The
44
+ * decision keys ONLY on the two declared flags, never on the stage name, so any
45
+ * stage marked terminal + non-actionable is honoured without a special case.
46
+ * Absent flags (undefined, from an older workflow row) => not quiet: the pre-flag
47
+ * behaviour (dispatch the directive) is preserved for stages that never declared
48
+ * the shape.
49
+ */
50
+ export declare function isQuietTerminalStage(stage: {
51
+ is_terminal?: boolean;
52
+ is_agent_actionable?: boolean;
53
+ }): boolean;
35
54
  /**
36
55
  * Resolve the execution mode a directive should dispatch under.
37
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"directive-dispatch.d.ts","sourceRoot":"","sources":["../../src/directive/directive-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAexD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,GAC9D,OAAO,CAET;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,OAAO,EAAE,MAAM,GACd,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,EACzB,oBAAoB,EAAE,MAAM,EAC5B,SAAS,CAAC,EAAE,MAAM,EAClB,kBAAkB,GAAE,MAAM,GAAG,IAAW,GACvC,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,EACzB,WAAW,GAAE,QAAQ,GAAG,QAAmB,EAC3C,IAAI,GAAE,WAA+E,EACrF,kBAAkB,GAAE,MAAM,GAAG,IAAW,GACvC,OAAO,CAAC,IAAI,CAAC,CA4Ef;AAgFD;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,EAAE,EAAE,OAAO,CAAC;IACZ,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3D;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAuB7B;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,EACD,IAAI,GAAE;IAAE,gBAAgB,EAAE,OAAO,gBAAgB,CAAA;CAAyB,GACzE,OAAO,CAAC,IAAI,CAAC,CAyCf"}
1
+ {"version":3,"file":"directive-dispatch.d.ts","sourceRoot":"","sources":["../../src/directive/directive-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAexD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,GAC9D,OAAO,CAET;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D,OAAO,CAET;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,OAAO,EAAE,MAAM,GACd,QAAQ,GAAG,OAAO,GAAG,IAAI,CAI3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,EACzB,oBAAoB,EAAE,MAAM,EAC5B,SAAS,CAAC,EAAE,MAAM,EAClB,kBAAkB,GAAE,MAAM,GAAG,IAAW,GACvC,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,cAAc,EACzB,WAAW,GAAE,QAAQ,GAAG,QAAmB,EAC3C,IAAI,GAAE,WAA+E,EACrF,kBAAkB,GAAE,MAAM,GAAG,IAAW,GACvC,OAAO,CAAC,IAAI,CAAC,CA4Ef;AAgFD;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,sEAAsE;IACtE,EAAE,EAAE,OAAO,CAAC;IACZ,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,+DAA+D;IAC/D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3D;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACvB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAuB7B;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,EACD,IAAI,GAAE;IAAE,gBAAgB,EAAE,OAAO,gBAAgB,CAAA;CAAyB,GACzE,OAAO,CAAC,IAAI,CAAC,CAyCf"}
@@ -41,6 +41,24 @@ export const AGENTLESS_EXECUTION_MODE = 'none';
41
41
  export function isAgentlessDirective(directive) {
42
42
  return !!directive && directive.execution === AGENTLESS_EXECUTION_MODE;
43
43
  }
44
+ /**
45
+ * True when a workflow stage is a QUIET TERMINAL: terminal AND non-agent-actionable
46
+ * (its own declared shape, e.g. winding_down: is_terminal=true +
47
+ * is_agent_actionable=false). No agent runs at such a stage regardless of what
48
+ * agent_directive the row still carries -- winding_down's directive is
49
+ * execution:'inject', which without this predicate falls through to the no-team
50
+ * inject fallback and spawns a full team with nothing to do (TEL, delivery 5).
51
+ *
52
+ * Pure + exported for testing and for the checkDirectives silent-entry path. The
53
+ * decision keys ONLY on the two declared flags, never on the stage name, so any
54
+ * stage marked terminal + non-actionable is honoured without a special case.
55
+ * Absent flags (undefined, from an older workflow row) => not quiet: the pre-flag
56
+ * behaviour (dispatch the directive) is preserved for stages that never declared
57
+ * the shape.
58
+ */
59
+ export function isQuietTerminalStage(stage) {
60
+ return stage.is_terminal === true && stage.is_agent_actionable === false;
61
+ }
44
62
  /**
45
63
  * Resolve the execution mode a directive should dispatch under.
46
64
  *
@@ -1 +1 @@
1
- {"version":3,"file":"directive-dispatch.js","sourceRoot":"","sources":["../../src/directive/directive-dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directive-dispatch.js","sourceRoot":"","sources":["../../src/directive/directive-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAoB,MAAM,+BAA+B,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAG3D,oEAAoE;AAEpE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAA+D;IAE/D,OAAO,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,KAAK,wBAAwB,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAA+D;IAE/D,OAAO,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,mBAAmB,KAAK,KAAK,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,6BAA6B,CAC3C,SAAoC,EACpC,OAAe;IAEf,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACtE,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IACzC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAoB,EACpB,OAAe,EACf,SAAyB,EACzB,oBAA4B,EAC5B,SAAkB,EAClB,qBAAoC,IAAI;IAExC,4EAA4E;IAC5E,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,4EAA4E;IAC5E,kEAAkE;IAClE,2EAA2E;IAC3E,MAAM,IAAI,GAAG,kBAAkB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IACpE,MAAM,WAAW,GAAwB,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEzF,2EAA2E;IAC3E,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,mDAAmD;IACnD,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,GAAG,CAAC,IAAI,CACN,+BAA+B,SAAS,IAAI,SAAS,eAAe,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;YAC1F,yDAAyD,CAC1D,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,6BAA6B,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9E,GAAG,CAAC,IAAI,CACN,kCAAkC,IAAI,IAAI,cAAc,SAAS,CAAC,SAAS,GAAG,aAAa;QAC3F,aAAa,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,oBAAoB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAC/E,CAAC;IAEF,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAClG,CAAC;SAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IACjG,CAAC;SAAM,CAAC;QACN,yEAAyE;QACzE,4EAA4E;QAC5E,yEAAyE;QACzE,mEAAmE;QACnE,aAAa;QACb,MAAM,IAAI,KAAK,CACb,0CAA0C,SAAS,CAAC,SAAS,IAAI;YACjE,aAAa,IAAI,CAAC,OAAO,aAAa,SAAS,IAAI,SAAS,gBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAClG,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,OAAe,EACf,SAAyB,EACzB,cAAmC,QAAQ,EAC3C,OAAoB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EACrF,qBAAoC,IAAI;IAExC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,gEAAgE;QAChE,oEAAoE;QACpE,iEAAiE;QACjE,+DAA+D;QAC/D,GAAG,CAAC,IAAI,CACN,iDAAiD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;YAC1E,4DAA4D,CAC7D,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACjF,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE;YAClC,OAAO;YACP,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI;YAC9B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI;YAChC,UAAU,EAAE,SAAS,CAAC,UAAU,IAAI,IAAI;YACxC,kBAAkB;YAClB,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,oBAAoB,CAAC,SAAS,CAAC;SAC7C,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,yEAAyE;IACzE,uEAAuE;IACvE,sEAAsE;IACtE,wEAAwE;IACxE,oEAAoE;IACpE,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,gEAAgE;IAChE,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAClC,GAAG,CAAC,IAAI,CACN,kDAAkD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM;YAC3E,2EAA2E;YAC3E,wCAAwC,CACzC,CAAC;QACF,OAAO;IACT,CAAC;IAED,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,sEAAsE;IACtE,0EAA0E;IAC1E,2EAA2E;IAC3E,6EAA6E;IAC7E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAC/B,4EAA4E;IAC5E,sEAAsE;IACtE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAE5B,uDAAuD;IACvD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,cAAc,GAAG,sBAAsB,SAAS,CAAC,OAAO,CAAC,QAAQ,WAAW,SAAS,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;QAC5G,GAAG,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,6CAA6C;IAC7C,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAClG,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACvB,GAAG,CAAC,IAAI,CACN,2DAA2D,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;YACjF,IAAI,WAAW,CAAC,MAAM,SAAS,CAChC,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,qBAAqB,CAClC,MAAoB,EACpB,OAAe,EACf,SAAyB,EACzB,cAAmC,QAAQ,EAC3C,OAAoB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EACrF,qBAAoC,IAAI;IAExC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC;IAEhD,6DAA6D;IAC7D,+DAA+D;IAC/D,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAEpD,4DAA4D;IAC5D,sBAAsB,CAAC,GAAG,CAAC,OAAO,EAAE;QAClC,OAAO;QACP,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI;QAC9B,kBAAkB;QAClB,WAAW;QACX,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW;KACZ,CAAC,CAAC;IAEH,0EAA0E;IAC1E,6EAA6E;IAC7E,wEAAwE;IACxE,uEAAuE;IACvE,uEAAuE;IACvE,8BAA8B;IAC9B,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,wBAAwB,CAAC;YACxC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,yBAAyB,EAAE,IAAI,CAAC,yBAAyB,EAAE;YAC9F,WAAW;YACX,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE;SAChB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1E,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CACN,uCAAuC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,wBAAwB;gBAClF,IAAI,MAAM,6DAA6D,CACxE,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,MAAM,GAAG,qBAAqB,GAAG,IAAI,EAAE,CAAC;YAC1C,GAAG,CAAC,IAAI,CACN,uCAAuC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,wBAAwB;gBAClF,IAAI,MAAM,kEAAkE,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;QACpF,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,kBAAkB,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAI,CACN,yDAAyD,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;QAC/E,IAAI,OAAO,CAAC,MAAM,kBAAkB,SAAS,CAAC,KAAK,IAAI,SAAS,2CAA2C,CAC5G,CAAC;AACJ,CAAC;AA+BD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAuB,EACvB,OAA4B;IAE5B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACnF,IAAI,SAAS,GAAiB,IAAI,CAAC;IACnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,CAAC;YACX,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,GAAG,GAAY,CAAC;YACzB,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;gBAC1B,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC9C,MAAM,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBACvD,GAAG,CAAC,IAAI,CACN,wBAAwB,OAAO,CAAC,KAAK,oBAAoB,OAAO,IAAI,WAAW,KAAK;oBACpF,GAAG,SAAS,CAAC,OAAO,iBAAiB,OAAO,OAAO,CACpD,CAAC;gBACF,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAQC,EACD,OAAsD,EAAE,gBAAgB,EAAE;IAE1E,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,gBAAgB,CAAC;YAC1B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,kBAAkB,CAAC,iBAAiB;YAChD,qEAAqE;YACrE,WAAW,EAAE,uBAAuB,CAAC,cAAc;YACnD,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;YAChE,WAAW,EACT,wCAAwC,MAAM,CAAC,SAAS,iBAAiB;gBACzE,GAAG,MAAM,CAAC,QAAQ,uBAAuB,UAAU,QAAQ;gBAC3D,cAAc,MAAM,CAAC,SAAS,IAAI;gBAClC,iBAAiB,MAAM,CAAC,OAAO,IAAI;gBACnC,cAAc,UAAU,IAAI;gBAC5B,mBAAmB,MAAM,CAAC,KAAK,CAAC,OAAO,MAAM;gBAC7C,qEAAqE;gBACrE,oEAAoE;gBACpE,yEAAyE;gBACzE,0CAA0C;YAC5C,YAAY,EACV,2CAA2C,MAAM,CAAC,QAAQ,gBAAgB;gBAC1E,+BAA+B,MAAM,CAAC,SAAS,YAAY,UAAU,IAAI;YAC3E,UAAU,EACR,8EAA8E;gBAC9E,2EAA2E;gBAC3E,4EAA4E;gBAC5E,uCAAuC;SAC1C,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CACN,kEAAkE,MAAM,CAAC,SAAS,IAAI;YACtF,WAAW,UAAU,MAAM,MAAM,CAAC,QAAQ,YAAY,CACvD,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CACP,yEAAyE;YACzE,IAAI,MAAM,CAAC,SAAS,MAAO,GAAa,CAAC,OAAO,EAAE,CACnD,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -9,7 +9,6 @@
9
9
  * - directive/phase-sync.ts stage detection + phase sync + transition triggers
10
10
  * - directive/directive-assembly.ts assembly of directive content (recipe + prompt + tools)
11
11
  * - directive/directive-dispatch.ts inject-to-stdin / spawn-queue execution + bounded retry
12
- * - directive/close-loop-stage.ts close_loop stage dispatcher (bookkeeper + sweep)
13
12
  * - directive/stage-tracker.ts lastProcessedStages map + accessors
14
13
  * - directive/directive-queue.ts pendingSpawnDirectives map + identity/guard helpers
15
14
  *
@@ -22,8 +21,7 @@ export { seedLastProcessedStage, getLastProcessedStages } from './stage-tracker.
22
21
  export { computeDirectiveHash, SPAWN_GUARD_WINDOW_MS, shouldSkipSpawnDirective, consumePendingSpawnDirective, __setPendingSpawnDirectiveForTesting, hasPendingSpawnDirective, getPendingSpawnDirective, getPendingSpawnFocusIds, clearPendingSpawnDirective, shouldSuppressRefireForPendingSpawn, shouldLogRefireSuppression, recordRefireSuppression, shouldReapPendingSpawnDirective, type PendingSpawnDirective, } from './directive-queue.js';
23
22
  export { type AssembledDirective, assembleDirectiveContent, assembleDirectiveContentWithManifest, } from './directive-assembly.js';
24
23
  export { fireFocusTransitionTriggers, resolveFocusStageName, shouldRefireStrandedReview, syncFocusPhase, } from './phase-sync.js';
25
- export { resolveDirectiveExecutionMode, isAgentlessDirective, AGENTLESS_EXECUTION_MODE, executeDirective, executeInjectDirective, type DirectiveRunResult, type RunDirectiveOptions, runDirectiveWithRetry, escalateDirectiveFailure, } from './directive-dispatch.js';
26
- export { __resetCloseLoopStateForTesting, getOpenInjectionUnverifiedEscalationIds, dispatchCloseLoopStage, getCloseLoopDirectiveForTesting, } from './close-loop-stage.js';
24
+ export { resolveDirectiveExecutionMode, isAgentlessDirective, isQuietTerminalStage, AGENTLESS_EXECUTION_MODE, executeDirective, executeInjectDirective, type DirectiveRunResult, type RunDirectiveOptions, runDirectiveWithRetry, escalateDirectiveFailure, } from './directive-dispatch.js';
27
25
  /**
28
26
  * Check all active focuses for stage changes with directives.
29
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"directive-executor.d.ts","sourceRoot":"","sources":["../../src/directive/directive-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAuCtD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,oCAAoC,EACpC,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,mCAAmC,EACnC,0BAA0B,EAC1B,uBAAuB,EACvB,+BAA+B,EAC/B,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,oCAAoC,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,+BAA+B,EAC/B,uCAAuC,EACvC,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAI/B;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA0OzE"}
1
+ {"version":3,"file":"directive-executor.d.ts","sourceRoot":"","sources":["../../src/directive/directive-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAsCtD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,oCAAoC,EACpC,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,mCAAmC,EACnC,0BAA0B,EAC1B,uBAAuB,EACvB,+BAA+B,EAC/B,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,kBAAkB,EACvB,wBAAwB,EACxB,oCAAoC,GACrC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,0BAA0B,EAC1B,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAIjC;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgPzE"}
@@ -9,7 +9,6 @@
9
9
  * - directive/phase-sync.ts stage detection + phase sync + transition triggers
10
10
  * - directive/directive-assembly.ts assembly of directive content (recipe + prompt + tools)
11
11
  * - directive/directive-dispatch.ts inject-to-stdin / spawn-queue execution + bounded retry
12
- * - directive/close-loop-stage.ts close_loop stage dispatcher (bookkeeper + sweep)
13
12
  * - directive/stage-tracker.ts lastProcessedStages map + accessors
14
13
  * - directive/directive-queue.ts pendingSpawnDirectives map + identity/guard helpers
15
14
  *
@@ -19,7 +18,6 @@
19
18
  */
20
19
  import { getActiveTeams, getActiveTeamCount } from '../focus/focus-team-state.js';
21
20
  import { fetchFocusWorkflow } from '../queries/focuses.js';
22
- import { FOCUS_STAGE } from '@telora/daemon-core';
23
21
  import { getActiveFocuses } from '../queries/deliveries.js';
24
22
  import { configForProduct } from '../shell/config.js';
25
23
  import { emitLoopTrigger } from '../loops/index.js';
@@ -27,8 +25,7 @@ import { resolveLineageSpec } from '../session/session-lineage.js';
27
25
  import { lastProcessedStages } from './stage-tracker.js';
28
26
  import { computeDirectiveHash, getPendingSpawnDirective, hasPendingSpawnDirective, shouldSuppressRefireForPendingSpawn, shouldLogRefireSuppression, recordRefireSuppression, } from './directive-queue.js';
29
27
  import { fireFocusTransitionTriggers, shouldRefireStrandedReview, syncFocusPhase, } from './phase-sync.js';
30
- import { executeDirective, resolveDirectiveExecutionMode, isAgentlessDirective, runDirectiveWithRetry, escalateDirectiveFailure, } from './directive-dispatch.js';
31
- import { dispatchCloseLoopStage } from './close-loop-stage.js';
28
+ import { executeDirective, resolveDirectiveExecutionMode, isAgentlessDirective, isQuietTerminalStage, runDirectiveWithRetry, escalateDirectiveFailure, } from './directive-dispatch.js';
32
29
  import { createLogger } from '../shell/log.js';
33
30
  const log = createLogger({ module: 'directive-executor' });
34
31
  // ── Re-exported public surface (callers unchanged) ───────────────
@@ -36,8 +33,7 @@ export { seedLastProcessedStage, getLastProcessedStages } from './stage-tracker.
36
33
  export { computeDirectiveHash, SPAWN_GUARD_WINDOW_MS, shouldSkipSpawnDirective, consumePendingSpawnDirective, __setPendingSpawnDirectiveForTesting, hasPendingSpawnDirective, getPendingSpawnDirective, getPendingSpawnFocusIds, clearPendingSpawnDirective, shouldSuppressRefireForPendingSpawn, shouldLogRefireSuppression, recordRefireSuppression, shouldReapPendingSpawnDirective, } from './directive-queue.js';
37
34
  export { assembleDirectiveContent, assembleDirectiveContentWithManifest, } from './directive-assembly.js';
38
35
  export { fireFocusTransitionTriggers, resolveFocusStageName, shouldRefireStrandedReview, syncFocusPhase, } from './phase-sync.js';
39
- export { resolveDirectiveExecutionMode, isAgentlessDirective, AGENTLESS_EXECUTION_MODE, executeDirective, executeInjectDirective, runDirectiveWithRetry, escalateDirectiveFailure, } from './directive-dispatch.js';
40
- export { __resetCloseLoopStateForTesting, getOpenInjectionUnverifiedEscalationIds, dispatchCloseLoopStage, getCloseLoopDirectiveForTesting, } from './close-loop-stage.js';
36
+ export { resolveDirectiveExecutionMode, isAgentlessDirective, isQuietTerminalStage, AGENTLESS_EXECUTION_MODE, executeDirective, executeInjectDirective, runDirectiveWithRetry, escalateDirectiveFailure, } from './directive-dispatch.js';
41
37
  // ── Poll loop integration ────────────────────────────────────────
42
38
  /**
43
39
  * Check all active focuses for stage changes with directives.
@@ -54,21 +50,6 @@ export async function checkDirectives(config) {
54
50
  try {
55
51
  const focuses = await getActiveFocuses(pc.organizationId, product.id);
56
52
  for (const focus of focuses) {
57
- // Close-loop dispatcher: when the denormalized stage is
58
- // `close_loop`, run the close-loop sweep BEFORE the workflow-stage
59
- // directive logic. The dispatcher is responsible for spawning the
60
- // bookkeeper team and advancing close_loop -> done; the standard
61
- // directive path is bypassed for this stage so the workflow stage
62
- // row's directive (if any) does not double-spawn a team.
63
- if (focus.stage === FOCUS_STAGE.CLOSE_LOOP) {
64
- try {
65
- await dispatchCloseLoopStage(pc, focus);
66
- }
67
- catch (err) {
68
- log.warn(`[directive-executor] close-loop dispatch failed for focus "${focus.focus_name}":`, err.message);
69
- }
70
- continue;
71
- }
72
53
  // Derive the focus's execution phase from its delivery aggregate
73
54
  // and update current_workflow_stage_id in the DB if it changed.
74
55
  // The mutated value is used for the rest of this iteration.
@@ -169,6 +150,27 @@ export async function checkDirectives(config) {
169
150
  `for focus "${focus.focus_name}"`);
170
151
  continue;
171
152
  }
153
+ // A terminal, non-agent-actionable stage is a QUIET terminal (TEL,
154
+ // delivery 5): no agent runs here regardless of what agent_directive
155
+ // the row still carries. winding_down declares is_terminal=true +
156
+ // is_agent_actionable=false, and its directive is execution:'inject' --
157
+ // so without this check it fell through to executeDirective, whose
158
+ // no-team inject fallback (directive-dispatch executeInjectDirective)
159
+ // escalates into a full pendingSpawnDirective spawn with nothing to do,
160
+ // once per daemon restart (lastProcessedStages is in-memory). The team
161
+ // is already gone by the time wind-down fires (torn down the moment
162
+ // every delivery goes terminal), so the inject addresses no one. Decide
163
+ // from the stage row's OWN declared shape, never a name-specific
164
+ // 'winding_down' special case, so any terminal + non-actionable stage is
165
+ // honoured. Silent entry, exactly like an agentless hold: on_enter
166
+ // triggers still fire; no directive dispatch, no spawn.
167
+ if (isQuietTerminalStage(stage)) {
168
+ lastProcessedStages.set(focus.focus_id, currentStageId);
169
+ log.info(`[directive-executor] Focus "${focus.focus_name}" entered terminal, non-actionable ` +
170
+ `stage "${stage.name}" -- quiet (no directive dispatch, no spawn)`);
171
+ await fireFocusTransitionTriggers(focus.focus_id, lastStageId, currentStageId);
172
+ continue;
173
+ }
172
174
  if (!stage.agentDirective || isAgentlessDirective(stage.agentDirective)) {
173
175
  // No directive on this stage (NULL) OR an explicit agentless hold
174
176
  // (execution: 'none') -- silent entry either way. Agentless is the
@@ -1 +1 @@
1
- {"version":3,"file":"directive-executor.js","sourceRoot":"","sources":["../../src/directive/directive-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"directive-executor.js","sourceRoot":"","sources":["../../src/directive/directive-executor.ts"],"names":[],"mappings":"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"}
@@ -20,21 +20,34 @@ export declare function fireFocusTransitionTriggers(focusId: string, lastStageId
20
20
  /**
21
21
  * Decide which workflow stage name a focus should be in.
22
22
  *
23
- * Pure helper, exported for testing. The selection rule is:
24
- * 1. If `focus.stage` is one of the new lifecycle stage names
25
- * (`queued`/`verify`/`review`/`close_loop`/`done`), use it directly.
26
- * The denormalized stage is the authoritative signal under the new
27
- * workflow.
28
- * 2. Otherwise, fall back to the legacy phase derived from the delivery
29
- * aggregate (kickoff/coding/verifying/reviewing/winding_down/blocked).
23
+ * ONE lifecycle, always derived from the delivery aggregate (+ the review
24
+ * window), terminating at `winding_down` where the HUMAN owns the completion
25
+ * decision (TEL-1, delivery 4: "One focus lifecycle, terminating at
26
+ * winding_down").
30
27
  *
31
- * Note: `review_requested_at` is still read by the legacy derivation for
32
- * back-compat -- but on the new lifecycle path the `review` stage transition
33
- * is driven by writes to `product_focuses.stage`, not by writes to
34
- * `review_requested_at`. This is the Issue 1 contract.
28
+ * The former dual-family FORK is removed. It previously took the denormalized
29
+ * `product_focuses.stage` column as authoritative when it named a "new
30
+ * lifecycle" stage (queued/verify/review/close_loop/done) and mapped it
31
+ * directly to that workflow_stages row -- a second, column-driven family that
32
+ * terminated at a machine-written `done`. That family was dormant only until
33
+ * Request Review wrote stage='review', so the ONE human act asserting the
34
+ * completion boundary was the act that silently switched the focus onto the
35
+ * lifecycle where the machine writes completion. Selecting the lifecycle on a
36
+ * column value is exactly the fork this delivery removes.
37
+ *
38
+ * Now the phase is ALWAYS the derived execution phase
39
+ * (kickoff/coding/verifying/reviewing/winding_down/blocked). The review window
40
+ * is carried by `review_requested_at` (deriveFocusPhase -> 'reviewing'), NOT by
41
+ * a stage-column write. The `queued/verify/review/close_loop/done` stage ROWS
42
+ * are intentionally left in the DB (removing them would wedge the RUNNING
43
+ * daemon's by-name lookups); they are simply never SELECTED here.
44
+ *
45
+ * `focusStage` remains in the input shape for caller/back-compat but is
46
+ * deliberately IGNORED -- the whole point is that no column value steers the
47
+ * lifecycle. Pure helper, exported for testing.
35
48
  */
36
49
  export declare function resolveFocusStageName(input: {
37
- focusStage: string | null | undefined;
50
+ focusStage?: string | null | undefined;
38
51
  deliveries: Array<{
39
52
  executionStatus: string | null;
40
53
  }>;
@@ -67,9 +80,9 @@ export declare function shouldRefireStrandedReview(input: {
67
80
  }): boolean;
68
81
  /**
69
82
  * Synchronize `product_focuses.current_workflow_stage_id` with the focus's
70
- * authoritative stage. The authoritative stage is taken from `focus.stage`
71
- * when it names one of the new lifecycle stages (Issue 1); otherwise the
72
- * legacy delivery-aggregate phase derivation applies.
83
+ * authoritative stage. The authoritative stage is the single derived execution
84
+ * phase (resolveFocusStageName -> deriveFocusPhase); the denormalized
85
+ * `focus.stage` column no longer steers it (TEL-1, delivery 4).
73
86
  *
74
87
  * Returns the stage ID the focus should be in (post-sync). Falls back to
75
88
  * the recorded stage id on error so callers don't have to handle a third
@@ -1 +1 @@
1
- {"version":3,"file":"phase-sync.d.ts","sourceRoot":"","sources":["../../src/directive/phase-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAyCf;AAwBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACtC,UAAU,EAAE,KAAK,CAAC;QAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACtD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GAAG,MAAM,CAQT;AASD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAKV;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmCzB"}
1
+ {"version":3,"file":"phase-sync.d.ts","sourceRoot":"","sources":["../../src/directive/phase-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmBH;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAyCf;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACvC,UAAU,EAAE,KAAK,CAAC;QAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACtD,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,GAAG,MAAM,CAMT;AASD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAKV;AAED;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmCzB"}
@@ -57,45 +57,37 @@ export async function fireFocusTransitionTriggers(focusId, lastStageId, currentS
57
57
  }
58
58
  }
59
59
  // ── Phase sync ───────────────────────────────────────────────────
60
- /**
61
- * New focus workflow lifecycle stage names introduced by D1
62
- * (20260513152817_focus_workflow_lifecycle_and_tree_closure.sql).
63
- *
64
- * When `product_focuses.stage` is one of these, the daemon takes the
65
- * denormalized `focus.stage` as authoritative and maps it directly to the
66
- * matching workflow_stages row — this is how the new lifecycle (verify ->
67
- * review -> close_loop -> done) drives the daemon, rather than the legacy
68
- * delivery-aggregate phase derivation. The legacy derivation is kept as a
69
- * fallback for focuses still on the older
70
- * kickoff/coding/verifying/reviewing/winding_down flow.
71
- */
72
- const LIFECYCLE_STAGE_NAMES = new Set([
73
- 'queued',
74
- 'verify',
75
- 'review',
76
- 'close_loop',
77
- 'done',
78
- ]);
79
60
  /**
80
61
  * Decide which workflow stage name a focus should be in.
81
62
  *
82
- * Pure helper, exported for testing. The selection rule is:
83
- * 1. If `focus.stage` is one of the new lifecycle stage names
84
- * (`queued`/`verify`/`review`/`close_loop`/`done`), use it directly.
85
- * The denormalized stage is the authoritative signal under the new
86
- * workflow.
87
- * 2. Otherwise, fall back to the legacy phase derived from the delivery
88
- * aggregate (kickoff/coding/verifying/reviewing/winding_down/blocked).
63
+ * ONE lifecycle, always derived from the delivery aggregate (+ the review
64
+ * window), terminating at `winding_down` where the HUMAN owns the completion
65
+ * decision (TEL-1, delivery 4: "One focus lifecycle, terminating at
66
+ * winding_down").
89
67
  *
90
- * Note: `review_requested_at` is still read by the legacy derivation for
91
- * back-compat -- but on the new lifecycle path the `review` stage transition
92
- * is driven by writes to `product_focuses.stage`, not by writes to
93
- * `review_requested_at`. This is the Issue 1 contract.
68
+ * The former dual-family FORK is removed. It previously took the denormalized
69
+ * `product_focuses.stage` column as authoritative when it named a "new
70
+ * lifecycle" stage (queued/verify/review/close_loop/done) and mapped it
71
+ * directly to that workflow_stages row -- a second, column-driven family that
72
+ * terminated at a machine-written `done`. That family was dormant only until
73
+ * Request Review wrote stage='review', so the ONE human act asserting the
74
+ * completion boundary was the act that silently switched the focus onto the
75
+ * lifecycle where the machine writes completion. Selecting the lifecycle on a
76
+ * column value is exactly the fork this delivery removes.
77
+ *
78
+ * Now the phase is ALWAYS the derived execution phase
79
+ * (kickoff/coding/verifying/reviewing/winding_down/blocked). The review window
80
+ * is carried by `review_requested_at` (deriveFocusPhase -> 'reviewing'), NOT by
81
+ * a stage-column write. The `queued/verify/review/close_loop/done` stage ROWS
82
+ * are intentionally left in the DB (removing them would wedge the RUNNING
83
+ * daemon's by-name lookups); they are simply never SELECTED here.
84
+ *
85
+ * `focusStage` remains in the input shape for caller/back-compat but is
86
+ * deliberately IGNORED -- the whole point is that no column value steers the
87
+ * lifecycle. Pure helper, exported for testing.
94
88
  */
95
89
  export function resolveFocusStageName(input) {
96
- if (input.focusStage && LIFECYCLE_STAGE_NAMES.has(input.focusStage)) {
97
- return input.focusStage;
98
- }
90
+ // Single lifecycle: the derived execution phase, always. No column-value fork.
99
91
  return deriveFocusPhase({
100
92
  deliveries: input.deliveries,
101
93
  reviewRequestedAt: input.reviewRequestedAt,
@@ -138,9 +130,9 @@ export function shouldRefireStrandedReview(input) {
138
130
  }
139
131
  /**
140
132
  * Synchronize `product_focuses.current_workflow_stage_id` with the focus's
141
- * authoritative stage. The authoritative stage is taken from `focus.stage`
142
- * when it names one of the new lifecycle stages (Issue 1); otherwise the
143
- * legacy delivery-aggregate phase derivation applies.
133
+ * authoritative stage. The authoritative stage is the single derived execution
134
+ * phase (resolveFocusStageName -> deriveFocusPhase); the denormalized
135
+ * `focus.stage` column no longer steers it (TEL-1, delivery 4).
144
136
  *
145
137
  * Returns the stage ID the focus should be in (post-sync). Falls back to
146
138
  * the recorded stage id on error so callers don't have to handle a third
@@ -1 +1 @@
1
- {"version":3,"file":"phase-sync.js","sourceRoot":"","sources":["../../src/directive/phase-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phase-sync.js","sourceRoot":"","sources":["../../src/directive/phase-sync.ts"],"names":[],"mappings":"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"}
@@ -1,32 +1,23 @@
1
1
  /**
2
- * Resolver-dispatch seam: attempt a blockage with a capable resolver BEFORE
3
- * any human escalation can be filed.
2
+ * Resolver-dispatch policy: the bounded-retry-vs-escalate boundary, extracted so
3
+ * the "attempt a resolver first, escalate only as the residue" decision lives in
4
+ * exactly ONE definition.
4
5
  *
5
- * This is the generalization of the dirty-worktree advance-block shape
6
- * (delivery-advance-block.ts): a blockage is first handed to a resolver that
7
- * holds reach the sandboxed worktree agent lacks; only after that resolver
8
- * fails, or a bounded retry budget is exhausted, does the blockage become a
9
- * human escalation. Escalation is the residue, not the reflex.
6
+ * The live enforcement site is the dirty-worktree advance-block
7
+ * (delivery/delivery-advance-block.ts): a blockage is first handed to a resolver
8
+ * that holds reach the sandboxed worktree agent lacks (re-waking the lead to
9
+ * commit); only after that resolver fails, or the bounded retry budget is spent,
10
+ * does the blockage become a human escalation. That path delegates its
11
+ * retry-vs-escalate boundary to `nextResolverStep` here so the "escalation is the
12
+ * residue, not the reflex" shape has one definition rather than a per-call-site
13
+ * `state.attempts < budget` it can drift from.
10
14
  *
11
- * The seam deliberately owns ONE thing -- the WHEN policy (attempt-first,
12
- * bounded-retry, escalate-on-exhaustion) -- and nothing else. It creates no
13
- * agent_escalations row, knows nothing about Supabase, the worktree, or teams.
14
- * The caller supplies a resolver (with a DECLARED `reach`) and an `escalate`
15
- * sink; the seam decides only when each fires. That keeps it a pure,
16
- * deterministic decision path every blockage class can route through, and keeps
17
- * "a resolver is attempted first" an invariant of the dispatch rather than a
18
- * convention each call site re-implements (and forgets).
19
- *
20
- * Why a declared `reach` rather than "just try and see": the asymmetry between
21
- * a resolver that can reach the blockage and the sandboxed agent that cannot is
22
- * the whole reason some blockages are resolvable at all. Making reach an
23
- * explicit, injectable property lets a call site (and a test) distinguish "no
24
- * capable resolver exists for this blockage -> it is genuinely a human's" from
25
- * "a resolver exists and failed" WITHOUT standing up a live host.
26
- *
27
- * NOT a classifier. The seam does not sort blockages into kinds up front;
28
- * attempting resolution discovers the kind for free. Route first; the residue
29
- * (what survives the attempt) is what a human or a state-hold then owns.
15
+ * (A former `dispatchBlockage` wrapper generalized the whole attempt-loop, but
16
+ * the one real call site needs richer control than it could express -- per-cycle
17
+ * idempotency, a synchronous nudge whose failure conditionally spends budget, and
18
+ * a no-team WIP-commit branch -- so it drove the boundary primitive directly and
19
+ * the wrapper had no live enforcement site. It was deleted rather than left as a
20
+ * declared-but-unenforced invariant, delivery 6 TEL-5.)
30
21
  *
31
22
  * @module resolver-dispatch
32
23
  */
@@ -37,72 +28,8 @@
37
28
  * is budget left, 'escalate' once it is spent.
38
29
  *
39
30
  * delivery-advance-block delegates its "re-wake the team again vs. file a
40
- * human escalation" decision to this function so the dirty-worktree path and
41
- * the general seam share one definition of the boundary (its former inline
42
- * `state.attempts < budget`).
31
+ * human escalation" decision to this function so the dirty-worktree path shares
32
+ * one definition of the boundary (its former inline `state.attempts < budget`).
43
33
  */
44
34
  export declare function nextResolverStep(attempts: number, budget: number): 'retry' | 'escalate';
45
- /**
46
- * A resolver that can attempt to close a blockage. Its `reach` is DECLARED and
47
- * injectable: a reach-less resolver is never attempted (there is nothing for it
48
- * to close), so the blockage routes straight to escalation.
49
- */
50
- export interface BlockageResolver {
51
- /**
52
- * Whether this resolver actually has the reach to close the blockage. When
53
- * false, `attempt` is never called and the blockage escalates with reason
54
- * 'no_reach'. This is the property that distinguishes "a capable resolver
55
- * exists and failed" from "no capable resolver exists".
56
- */
57
- readonly reach: boolean;
58
- /**
59
- * Try to resolve the blockage on attempt number `attemptNumber` (1-based).
60
- * Resolves `true` on success, `false` on a recoverable failure worth another
61
- * attempt within budget. A thrown error is treated as a failed attempt (never
62
- * a crash of the seam), so a resolver need not defend every path itself.
63
- */
64
- attempt(attemptNumber: number): Promise<boolean>;
65
- }
66
- /** Why a blockage escalated to a human, when it did. */
67
- export type EscalationReasonResidue = 'no_reach' | 'exhausted';
68
- /** The terminal outcome of dispatching a blockage through the seam. */
69
- export type BlockageOutcome = {
70
- kind: 'resolved';
71
- attempts: number;
72
- } | {
73
- kind: 'escalated';
74
- attempts: number;
75
- reason: EscalationReasonResidue;
76
- };
77
- /** Collaborators for {@link dispatchBlockage}; all injectable for tests. */
78
- export interface DispatchDeps {
79
- /** The reach-declaring resolver attempted before any escalation. */
80
- resolver: BlockageResolver;
81
- /**
82
- * The escalation sink. Called AT MOST ONCE, and ONLY after the resolver has
83
- * no reach or has exhausted its retry budget. The seam creates no row itself;
84
- * the caller decides what an escalation is (an agent_escalations row, a state
85
- * hold, a log line). The invariant the seam guarantees is that this never
86
- * fires while the resolver still might succeed.
87
- */
88
- escalate: () => Promise<void>;
89
- /**
90
- * Bounded retry budget: the maximum number of resolver attempts. Coerced to a
91
- * non-negative integer. A budget of 0 (or a reach-less resolver) means the
92
- * blockage escalates without any attempt. There is no unbounded mode.
93
- */
94
- budget: number;
95
- }
96
- /**
97
- * Dispatch a blockage: attempt the resolver first, retry within a bounded
98
- * budget, and escalate only as the residue.
99
- *
100
- * Guarantees, all provable without a live host:
101
- * - A reach-capable resolver is attempted BEFORE `escalate` is ever called.
102
- * - `escalate` fires only after the resolver fails every attempt within budget
103
- * (reason 'exhausted') or has no reach (reason 'no_reach') -- never on the
104
- * first blockage while an attempt is still possible.
105
- * - The retry loop always terminates: it runs at most `budget` attempts.
106
- */
107
- export declare function dispatchBlockage(deps: DispatchDeps): Promise<BlockageOutcome>;
108
35
  //# sourceMappingURL=resolver-dispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolver-dispatch.d.ts","sourceRoot":"","sources":["../../src/directive/resolver-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAEvF;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;;;;OAKG;IACH,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAClD;AAED,wDAAwD;AACxD,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,WAAW,CAAC;AAE/D,uEAAuE;AACvE,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,CAAC;AAE7E,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAyBnF"}
1
+ {"version":3,"file":"resolver-dispatch.d.ts","sourceRoot":"","sources":["../../src/directive/resolver-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAEvF"}