@telora/daemon 0.22.104 → 0.22.131
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 +4 -3
- package/dist/completion/commit-verdict-release.d.ts +49 -0
- package/dist/completion/commit-verdict-release.d.ts.map +1 -0
- package/dist/completion/commit-verdict-release.js +240 -0
- package/dist/completion/commit-verdict-release.js.map +1 -0
- package/dist/completion/completion-phase-registry.d.ts +10 -4
- package/dist/completion/completion-phase-registry.d.ts.map +1 -1
- package/dist/completion/completion-phase-registry.js +19 -7
- package/dist/completion/completion-phase-registry.js.map +1 -1
- package/dist/completion/detector.d.ts.map +1 -1
- package/dist/completion/detector.js +1 -0
- package/dist/completion/detector.js.map +1 -1
- package/dist/completion/event-entry-phases.d.ts +6 -3
- package/dist/completion/event-entry-phases.d.ts.map +1 -1
- package/dist/completion/event-entry-phases.js +135 -76
- package/dist/completion/event-entry-phases.js.map +1 -1
- package/dist/completion/event-phases.d.ts +24 -3
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +9 -9
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +8 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +47 -21
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/exit-classification.d.ts.map +1 -1
- package/dist/completion/exit-classification.js +1 -0
- package/dist/completion/exit-classification.js.map +1 -1
- package/dist/completion/merge-phase.d.ts +21 -9
- package/dist/completion/merge-phase.d.ts.map +1 -1
- package/dist/completion/merge-phase.js +35 -10
- package/dist/completion/merge-phase.js.map +1 -1
- package/dist/completion/review-auto-approval-record.d.ts +19 -0
- package/dist/completion/review-auto-approval-record.d.ts.map +1 -0
- package/dist/completion/review-auto-approval-record.js +102 -0
- package/dist/completion/review-auto-approval-record.js.map +1 -0
- package/dist/completion/review-cycle-cap.d.ts +62 -0
- package/dist/completion/review-cycle-cap.d.ts.map +1 -0
- package/dist/completion/review-cycle-cap.js +180 -0
- package/dist/completion/review-cycle-cap.js.map +1 -0
- package/dist/completion/review-exit-deps.d.ts +17 -2
- package/dist/completion/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit-deps.js +19 -2
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-escalations.d.ts +45 -23
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-escalations.js +15 -74
- package/dist/completion/review-exit-escalations.js.map +1 -1
- package/dist/completion/review-exit-evidence.d.ts +9 -0
- package/dist/completion/review-exit-evidence.d.ts.map +1 -1
- package/dist/completion/review-exit-evidence.js +4 -1
- package/dist/completion/review-exit-evidence.js.map +1 -1
- package/dist/completion/review-exit-foreign-findings.d.ts +151 -0
- package/dist/completion/review-exit-foreign-findings.d.ts.map +1 -0
- package/dist/completion/review-exit-foreign-findings.js +474 -0
- package/dist/completion/review-exit-foreign-findings.js.map +1 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +71 -64
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-progress.d.ts +20 -0
- package/dist/completion/review-exit-progress.d.ts.map +1 -1
- package/dist/completion/review-exit-progress.js +28 -19
- package/dist/completion/review-exit-progress.js.map +1 -1
- package/dist/completion/review-exit-rehoming.d.ts +5 -0
- package/dist/completion/review-exit-rehoming.d.ts.map +1 -1
- package/dist/completion/review-exit-rehoming.js.map +1 -1
- package/dist/completion/review-exit-verdict-gate.d.ts +202 -0
- package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -0
- package/dist/completion/review-exit-verdict-gate.js +228 -0
- package/dist/completion/review-exit-verdict-gate.js.map +1 -0
- package/dist/completion/review-next-step.d.ts +62 -0
- package/dist/completion/review-next-step.d.ts.map +1 -0
- package/dist/completion/review-next-step.js +63 -0
- package/dist/completion/review-next-step.js.map +1 -0
- package/dist/completion/session-hold-sweep-deps.d.ts +17 -0
- package/dist/completion/session-hold-sweep-deps.d.ts.map +1 -0
- package/dist/completion/session-hold-sweep-deps.js +89 -0
- package/dist/completion/session-hold-sweep-deps.js.map +1 -0
- package/dist/completion/session-hold.d.ts +180 -0
- package/dist/completion/session-hold.d.ts.map +1 -0
- package/dist/completion/session-hold.js +238 -0
- package/dist/completion/session-hold.js.map +1 -0
- package/dist/completion/state-cascade.d.ts +19 -0
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +85 -31
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +35 -2
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +165 -94
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/team-phase.d.ts +27 -15
- package/dist/completion/team-phase.d.ts.map +1 -1
- package/dist/completion/team-phase.js +34 -15
- package/dist/completion/team-phase.js.map +1 -1
- package/dist/delivery/commit-verdict-hold.d.ts +55 -0
- package/dist/delivery/commit-verdict-hold.d.ts.map +1 -0
- package/dist/delivery/commit-verdict-hold.js +118 -0
- package/dist/delivery/commit-verdict-hold.js.map +1 -0
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +10 -3
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +1 -0
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +6 -1
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +29 -2
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +30 -6
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/drift/artifact-ref-shape.d.ts +34 -0
- package/dist/drift/artifact-ref-shape.d.ts.map +1 -0
- package/dist/drift/artifact-ref-shape.js +94 -0
- package/dist/drift/artifact-ref-shape.js.map +1 -0
- package/dist/drift/drift-eval-loop.d.ts +7 -0
- package/dist/drift/drift-eval-loop.d.ts.map +1 -1
- package/dist/drift/drift-eval-loop.js +34 -5
- package/dist/drift/drift-eval-loop.js.map +1 -1
- package/dist/drift/drift-evaluator.d.ts.map +1 -1
- package/dist/drift/drift-evaluator.js +8 -3
- package/dist/drift/drift-evaluator.js.map +1 -1
- package/dist/focus/awaiting-slot.d.ts +34 -0
- package/dist/focus/awaiting-slot.d.ts.map +1 -0
- package/dist/focus/awaiting-slot.js +26 -0
- package/dist/focus/awaiting-slot.js.map +1 -0
- package/dist/focus/focus-lifecycle.js +2 -2
- package/dist/focus/focus-lifecycle.js.map +1 -1
- package/dist/focus/focus-phase.d.ts.map +1 -1
- package/dist/focus/focus-phase.js +3 -1
- package/dist/focus/focus-phase.js.map +1 -1
- package/dist/focus/focus-spawn-decision.d.ts +62 -0
- package/dist/focus/focus-spawn-decision.d.ts.map +1 -0
- package/dist/focus/focus-spawn-decision.js +41 -0
- package/dist/focus/focus-spawn-decision.js.map +1 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +1 -13
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +16 -55
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +102 -64
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener-state.d.ts.map +1 -1
- package/dist/focus/listener-state.js +4 -1
- package/dist/focus/listener-state.js.map +1 -1
- package/dist/focus/listener.d.ts +41 -2
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +135 -83
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.d.ts +69 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -0
- package/dist/focus/pending-spawn-pass-deps.js +34 -0
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -0
- package/dist/focus/pending-spawn-review-next-step.d.ts +83 -0
- package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -0
- package/dist/focus/pending-spawn-review-next-step.js +325 -0
- package/dist/focus/pending-spawn-review-next-step.js.map +1 -0
- package/dist/focus/review-cycle-cap-hold.d.ts +132 -0
- package/dist/focus/review-cycle-cap-hold.d.ts.map +1 -0
- package/dist/focus/review-cycle-cap-hold.js +178 -0
- package/dist/focus/review-cycle-cap-hold.js.map +1 -0
- package/dist/focus/team-actionable-work.js +2 -2
- package/dist/focus/verify-open-issues.d.ts +22 -0
- package/dist/focus/verify-open-issues.d.ts.map +1 -1
- package/dist/focus/verify-open-issues.js +118 -57
- package/dist/focus/verify-open-issues.js.map +1 -1
- package/dist/focus/verify-routing-passes.d.ts +32 -0
- package/dist/focus/verify-routing-passes.d.ts.map +1 -0
- package/dist/focus/verify-routing-passes.js +18 -0
- package/dist/focus/verify-routing-passes.js.map +1 -0
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +9 -5
- package/dist/git/index.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +16 -2
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +53 -30
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +5 -0
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +17 -8
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-gate-coverage.d.ts +94 -0
- package/dist/merge/merge-gate-coverage.d.ts.map +1 -0
- package/dist/merge/merge-gate-coverage.js +217 -0
- package/dist/merge/merge-gate-coverage.js.map +1 -0
- package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
- package/dist/prompt/focus-prompt-builder.js +6 -0
- package/dist/prompt/focus-prompt-builder.js.map +1 -1
- package/dist/prompt/prompt-listing.d.ts.map +1 -1
- package/dist/prompt/prompt-listing.js +8 -0
- package/dist/prompt/prompt-listing.js.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +5 -1
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +14 -39
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/gate-ownership.d.ts +36 -0
- package/dist/prompt-sections/gate-ownership.d.ts.map +1 -0
- package/dist/prompt-sections/gate-ownership.js +68 -0
- package/dist/prompt-sections/gate-ownership.js.map +1 -0
- package/dist/prompt-sections/gate-verdict-section.d.ts +58 -0
- package/dist/prompt-sections/gate-verdict-section.d.ts.map +1 -0
- package/dist/prompt-sections/gate-verdict-section.js +88 -0
- package/dist/prompt-sections/gate-verdict-section.js.map +1 -0
- package/dist/prompt-sections/persona-sections.d.ts +10 -0
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +35 -11
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/shared.js +1 -1
- package/dist/prompt-sections/shared.js.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +6 -3
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +20 -9
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/deliveries.d.ts +46 -4
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +69 -16
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +151 -1
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +95 -14
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/delivery-write-discipline.d.ts +65 -0
- package/dist/queries/delivery-write-discipline.d.ts.map +1 -0
- package/dist/queries/delivery-write-discipline.js +101 -0
- package/dist/queries/delivery-write-discipline.js.map +1 -0
- package/dist/queries/escalation-consumption.d.ts +11 -0
- package/dist/queries/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalation-consumption.js +22 -0
- package/dist/queries/escalation-consumption.js.map +1 -1
- package/dist/queries/escalation-spool.d.ts +75 -0
- package/dist/queries/escalation-spool.d.ts.map +1 -0
- package/dist/queries/escalation-spool.js +232 -0
- package/dist/queries/escalation-spool.js.map +1 -0
- package/dist/queries/escalation-suppression.d.ts.map +1 -1
- package/dist/queries/escalation-suppression.js +2 -0
- package/dist/queries/escalation-suppression.js.map +1 -1
- package/dist/queries/escalations.js +1 -1
- package/dist/queries/filing-observation.d.ts.map +1 -1
- package/dist/queries/filing-observation.js +2 -0
- package/dist/queries/filing-observation.js.map +1 -1
- package/dist/queries/focus-discovery.d.ts +4 -4
- package/dist/queries/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focus-discovery.js +1 -0
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/focus-review-approval.d.ts +84 -0
- package/dist/queries/focus-review-approval.d.ts.map +1 -0
- package/dist/queries/focus-review-approval.js +158 -0
- package/dist/queries/focus-review-approval.js.map +1 -0
- package/dist/queries/focuses.d.ts +6 -5
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +9 -5
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/incident-correlation.d.ts +5 -4
- package/dist/queries/incident-correlation.d.ts.map +1 -1
- package/dist/queries/incident-correlation.js +11 -5
- package/dist/queries/incident-correlation.js.map +1 -1
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +2 -1
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/loop-refusal-observation.d.ts +64 -0
- package/dist/queries/loop-refusal-observation.d.ts.map +1 -0
- package/dist/queries/loop-refusal-observation.js +137 -0
- package/dist/queries/loop-refusal-observation.js.map +1 -0
- package/dist/queries/schemas.d.ts +9 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +11 -3
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +1 -15
- package/dist/queries/verification.js.map +1 -1
- package/dist/queries/wire-contract.generated.d.ts +3 -0
- package/dist/queries/wire-contract.generated.d.ts.map +1 -1
- package/dist/queries/wire-contract.generated.js +3 -0
- package/dist/queries/wire-contract.generated.js.map +1 -1
- package/dist/resolvers/assembly-engine.d.ts.map +1 -1
- package/dist/resolvers/assembly-engine.js +3 -1
- package/dist/resolvers/assembly-engine.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts +5 -2
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +121 -39
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +2 -0
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +5 -1
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/resolvers/shared/review-window-commits.d.ts +96 -0
- package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -0
- package/dist/resolvers/shared/review-window-commits.js +262 -0
- package/dist/resolvers/shared/review-window-commits.js.map +1 -0
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +4 -1
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/shell/fail-stop.d.ts +18 -0
- package/dist/shell/fail-stop.d.ts.map +1 -0
- package/dist/shell/fail-stop.js +53 -0
- package/dist/shell/fail-stop.js.map +1 -0
- package/dist/shell/graceful-shutdown.d.ts +48 -0
- package/dist/shell/graceful-shutdown.d.ts.map +1 -0
- package/dist/shell/graceful-shutdown.js +152 -0
- package/dist/shell/graceful-shutdown.js.map +1 -0
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +5 -4
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/log.d.ts.map +1 -1
- package/dist/shell/log.js +4 -1
- package/dist/shell/log.js.map +1 -1
- package/dist/shell/stop-request.d.ts.map +1 -1
- package/dist/shell/stop-request.js +2 -1
- package/dist/shell/stop-request.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +41 -114
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/lifecycle.d.ts +12 -0
- package/dist/spawn/lifecycle.d.ts.map +1 -1
- package/dist/spawn/lifecycle.js +25 -21
- package/dist/spawn/lifecycle.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +19 -1
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +70 -21
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +18 -8
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +4 -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 +2 -1
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +6 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +15 -2
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/index.d.ts +10 -1
- package/dist/testing/fixtures/index.d.ts.map +1 -1
- package/dist/testing/fixtures/index.js +59 -1
- package/dist/testing/fixtures/index.js.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.d.ts +34 -0
- package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -0
- package/dist/testing/fixtures/pending-spawn-world.js +92 -0
- package/dist/testing/fixtures/pending-spawn-world.js.map +1 -0
- package/dist/types/index.js +1 -1
- package/dist/verify/commit-gate-configured.d.ts +86 -0
- package/dist/verify/commit-gate-configured.d.ts.map +1 -0
- package/dist/verify/commit-gate-configured.js +234 -0
- package/dist/verify/commit-gate-configured.js.map +1 -0
- package/dist/verify/commit-verdict-record.d.ts +98 -0
- package/dist/verify/commit-verdict-record.d.ts.map +1 -0
- package/dist/verify/commit-verdict-record.js +297 -0
- package/dist/verify/commit-verdict-record.js.map +1 -0
- package/dist/verify/explicit-gate-outcome.d.ts +161 -0
- package/dist/verify/explicit-gate-outcome.d.ts.map +1 -0
- package/dist/verify/explicit-gate-outcome.js +215 -0
- package/dist/verify/explicit-gate-outcome.js.map +1 -0
- package/dist/verify/explicit-rearm.d.ts +27 -0
- package/dist/verify/explicit-rearm.d.ts.map +1 -0
- package/dist/verify/explicit-rearm.js +161 -0
- package/dist/verify/explicit-rearm.js.map +1 -0
- package/dist/verify/explicit-run-ledger.d.ts +26 -0
- package/dist/verify/explicit-run-ledger.d.ts.map +1 -0
- package/dist/verify/explicit-run-ledger.js +93 -0
- package/dist/verify/explicit-run-ledger.js.map +1 -0
- package/dist/verify/failure-signature.d.ts.map +1 -1
- package/dist/verify/failure-signature.js +5 -1
- package/dist/verify/failure-signature.js.map +1 -1
- package/dist/verify/gate-run-registry.d.ts +105 -0
- package/dist/verify/gate-run-registry.d.ts.map +1 -0
- package/dist/verify/gate-run-registry.js +111 -0
- package/dist/verify/gate-run-registry.js.map +1 -0
- package/dist/verify/gate-verdict-source.d.ts +68 -0
- package/dist/verify/gate-verdict-source.d.ts.map +1 -0
- package/dist/verify/gate-verdict-source.js +143 -0
- package/dist/verify/gate-verdict-source.js.map +1 -0
- package/dist/verify/judged-commit-gate.d.ts +11 -0
- package/dist/verify/judged-commit-gate.d.ts.map +1 -0
- package/dist/verify/judged-commit-gate.js +48 -0
- package/dist/verify/judged-commit-gate.js.map +1 -0
- package/dist/verify/rework-judgment.d.ts +58 -0
- package/dist/verify/rework-judgment.d.ts.map +1 -0
- package/dist/verify/rework-judgment.js +54 -0
- package/dist/verify/rework-judgment.js.map +1 -0
- package/dist/verify/verification-attribution.d.ts +105 -0
- package/dist/verify/verification-attribution.d.ts.map +1 -0
- package/dist/verify/verification-attribution.js +322 -0
- package/dist/verify/verification-attribution.js.map +1 -0
- package/dist/verify/verification-baseline-run.d.ts +123 -0
- package/dist/verify/verification-baseline-run.d.ts.map +1 -0
- package/dist/verify/verification-baseline-run.js +386 -0
- package/dist/verify/verification-baseline-run.js.map +1 -0
- package/dist/verify/verification-baseline.d.ts +75 -33
- package/dist/verify/verification-baseline.d.ts.map +1 -1
- package/dist/verify/verification-baseline.js +92 -105
- package/dist/verify/verification-baseline.js.map +1 -1
- package/dist/verify/verification-checkout.d.ts +13 -0
- package/dist/verify/verification-checkout.d.ts.map +1 -1
- package/dist/verify/verification-checkout.js +39 -2
- package/dist/verify/verification-checkout.js.map +1 -1
- package/dist/verify/verification-commit-sharing.d.ts +84 -0
- package/dist/verify/verification-commit-sharing.d.ts.map +1 -0
- package/dist/verify/verification-commit-sharing.js +416 -0
- package/dist/verify/verification-commit-sharing.js.map +1 -0
- package/dist/verify/verification-config.d.ts.map +1 -1
- package/dist/verify/verification-config.js +12 -2
- package/dist/verify/verification-config.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +27 -11
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-default-on.js +155 -29
- package/dist/verify/verification-default-on.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +49 -42
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +69 -4
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +15 -2
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js +12 -3
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/verify/verification-diagnostics.d.ts +16 -0
- package/dist/verify/verification-diagnostics.d.ts.map +1 -0
- package/dist/verify/verification-diagnostics.js +219 -0
- package/dist/verify/verification-diagnostics.js.map +1 -0
- package/dist/verify/verification-engine.d.ts +12 -8
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +110 -92
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts +2 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +13 -4
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +21 -34
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +37 -88
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verification-gate-stages.d.ts +110 -0
- package/dist/verify/verification-gate-stages.d.ts.map +1 -0
- package/dist/verify/verification-gate-stages.js +179 -0
- package/dist/verify/verification-gate-stages.js.map +1 -0
- package/dist/verify/verification-history-reset.d.ts +61 -0
- package/dist/verify/verification-history-reset.d.ts.map +1 -0
- package/dist/verify/verification-history-reset.js +90 -0
- package/dist/verify/verification-history-reset.js.map +1 -0
- package/dist/verify/verification-manifest.d.ts.map +1 -1
- package/dist/verify/verification-manifest.js +2 -1
- package/dist/verify/verification-manifest.js.map +1 -1
- package/dist/verify/verification-rework-messages.d.ts +19 -0
- package/dist/verify/verification-rework-messages.d.ts.map +1 -0
- package/dist/verify/verification-rework-messages.js +52 -0
- package/dist/verify/verification-rework-messages.js.map +1 -0
- package/dist/worktree/install-inputs.d.ts +89 -0
- package/dist/worktree/install-inputs.d.ts.map +1 -0
- package/dist/worktree/install-inputs.js +625 -0
- package/dist/worktree/install-inputs.js.map +1 -0
- package/dist/worktree/install-script-effects.d.ts +30 -0
- package/dist/worktree/install-script-effects.d.ts.map +1 -0
- package/dist/worktree/install-script-effects.js +524 -0
- package/dist/worktree/install-script-effects.js.map +1 -0
- package/dist/worktree/install-script-tokens.d.ts +57 -0
- package/dist/worktree/install-script-tokens.d.ts.map +1 -0
- package/dist/worktree/install-script-tokens.js +299 -0
- package/dist/worktree/install-script-tokens.js.map +1 -0
- package/dist/worktree/provision.d.ts +27 -4
- package/dist/worktree/provision.d.ts.map +1 -1
- package/dist/worktree/provision.js +46 -7
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/safety.d.ts +11 -0
- package/dist/worktree/safety.d.ts.map +1 -1
- package/dist/worktree/safety.js +20 -3
- package/dist/worktree/safety.js.map +1 -1
- package/dist/worktree/verify-interlock.d.ts.map +1 -1
- package/dist/worktree/verify-interlock.js +3 -1
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/dist/worktree/worktree-package-provisioning.d.ts +75 -0
- package/dist/worktree/worktree-package-provisioning.d.ts.map +1 -0
- package/dist/worktree/worktree-package-provisioning.js +362 -0
- package/dist/worktree/worktree-package-provisioning.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/review-cycle-cap-regression.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/review-window-idle-coding-lead-regression.test.ts,
|
|
4
|
+
// packages/daemon/src/focus/awaiting-slot.test.ts, packages/daemon/src/focus/listener-product-poll.test.ts,
|
|
5
|
+
// packages/daemon/src/focus/pending-spawn-review-next-step.test.ts
|
|
3
6
|
// PINNED-BY-END
|
|
4
7
|
/** Polling interval in milliseconds (default: 30 seconds). */
|
|
5
8
|
export const POLL_INTERVAL_MS = 30000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener-state.js","sourceRoot":"","sources":["../../src/focus/listener-state.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"listener-state.js","sourceRoot":"","sources":["../../src/focus/listener-state.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iFAAiF;AACjF,sFAAsF;AACtF,8GAA8G;AAC9G,qEAAqE;AACrE,gBAAgB;AAyBhB,8DAA8D;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAEtC,mFAAmF;AACnF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD,8FAA8F;AAC9F,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C,MAAM,CAAC,IAAI,MAAM,GAAwB,IAAI,CAAC;AAC9C,MAAM,CAAC,MAAM,KAAK,GAA2B,IAAI,GAAG,EAAE,CAAC;AACvD,MAAM,CAAC,IAAI,YAAY,GAA0C,IAAI,CAAC;AACtE,MAAM,CAAC,IAAI,SAAS,GAAc,MAAM,CAAC;AACzC,MAAM,CAAC,IAAI,kBAAkB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,IAAI,8BAA8B,GAAG,CAAC,CAAC;AAE9C;;;;GAIG;AACH,MAAM,CAAC,IAAI,mBAAmB,GAAG,CAAC,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnE,MAAM,UAAU,SAAS,CAAC,KAA0B;IAClD,MAAM,GAAG,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAA4C;IAC1E,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAgB;IAC3C,SAAS,GAAG,KAAK,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,kBAAkB,GAAG,KAAK,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,KAAa;IAC7D,8BAA8B,GAAG,KAAK,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,mBAAmB,GAAG,KAAK,CAAC;AAC9B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,uBAAuB;IACrC,OAAO,mBAAmB,CAAC;AAC7B,CAAC"}
|
package/dist/focus/listener.d.ts
CHANGED
|
@@ -13,10 +13,49 @@ export { triggerCheck };
|
|
|
13
13
|
* Initialize the listener with configuration.
|
|
14
14
|
*/
|
|
15
15
|
export declare function initListener(daemonConfig: DaemonConfig): Promise<void>;
|
|
16
|
+
/** The per-product phases one focus poll runs (runProductPollPhases), each with the product-scoped config. */
|
|
17
|
+
export interface ProductPollPhases {
|
|
18
|
+
ensureFocusWorktrees: (pc: DaemonConfig) => Promise<unknown>;
|
|
19
|
+
checkForDeactivatedFocuses: (pc: DaemonConfig) => Promise<unknown>;
|
|
20
|
+
checkControlStateChanges: (pc: DaemonConfig) => Promise<unknown>;
|
|
21
|
+
reapDisarmedTeams: (pc: DaemonConfig) => Promise<unknown>;
|
|
22
|
+
checkDeliveryAutoAdvance: (pc: DaemonConfig) => Promise<unknown>;
|
|
23
|
+
runVerifyRoutingPasses: (pc: DaemonConfig) => Promise<unknown>;
|
|
24
|
+
runPausedRevivalPass: (pc: DaemonConfig) => Promise<unknown>;
|
|
25
|
+
checkDeliveryWorkStart: (pc: DaemonConfig) => Promise<unknown>;
|
|
26
|
+
runReconcilerShadow: (pc: DaemonConfig) => Promise<unknown>;
|
|
27
|
+
runNexusPasses: (pc: DaemonConfig) => Promise<unknown>;
|
|
28
|
+
}
|
|
29
|
+
/** The production phases: the real modules. */
|
|
30
|
+
export declare const productionProductPollPhases: ProductPollPhases;
|
|
16
31
|
/**
|
|
17
|
-
*
|
|
32
|
+
* One product's slice of a focus poll: every per-product phase, in the order of
|
|
33
|
+
* ProductPollPhases, with the product-scoped config. startDeliveryListener runs
|
|
34
|
+
* it for each configured product on every poll, so this IS the production path a
|
|
35
|
+
* landed verdict is consumed on; listener-product-poll.test.ts pins that it runs
|
|
36
|
+
* the verify-routing phase, that the listener's scheduled tick runs it for every
|
|
37
|
+
* product, and that a held review exit releases through both.
|
|
38
|
+
* `overrides` replaces phases (tests); production passes nothing.
|
|
18
39
|
*/
|
|
19
|
-
export declare function
|
|
40
|
+
export declare function runProductPollPhases(pc: DaemonConfig, overrides?: Partial<ProductPollPhases>): Promise<void>;
|
|
41
|
+
/** What startDeliveryListener runs: the initial spawn pass, then each tick's per-product and org-scoped passes. */
|
|
42
|
+
export interface DeliveryListenerSeams {
|
|
43
|
+
/** The ready-focus spawn pass, run once before the poll is scheduled. */
|
|
44
|
+
processReadyFocuses: () => Promise<void>;
|
|
45
|
+
/** Phase overrides passed to runProductPollPhases for every product on every tick. */
|
|
46
|
+
productPollPhases: Partial<ProductPollPhases>;
|
|
47
|
+
/** The org-scoped passes each tick runs after every product's phases. */
|
|
48
|
+
runOrgPollPasses: () => Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
/** The production seams: the real passes, and no per-product phase overrides. */
|
|
51
|
+
export declare const productionDeliveryListenerSeams: DeliveryListenerSeams;
|
|
52
|
+
/**
|
|
53
|
+
* Start polling for ready focuses. `overrides` replaces the seams
|
|
54
|
+
* (DeliveryListenerSeams; tests); production passes nothing.
|
|
55
|
+
* listener-product-poll.test.ts fires the scheduled tick through a mocked
|
|
56
|
+
* interval clock to pin that it runs the per-product phases for every product.
|
|
57
|
+
*/
|
|
58
|
+
export declare function startDeliveryListener(overrides?: Partial<DeliveryListenerSeams>): void;
|
|
20
59
|
/**
|
|
21
60
|
* Start session listener (no-op for polling mode).
|
|
22
61
|
* Kept for API compatibility with the original implementation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/focus/listener.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmBtD,OAAO,EAAuB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../src/focus/listener.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAmBtD,OAAO,EAAuB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,CAAC;AA2CxB;;GAEG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAyE5E;AA4CD,8GAA8G;AAC9G,MAAM,WAAW,iBAAiB;IAChC,oBAAoB,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,0BAA0B,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,wBAAwB,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,iBAAiB,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1D,wBAAwB,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,sBAAsB,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,oBAAoB,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,sBAAsB,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,mBAAmB,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,cAAc,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxD;AAED,+CAA+C;AAC/C,eAAO,MAAM,2BAA2B,EAAE,iBA4BzC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,GAAE,OAAO,CAAC,iBAAiB,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtH;AAmDD,mHAAmH;AACnH,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,sFAAsF;IACtF,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9C,yEAAyE;IACzE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,iFAAiF;AACjF,eAAO,MAAM,+BAA+B,EAAE,qBAI7C,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAAG,IAAI,CA8B1F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAO3C;AAgCD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuHxD;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAMnD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAUlD"}
|
package/dist/focus/listener.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: packages/daemon/src/focus/listener-product-poll.test.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
4
|
import { getAgentRoles } from '../queries/roles.js';
|
|
5
5
|
import { checkDeliveryAutoAdvance, checkDeliveryWorkStart } from './listener-auto-advance.js';
|
|
6
|
-
import {
|
|
6
|
+
import { runVerifyRoutingPasses } from './verify-routing-passes.js';
|
|
7
7
|
import { checkPausedDeliveriesForRevival, buildDefaultPausedRevivalDeps } from '../delivery/paused-revival.js';
|
|
8
8
|
import { runReconcilerShadow } from '../delivery/delivery-reconciler-shadow.js';
|
|
9
9
|
import { getActiveTeams, checkAndMergeCompletedDeliveries } from './focus-executor.js';
|
|
@@ -43,7 +43,9 @@ import { runWithTickDeadline, DEFAULT_TICK_DEADLINE_MS } from './tick-deadline.j
|
|
|
43
43
|
// through the setters. Both this module and listener-spawn.ts import the state
|
|
44
44
|
// leaf -- no cycle.
|
|
45
45
|
import { config, roles, pollInterval, healthCheckConsecutiveFailures, POLL_INTERVAL_MS, HEALTH_CHECK_MAX_SKIP_CYCLES, setConfig, setPollInterval, setPollState, setHealthCheckConsecutiveFailures, setLastRolesRefreshAt, } from './listener-state.js';
|
|
46
|
-
import { processReadyFocuses,
|
|
46
|
+
import { processReadyFocuses, runPendingSpawnPass } from './listener-spawn.js';
|
|
47
|
+
import { sweepExpiredSessionHolds } from '../completion/session-hold.js';
|
|
48
|
+
import { buildSessionHoldSweepDeps } from '../completion/session-hold-sweep-deps.js';
|
|
47
49
|
const log = createLogger({ module: 'listener' });
|
|
48
50
|
/**
|
|
49
51
|
* Initialize the listener with configuration.
|
|
@@ -141,14 +143,138 @@ async function runNexusPasses(pc) {
|
|
|
141
143
|
await checkEndpointClearance(pc);
|
|
142
144
|
}
|
|
143
145
|
/**
|
|
144
|
-
*
|
|
146
|
+
* Paused-revival (TEL-1): the daemon-traversable EXIT from `paused`. A
|
|
147
|
+
* guard-blocked delivery wedges the ranked queue and, before this, was never
|
|
148
|
+
* re-evaluated -- it waited for a human re-queue that never comes on an armed
|
|
149
|
+
* focus. This re-reads each paused delivery's open transition block, re-evaluates
|
|
150
|
+
* the SAME guard, and revives to queued when it has cleared (single-writer
|
|
151
|
+
* reconciler); a still-blocked pause stays a named human-act hold the wedge
|
|
152
|
+
* watchdog surfaces. Best-effort: never throws.
|
|
145
153
|
*/
|
|
146
|
-
|
|
154
|
+
async function runPausedRevivalPass(pc) {
|
|
155
|
+
const revival = await checkPausedDeliveriesForRevival({ organizationId: pc.organizationId, productId: pc.productId }, buildDefaultPausedRevivalDeps());
|
|
156
|
+
if (revival.revived > 0) {
|
|
157
|
+
log.info(`[listener] Paused-revival: revived ${revival.revived} delivery(ies) whose blocking ` +
|
|
158
|
+
`guard cleared (held=${revival.held}, no-block=${revival.noBlock}).`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/** The production phases: the real modules. */
|
|
162
|
+
export const productionProductPollPhases = {
|
|
163
|
+
ensureFocusWorktrees: (pc) => ensureFocusWorktrees(pc, roles),
|
|
164
|
+
checkForDeactivatedFocuses,
|
|
165
|
+
checkControlStateChanges,
|
|
166
|
+
// Disarm reaper: clearing assigned_agent_role_id (dashboard Stop) only
|
|
167
|
+
// removes the focus from the spawn set; this stops the in-flight team via
|
|
168
|
+
// the same cooperative-stop -> SIGTERM path so Stop means stop. Runs after
|
|
169
|
+
// checkForDeactivatedFocuses (which owns genuine status!=active teardown).
|
|
170
|
+
reapDisarmedTeams,
|
|
171
|
+
checkDeliveryAutoAdvance,
|
|
172
|
+
// Verify routing (focus/verify-routing-passes.ts): the open-work pass, then the
|
|
173
|
+
// release pass -- the ONLY production path that routes a review exit held on its
|
|
174
|
+
// commit's gate verdict.
|
|
175
|
+
runVerifyRoutingPasses,
|
|
176
|
+
runPausedRevivalPass,
|
|
177
|
+
// Work-START edge: cross queued -> coding the moment a work issue is In
|
|
178
|
+
// Progress, during active execution (restores the deleted
|
|
179
|
+
// auto_advance_delivery_on_issue_active trigger via the single-writer
|
|
180
|
+
// reconciler). Runs for active-team focuses too, unlike checkDeliveryAutoAdvance.
|
|
181
|
+
checkDeliveryWorkStart,
|
|
182
|
+
// Single-writer consolidation (injection #10), SHADOW step: compute the
|
|
183
|
+
// reconciler's target for each delivery and log divergence from the live
|
|
184
|
+
// status. Writes nothing; default-OFF (opt-in via TELORA_RECONCILER_SHADOW),
|
|
185
|
+
// so this is a no-op until an operator enables it.
|
|
186
|
+
runReconcilerShadow,
|
|
187
|
+
// Nexus: the per-product request passes (accept -> intake -> auto-deliver
|
|
188
|
+
// -> resolve -> endpoint clearance).
|
|
189
|
+
runNexusPasses,
|
|
190
|
+
};
|
|
191
|
+
/**
|
|
192
|
+
* One product's slice of a focus poll: every per-product phase, in the order of
|
|
193
|
+
* ProductPollPhases, with the product-scoped config. startDeliveryListener runs
|
|
194
|
+
* it for each configured product on every poll, so this IS the production path a
|
|
195
|
+
* landed verdict is consumed on; listener-product-poll.test.ts pins that it runs
|
|
196
|
+
* the verify-routing phase, that the listener's scheduled tick runs it for every
|
|
197
|
+
* product, and that a held review exit releases through both.
|
|
198
|
+
* `overrides` replaces phases (tests); production passes nothing.
|
|
199
|
+
*/
|
|
200
|
+
export async function runProductPollPhases(pc, overrides = {}) {
|
|
201
|
+
const phases = { ...productionProductPollPhases, ...overrides };
|
|
202
|
+
await phases.ensureFocusWorktrees(pc);
|
|
203
|
+
await phases.checkForDeactivatedFocuses(pc);
|
|
204
|
+
await phases.checkControlStateChanges(pc);
|
|
205
|
+
await phases.reapDisarmedTeams(pc);
|
|
206
|
+
await phases.checkDeliveryAutoAdvance(pc);
|
|
207
|
+
await phases.runVerifyRoutingPasses(pc);
|
|
208
|
+
await phases.runPausedRevivalPass(pc);
|
|
209
|
+
await phases.checkDeliveryWorkStart(pc);
|
|
210
|
+
await phases.runReconcilerShadow(pc);
|
|
211
|
+
await phases.runNexusPasses(pc);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* The org-scoped rest of one focus poll, run once per tick after every product's
|
|
215
|
+
* phases (runProductPollPhases). Extracted from startDeliveryListener's tick so
|
|
216
|
+
* the tick's per-product slice can be observed through the real scheduler.
|
|
217
|
+
*/
|
|
218
|
+
async function runOrgPollPasses() {
|
|
219
|
+
// Endpoint discovery (D5): org-scoped, once per cycle. Best-effort -- the
|
|
220
|
+
// daemon is the only LAN-reachable component, so it resolves the add-model
|
|
221
|
+
// form's pending {baseUrl}/models lookups. FIRE-AND-FORGET (TEL-7): never
|
|
222
|
+
// awaited, so a slow/blocked endpoint fetch can't delay spawn/merge work.
|
|
223
|
+
// Its own module-level re-entrancy guard drops overlapping cycles.
|
|
224
|
+
void checkDiscoveryRequests().catch((err) => log.warn('discovery poll failed:', err.message));
|
|
225
|
+
await processReadyFocuses();
|
|
226
|
+
await checkAndMergeCompletedDeliveries(config);
|
|
227
|
+
// checkDirectives runs syncFocusPhase (writing
|
|
228
|
+
// focus.current_workflow_stage_id) and fires stage-change directives
|
|
229
|
+
// -- including the spawn directive that starts the review team on
|
|
230
|
+
// entry to the `reviewing` phase. Run it before the cascade so phase
|
|
231
|
+
// and directive state are settled when the cascade reads them.
|
|
232
|
+
await checkDirectives(config);
|
|
233
|
+
// Sweep expired session holds FIRST (a hold-expiry teardown frees the queued
|
|
234
|
+
// directive behind it), then spawn pending directives getReadyFocuses skips.
|
|
235
|
+
await sweepExpiredSessionHolds(Date.now(), buildSessionHoldSweepDeps());
|
|
236
|
+
await runPendingSpawnPass();
|
|
237
|
+
// The cascade no longer auto-completes reviews -- closing out a
|
|
238
|
+
// review and routing verify deliveries to done/verify_failed is the
|
|
239
|
+
// exclusive responsibility of completion/review-exit-phase.ts's review exit
|
|
240
|
+
// handler, which gates on the exiting team's sessionType === 'review'
|
|
241
|
+
// (positive signal that an actual review ran).
|
|
242
|
+
await runCascadeChecks(config);
|
|
243
|
+
// New focus workflow lifecycle transitions (D2):
|
|
244
|
+
// - verify -> review when pipeline_config.review.enabled
|
|
245
|
+
// - review -> close_loop on state-based convergence
|
|
246
|
+
// - review -> review_nonconvergent escalation past the N-iter cap
|
|
247
|
+
// Runs after the legacy cascade so the new authoritative `stage`
|
|
248
|
+
// column reflects any updates the cascade may have made.
|
|
249
|
+
await runStageLifecycleTransitions(config);
|
|
250
|
+
await checkResolvedMergeConflicts(config);
|
|
251
|
+
await detectGitStates(config);
|
|
252
|
+
await detectFocusMerges(config);
|
|
253
|
+
// NOTE: the targeted daemon-owned stall detectors (verify_failed re-code cap
|
|
254
|
+
// + review-window staleness) run INSIDE runCascadeChecks above -- they ride
|
|
255
|
+
// its existing per-focus review-handling loop (reusing the deliveries +
|
|
256
|
+
// review phase it already fetched) rather than fanning out a second pass.
|
|
257
|
+
await checkSessionHealth();
|
|
258
|
+
}
|
|
259
|
+
/** The production seams: the real passes, and no per-product phase overrides. */
|
|
260
|
+
export const productionDeliveryListenerSeams = {
|
|
261
|
+
processReadyFocuses,
|
|
262
|
+
productPollPhases: {},
|
|
263
|
+
runOrgPollPasses,
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Start polling for ready focuses. `overrides` replaces the seams
|
|
267
|
+
* (DeliveryListenerSeams; tests); production passes nothing.
|
|
268
|
+
* listener-product-poll.test.ts fires the scheduled tick through a mocked
|
|
269
|
+
* interval clock to pin that it runs the per-product phases for every product.
|
|
270
|
+
*/
|
|
271
|
+
export function startDeliveryListener(overrides = {}) {
|
|
147
272
|
if (!config) {
|
|
148
273
|
throw new Error('Listener not initialized. Call initListener first.');
|
|
149
274
|
}
|
|
275
|
+
const seams = { ...productionDeliveryListenerSeams, ...overrides };
|
|
150
276
|
// Initial check
|
|
151
|
-
processReadyFocuses();
|
|
277
|
+
seams.processReadyFocuses();
|
|
152
278
|
// Start polling with error boundary — check for work and main advancement
|
|
153
279
|
// Per-product functions are called with product-scoped configs so that
|
|
154
280
|
// config.productId and config.repoPath resolve to the correct product.
|
|
@@ -161,85 +287,11 @@ export function startDeliveryListener() {
|
|
|
161
287
|
// recovery when it settles; skipIfRunning above keeps overlapping ticks from
|
|
162
288
|
// piling up while a hung one drains.
|
|
163
289
|
await runWithTickDeadline('focus-poll', DEFAULT_TICK_DEADLINE_MS, async () => {
|
|
290
|
+
// The per-product phases (runProductPollPhases), with a product-scoped config each.
|
|
164
291
|
for (const product of config.products) {
|
|
165
|
-
|
|
166
|
-
await ensureFocusWorktrees(pc, roles);
|
|
167
|
-
await checkForDeactivatedFocuses(pc);
|
|
168
|
-
await checkControlStateChanges(pc);
|
|
169
|
-
// Disarm reaper: clearing assigned_agent_role_id (dashboard Stop) only
|
|
170
|
-
// removes the focus from the spawn set; this stops the in-flight team via
|
|
171
|
-
// the same cooperative-stop -> SIGTERM path so Stop means stop. Runs after
|
|
172
|
-
// checkForDeactivatedFocuses (which owns genuine status!=active teardown).
|
|
173
|
-
await reapDisarmedTeams(pc);
|
|
174
|
-
await checkDeliveryAutoAdvance(pc);
|
|
175
|
-
await checkVerifyDeliveriesForOpenIssues(pc);
|
|
176
|
-
// Paused-revival (TEL-1): the daemon-traversable EXIT from `paused`. A
|
|
177
|
-
// guard-blocked delivery wedges the ranked queue and, before this, was
|
|
178
|
-
// never re-evaluated -- it waited for a human re-queue that never comes on
|
|
179
|
-
// an armed focus. This re-reads each paused delivery's open transition
|
|
180
|
-
// block, re-evaluates the SAME guard, and revives to queued when it has
|
|
181
|
-
// cleared (single-writer reconciler); a still-blocked pause stays a named
|
|
182
|
-
// human-act hold the wedge watchdog surfaces. Best-effort: never throws.
|
|
183
|
-
{
|
|
184
|
-
const revival = await checkPausedDeliveriesForRevival({ organizationId: pc.organizationId, productId: pc.productId }, buildDefaultPausedRevivalDeps());
|
|
185
|
-
if (revival.revived > 0) {
|
|
186
|
-
log.info(`[listener] Paused-revival: revived ${revival.revived} delivery(ies) whose blocking ` +
|
|
187
|
-
`guard cleared (held=${revival.held}, no-block=${revival.noBlock}).`);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
// Work-START edge: cross queued -> coding the moment a work issue is In
|
|
191
|
-
// Progress, during active execution (restores the deleted
|
|
192
|
-
// auto_advance_delivery_on_issue_active trigger via the single-writer
|
|
193
|
-
// reconciler). Runs for active-team focuses too, unlike checkDeliveryAutoAdvance.
|
|
194
|
-
await checkDeliveryWorkStart(pc);
|
|
195
|
-
// Single-writer consolidation (injection #10), SHADOW step: compute the
|
|
196
|
-
// reconciler's target for each delivery and log divergence from the live
|
|
197
|
-
// status. Writes nothing; default-OFF (opt-in via TELORA_RECONCILER_SHADOW),
|
|
198
|
-
// so this is a no-op until an operator enables it.
|
|
199
|
-
await runReconcilerShadow(pc);
|
|
200
|
-
// Nexus: the per-product request passes (accept -> intake -> auto-deliver
|
|
201
|
-
// -> resolve -> endpoint clearance).
|
|
202
|
-
await runNexusPasses(pc);
|
|
292
|
+
await runProductPollPhases(configForProduct(config, product), seams.productPollPhases);
|
|
203
293
|
}
|
|
204
|
-
|
|
205
|
-
// daemon is the only LAN-reachable component, so it resolves the add-model
|
|
206
|
-
// form's pending {baseUrl}/models lookups. FIRE-AND-FORGET (TEL-7): never
|
|
207
|
-
// awaited, so a slow/blocked endpoint fetch can't delay spawn/merge work.
|
|
208
|
-
// Its own module-level re-entrancy guard drops overlapping cycles.
|
|
209
|
-
void checkDiscoveryRequests().catch((err) => log.warn('discovery poll failed:', err.message));
|
|
210
|
-
await processReadyFocuses();
|
|
211
|
-
await checkAndMergeCompletedDeliveries(config);
|
|
212
|
-
// checkDirectives runs syncFocusPhase (writing
|
|
213
|
-
// focus.current_workflow_stage_id) and fires stage-change directives
|
|
214
|
-
// -- including the spawn directive that starts the review team on
|
|
215
|
-
// entry to the `reviewing` phase. Run it before the cascade so phase
|
|
216
|
-
// and directive state are settled when the cascade reads them.
|
|
217
|
-
await checkDirectives(config);
|
|
218
|
-
// Pick up focuses that have a pending spawn directive but weren't
|
|
219
|
-
// surfaced by getReadyFocuses (e.g., review-stage spawns on focuses
|
|
220
|
-
// whose deliveries are all in verify).
|
|
221
|
-
await processPendingSpawnFocuses();
|
|
222
|
-
// The cascade no longer auto-completes reviews -- closing out a
|
|
223
|
-
// review and routing verify deliveries to done/verify_failed is the
|
|
224
|
-
// exclusive responsibility of completion/review-exit-phase.ts's review exit
|
|
225
|
-
// handler, which gates on the exiting team's sessionType === 'review'
|
|
226
|
-
// (positive signal that an actual review ran).
|
|
227
|
-
await runCascadeChecks(config);
|
|
228
|
-
// New focus workflow lifecycle transitions (D2):
|
|
229
|
-
// - verify -> review when pipeline_config.review.enabled
|
|
230
|
-
// - review -> close_loop on state-based convergence
|
|
231
|
-
// - review -> review_nonconvergent escalation past the N-iter cap
|
|
232
|
-
// Runs after the legacy cascade so the new authoritative `stage`
|
|
233
|
-
// column reflects any updates the cascade may have made.
|
|
234
|
-
await runStageLifecycleTransitions(config);
|
|
235
|
-
await checkResolvedMergeConflicts(config);
|
|
236
|
-
await detectGitStates(config);
|
|
237
|
-
await detectFocusMerges(config);
|
|
238
|
-
// NOTE: the targeted daemon-owned stall detectors (verify_failed re-code cap
|
|
239
|
-
// + review-window staleness) run INSIDE runCascadeChecks above -- they ride
|
|
240
|
-
// its existing per-focus review-handling loop (reusing the deliveries +
|
|
241
|
-
// review phase it already fetched) rather than fanning out a second pass.
|
|
242
|
-
await checkSessionHealth();
|
|
294
|
+
await seams.runOrgPollPasses();
|
|
243
295
|
});
|
|
244
296
|
}, POLL_INTERVAL_MS, 'focus-poll', { skipIfRunning: true }));
|
|
245
297
|
log.info(`Started focus polling (every ${POLL_INTERVAL_MS / 1000}s)`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/focus/listener.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/focus/listener.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Injectable seam for the pending-spawn pass (focus/listener-spawn.ts
|
|
3
|
+
* processPendingSpawnFocuses).
|
|
4
|
+
*
|
|
5
|
+
* The pass reads the listener-state singletons (config, roles -- set through
|
|
6
|
+
* listener-state's setters) and the in-memory team + pending-directive maps
|
|
7
|
+
* directly; what it cannot run in a test is the NETWORK: the active-focus read,
|
|
8
|
+
* the process spawn, and the per-gate state reads. Those are the members here.
|
|
9
|
+
* Every member defaults to the real implementation (PENDING_SPAWN_PASS_DEPS), so
|
|
10
|
+
* production calls the pass with no argument, and a test drives the REAL pass --
|
|
11
|
+
* its gate order, its drops, its cooldown record -- rather than a copied loop.
|
|
12
|
+
*
|
|
13
|
+
* Kept in its own module so listener-spawn.ts (file-size + function-size floors)
|
|
14
|
+
* stays flat. Imports only defining modules; nothing here imports listener-spawn.
|
|
15
|
+
*/
|
|
16
|
+
import { getReadyFocuses, type ActiveFocusRow } from '../queries/focus-discovery.js';
|
|
17
|
+
import type { SpawnFocusTeamParams } from '../spawn/spawn-decision.js';
|
|
18
|
+
import type { RespawnGuardDeps } from './focus-respawn-guard.js';
|
|
19
|
+
import type { PendingSpawnReviewNextStepDeps } from './pending-spawn-review-next-step.js';
|
|
20
|
+
import type { ReviewHoldParkDeps } from '../spawn/review-hold-park.js';
|
|
21
|
+
import { resolveFocusVerifyHoldFacts, type FocusHoldWorkDeps } from './team-actionable-work.js';
|
|
22
|
+
import type { ReviewCycleCapHoldDeps } from './review-cycle-cap-hold.js';
|
|
23
|
+
import type { EscalationSpoolDrainDeps } from '../queries/escalation-spool.js';
|
|
24
|
+
/**
|
|
25
|
+
* The same seam for the ready-focus pass (focus/listener-spawn.ts
|
|
26
|
+
* processReadyFocuses): the ready-focus read, the per-focus verify-hold read, and
|
|
27
|
+
* the process spawn -- the members a test cannot run for real. Every member
|
|
28
|
+
* defaults to the real implementation (READY_FOCUS_PASS_DEPS).
|
|
29
|
+
*/
|
|
30
|
+
export interface ReadyFocusPassDeps {
|
|
31
|
+
/** Ready focuses per product (the focuses the pass may spawn a team for). */
|
|
32
|
+
getReadyFocuses: typeof getReadyFocuses;
|
|
33
|
+
/** The verify-hold facts the spawn gate reads for one focus. */
|
|
34
|
+
resolveFocusVerifyHoldFacts: (focusId: string) => ReturnType<typeof resolveFocusVerifyHoldFacts>;
|
|
35
|
+
/** The team spawn; the real one registers the team in activeTeams. */
|
|
36
|
+
spawnFocusTeam: (params: SpawnFocusTeamParams) => Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Builds the pass's review-cycle cap hold reader (one per poll). Absent, the
|
|
39
|
+
* pass uses the real createReadyFocusCapHoldReader (focus/review-cycle-cap-hold.ts).
|
|
40
|
+
*/
|
|
41
|
+
createCapHoldReader?: (organizationId: string) => (focus: {
|
|
42
|
+
focus_id: string;
|
|
43
|
+
focus_name: string;
|
|
44
|
+
product_id: string | null;
|
|
45
|
+
}) => Promise<boolean>;
|
|
46
|
+
}
|
|
47
|
+
/** The production wiring for the ready-focus pass. */
|
|
48
|
+
export declare const READY_FOCUS_PASS_DEPS: ReadyFocusPassDeps;
|
|
49
|
+
export interface PendingSpawnPassDeps {
|
|
50
|
+
/** Active focus rows per product (the metadata the spawn needs). */
|
|
51
|
+
getActiveFocuses: (organizationId: string, productId?: string) => Promise<ActiveFocusRow[]>;
|
|
52
|
+
/** The team spawn; the real one consumes the pending directive and registers the team. */
|
|
53
|
+
spawnFocusTeam: (params: SpawnFocusTeamParams) => Promise<void>;
|
|
54
|
+
/** Escalation reads of the pre-spawn respawn guard (applyRespawnGuard). */
|
|
55
|
+
respawnGuard?: RespawnGuardDeps;
|
|
56
|
+
/** Deliveries/issues reads of the review-next-step gate (pendingCodingSpawnSupersededByReview). */
|
|
57
|
+
reviewNextStep?: PendingSpawnReviewNextStepDeps;
|
|
58
|
+
/** Reads of the operator-hold review park (pendingReviewParkedOnOperatorHold). */
|
|
59
|
+
reviewHoldPark?: ReviewHoldParkDeps;
|
|
60
|
+
/** Hold + work reads of the verify-hold deferral (pendingSpawnDeferredByVerifyHold). */
|
|
61
|
+
verifyHold?: FocusHoldWorkDeps;
|
|
62
|
+
/** Observation + cap reads of the review-cycle cap hold (resolveReviewCycleCapHold). */
|
|
63
|
+
reviewCycleCapHold?: ReviewCycleCapHoldDeps;
|
|
64
|
+
/** Directory + writer of the escalation-spool drain runPendingSpawnPass runs first. */
|
|
65
|
+
escalationSpool?: EscalationSpoolDrainDeps;
|
|
66
|
+
}
|
|
67
|
+
/** The production wiring: every member is the real implementation. */
|
|
68
|
+
export declare const PENDING_SPAWN_PASS_DEPS: PendingSpawnPassDeps;
|
|
69
|
+
//# sourceMappingURL=pending-spawn-pass-deps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-spawn-pass-deps.d.ts","sourceRoot":"","sources":["../../src/focus/pending-spawn-pass-deps.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAoB,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEvG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gEAAgE;IAChE,2BAA2B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;IACjG,sEAAsE;IACtE,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CACpB,cAAc,EAAE,MAAM,KACnB,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACvG;AAED,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,EAAE,kBAInC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC5F,0FAA0F;IAC1F,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,2EAA2E;IAC3E,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,mGAAmG;IACnG,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD,kFAAkF;IAClF,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,wFAAwF;IACxF,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C,uFAAuF;IACvF,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,EAAE,oBAGrC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/review-window-idle-coding-lead-regression.test.ts,
|
|
3
|
+
// packages/daemon/src/focus/awaiting-slot.test.ts
|
|
4
|
+
// PINNED-BY-END
|
|
5
|
+
/**
|
|
6
|
+
* Injectable seam for the pending-spawn pass (focus/listener-spawn.ts
|
|
7
|
+
* processPendingSpawnFocuses).
|
|
8
|
+
*
|
|
9
|
+
* The pass reads the listener-state singletons (config, roles -- set through
|
|
10
|
+
* listener-state's setters) and the in-memory team + pending-directive maps
|
|
11
|
+
* directly; what it cannot run in a test is the NETWORK: the active-focus read,
|
|
12
|
+
* the process spawn, and the per-gate state reads. Those are the members here.
|
|
13
|
+
* Every member defaults to the real implementation (PENDING_SPAWN_PASS_DEPS), so
|
|
14
|
+
* production calls the pass with no argument, and a test drives the REAL pass --
|
|
15
|
+
* its gate order, its drops, its cooldown record -- rather than a copied loop.
|
|
16
|
+
*
|
|
17
|
+
* Kept in its own module so listener-spawn.ts (file-size + function-size floors)
|
|
18
|
+
* stays flat. Imports only defining modules; nothing here imports listener-spawn.
|
|
19
|
+
*/
|
|
20
|
+
import { getActiveFocuses, getReadyFocuses } from '../queries/focus-discovery.js';
|
|
21
|
+
import { spawnFocusTeam } from './focus-executor.js';
|
|
22
|
+
import { resolveFocusVerifyHoldFacts } from './team-actionable-work.js';
|
|
23
|
+
/** The production wiring for the ready-focus pass. */
|
|
24
|
+
export const READY_FOCUS_PASS_DEPS = {
|
|
25
|
+
getReadyFocuses,
|
|
26
|
+
resolveFocusVerifyHoldFacts: (focusId) => resolveFocusVerifyHoldFacts(focusId),
|
|
27
|
+
spawnFocusTeam,
|
|
28
|
+
};
|
|
29
|
+
/** The production wiring: every member is the real implementation. */
|
|
30
|
+
export const PENDING_SPAWN_PASS_DEPS = {
|
|
31
|
+
getActiveFocuses,
|
|
32
|
+
spawnFocusTeam,
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=pending-spawn-pass-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-spawn-pass-deps.js","sourceRoot":"","sources":["../../src/focus/pending-spawn-pass-deps.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+FAA+F;AAC/F,oDAAoD;AACpD,gBAAgB;AAEhB;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAuB,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,2BAA2B,EAA0B,MAAM,2BAA2B,CAAC;AA0BhG,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,eAAe;IACf,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC;IAC9E,cAAc;CACf,CAAC;AAqBF,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,gBAAgB;IAChB,cAAc;CACf,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { PipelineConfig } from '../types/index.js';
|
|
2
|
+
import { type CreateEscalationParams } from '../queries/escalations.js';
|
|
3
|
+
import { type ReviewNextStepDelivery, type ReviewNextStepIssue } from '../completion/review-next-step.js';
|
|
4
|
+
/** Bound on deferring one queued coding directive while the review-next-step state stays unreadable. */
|
|
5
|
+
export declare const UNREADABLE_DEFERRAL_MAX_MS: number;
|
|
6
|
+
/** Bound on retrying the expiry escalation for one directive after its first failed filing. */
|
|
7
|
+
export declare const UNREADABLE_DEFERRAL_FILING_RETRY_MAX_MS: number;
|
|
8
|
+
/** Bound on retrying a refused spool write after the filing retry bound lapsed; past it the daemon fail-stops. */
|
|
9
|
+
export declare const UNREADABLE_DEFERRAL_SPOOL_RETRY_MAX_MS: number;
|
|
10
|
+
/** The hold kind named in the expiry log line (the session-hold expiry shape). */
|
|
11
|
+
export declare const UNREADABLE_DEFERRAL_HOLD_KIND = "unreadable_review_next_step_deferral";
|
|
12
|
+
/** metadata.cause stamped on the deferral-expiry escalation. */
|
|
13
|
+
export declare const UNREADABLE_DEFERRAL_EXPIRED_CAUSE = "review_next_step_unreadable_deferral_expired";
|
|
14
|
+
/**
|
|
15
|
+
* The deferral-expiry escalation's deterministic cause key (metadata.cause_key):
|
|
16
|
+
* one condition per focus, so incident correlation records it as its own symptom.
|
|
17
|
+
*/
|
|
18
|
+
export declare function unreadableDeferralCauseKey(focusId: string): string;
|
|
19
|
+
/** What a deferral expiry hands the escalation filer. */
|
|
20
|
+
export interface UnreadableDeferralExpiry {
|
|
21
|
+
focusId: string;
|
|
22
|
+
focusName: string;
|
|
23
|
+
sessionType: string;
|
|
24
|
+
elapsedMs: number;
|
|
25
|
+
what: 'deliveries' | 'issues';
|
|
26
|
+
error: Error;
|
|
27
|
+
}
|
|
28
|
+
/** The escalation writer the production filer calls (the filing chokepoint). */
|
|
29
|
+
export type DeferralEscalationWriter = (params: CreateEscalationParams) => Promise<unknown>;
|
|
30
|
+
/** Injectable seam; each defaults to the listener's real collaborator. */
|
|
31
|
+
export interface PendingSpawnReviewNextStepDeps {
|
|
32
|
+
getFocusDeliveries?: (focusId: string) => Promise<readonly ReviewNextStepDelivery[]>;
|
|
33
|
+
getFocusIssues?: (focusId: string) => Promise<readonly ReviewNextStepIssue[]>;
|
|
34
|
+
/** Clock for the deferral bound (defaults to Date.now). */
|
|
35
|
+
now?: () => number;
|
|
36
|
+
/**
|
|
37
|
+
* Files the ONE escalation a deferral expiry owes; must reject when the
|
|
38
|
+
* escalation was not recorded (defaults to fileUnreadableDeferralExpiry).
|
|
39
|
+
*/
|
|
40
|
+
fileDeferralExpiry?: (expiry: UnreadableDeferralExpiry) => Promise<void>;
|
|
41
|
+
/** The writer the DEFAULT filer uses (defaults to queries/escalations.ts createEscalation). */
|
|
42
|
+
createEscalation?: DeferralEscalationWriter;
|
|
43
|
+
/** Where the retry bound spools an unrecorded expiry escalation (defaults to escalationSpoolDir()). */
|
|
44
|
+
escalationSpoolDir?: string;
|
|
45
|
+
/** The terminal act when neither the writer nor the spool can record the escalation (defaults to requestDaemonFailStop). */
|
|
46
|
+
failStop?: (reason: string) => void;
|
|
47
|
+
}
|
|
48
|
+
/** The focus-row slice the gate reads (structural; getActiveFocuses rows satisfy it). */
|
|
49
|
+
export interface PendingSpawnReviewNextStepFocus {
|
|
50
|
+
focus_id: string;
|
|
51
|
+
focus_name: string;
|
|
52
|
+
pipeline_config: PipelineConfig | null;
|
|
53
|
+
}
|
|
54
|
+
/** Test-only: forget every deferral clock. */
|
|
55
|
+
export declare function __resetUnreadableDeferralsForTesting(): void;
|
|
56
|
+
/**
|
|
57
|
+
* The ONE escalation an expired unreadable-state deferral owes. Restoring the
|
|
58
|
+
* focus-state read and re-queuing coding work are agent work (read the daemon log,
|
|
59
|
+
* check the product API) -- no human act -- so the filing chokepoint sends it to
|
|
60
|
+
* the machine lane as an observation. Its per-focus cause_key gives it its own
|
|
61
|
+
* incident symptom. THROWS when there is no organization to file under.
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildUnreadableDeferralEscalation(expiry: UnreadableDeferralExpiry): CreateEscalationParams;
|
|
64
|
+
/**
|
|
65
|
+
* File the ONE escalation an expired unreadable-state deferral owes. REJECTS
|
|
66
|
+
* whenever the escalation was not recorded (including when there is no
|
|
67
|
+
* organization to file under), so the gate keeps the directive and retries
|
|
68
|
+
* instead of discarding it.
|
|
69
|
+
*/
|
|
70
|
+
export declare function fileUnreadableDeferralExpiry(expiry: UnreadableDeferralExpiry, deps?: {
|
|
71
|
+
createEscalation: DeferralEscalationWriter;
|
|
72
|
+
}): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Gate a queued non-review spawn directive on the focus's next actionable step.
|
|
75
|
+
* Returns true when the caller must NOT spawn this poll: the directive was dropped
|
|
76
|
+
* (a review pass is next, or its bounded unreadable-state deferral ended) or
|
|
77
|
+
* deferred (the state could not be read, or the expiry escalation is not yet
|
|
78
|
+
* durable -- neither recorded nor spooled; it stays queued). Returns false
|
|
79
|
+
* when there is no directive, it is a review directive, or the focus still has
|
|
80
|
+
* coding work.
|
|
81
|
+
*/
|
|
82
|
+
export declare function pendingCodingSpawnSupersededByReview(focus: PendingSpawnReviewNextStepFocus, deps?: PendingSpawnReviewNextStepDeps): Promise<boolean>;
|
|
83
|
+
//# sourceMappingURL=pending-spawn-review-next-step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-spawn-review-next-step.d.ts","sourceRoot":"","sources":["../../src/focus/pending-spawn-review-next-step.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAA+C,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKrH,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,mCAAmC,CAAC;AAO3C,wGAAwG;AACxG,eAAO,MAAM,0BAA0B,QAAc,CAAC;AAEtD,+FAA+F;AAC/F,eAAO,MAAM,uCAAuC,QAAc,CAAC;AAEnE,kHAAkH;AAClH,eAAO,MAAM,sCAAsC,QAAc,CAAC;AAElE,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,yCAAyC,CAAC;AAEpF,gEAAgE;AAChE,eAAO,MAAM,iCAAiC,iDAAiD,CAAC;AAEhG;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,yDAAyD;AACzD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;CACd;AAED,gFAAgF;AAChF,MAAM,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5F,0EAA0E;AAC1E,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IACrF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC;IAC9E,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4HAA4H;IAC5H,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,yFAAyF;AACzF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAwCD,8CAA8C;AAC9C,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AA+BD;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,wBAAwB,GAAG,sBAAsB,CAkC1G;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,wBAAwB,EAChC,IAAI,GAAE;IAAE,gBAAgB,EAAE,wBAAwB,CAAA;CAAkD,GACnG,OAAO,CAAC,IAAI,CAAC,CAEf;AAuKD;;;;;;;;GAQG;AACH,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,+BAA+B,EACtC,IAAI,GAAE,8BAAmC,GACxC,OAAO,CAAC,OAAO,CAAC,CAalB"}
|