@telora/daemon 0.20.2 → 0.20.9
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 +7 -3
- package/dist/ai-inspection-context.d.ts.map +1 -1
- package/dist/ai-inspection-context.js +5 -3
- package/dist/ai-inspection-context.js.map +1 -1
- package/dist/assembly-engine.d.ts.map +1 -1
- package/dist/assembly-engine.js +4 -2
- package/dist/assembly-engine.js.map +1 -1
- package/dist/audit-hooks.d.ts.map +1 -1
- package/dist/audit-hooks.js +3 -1
- package/dist/audit-hooks.js.map +1 -1
- package/dist/auth-liveness.d.ts.map +1 -1
- package/dist/auth-liveness.js +4 -2
- package/dist/auth-liveness.js.map +1 -1
- package/dist/auto-update.d.ts.map +1 -1
- package/dist/auto-update.js +14 -12
- package/dist/auto-update.js.map +1 -1
- package/dist/backends/codex/codex-backend.d.ts.map +1 -1
- package/dist/backends/codex/codex-backend.js +4 -2
- package/dist/backends/codex/codex-backend.js.map +1 -1
- package/dist/backends/codex/codex-mcp-proxy.d.ts.map +1 -1
- package/dist/backends/codex/codex-mcp-proxy.js +3 -1
- package/dist/backends/codex/codex-mcp-proxy.js.map +1 -1
- package/dist/backends/lacuna/lifecycle.d.ts.map +1 -1
- package/dist/backends/lacuna/lifecycle.js +4 -2
- package/dist/backends/lacuna/lifecycle.js.map +1 -1
- package/dist/backends/resolve.d.ts.map +1 -1
- package/dist/backends/resolve.js +3 -1
- package/dist/backends/resolve.js.map +1 -1
- package/dist/cascade-restatement.d.ts.map +1 -1
- package/dist/cascade-restatement.js +15 -13
- package/dist/cascade-restatement.js.map +1 -1
- package/dist/ci-escalation.d.ts.map +1 -1
- package/dist/ci-escalation.js +4 -2
- package/dist/ci-escalation.js.map +1 -1
- package/dist/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci-sensor-loop.js +6 -4
- package/dist/ci-sensor-loop.js.map +1 -1
- package/dist/ci-status-git.d.ts +5 -6
- package/dist/ci-status-git.d.ts.map +1 -1
- package/dist/ci-status-git.js +7 -7
- package/dist/ci-status-git.js.map +1 -1
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +9 -2
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/open.d.ts.map +1 -1
- package/dist/cli/open.js +9 -2
- package/dist/cli/open.js.map +1 -1
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js +2 -0
- package/dist/cli/session-state.js.map +1 -1
- package/dist/cli/verify-setup.d.ts.map +1 -1
- package/dist/cli/verify-setup.js +9 -4
- package/dist/cli/verify-setup.js.map +1 -1
- package/dist/close-loop-dispatcher.d.ts.map +1 -1
- package/dist/close-loop-dispatcher.js +6 -4
- package/dist/close-loop-dispatcher.js.map +1 -1
- package/dist/completion/advanceability.d.ts.map +1 -1
- package/dist/completion/advanceability.js +3 -1
- package/dist/completion/advanceability.js.map +1 -1
- package/dist/completion/agent-completion.d.ts.map +1 -1
- package/dist/completion/agent-completion.js +11 -9
- package/dist/completion/agent-completion.js.map +1 -1
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +10 -8
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event-phases.d.ts +104 -0
- package/dist/completion/event-phases.d.ts.map +1 -0
- package/dist/completion/event-phases.js +572 -0
- package/dist/completion/event-phases.js.map +1 -0
- package/dist/completion/event.d.ts +1 -1
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +36 -592
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/merge-phase.d.ts.map +1 -1
- package/dist/completion/merge-phase.js +14 -12
- package/dist/completion/merge-phase.js.map +1 -1
- package/dist/completion/read-only-pristine.d.ts.map +1 -1
- package/dist/completion/read-only-pristine.js +6 -4
- package/dist/completion/read-only-pristine.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +28 -26
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +16 -14
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-completion.d.ts.map +1 -1
- package/dist/completion/team-completion.js +16 -14
- package/dist/completion/team-completion.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +32 -33
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/terminated-work-reconcile.d.ts.map +1 -1
- package/dist/completion/terminated-work-reconcile.js +11 -9
- package/dist/completion/terminated-work-reconcile.js.map +1 -1
- package/dist/condition-evaluators.d.ts.map +1 -1
- package/dist/condition-evaluators.js +3 -1
- package/dist/condition-evaluators.js.map +1 -1
- package/dist/config-reconcile.d.ts.map +1 -1
- package/dist/config-reconcile.js +3 -1
- package/dist/config-reconcile.js.map +1 -1
- package/dist/config.d.ts +4 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +56 -42
- package/dist/config.js.map +1 -1
- package/dist/control-state.d.ts.map +1 -1
- package/dist/control-state.js +26 -24
- package/dist/control-state.js.map +1 -1
- package/dist/crash-recovery.d.ts.map +1 -1
- package/dist/crash-recovery.js +43 -41
- package/dist/crash-recovery.js.map +1 -1
- package/dist/daemon-logs.d.ts.map +1 -1
- package/dist/daemon-logs.js +21 -3
- package/dist/daemon-logs.js.map +1 -1
- package/dist/daemon-process.d.ts +0 -1
- package/dist/daemon-process.d.ts.map +1 -1
- package/dist/daemon-process.js +15 -10
- package/dist/daemon-process.js.map +1 -1
- package/dist/delivery-advance-block.d.ts +4 -4
- package/dist/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery-advance-block.js +25 -18
- package/dist/delivery-advance-block.js.map +1 -1
- package/dist/delivery-guards.d.ts.map +1 -1
- package/dist/delivery-guards.js +11 -9
- package/dist/delivery-guards.js.map +1 -1
- package/dist/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery-lifecycle.js +23 -21
- package/dist/delivery-lifecycle.js.map +1 -1
- package/dist/delivery-merge.d.ts.map +1 -1
- package/dist/delivery-merge.js +10 -8
- package/dist/delivery-merge.js.map +1 -1
- package/dist/delivery-reconciler-apply.d.ts.map +1 -1
- package/dist/delivery-reconciler-apply.js +5 -8
- package/dist/delivery-reconciler-apply.js.map +1 -1
- package/dist/delivery-reconciler-shadow.d.ts.map +1 -1
- package/dist/delivery-reconciler-shadow.js +5 -6
- package/dist/delivery-reconciler-shadow.js.map +1 -1
- package/dist/directive/close-loop-stage.d.ts.map +1 -1
- package/dist/directive/close-loop-stage.js +9 -7
- package/dist/directive/close-loop-stage.js.map +1 -1
- package/dist/directive/directive-assembly.d.ts.map +1 -1
- package/dist/directive/directive-assembly.js +3 -1
- package/dist/directive/directive-assembly.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +16 -14
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-queue.d.ts +27 -0
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +28 -0
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +8 -6
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/directive-executor.d.ts +1 -1
- package/dist/directive-executor.d.ts.map +1 -1
- package/dist/directive-executor.js +12 -10
- package/dist/directive-executor.js.map +1 -1
- package/dist/discovery-poll.d.ts.map +1 -1
- package/dist/discovery-poll.js +8 -6
- package/dist/discovery-poll.js.map +1 -1
- package/dist/drain-teardown.d.ts.map +1 -1
- package/dist/drain-teardown.js +6 -19
- package/dist/drain-teardown.js.map +1 -1
- package/dist/drift-eval-loop.d.ts.map +1 -1
- package/dist/drift-eval-loop.js +10 -8
- package/dist/drift-eval-loop.js.map +1 -1
- package/dist/escalation-provenance.d.ts.map +1 -1
- package/dist/escalation-provenance.js +8 -3
- package/dist/escalation-provenance.js.map +1 -1
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +36 -34
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-executor.d.ts +2 -1
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +17 -15
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-lifecycle.d.ts.map +1 -1
- package/dist/focus-lifecycle.js +56 -44
- package/dist/focus-lifecycle.js.map +1 -1
- package/dist/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus-loop-registry.js +38 -36
- package/dist/focus-loop-registry.js.map +1 -1
- package/dist/focus-merge.d.ts.map +1 -1
- package/dist/focus-merge.js +40 -34
- package/dist/focus-merge.js.map +1 -1
- package/dist/focus-provisioning.d.ts.map +1 -1
- package/dist/focus-provisioning.js +15 -13
- package/dist/focus-provisioning.js.map +1 -1
- package/dist/focus-respawn-guard.d.ts.map +1 -1
- package/dist/focus-respawn-guard.js +4 -2
- package/dist/focus-respawn-guard.js.map +1 -1
- package/dist/focus-stage-lifecycle/planning-release.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/planning-release.js +10 -8
- package/dist/focus-stage-lifecycle/planning-release.js.map +1 -1
- package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/review-convergence.js +11 -9
- package/dist/focus-stage-lifecycle/review-convergence.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +7 -5
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/focus-stage-lifecycle.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle.js +7 -5
- package/dist/focus-stage-lifecycle.js.map +1 -1
- package/dist/focus-team-state.d.ts +18 -9
- package/dist/focus-team-state.d.ts.map +1 -1
- package/dist/focus-team-state.js +37 -18
- package/dist/focus-team-state.js.map +1 -1
- package/dist/focus-worktree-state.d.ts.map +1 -1
- package/dist/focus-worktree-state.js +6 -4
- package/dist/focus-worktree-state.js.map +1 -1
- package/dist/git/branch.d.ts.map +1 -1
- package/dist/git/branch.js +7 -5
- package/dist/git/branch.js.map +1 -1
- package/dist/git/genesis.d.ts.map +1 -1
- package/dist/git/genesis.js +3 -1
- package/dist/git/genesis.js.map +1 -1
- package/dist/git/integration.d.ts.map +1 -1
- package/dist/git/integration.js +4 -2
- package/dist/git/integration.js.map +1 -1
- package/dist/git/merge-helpers.d.ts.map +1 -1
- package/dist/git/merge-helpers.js +6 -4
- package/dist/git/merge-helpers.js.map +1 -1
- package/dist/git/merge-lock.d.ts +0 -7
- package/dist/git/merge-lock.d.ts.map +1 -1
- package/dist/git/merge-lock.js +5 -3
- package/dist/git/merge-lock.js.map +1 -1
- package/dist/git/merge.d.ts.map +1 -1
- package/dist/git/merge.js +10 -8
- package/dist/git/merge.js.map +1 -1
- package/dist/git/state-detector.d.ts.map +1 -1
- package/dist/git/state-detector.js +9 -7
- package/dist/git/state-detector.js.map +1 -1
- package/dist/git/utils.d.ts.map +1 -1
- package/dist/git/utils.js +6 -4
- package/dist/git/utils.js.map +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +16 -14
- package/dist/git.js.map +1 -1
- package/dist/guard-evaluator.d.ts.map +1 -1
- package/dist/guard-evaluator.js +3 -1
- package/dist/guard-evaluator.js.map +1 -1
- package/dist/heartbeat.d.ts.map +1 -1
- package/dist/heartbeat.js +14 -11
- package/dist/heartbeat.js.map +1 -1
- package/dist/host-control/catalog.d.ts.map +1 -1
- package/dist/host-control/catalog.js +4 -2
- package/dist/host-control/catalog.js.map +1 -1
- package/dist/host-control/client.d.ts.map +1 -1
- package/dist/host-control/client.js +3 -1
- package/dist/host-control/client.js.map +1 -1
- package/dist/host-control/sizing.d.ts.map +1 -1
- package/dist/host-control/sizing.js +4 -1
- package/dist/host-control/sizing.js.map +1 -1
- package/dist/index.js +110 -127
- package/dist/index.js.map +1 -1
- package/dist/install-probe-tick.d.ts.map +1 -1
- package/dist/install-probe-tick.js +6 -4
- package/dist/install-probe-tick.js.map +1 -1
- package/dist/intake-control.d.ts +0 -16
- package/dist/intake-control.d.ts.map +1 -1
- package/dist/intake-control.js +4 -2
- package/dist/intake-control.js.map +1 -1
- package/dist/listener-auto-advance.d.ts.map +1 -1
- package/dist/listener-auto-advance.js +26 -24
- package/dist/listener-auto-advance.js.map +1 -1
- package/dist/listener.d.ts.map +1 -1
- package/dist/listener.js +59 -39
- package/dist/listener.js.map +1 -1
- package/dist/log.d.ts +84 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +182 -0
- package/dist/log.js.map +1 -0
- package/dist/loops/context-audit-pass.d.ts.map +1 -1
- package/dist/loops/context-audit-pass.js +8 -5
- package/dist/loops/context-audit-pass.js.map +1 -1
- package/dist/loops/engine.d.ts.map +1 -1
- package/dist/loops/engine.js +26 -24
- package/dist/loops/engine.js.map +1 -1
- package/dist/loops/llm-client.d.ts.map +1 -1
- package/dist/loops/llm-client.js +4 -2
- package/dist/loops/llm-client.js.map +1 -1
- package/dist/loops/llm-flag.d.ts +4 -28
- package/dist/loops/llm-flag.d.ts.map +1 -1
- package/dist/loops/llm-flag.js +11 -30
- package/dist/loops/llm-flag.js.map +1 -1
- package/dist/loops/prompt-builder.d.ts.map +1 -1
- package/dist/loops/prompt-builder.js +3 -1
- package/dist/loops/prompt-builder.js.map +1 -1
- package/dist/merge-back-loop.d.ts.map +1 -1
- package/dist/merge-back-loop.js +20 -18
- package/dist/merge-back-loop.js.map +1 -1
- package/dist/merge-detector.d.ts.map +1 -1
- package/dist/merge-detector.js +7 -5
- package/dist/merge-detector.js.map +1 -1
- package/dist/nexus/endpoint-clearance.d.ts.map +1 -1
- package/dist/nexus/endpoint-clearance.js +3 -1
- package/dist/nexus/endpoint-clearance.js.map +1 -1
- package/dist/nexus/escalation-bridge.d.ts.map +1 -1
- package/dist/nexus/escalation-bridge.js +3 -1
- package/dist/nexus/escalation-bridge.js.map +1 -1
- package/dist/nexus/incoming.d.ts.map +1 -1
- package/dist/nexus/incoming.js +3 -1
- package/dist/nexus/incoming.js.map +1 -1
- package/dist/nexus/intake-spawn.d.ts.map +1 -1
- package/dist/nexus/intake-spawn.js +6 -4
- package/dist/nexus/intake-spawn.js.map +1 -1
- package/dist/nexus/intake.d.ts.map +1 -1
- package/dist/nexus/intake.js +3 -1
- package/dist/nexus/intake.js.map +1 -1
- package/dist/nexus/return.d.ts.map +1 -1
- package/dist/nexus/return.js +3 -1
- package/dist/nexus/return.js.map +1 -1
- package/dist/non-interactive-init.d.ts.map +1 -1
- package/dist/non-interactive-init.js +0 -0
- package/dist/non-interactive-init.js.map +1 -1
- package/dist/otlp/port-manager.d.ts.map +1 -1
- package/dist/otlp/port-manager.js +7 -5
- package/dist/otlp/port-manager.js.map +1 -1
- package/dist/otlp/receiver.d.ts.map +1 -1
- package/dist/otlp/receiver.js +14 -12
- package/dist/otlp/receiver.js.map +1 -1
- package/dist/output-monitor.d.ts.map +1 -1
- package/dist/output-monitor.js +6 -4
- package/dist/output-monitor.js.map +1 -1
- package/dist/prd/controller.d.ts.map +1 -1
- package/dist/prd/controller.js +7 -5
- package/dist/prd/controller.js.map +1 -1
- package/dist/prd/focus-pushdown.d.ts.map +1 -1
- package/dist/prd/focus-pushdown.js +3 -1
- package/dist/prd/focus-pushdown.js.map +1 -1
- package/dist/product-scaffold.d.ts.map +1 -1
- package/dist/product-scaffold.js +8 -6
- package/dist/product-scaffold.js.map +1 -1
- package/dist/queries/context-assembly.d.ts.map +1 -1
- package/dist/queries/context-assembly.js +3 -1
- package/dist/queries/context-assembly.js.map +1 -1
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +7 -5
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +3 -1
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/guards.d.ts.map +1 -1
- package/dist/queries/guards.js +3 -1
- package/dist/queries/guards.js.map +1 -1
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +3 -1
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/system-session.d.ts.map +1 -1
- package/dist/queries/system-session.js +5 -3
- package/dist/queries/system-session.js.map +1 -1
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +6 -4
- package/dist/queries/verification.js.map +1 -1
- package/dist/reality-pole-capture.d.ts.map +1 -1
- package/dist/reality-pole-capture.js +7 -4
- package/dist/reality-pole-capture.js.map +1 -1
- package/dist/reality-pole.d.ts.map +1 -1
- package/dist/reality-pole.js +4 -2
- package/dist/reality-pole.js.map +1 -1
- package/dist/resolvers/agent-escalations.d.ts.map +1 -1
- package/dist/resolvers/agent-escalations.js +3 -1
- package/dist/resolvers/agent-escalations.js.map +1 -1
- package/dist/resolvers/agent-session-summaries.d.ts.map +1 -1
- package/dist/resolvers/agent-session-summaries.js +3 -1
- package/dist/resolvers/agent-session-summaries.js.map +1 -1
- package/dist/resolvers/deployment-profile.d.ts.map +1 -1
- package/dist/resolvers/deployment-profile.js +3 -1
- package/dist/resolvers/deployment-profile.js.map +1 -1
- package/dist/resolvers/escalation-answers.d.ts.map +1 -1
- package/dist/resolvers/escalation-answers.js +4 -2
- package/dist/resolvers/escalation-answers.js.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.js +3 -1
- package/dist/resolvers/focus-anchoring-injections.js.map +1 -1
- package/dist/resolvers/focus-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-injections.js +3 -1
- package/dist/resolvers/focus-injections.js.map +1 -1
- package/dist/resolvers/focus-last-review-report.d.ts.map +1 -1
- package/dist/resolvers/focus-last-review-report.js +3 -1
- package/dist/resolvers/focus-last-review-report.js.map +1 -1
- package/dist/resolvers/focus-reality-tree.d.ts.map +1 -1
- package/dist/resolvers/focus-reality-tree.js +3 -1
- package/dist/resolvers/focus-reality-tree.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +3 -1
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/guards-evaluation-results.d.ts.map +1 -1
- package/dist/resolvers/guards-evaluation-results.js +3 -1
- package/dist/resolvers/guards-evaluation-results.js.map +1 -1
- package/dist/resolvers/loop-context.d.ts.map +1 -1
- package/dist/resolvers/loop-context.js +6 -2
- package/dist/resolvers/loop-context.js.map +1 -1
- package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
- package/dist/resolvers/loop-delivery-index.js +3 -1
- package/dist/resolvers/loop-delivery-index.js.map +1 -1
- package/dist/resolvers/loop-documents.d.ts.map +1 -1
- package/dist/resolvers/loop-documents.js +3 -1
- package/dist/resolvers/loop-documents.js.map +1 -1
- package/dist/resolvers/loop-expected-effects.d.ts.map +1 -1
- package/dist/resolvers/loop-expected-effects.js +3 -1
- package/dist/resolvers/loop-expected-effects.js.map +1 -1
- package/dist/resolvers/loop-frt-statement.d.ts.map +1 -1
- package/dist/resolvers/loop-frt-statement.js +3 -1
- package/dist/resolvers/loop-frt-statement.js.map +1 -1
- package/dist/resolvers/loop-injection.d.ts.map +1 -1
- package/dist/resolvers/loop-injection.js +3 -1
- package/dist/resolvers/loop-injection.js.map +1 -1
- package/dist/resolvers/loop-persona.d.ts.map +1 -1
- package/dist/resolvers/loop-persona.js +3 -1
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/resolvers/loop-questions.d.ts.map +1 -1
- package/dist/resolvers/loop-questions.js +3 -1
- package/dist/resolvers/loop-questions.js.map +1 -1
- package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -1
- package/dist/resolvers/loop-upstream-udes.js +3 -1
- package/dist/resolvers/loop-upstream-udes.js.map +1 -1
- package/dist/resolvers/prd-context.d.ts.map +1 -1
- package/dist/resolvers/prd-context.js +3 -1
- package/dist/resolvers/prd-context.js.map +1 -1
- package/dist/resolvers/reality-metrics.d.ts.map +1 -1
- package/dist/resolvers/reality-metrics.js +3 -1
- package/dist/resolvers/reality-metrics.js.map +1 -1
- package/dist/resolvers/reality-projections.d.ts.map +1 -1
- package/dist/resolvers/reality-projections.js +3 -1
- package/dist/resolvers/reality-projections.js.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.js +3 -1
- package/dist/resolvers/reality-tree-snapshot.js.map +1 -1
- package/dist/resolvers/retired-injections.d.ts.map +1 -1
- package/dist/resolvers/retired-injections.js +3 -1
- package/dist/resolvers/retired-injections.js.map +1 -1
- package/dist/resolvers/review-outcomes.d.ts.map +1 -1
- package/dist/resolvers/review-outcomes.js +3 -1
- package/dist/resolvers/review-outcomes.js.map +1 -1
- package/dist/resolvers/security-advisory.d.ts.map +1 -1
- package/dist/resolvers/security-advisory.js +3 -1
- package/dist/resolvers/security-advisory.js.map +1 -1
- package/dist/resolvers/shared/wiki.d.ts.map +1 -1
- package/dist/resolvers/shared/wiki.js +5 -3
- package/dist/resolvers/shared/wiki.js.map +1 -1
- package/dist/resolvers/wiki-topic.d.ts.map +1 -1
- package/dist/resolvers/wiki-topic.js +3 -1
- package/dist/resolvers/wiki-topic.js.map +1 -1
- package/dist/resolvers/workflow-stages.d.ts.map +1 -1
- package/dist/resolvers/workflow-stages.js +3 -1
- package/dist/resolvers/workflow-stages.js.map +1 -1
- package/dist/schema-version-gate.d.ts.map +1 -1
- package/dist/schema-version-gate.js +16 -18
- package/dist/schema-version-gate.js.map +1 -1
- package/dist/security-finding-gate.d.ts.map +1 -1
- package/dist/security-finding-gate.js +3 -1
- package/dist/security-finding-gate.js.map +1 -1
- package/dist/security-rescan-resolution.d.ts.map +1 -1
- package/dist/security-rescan-resolution.js +4 -2
- package/dist/security-rescan-resolution.js.map +1 -1
- package/dist/security-scan-engine.d.ts.map +1 -1
- package/dist/security-scan-engine.js +9 -6
- package/dist/security-scan-engine.js.map +1 -1
- package/dist/self-update.d.ts.map +1 -1
- package/dist/self-update.js +48 -39
- package/dist/self-update.js.map +1 -1
- package/dist/sensor-sweep.d.ts.map +1 -1
- package/dist/sensor-sweep.js +5 -2
- package/dist/sensor-sweep.js.map +1 -1
- package/dist/session-stamp.d.ts.map +1 -1
- package/dist/session-stamp.js +4 -2
- package/dist/session-stamp.js.map +1 -1
- package/dist/spawn/model-routing.d.ts +18 -0
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +53 -18
- 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 +29 -22
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +6 -4
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +16 -14
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +13 -11
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/spawn-cooldown.d.ts +0 -7
- package/dist/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn-cooldown.js +3 -1
- package/dist/spawn-cooldown.js.map +1 -1
- package/dist/spawn-environment.d.ts.map +1 -1
- package/dist/spawn-environment.js +4 -1
- package/dist/spawn-environment.js.map +1 -1
- package/dist/spawner/helpers.d.ts.map +1 -1
- package/dist/spawner/helpers.js +19 -17
- package/dist/spawner/helpers.js.map +1 -1
- package/dist/spawner/lifecycle.d.ts.map +1 -1
- package/dist/spawner/lifecycle.js +17 -13
- package/dist/spawner/lifecycle.js.map +1 -1
- package/dist/spawner/liveness.d.ts.map +1 -1
- package/dist/spawner/liveness.js +7 -5
- package/dist/spawner/liveness.js.map +1 -1
- package/dist/spawner/resolution.d.ts.map +1 -1
- package/dist/spawner/resolution.js +7 -5
- package/dist/spawner/resolution.js.map +1 -1
- package/dist/spawner/stream-handlers.d.ts +6 -55
- package/dist/spawner/stream-handlers.d.ts.map +1 -1
- package/dist/spawner/stream-handlers.js +10 -172
- package/dist/spawner/stream-handlers.js.map +1 -1
- package/dist/spawner/timeout.d.ts.map +1 -1
- package/dist/spawner/timeout.js +11 -9
- package/dist/spawner/timeout.js.map +1 -1
- package/dist/staleness.d.ts.map +1 -1
- package/dist/staleness.js +4 -1
- package/dist/staleness.js.map +1 -1
- package/dist/stall-detector-config.d.ts +6 -17
- package/dist/stall-detector-config.d.ts.map +1 -1
- package/dist/stall-detector-config.js +10 -36
- package/dist/stall-detector-config.js.map +1 -1
- package/dist/stall-detectors.d.ts.map +1 -1
- package/dist/stall-detectors.js +6 -4
- package/dist/stall-detectors.js.map +1 -1
- package/dist/state-cascade.d.ts.map +1 -1
- package/dist/state-cascade.js +9 -7
- package/dist/state-cascade.js.map +1 -1
- package/dist/stop-request.d.ts.map +1 -1
- package/dist/stop-request.js +6 -2
- package/dist/stop-request.js.map +1 -1
- package/dist/supabase.d.ts.map +1 -1
- package/dist/supabase.js +3 -1
- package/dist/supabase.js.map +1 -1
- package/dist/telemetry-writer.d.ts.map +1 -1
- package/dist/telemetry-writer.js +11 -9
- package/dist/telemetry-writer.js.map +1 -1
- package/dist/trigger-executor.d.ts.map +1 -1
- package/dist/trigger-executor.js +28 -26
- package/dist/trigger-executor.js.map +1 -1
- package/dist/unified-engine-lifecycle.d.ts +19 -11
- package/dist/unified-engine-lifecycle.d.ts.map +1 -1
- package/dist/unified-engine-lifecycle.js +71 -70
- package/dist/unified-engine-lifecycle.js.map +1 -1
- package/dist/unified-init.d.ts.map +1 -1
- package/dist/unified-init.js +41 -36
- package/dist/unified-init.js.map +1 -1
- package/dist/unified-shell-config.d.ts +8 -1
- package/dist/unified-shell-config.d.ts.map +1 -1
- package/dist/unified-shell-config.js +57 -34
- package/dist/unified-shell-config.js.map +1 -1
- package/dist/unified-shell-status.d.ts.map +1 -1
- package/dist/unified-shell-status.js +39 -37
- package/dist/unified-shell-status.js.map +1 -1
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +37 -41
- package/dist/unified-shell.js.map +1 -1
- package/dist/verification-baseline.d.ts.map +1 -1
- package/dist/verification-baseline.js +7 -4
- package/dist/verification-baseline.js.map +1 -1
- package/dist/verification-config.d.ts +3 -3
- package/dist/verification-config.d.ts.map +1 -1
- package/dist/verification-config.js +8 -19
- package/dist/verification-config.js.map +1 -1
- package/dist/verification-default-on.d.ts +6 -6
- package/dist/verification-default-on.d.ts.map +1 -1
- package/dist/verification-default-on.js +9 -7
- package/dist/verification-default-on.js.map +1 -1
- package/dist/verification-deterministic.d.ts.map +1 -1
- package/dist/verification-deterministic.js +6 -3
- package/dist/verification-deterministic.js.map +1 -1
- package/dist/verification-engine.d.ts.map +1 -1
- package/dist/verification-engine.js +20 -16
- package/dist/verification-engine.js.map +1 -1
- package/dist/verification-feedback.d.ts.map +1 -1
- package/dist/verification-feedback.js +4 -2
- package/dist/verification-feedback.js.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +5 -3
- package/dist/version-check.js.map +1 -1
- package/dist/worker-pidfile.d.ts.map +1 -1
- package/dist/worker-pidfile.js +8 -3
- package/dist/worker-pidfile.js.map +1 -1
- package/dist/worktree/focus.d.ts.map +1 -1
- package/dist/worktree/focus.js +15 -13
- package/dist/worktree/focus.js.map +1 -1
- package/dist/worktree/safety.d.ts.map +1 -1
- package/dist/worktree/safety.js +13 -11
- package/dist/worktree/safety.js.map +1 -1
- package/dist/worktree.d.ts.map +1 -1
- package/dist/worktree.js +41 -39
- package/dist/worktree.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-poll.js","sourceRoot":"","sources":["../src/discovery-poll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery-poll.js","sourceRoot":"","sources":["../src/discovery-poll.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-teardown.d.ts","sourceRoot":"","sources":["../src/drain-teardown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drain-teardown.d.ts","sourceRoot":"","sources":["../src/drain-teardown.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,kFAAkF;IAClF,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,0CAA0C;IAC1C,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,gEAAgE;AAChE,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,aAAa,EAAE,OAAO,CAAC;IACvB,qDAAqD;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwCjG"}
|
package/dist/drain-teardown.js
CHANGED
|
@@ -1,18 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* A CLI restart/stop/update (and a restart-only config change) should not kill
|
|
5
|
-
* the running fleet mid-work. Instead it should ARM intake-drain (no new focus
|
|
6
|
-
* team spawns) and DEFER the actual teardown until the daemon reaches a
|
|
7
|
-
* zero-team boundary -- the exact `isBatchSafeIdle` seam the routine
|
|
8
|
-
* auto-updater already waits for. A `--now` escape forces the immediate
|
|
9
|
-
* teardown (today's SIGTERM behavior) for an operator who cannot wait.
|
|
10
|
-
*
|
|
11
|
-
* This module is the pure controller: it takes the idle gate, the drain arm,
|
|
12
|
-
* and the teardown thunk as injected seams, so it unit-tests without a live
|
|
13
|
-
* daemon, real teams, or signals. The daemon wires it to the live
|
|
14
|
-
* `isBatchSafeIdle` gate + `armDrainForUpdate` + the graceful `shutdown()`.
|
|
15
|
-
*/
|
|
1
|
+
import { createLogger } from './log.js';
|
|
2
|
+
const dlog = createLogger({ module: 'drain-teardown' });
|
|
16
3
|
/**
|
|
17
4
|
* Run the drain-to-idle teardown. When `immediate`, tears down at once.
|
|
18
5
|
* Otherwise arms the drain, waits for the zero-team boundary (polling the idle
|
|
@@ -20,19 +7,19 @@
|
|
|
20
7
|
* teardown thunk that throws propagates to the caller.
|
|
21
8
|
*/
|
|
22
9
|
export async function runDrainToIdleTeardown(opts) {
|
|
23
|
-
const log = opts.log ?? ((m) =>
|
|
10
|
+
const log = opts.log ?? ((m) => dlog.info(m));
|
|
24
11
|
const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
|
|
25
12
|
const now = opts.now ?? Date.now;
|
|
26
13
|
const pollIntervalMs = opts.pollIntervalMs ?? 1000;
|
|
27
14
|
if (opts.immediate) {
|
|
28
|
-
log('
|
|
15
|
+
log('--now: tearing down immediately (fleet not drained to idle)');
|
|
29
16
|
await opts.teardown();
|
|
30
17
|
return { firedTeardown: true, immediate: true, waitedMs: 0, timedOut: false };
|
|
31
18
|
}
|
|
32
19
|
// Arm the drain FIRST so no new team spawns during the wait -- the current
|
|
33
20
|
// batch completing IS the safe seam.
|
|
34
21
|
opts.armDrain();
|
|
35
|
-
log('
|
|
22
|
+
log('intake drained; deferring teardown until the fleet reaches a zero-team boundary');
|
|
36
23
|
const startedAt = now();
|
|
37
24
|
let timedOut = false;
|
|
38
25
|
// Fast path: already idle.
|
|
@@ -48,7 +35,7 @@ export async function runDrainToIdleTeardown(opts) {
|
|
|
48
35
|
}
|
|
49
36
|
const waitedMs = now() - startedAt;
|
|
50
37
|
if (!timedOut) {
|
|
51
|
-
log(`
|
|
38
|
+
log(`zero-team boundary reached after ${Math.round(waitedMs / 1000)}s; tearing down (fleet was not killed mid-work)`);
|
|
52
39
|
}
|
|
53
40
|
await opts.teardown();
|
|
54
41
|
return { firedTeardown: true, immediate: false, waitedMs, timedOut };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drain-teardown.js","sourceRoot":"","sources":["../src/drain-teardown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drain-teardown.js","sourceRoot":"","sources":["../src/drain-teardown.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AA8DxD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAwB;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;IACjC,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IAEnD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,GAAG,CAAC,6DAA6D,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAChF,CAAC;IAED,2EAA2E;IAC3E,qCAAqC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChB,GAAG,CAAC,iFAAiF,CAAC,CAAC;IAEvF,MAAM,SAAS,GAAG,GAAG,EAAE,CAAC;IACxB,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,2BAA2B;IAC3B,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,GAAG,EAAE,GAAG,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7D,QAAQ,GAAG,IAAI,CAAC;YAChB,GAAG,CACD,6EAA6E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI;gBAChH,4CAA4C,CAC/C,CAAC;YACF,MAAM;QACR,CAAC;QACD,MAAM,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,GAAG,CAAC,oCAAoC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,iDAAiD,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACtB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift-eval-loop.d.ts","sourceRoot":"","sources":["../src/drift-eval-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAEL,KAAK,OAAO,EAGb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,kBAAkB,IAAI,yBAAyB,EAG/C,KAAK,YAAY,EAEjB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"drift-eval-loop.d.ts","sourceRoot":"","sources":["../src/drift-eval-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAEL,KAAK,OAAO,EAGb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,kBAAkB,IAAI,yBAAyB,EAG/C,KAAK,YAAY,EAEjB,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAQ5B,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,qBAAqB,EAAE,CAAC,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACrG,kBAAkB,EAAE,OAAO,yBAAyB,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACpD,4BAA4B,EAAE,CAAC,MAAM,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC;IACrG,qBAAqB,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5F,sEAAsE;IACtE,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;CACvB;AA0BD,mEAAmE;AACnE,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AA+CD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzE;AAmED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,YAAY,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC5C,OAAO,CAAC,mBAAmB,CAAC,CAgD9B;AAED,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB;IACrE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,MAAM,EAAE,YAAY,EACpB,YAAY,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAC5C,OAAO,CAAC,0BAA0B,CAAC,CAkErC"}
|
package/dist/drift-eval-loop.js
CHANGED
|
@@ -19,6 +19,8 @@ import { evaluateArtifacts, } from './drift-evaluator.js';
|
|
|
19
19
|
import { listDoneWorkArtifacts as defaultListDoneWorkArtifacts, upsertDriftFinding as defaultUpsertDriftFinding, listPendingDriftEvalRequests as defaultListPendingDriftEvalRequests, clearDriftEvalRequest as defaultClearDriftEvalRequest, } from './queries/drift.js';
|
|
20
20
|
import { runGitSync } from './git/index.js';
|
|
21
21
|
import { loadEnvConfig } from '@telora/daemon-core';
|
|
22
|
+
import { createLogger } from './log.js';
|
|
23
|
+
const log = createLogger({ module: 'drift-eval-loop' });
|
|
22
24
|
/**
|
|
23
25
|
* Per-product backoff for `listDoneWorkArtifacts` failures. When the
|
|
24
26
|
* server-side `drift_flag.list_done_work` action fails (e.g. a 500), the
|
|
@@ -127,7 +129,7 @@ async function probeAndUpsert(items, repoPath, deps, counts) {
|
|
|
127
129
|
const attr = attribution.get(key);
|
|
128
130
|
if (!attr) {
|
|
129
131
|
counts.errors += 1;
|
|
130
|
-
|
|
132
|
+
log.warn(`[drift-eval-loop] attribution lookup miss for finding ${finding.artifactKind}:${finding.artifactRef}`);
|
|
131
133
|
continue;
|
|
132
134
|
}
|
|
133
135
|
try {
|
|
@@ -145,7 +147,7 @@ async function probeAndUpsert(items, repoPath, deps, counts) {
|
|
|
145
147
|
}
|
|
146
148
|
catch (err) {
|
|
147
149
|
counts.errors += 1;
|
|
148
|
-
|
|
150
|
+
log.warn(`[drift-eval-loop] upsert failed for ${finding.artifactKind}:${finding.artifactRef}:`, err.message);
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
153
|
}
|
|
@@ -183,13 +185,13 @@ export async function runDriftEvalTick(config, depOverrides = {}) {
|
|
|
183
185
|
catch (err) {
|
|
184
186
|
counts.errors += 1;
|
|
185
187
|
listDoneWorkBackoffUntil.set(product.id, nowMs + deps.listBackoffMs);
|
|
186
|
-
|
|
188
|
+
log.warn(`[drift-eval-loop] listDoneWorkArtifacts failed for product ${product.id} (backing off ${deps.listBackoffMs}ms):`, err.message);
|
|
187
189
|
continue;
|
|
188
190
|
}
|
|
189
191
|
await probeAndUpsert(items, pc.repoPath, deps, counts);
|
|
190
192
|
}
|
|
191
193
|
if (counts.workItemsEvaluated > 0 || counts.errors > 0 || counts.productsSkipped > 0) {
|
|
192
|
-
|
|
194
|
+
log.info(`[drift-eval-loop] tick: products=${counts.productsScanned} skipped=${counts.productsSkipped} workItems=${counts.workItemsEvaluated} findings=${counts.findingsProbed} inserted=${counts.findingsInserted} errors=${counts.errors}`);
|
|
193
195
|
}
|
|
194
196
|
return counts;
|
|
195
197
|
}
|
|
@@ -220,7 +222,7 @@ export async function runPendingDriftEvalRequestsTick(config, depOverrides = {})
|
|
|
220
222
|
}
|
|
221
223
|
catch (err) {
|
|
222
224
|
counts.errors += 1;
|
|
223
|
-
|
|
225
|
+
log.warn(`[drift-eval-loop] listPendingDriftEvalRequests failed for product ${product.id}:`, err.message);
|
|
224
226
|
continue;
|
|
225
227
|
}
|
|
226
228
|
if (requests.length === 0)
|
|
@@ -233,7 +235,7 @@ export async function runPendingDriftEvalRequestsTick(config, depOverrides = {})
|
|
|
233
235
|
}
|
|
234
236
|
catch (err) {
|
|
235
237
|
counts.errors += 1;
|
|
236
|
-
|
|
238
|
+
log.warn(`[drift-eval-loop] listDoneWorkArtifacts failed for focus ${request.focusId}:`, err.message);
|
|
237
239
|
continue;
|
|
238
240
|
}
|
|
239
241
|
await probeAndUpsert(items, pc.repoPath, deps, counts);
|
|
@@ -245,12 +247,12 @@ export async function runPendingDriftEvalRequestsTick(config, depOverrides = {})
|
|
|
245
247
|
}
|
|
246
248
|
catch (err) {
|
|
247
249
|
counts.errors += 1;
|
|
248
|
-
|
|
250
|
+
log.warn(`[drift-eval-loop] clearDriftEvalRequest failed for focus ${request.focusId}:`, err.message);
|
|
249
251
|
}
|
|
250
252
|
}
|
|
251
253
|
}
|
|
252
254
|
if (counts.requestsProcessed > 0 || counts.errors > 0) {
|
|
253
|
-
|
|
255
|
+
log.info(`[drift-eval-loop] requests tick: products=${counts.productsScanned} requests=${counts.requestsProcessed} workItems=${counts.workItemsEvaluated} findings=${counts.findingsProbed} inserted=${counts.findingsInserted} errors=${counts.errors}`);
|
|
254
256
|
}
|
|
255
257
|
return counts;
|
|
256
258
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift-eval-loop.js","sourceRoot":"","sources":["../src/drift-eval-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,iBAAiB,GAIlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,IAAI,4BAA4B,EACrD,kBAAkB,IAAI,yBAAyB,EAC/C,4BAA4B,IAAI,mCAAmC,EACnE,qBAAqB,IAAI,4BAA4B,GAItD,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"drift-eval-loop.js","sourceRoot":"","sources":["../src/drift-eval-loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escalation-provenance.d.ts","sourceRoot":"","sources":["../src/escalation-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;
|
|
1
|
+
{"version":3,"file":"escalation-provenance.d.ts","sourceRoot":"","sources":["../src/escalation-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AASH;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiHD;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2C7F"}
|
|
@@ -30,6 +30,8 @@
|
|
|
30
30
|
*/
|
|
31
31
|
import { getDeliveryContext, getActiveFocuses, getIssueDelivery } from './queries/deliveries.js';
|
|
32
32
|
import { getActiveSessions } from './queries/sessions.js';
|
|
33
|
+
import { createLogger } from './log.js';
|
|
34
|
+
const log = createLogger({ module: 'escalation-provenance' });
|
|
33
35
|
/**
|
|
34
36
|
* Resolve a delivery id to {productId, focusId, deliveryId}. Best-effort:
|
|
35
37
|
* returns at least { deliveryId } even when the context lookup fails.
|
|
@@ -48,8 +50,9 @@ async function fromDelivery(deliveryId) {
|
|
|
48
50
|
out.focusId = focusId;
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
|
-
catch {
|
|
53
|
+
catch (err) {
|
|
52
54
|
// Best-effort: keep the delivery id; leave focus/product unset.
|
|
55
|
+
log.debug('Best-effort: keep the delivery id; leave focus/product unset', { error: String(err?.message ?? err) });
|
|
53
56
|
}
|
|
54
57
|
return out;
|
|
55
58
|
}
|
|
@@ -67,8 +70,9 @@ async function fromFocus(focusId) {
|
|
|
67
70
|
if (match?.product_id)
|
|
68
71
|
out.productId = match.product_id;
|
|
69
72
|
}
|
|
70
|
-
catch {
|
|
73
|
+
catch (err) {
|
|
71
74
|
// Best-effort: keep the focus id; leave product unset.
|
|
75
|
+
log.debug('Best-effort: keep the focus id; leave product unset', { error: String(err?.message ?? err) });
|
|
72
76
|
}
|
|
73
77
|
return out;
|
|
74
78
|
}
|
|
@@ -169,8 +173,9 @@ export async function resolveProvenance(anchor) {
|
|
|
169
173
|
};
|
|
170
174
|
}
|
|
171
175
|
}
|
|
172
|
-
catch {
|
|
176
|
+
catch (err) {
|
|
173
177
|
// Best-effort: fall through with empty resolved.
|
|
178
|
+
log.debug('Best-effort: fall through with empty resolved', { error: String(err?.message ?? err) });
|
|
174
179
|
}
|
|
175
180
|
}
|
|
176
181
|
else if (anchor.sessionId || anchor.branch) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"escalation-provenance.js","sourceRoot":"","sources":["../src/escalation-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"escalation-provenance.js","sourceRoot":"","sources":["../src/escalation-provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC;AA2B9D;;;GAGG;AACH,KAAK,UAAU,YAAY,CAAC,UAAkB;IAC5C,MAAM,GAAG,GAAuB,EAAE,UAAU,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,GAAG,EAAE,CAAC;YACR,iEAAiE;YACjE,uDAAuD;YACvD,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU;gBAAE,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,SAAS,CAAC;YACnF,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YAC9B,IAAI,OAAO;gBAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACrC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACjB,gEAAgE;QAC5D,GAAG,CAAC,KAAK,CAAC,8DAA8D,EAAE,EAAE,KAAK,EAAE,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/H,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,SAAS,CAAC,OAAe;IACtC,MAAM,GAAG,GAAuB,EAAE,OAAO,EAAE,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;QAC1D,IAAI,KAAK,EAAE,UAAU;YAAE,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;IAC1D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACjB,uDAAuD;QACnD,GAAG,CAAC,KAAK,CAAC,qDAAqD,EAAE,EAAE,KAAK,EAAE,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC;IACtD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAAc;IAC9C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,oEAAoE;QACpE,OAAO,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAA+C;IAE/C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,SAAS,CAAC;YAC/C,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,CACrD,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,wEAAwE;YACxE,yDAAyD;YACzD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,CAAC;QACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,8DAA8D;YAC9D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACtD,6EAA6E;YAC7E,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ;gBAAE,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;YACzE,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,GAAG,GAAuB,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAwB;IAC9D,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,IAAI,QAAQ,GAAuB,EAAE,CAAC;IAEtC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1B,+EAA+E;QAC/E,oEAAoE;QACpE,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,GAAG;oBACT,UAAU,EAAE,aAAa,CAAC,UAAU;oBACpC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpE,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACnB,iDAAiD;YAC3C,GAAG,CAAC,KAAK,CAAC,+CAA+C,EAAE,EAAE,KAAK,EAAE,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7C,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,4EAA4E;IAC5E,sEAAsE;IACtE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9C,2EAA2E;QAC3E,yEAAyE;QACzE,+DAA+D;QAC/D,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC;QACxD,QAAQ,GAAG;YACT,GAAG,KAAK;YACR,GAAG,QAAQ;YACX,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-engine.d.ts","sourceRoot":"","sources":["../src/focus-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;AAClH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-engine.d.ts","sourceRoot":"","sources":["../src/focus-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAA2B,gBAAgB,EAAoC,MAAM,qBAAqB,CAAC;AAClH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAuD/C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,MAAM,EAClB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAOT;AAMD,qBAAa,WAAY,YAAW,eAAe;IACjD,QAAQ,CAAC,IAAI,WAAW;IAExB,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAA6B;IAE3C;;;;OAIG;IACH,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAEzC;;;;OAIG;IACH,SAAS,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,EAAE,CAAM;IAEjD,8EAA8E;IAC9E,OAAO,CAAC,qBAAqB,CAA6B;IAE1D;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI;IAUlC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkEjE,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsEjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkGtB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YA8B1C,wBAAwB;IA+BtC,IAAI,IAAI,IAAI;IAeN,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA2G/B,WAAW,IAAI,YAAY;IA0D3B,gBAAgB,IAAI,aAAa;IAwBjC;;;OAGG;IACH,OAAO,CAAC,aAAa;CAStB"}
|
package/dist/focus-engine.js
CHANGED
|
@@ -42,6 +42,8 @@ import { depsScanner } from './scanners/deps.js';
|
|
|
42
42
|
import { signaturesScanner } from './scanners/signatures.js';
|
|
43
43
|
import { workflowScanner } from './scanners/workflow.js';
|
|
44
44
|
import { LOOP_REGISTRY } from './focus-loop-registry.js';
|
|
45
|
+
import { createLogger } from './log.js';
|
|
46
|
+
const log = createLogger({ module: 'focus-engine' });
|
|
45
47
|
// Self-register built-in scanners so the default deps surface them.
|
|
46
48
|
registerScanner(depsScanner);
|
|
47
49
|
registerScanner(signaturesScanner);
|
|
@@ -118,14 +120,14 @@ export class FocusEngine {
|
|
|
118
120
|
// condition, so a broken registration path kills startup loudly here
|
|
119
121
|
// instead of degrading prompts at spawn time.
|
|
120
122
|
const resolverKeys = initResolvers();
|
|
121
|
-
|
|
123
|
+
log.info(`[focus-engine] ${resolverKeys.length} assembly resolvers registered: ${resolverKeys.join(', ')}`);
|
|
122
124
|
// Initialize Supabase client
|
|
123
|
-
|
|
125
|
+
log.info('Initializing Supabase client...');
|
|
124
126
|
initSupabase(this.config);
|
|
125
127
|
// Validate tracker auth -- fail fast if invalid
|
|
126
|
-
|
|
128
|
+
log.info('Validating tracker authentication...');
|
|
127
129
|
await validateTrackerAuth();
|
|
128
|
-
|
|
130
|
+
log.info('Tracker authentication valid');
|
|
129
131
|
// Schema-version gate -- detect deploy-order drift before any write hits
|
|
130
132
|
// a CHECK constraint that does not yet accept its value. See
|
|
131
133
|
// docs/runbook-schema-version-gate.md.
|
|
@@ -143,7 +145,7 @@ export class FocusEngine {
|
|
|
143
145
|
// heartbeat can surface what is missing + the recovery path on the
|
|
144
146
|
// dashboard (daemon_connections.metadata.readOnlyMode).
|
|
145
147
|
setReadOnlyMode(true, { cause: 'schema_drift', missingMigrations: gate.missing });
|
|
146
|
-
|
|
148
|
+
log.warn('[schema-gate] Read-only mode active -- non-read API actions will throw ReadOnlyModeError');
|
|
147
149
|
}
|
|
148
150
|
}
|
|
149
151
|
// Initialize git for each product's repository
|
|
@@ -154,7 +156,7 @@ export class FocusEngine {
|
|
|
154
156
|
// Initialize heartbeat (bootstraps counters from DB)
|
|
155
157
|
await initHeartbeat(this.config);
|
|
156
158
|
// Initialize listener (loads agent roles)
|
|
157
|
-
|
|
159
|
+
log.info('Initializing listener...');
|
|
158
160
|
await initListener(this.config);
|
|
159
161
|
}
|
|
160
162
|
// -----------------------------------------------------------------------
|
|
@@ -170,7 +172,7 @@ export class FocusEngine {
|
|
|
170
172
|
await recoverFromCrash(pc);
|
|
171
173
|
}
|
|
172
174
|
catch (err) {
|
|
173
|
-
|
|
175
|
+
log.warn(`Crash recovery failed for product ${product.id} (non-fatal):`, err instanceof Error ? err.message : String(err));
|
|
174
176
|
}
|
|
175
177
|
}
|
|
176
178
|
// Hydrate worktree state from DB for all products (non-fatal per product)
|
|
@@ -179,7 +181,7 @@ export class FocusEngine {
|
|
|
179
181
|
await hydrateFromDb(product.id);
|
|
180
182
|
}
|
|
181
183
|
catch (err) {
|
|
182
|
-
|
|
184
|
+
log.warn(`Worktree state hydration failed for product ${product.id} (non-fatal):`, err instanceof Error ? err.message : String(err));
|
|
183
185
|
}
|
|
184
186
|
}
|
|
185
187
|
// Rebuild focus worktree state from surviving worktrees on disk (non-fatal per product)
|
|
@@ -189,7 +191,7 @@ export class FocusEngine {
|
|
|
189
191
|
await rebuildFocusWorktreeState(pc);
|
|
190
192
|
}
|
|
191
193
|
catch (err) {
|
|
192
|
-
|
|
194
|
+
log.warn(`Worktree state rebuild failed for product ${product.id} (non-fatal):`, err instanceof Error ? err.message : String(err));
|
|
193
195
|
}
|
|
194
196
|
}
|
|
195
197
|
// Reconcile git state for rebuilt worktrees (non-fatal)
|
|
@@ -199,7 +201,7 @@ export class FocusEngine {
|
|
|
199
201
|
await reconcileGitState(pc);
|
|
200
202
|
}
|
|
201
203
|
catch (err) {
|
|
202
|
-
|
|
204
|
+
log.warn(`Git state reconciliation failed for product ${product.id} (non-fatal):`, err instanceof Error ? err.message : String(err));
|
|
203
205
|
}
|
|
204
206
|
}
|
|
205
207
|
// Startup log pruning (non-fatal)
|
|
@@ -207,7 +209,7 @@ export class FocusEngine {
|
|
|
207
209
|
await pruneOldLogs(config);
|
|
208
210
|
}
|
|
209
211
|
catch (err) {
|
|
210
|
-
|
|
212
|
+
log.warn('Startup log pruning failed (non-fatal):', err instanceof Error ? err.message : String(err));
|
|
211
213
|
}
|
|
212
214
|
}
|
|
213
215
|
// -----------------------------------------------------------------------
|
|
@@ -216,7 +218,7 @@ export class FocusEngine {
|
|
|
216
218
|
async start() {
|
|
217
219
|
const config = this.requireConfig('start');
|
|
218
220
|
// Start listeners
|
|
219
|
-
|
|
221
|
+
log.info('Starting listeners...');
|
|
220
222
|
startDeliveryListener();
|
|
221
223
|
startSessionListener();
|
|
222
224
|
// Start heartbeat
|
|
@@ -226,26 +228,26 @@ export class FocusEngine {
|
|
|
226
228
|
void checkForUpdates(versions.daemon, '@telora/daemon').then(r => {
|
|
227
229
|
if (r?.latestVersion)
|
|
228
230
|
setLatestAvailableVersion(r.latestVersion);
|
|
229
|
-
}).catch(() => { });
|
|
231
|
+
}).catch((err) => { log.debug('registry version check failed', { error: String(err?.message ?? err) }); });
|
|
230
232
|
// Process any ready focuses immediately
|
|
231
|
-
|
|
233
|
+
log.info('Processing ready focuses...');
|
|
232
234
|
await processReadyFocuses();
|
|
233
235
|
// Periodically refresh roles and process ready focuses (60s)
|
|
234
236
|
this.intervals.push(safeInterval(async () => {
|
|
235
237
|
await refreshRoles();
|
|
236
238
|
await processReadyFocuses();
|
|
237
|
-
}, 60_000, 'role-refresh'));
|
|
239
|
+
}, 60_000, 'role-refresh', { skipIfRunning: true }));
|
|
238
240
|
// Periodic log pruning (hourly) — iterate all products so each logDir is pruned
|
|
239
241
|
this.intervals.push(safeInterval(async () => {
|
|
240
242
|
for (const product of config.products) {
|
|
241
243
|
const pc = configForProduct(config, product);
|
|
242
244
|
await pruneOldLogs(pc);
|
|
243
245
|
}
|
|
244
|
-
}, 3_600_000, 'log-prune'));
|
|
246
|
+
}, 3_600_000, 'log-prune', { skipIfRunning: true }));
|
|
245
247
|
// Periodic agent liveness check (60s)
|
|
246
248
|
this.intervals.push(safeInterval(async () => {
|
|
247
249
|
await checkAgentLiveness(config, getRunningAgents());
|
|
248
|
-
}, 60_000, 'agent-liveness'));
|
|
250
|
+
}, 60_000, 'agent-liveness', { skipIfRunning: true }));
|
|
249
251
|
// Periodic tracker-auth liveness (5 min): a token revoked WHILE running
|
|
250
252
|
// must halt the daemon, not leave the poll loop hitting 401/403 forever.
|
|
251
253
|
// Startup already validates once in init(); this re-checks at runtime and
|
|
@@ -256,13 +258,13 @@ export class FocusEngine {
|
|
|
256
258
|
validate: validateTrackerAuth,
|
|
257
259
|
halt: () => process.kill(process.pid, 'SIGTERM'),
|
|
258
260
|
});
|
|
259
|
-
}, 300_000, 'auth-liveness'));
|
|
261
|
+
}, 300_000, 'auth-liveness', { skipIfRunning: true }));
|
|
260
262
|
// Periodic git activity scanning (5 minutes)
|
|
261
263
|
this.intervals.push(safeInterval(async () => {
|
|
262
264
|
await this.scanAndUpsertGitActivity(config);
|
|
263
|
-
}, 300_000, 'git-activity-scan'));
|
|
265
|
+
}, 300_000, 'git-activity-scan', { skipIfRunning: true }));
|
|
264
266
|
// Initial git activity scan (non-blocking)
|
|
265
|
-
void this.scanAndUpsertGitActivity(config).catch(() => { });
|
|
267
|
+
void this.scanAndUpsertGitActivity(config).catch((err) => { log.debug('initial git activity scan failed', { error: String(err?.message ?? err) }); });
|
|
266
268
|
// Opt-out background loop ticks. Each entry in LOOP_REGISTRY
|
|
267
269
|
// (focus-loop-registry.ts) carries its guard env var, optional
|
|
268
270
|
// enabled/disabled announcement, and a register() that performs the
|
|
@@ -275,14 +277,14 @@ export class FocusEngine {
|
|
|
275
277
|
// entries whose enabled line interpolates runtime values (security-scan)
|
|
276
278
|
// omit it and log inside register().
|
|
277
279
|
if (loop.announce?.enabled)
|
|
278
|
-
|
|
280
|
+
log.info(loop.announce.enabled);
|
|
279
281
|
loop.register(this, config);
|
|
280
282
|
}
|
|
281
283
|
else if (loop.announce) {
|
|
282
|
-
|
|
284
|
+
log.info(loop.announce.disabled);
|
|
283
285
|
}
|
|
284
286
|
}
|
|
285
|
-
|
|
287
|
+
log.info('Focus engine started');
|
|
286
288
|
}
|
|
287
289
|
// -----------------------------------------------------------------------
|
|
288
290
|
// focus loop tick (Differential Focus Spec)
|
|
@@ -302,12 +304,12 @@ export class FocusEngine {
|
|
|
302
304
|
await runFocusLoopOnce(focus.focus_id);
|
|
303
305
|
}
|
|
304
306
|
catch (err) {
|
|
305
|
-
|
|
307
|
+
log.warn(`[focus-loop] tick failed for focus ${focus.focus_id}:`, err.message);
|
|
306
308
|
}
|
|
307
309
|
}
|
|
308
310
|
}
|
|
309
311
|
catch (err) {
|
|
310
|
-
|
|
312
|
+
log.warn(`[focus-loop] active focus query failed for product ${product.id}:`, err.message);
|
|
311
313
|
}
|
|
312
314
|
}
|
|
313
315
|
}
|
|
@@ -336,7 +338,7 @@ export class FocusEngine {
|
|
|
336
338
|
}
|
|
337
339
|
}
|
|
338
340
|
catch (err) {
|
|
339
|
-
|
|
341
|
+
log.debug(`Git activity scan failed for product ${product.id}:`, err.message);
|
|
340
342
|
}
|
|
341
343
|
}
|
|
342
344
|
}
|
|
@@ -368,7 +370,7 @@ export class FocusEngine {
|
|
|
368
370
|
worktreePath: team.worktreePath,
|
|
369
371
|
leadSessionId: team.leadSessionId,
|
|
370
372
|
}));
|
|
371
|
-
|
|
373
|
+
log.info(`Terminating ${activeTeams.size} active focus teams...`);
|
|
372
374
|
terminateAllTeams();
|
|
373
375
|
// Wait for each team to exit (parallelized). Bound the wait to the ENGINE
|
|
374
376
|
// share of the shared stop-drain budget (not a fresh 30s) so the
|
|
@@ -385,14 +387,14 @@ export class FocusEngine {
|
|
|
385
387
|
commitWipChanges(team.worktreePath, team.focusName);
|
|
386
388
|
}
|
|
387
389
|
catch (err) {
|
|
388
|
-
|
|
390
|
+
log.warn(`WIP commit failed for "${team.focusName}": ${err.message}`);
|
|
389
391
|
}
|
|
390
392
|
}
|
|
391
393
|
}
|
|
392
394
|
// Force-update any remaining sessions that didn't exit within the timeout
|
|
393
395
|
const remainingTeams = getActiveTeams();
|
|
394
396
|
if (remainingTeams.size > 0) {
|
|
395
|
-
|
|
397
|
+
log.info(`Force-updating ${remainingTeams.size} remaining session(s) to failed...`);
|
|
396
398
|
const updates = [...remainingTeams.values()]
|
|
397
399
|
.filter((team) => team.leadSessionId)
|
|
398
400
|
.map((team) => withRetry(() => updateSession(team.leadSessionId, {
|
|
@@ -403,17 +405,17 @@ export class FocusEngine {
|
|
|
403
405
|
maxAttempts: 3,
|
|
404
406
|
baseDelayMs: 1000,
|
|
405
407
|
label: `shutdown-session-${team.leadSessionId}`,
|
|
406
|
-
}).catch((err) =>
|
|
408
|
+
}).catch((err) => log.warn(`Failed to update session ${team.leadSessionId}:`, err.message)));
|
|
407
409
|
await Promise.allSettled(updates);
|
|
408
410
|
}
|
|
409
411
|
}
|
|
410
412
|
// Wait for running agents (legacy agents still in flight)
|
|
411
413
|
const runningAgents = getRunningAgents();
|
|
412
414
|
if (runningAgents.size > 0) {
|
|
413
|
-
|
|
415
|
+
log.info(`Waiting for ${runningAgents.size} running agents to complete...`);
|
|
414
416
|
// Give agents 30 seconds to reach a checkpoint
|
|
415
417
|
const timeout = setTimeout(() => {
|
|
416
|
-
|
|
418
|
+
log.info('Timeout reached, terminating remaining agents...');
|
|
417
419
|
terminateAllAgents();
|
|
418
420
|
}, 30_000);
|
|
419
421
|
// Poll for completion
|
|
@@ -423,9 +425,9 @@ export class FocusEngine {
|
|
|
423
425
|
clearTimeout(timeout);
|
|
424
426
|
}
|
|
425
427
|
// Drain: allow pending async session updates to flush
|
|
426
|
-
|
|
428
|
+
log.info('Draining pending session updates...');
|
|
427
429
|
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
428
|
-
|
|
430
|
+
log.info('Focus engine shutdown complete');
|
|
429
431
|
}
|
|
430
432
|
// -----------------------------------------------------------------------
|
|
431
433
|
// healthCheck
|