@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.
- package/build-info.json +6 -3
- package/dist/audit/audit-hooks.d.ts +120 -5
- package/dist/audit/audit-hooks.d.ts.map +1 -1
- package/dist/audit/audit-hooks.js +205 -45
- package/dist/audit/audit-hooks.js.map +1 -1
- package/dist/ci/ci-escalation.js +1 -1
- package/dist/ci/ci-escalation.js.map +1 -1
- package/dist/ci/ci-sensor-loop.d.ts +30 -0
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +85 -12
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/cli/connect/config-write.d.ts +87 -0
- package/dist/cli/connect/config-write.d.ts.map +1 -0
- package/dist/cli/connect/config-write.js +255 -0
- package/dist/cli/connect/config-write.js.map +1 -0
- package/dist/cli/connect/registration.d.ts +76 -0
- package/dist/cli/connect/registration.d.ts.map +1 -0
- package/dist/cli/connect/registration.js +207 -0
- package/dist/cli/connect/registration.js.map +1 -0
- package/dist/cli/connect.d.ts +3 -141
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +9 -441
- package/dist/cli/connect.js.map +1 -1
- package/dist/completion/coverage-drift-state.d.ts +29 -2
- package/dist/completion/coverage-drift-state.d.ts.map +1 -1
- package/dist/completion/coverage-drift-state.js +42 -2
- package/dist/completion/coverage-drift-state.js.map +1 -1
- package/dist/completion/coverage-stabilized.d.ts +58 -0
- package/dist/completion/coverage-stabilized.d.ts.map +1 -0
- package/dist/completion/coverage-stabilized.js +84 -0
- package/dist/completion/coverage-stabilized.js.map +1 -0
- package/dist/completion/delivery-advancement-guard.d.ts +21 -0
- package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
- package/dist/completion/delivery-advancement-guard.js +31 -3
- package/dist/completion/delivery-advancement-guard.js.map +1 -1
- package/dist/completion/escalation-provenance.d.ts +2 -1
- package/dist/completion/escalation-provenance.d.ts.map +1 -1
- package/dist/completion/escalation-provenance.js +2 -1
- package/dist/completion/escalation-provenance.js.map +1 -1
- package/dist/completion/escalations.js +1 -1
- package/dist/completion/escalations.js.map +1 -1
- package/dist/completion/event-escalations.d.ts +16 -1
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +43 -5
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +5 -2
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +1 -1
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +2 -2
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/machine-remediable-demotion.d.ts +74 -0
- package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
- package/dist/completion/machine-remediable-demotion.js +148 -0
- package/dist/completion/machine-remediable-demotion.js.map +1 -0
- package/dist/completion/read-only-pristine.d.ts +1 -1
- package/dist/completion/read-only-pristine.d.ts.map +1 -1
- package/dist/completion/read-only-pristine.js +1 -1
- package/dist/completion/read-only-pristine.js.map +1 -1
- package/dist/completion/review-exit-escalations.d.ts +1 -1
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.d.ts +5 -2
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +15 -8
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/settle-injection-sweep.d.ts +55 -0
- package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
- package/dist/completion/settle-injection-sweep.js +88 -0
- package/dist/completion/settle-injection-sweep.js.map +1 -0
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +42 -1
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +18 -0
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +42 -0
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +73 -1
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-advance-block.d.ts +1 -1
- package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery/delivery-advance-block.js +1 -1
- package/dist/delivery/delivery-advance-block.js.map +1 -1
- package/dist/delivery/delivery-lifecycle.d.ts +19 -33
- package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery/delivery-lifecycle.js +20 -148
- package/dist/delivery/delivery-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-merge-ops.d.ts +46 -0
- package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
- package/dist/delivery/delivery-merge-ops.js +154 -0
- package/dist/delivery/delivery-merge-ops.js.map +1 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts +28 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler-apply.js +30 -0
- package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
- package/dist/delivery/delivery-reconciler-shadow.d.ts +1 -1
- package/dist/delivery/delivery-reconciler-shadow.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler-shadow.js +1 -1
- package/dist/delivery/delivery-reconciler-shadow.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +7 -2
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +34 -5
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/delivery/external-hold-surface.d.ts +32 -0
- package/dist/delivery/external-hold-surface.d.ts.map +1 -0
- package/dist/delivery/external-hold-surface.js +67 -0
- package/dist/delivery/external-hold-surface.js.map +1 -0
- package/dist/delivery/external-hold.d.ts +21 -0
- package/dist/delivery/external-hold.d.ts.map +1 -1
- package/dist/delivery/external-hold.js +40 -5
- package/dist/delivery/external-hold.js.map +1 -1
- package/dist/delivery/operator-hold.d.ts +1 -1
- package/dist/delivery/operator-hold.d.ts.map +1 -1
- package/dist/delivery/paused-revival.d.ts +140 -0
- package/dist/delivery/paused-revival.d.ts.map +1 -0
- package/dist/delivery/paused-revival.js +230 -0
- package/dist/delivery/paused-revival.js.map +1 -0
- package/dist/delivery/wait-reachability.d.ts.map +1 -1
- package/dist/delivery/wait-reachability.js +11 -0
- package/dist/delivery/wait-reachability.js.map +1 -1
- package/dist/directive/close-loop-dispatcher.d.ts +16 -263
- package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
- package/dist/directive/close-loop-dispatcher.js +21 -259
- package/dist/directive/close-loop-dispatcher.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts +20 -1
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +19 -1
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts +1 -3
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +24 -22
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +28 -15
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +28 -36
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/directive/resolver-dispatch.d.ts +19 -92
- package/dist/directive/resolver-dispatch.d.ts.map +1 -1
- package/dist/directive/resolver-dispatch.js +19 -65
- package/dist/directive/resolver-dispatch.js.map +1 -1
- package/dist/drift/staleness-sensor.js +1 -1
- package/dist/drift/staleness-sensor.js.map +1 -1
- package/dist/focus/focus-engine.d.ts.map +1 -1
- package/dist/focus/focus-engine.js +29 -2
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +290 -256
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-lifecycle.d.ts.map +1 -1
- package/dist/focus/focus-lifecycle.js +2 -1
- package/dist/focus/focus-lifecycle.js.map +1 -1
- package/dist/focus/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus/focus-loop-registry.js +43 -1
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/focus/focus-respawn-guard.d.ts +1 -1
- package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
- package/dist/focus/focus-respawn-guard.js +12 -3
- package/dist/focus/focus-respawn-guard.js.map +1 -1
- package/dist/focus/focus-team-state.d.ts +11 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +17 -0
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/listener-auto-advance.d.ts +17 -46
- package/dist/focus/listener-auto-advance.d.ts.map +1 -1
- package/dist/focus/listener-auto-advance.js +104 -256
- package/dist/focus/listener-auto-advance.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +62 -0
- package/dist/focus/listener-spawn.d.ts.map +1 -0
- package/dist/focus/listener-spawn.js +418 -0
- package/dist/focus/listener-spawn.js.map +1 -0
- package/dist/focus/listener-state.d.ts +57 -0
- package/dist/focus/listener-state.d.ts.map +1 -0
- package/dist/focus/listener-state.js +63 -0
- package/dist/focus/listener-state.js.map +1 -0
- package/dist/focus/listener.d.ts +0 -58
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +138 -516
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/tick-deadline.d.ts +55 -0
- package/dist/focus/tick-deadline.d.ts.map +1 -0
- package/dist/focus/tick-deadline.js +91 -0
- package/dist/focus/tick-deadline.js.map +1 -0
- package/dist/focus/verify-open-issues.d.ts +62 -0
- package/dist/focus/verify-open-issues.d.ts.map +1 -0
- package/dist/focus/verify-open-issues.js +265 -0
- package/dist/focus/verify-open-issues.js.map +1 -0
- package/dist/focus-stage-lifecycle/index.d.ts +19 -26
- package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/index.js +27 -39
- package/dist/focus-stage-lifecycle/index.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/git/index.d.ts +2 -0
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +2 -0
- package/dist/git/index.js.map +1 -1
- package/dist/git/merge-strategies.d.ts +80 -0
- package/dist/git/merge-strategies.d.ts.map +1 -0
- package/dist/git/merge-strategies.js +218 -0
- package/dist/git/merge-strategies.js.map +1 -0
- package/dist/git/merge-to-main.d.ts +76 -0
- package/dist/git/merge-to-main.d.ts.map +1 -0
- package/dist/git/merge-to-main.js +256 -0
- package/dist/git/merge-to-main.js.map +1 -0
- package/dist/git/merge.d.ts +27 -81
- package/dist/git/merge.d.ts.map +1 -1
- package/dist/git/merge.js +4 -448
- package/dist/git/merge.js.map +1 -1
- package/dist/git/state-detector.js +1 -1
- package/dist/git/state-detector.js.map +1 -1
- package/dist/guard/condition-evaluators.d.ts +9 -0
- package/dist/guard/condition-evaluators.d.ts.map +1 -1
- package/dist/guard/condition-evaluators.js +15 -0
- package/dist/guard/condition-evaluators.js.map +1 -1
- package/dist/guard/guard-evaluator.d.ts +17 -1
- package/dist/guard/guard-evaluator.d.ts.map +1 -1
- package/dist/guard/guard-evaluator.js +61 -2
- package/dist/guard/guard-evaluator.js.map +1 -1
- package/dist/guard/trigger-executor.d.ts +30 -18
- package/dist/guard/trigger-executor.d.ts.map +1 -1
- package/dist/guard/trigger-executor.js +55 -31
- package/dist/guard/trigger-executor.js.map +1 -1
- package/dist/loops/engine.js +1 -1
- package/dist/loops/engine.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +1 -1
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +1 -1
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +1 -1
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +2 -2
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-detector.js +1 -1
- package/dist/merge/merge-detector.js.map +1 -1
- package/dist/nexus/return.js +1 -1
- package/dist/nexus/return.js.map +1 -1
- package/dist/prd/controller-shared.d.ts +223 -0
- package/dist/prd/controller-shared.d.ts.map +1 -0
- package/dist/prd/controller-shared.js +77 -0
- package/dist/prd/controller-shared.js.map +1 -0
- package/dist/prd/controller.d.ts +5 -256
- package/dist/prd/controller.d.ts.map +1 -1
- package/dist/prd/controller.js +9 -166
- package/dist/prd/controller.js.map +1 -1
- package/dist/prd/done-sweep.d.ts +55 -0
- package/dist/prd/done-sweep.d.ts.map +1 -0
- package/dist/prd/done-sweep.js +112 -0
- package/dist/prd/done-sweep.js.map +1 -0
- package/dist/prompt/team-prompt-base.d.ts +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +1 -1
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +12 -2
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +0 -32
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +19 -88
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/shared.d.ts +1 -1
- package/dist/prompt-sections/shared.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +2 -1
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/deliveries.d.ts +0 -172
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +1 -77
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/escalation-consumption.d.ts +120 -0
- package/dist/queries/escalation-consumption.d.ts.map +1 -0
- package/dist/queries/escalation-consumption.js +143 -0
- package/dist/queries/escalation-consumption.js.map +1 -0
- package/dist/queries/escalation-dispositions.d.ts +19 -0
- package/dist/queries/escalation-dispositions.d.ts.map +1 -0
- package/dist/queries/escalation-dispositions.js +18 -0
- package/dist/queries/escalation-dispositions.js.map +1 -0
- package/dist/queries/escalation-suppression.d.ts +1 -1
- package/dist/queries/escalation-suppression.d.ts.map +1 -1
- package/dist/queries/escalation-suppression.js +1 -1
- package/dist/queries/escalation-suppression.js.map +1 -1
- package/dist/queries/escalations.d.ts +343 -0
- package/dist/queries/escalations.d.ts.map +1 -0
- package/dist/queries/escalations.js +493 -0
- package/dist/queries/escalations.js.map +1 -0
- package/dist/queries/focus-discovery.d.ts +204 -0
- package/dist/queries/focus-discovery.d.ts.map +1 -0
- package/dist/queries/focus-discovery.js +92 -0
- package/dist/queries/focus-discovery.js.map +1 -0
- package/dist/queries/focuses.d.ts +36 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +45 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/guards.d.ts +10 -0
- package/dist/queries/guards.d.ts.map +1 -1
- package/dist/queries/guards.js +14 -1
- package/dist/queries/guards.js.map +1 -1
- package/dist/queries/index.d.ts +4 -2
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +4 -2
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/issues.d.ts +8 -372
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +7 -482
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/schemas.d.ts +51 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +34 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/verification.d.ts +5 -6
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +5 -6
- package/dist/queries/verification.js.map +1 -1
- package/dist/resolvers/agent-escalations.d.ts +20 -0
- package/dist/resolvers/agent-escalations.d.ts.map +1 -1
- package/dist/resolvers/agent-escalations.js +40 -10
- package/dist/resolvers/agent-escalations.js.map +1 -1
- package/dist/resolvers/index.d.ts +2 -2
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/loop-persona.d.ts +1 -11
- package/dist/resolvers/loop-persona.d.ts.map +1 -1
- package/dist/resolvers/loop-persona.js +2 -16
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +99 -18
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +98 -27
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/shell/control-state.d.ts +1 -1
- package/dist/shell/control-state.d.ts.map +1 -1
- package/dist/shell/control-state.js +1 -1
- package/dist/shell/control-state.js.map +1 -1
- package/dist/shell/crash-recovery.d.ts +1 -1
- package/dist/shell/crash-recovery.d.ts.map +1 -1
- package/dist/shell/crash-recovery.js +2 -2
- package/dist/shell/crash-recovery.js.map +1 -1
- package/dist/shell/install-probe-tick.d.ts +1 -1
- package/dist/shell/install-probe-tick.d.ts.map +1 -1
- package/dist/shell/install-probe-tick.js +1 -1
- package/dist/shell/install-probe-tick.js.map +1 -1
- package/dist/shell/unified-shell-provisioning.d.ts +40 -0
- package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
- package/dist/shell/unified-shell-provisioning.js +72 -0
- package/dist/shell/unified-shell-provisioning.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +19 -2
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +6 -1
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/model-routing.d.ts +1 -1
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +1 -1
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +7 -0
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +1 -1
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +1 -1
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts +41 -7
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +47 -0
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +34 -2
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +1 -1
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +1 -1
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +12 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/verify/stall-detectors.d.ts +20 -8
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +27 -46
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +1 -1
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-deps.d.ts +1 -1
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +20 -12
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/workflow/gate-failure-policy.d.ts +48 -0
- package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
- package/dist/workflow/gate-failure-policy.js +57 -0
- package/dist/workflow/gate-failure-policy.js.map +1 -0
- package/dist/workflow/pipeline-config.d.ts +2 -2
- package/dist/workflow/pipeline-config.js +2 -2
- package/dist/worktree/provision.js +1 -1
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/scratch-guard.d.ts.map +1 -1
- package/dist/worktree/scratch-guard.js +23 -2
- package/dist/worktree/scratch-guard.js.map +1 -1
- package/package.json +1 -1
- package/dist/directive/close-loop-stage.d.ts +0 -50
- package/dist/directive/close-loop-stage.d.ts.map +0 -1
- package/dist/directive/close-loop-stage.js +0 -210
- package/dist/directive/close-loop-stage.js.map +0 -1
- package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
- package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
- package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
- 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 {
|
|
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 {
|
|
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
|
-
*
|
|
59
|
-
*
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
76
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"listener-auto-advance.js","sourceRoot":"","sources":["../../src/focus/listener-auto-advance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE,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,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAClI,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,oCAAoC,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AAC9H,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,qBAAqB,CAAC;AACtE,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,qCAAqC,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,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,sBAAsB,GAAG,QAAiB,CAAC;AACjD,MAAM,sBAAsB,GAAG,QAAiB,CAAC;AACjD,MAAM,sBAAsB,GAAG,QAAiB,CAAC;AACjD,MAAM,6BAA6B,GAAG,eAAwB,CAAC;AAoB/D;;;;;;;;;;;;;;GAcG;AACH,KAAK,UAAU,4BAA4B,CACzC,MAAoB,EACpB,QAAsC,EACtC,QAAkB,EAClB,UAAkB;IAElB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACxE,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACrC,QAAQ;QACR,cAAc,EAAE,YAAY,CAAC,EAAE;QAC/B,QAAQ,EAAE,CAAC;QACX,cAAc,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;QACf,UAAU,EAAE,CAAC;KACd,CAAC,CAAC;IACH,IAAI,CAAC,UAAU,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,mCAAmC,CAAC;QACxD,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;QACjD,QAAQ,EAAE,CAAC;QACX,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;AAC5E,CAAC;AA6BD,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;IACjH,MAAM,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,IAAI,4BAA4B,CAAC;IAE1F,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,oEAAoE;gCACpE,gEAAgE;gCAChE,KAAK,EAAE,qBAAqB,CAAC;oCAC3B,aAAa,EAAE,aAAa;oCAC5B,MAAM;oCACN,YAAY,EAAE,IAAI;oCAClB,aAAa,EAAE,KAAK;iCACrB,CAAC;6BACH,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,qEAAqE;4BACrE,qEAAqE;4BACrE,KAAK,EAAE,qBAAqB,CAAC;gCAC3B,aAAa;gCACb,MAAM,EAAE,gBAAgB;gCACxB,YAAY,EAAE,IAAI;gCAClB,aAAa,EAAE,iBAAiB;6BACjC,CAAC;yBACH,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,uEAAuE;oBACvE,yEAAyE;oBACzE,0EAA0E;oBAC1E,wEAAwE;oBACxE,yEAAyE;oBACzE,0EAA0E;oBAC1E,oDAAoD;oBACpD,IAAI,mBAAmB,GAAgC,IAAI,CAAC;oBAC5D,IAAI,gBAAgB,GAA6B,IAAI,CAAC;oBACtD,IAAI,aAAa,KAAK,sBAAsB,EAAE,CAAC;wBAC7C,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;wBACzF,IAAI,QAAQ,EAAE,CAAC;4BACb,mBAAmB,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;4BACpD,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;wBAClE,CAAC;oBACH,CAAC;oBAED,MAAM,cAAc,GAAG,sBAAsB,CAAC;wBAC5C,0DAA0D;wBAC1D,qEAAqE;wBACrE,uEAAuE;wBACvE,KAAK,EAAE,qBAAqB,CAAC;4BAC3B,aAAa;4BACb,MAAM,EAAE,gBAAgB;4BACxB,YAAY,EAAE,mBAAmB;4BACjC,aAAa,EAAE,iBAAiB;yBACjC,CAAC;qBACH,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,gBAAgB,EAAE,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;oBACpL,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,kEAAkE;4BAClE,+DAA+D;4BAC/D,KAAK,EAAE,qBAAqB,CAAC;gCAC3B,aAAa;gCACb,MAAM,EAAE,gBAAgB;gCACxB,YAAY,EAAE,IAAI;gCAClB,aAAa,EAAE,IAAI;6BACpB,CAAC;yBACH,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,6DAA6D;4BAC7D,oEAAoE;4BACpE,iEAAiE;4BACjE,qCAAqC,CACnC,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,IAAI,EACb,CAAC,oBAAoB,IAAI,YAAY,IAAI,YAAY,CAAC,kBAAkB,CAAC,IAAI,KAAK,EAClF,YAAY,CAAC,IAAI,CAClB,CAAC;4BACF,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;oBACF,wEAAwE;oBACxE,wEAAwE;oBACxE,yEAAyE;oBACzE,sEAAsE;oBACtE,sEAAsE;oBACtE,yEAAyE;oBACzE,uEAAuE;oBACvE,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBAC5B,uEAAuE;oBACvE,wEAAwE;oBACxE,qEAAqE;oBACrE,yEAAyE;oBACzE,wEAAwE;oBACxE,mDAAmD;oBACnD,KAAK,iCAAiC,CACpC,OAAO,EACP,cAAc,EACd,8HAA8H,CAC/H,CAAC,KAAK,CAAC,GAAG,EAAE,GAA4C,CAAC,CAAC,CAAC;gBAC9D,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"}
|
|
@@ -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"}
|