@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
|
@@ -0,0 +1,178 @@
|
|
|
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-cycle-cap-regression.test.ts,
|
|
3
|
+
// packages/daemon/src/focus/review-cycle-cap-hold.test.ts
|
|
4
|
+
// PINNED-BY-END
|
|
5
|
+
/**
|
|
6
|
+
* The review-cycle cap HOLD: a focus whose review loop reached
|
|
7
|
+
* TELORA_REVIEW_CYCLE_CAP without converging spawns no further coding or review
|
|
8
|
+
* pass.
|
|
9
|
+
*
|
|
10
|
+
* Why a hold and not a meter: the cap used to file one review_cycle_cap_exceeded
|
|
11
|
+
* observation and let the loop continue, on the theory that the hand-off breaker
|
|
12
|
+
* (completion/review-exit-escalations.ts recordHandoffAndMaybeTerminate) was the
|
|
13
|
+
* stop valve. That breaker only advances on no-progress exits, and a review that
|
|
14
|
+
* files a new finding every cycle IS progress to it (review-cycle-delta.ts counts
|
|
15
|
+
* issuesFiled), so a loop that never converges was never bounded. 2026-09-15: the
|
|
16
|
+
* observation filed at cycle 8, cycles 9 and 10 plus their coding passes ran
|
|
17
|
+
* (~$183), and only an operator disarm stopped it.
|
|
18
|
+
*
|
|
19
|
+
* ONE decision, read identically by every gate that can spawn a pass for a focus
|
|
20
|
+
* or open the window that spawns one:
|
|
21
|
+
* - the ready-focus spawn gate (focus/focus-spawn-decision.ts decideFocusSpawn)
|
|
22
|
+
* - the pending-directive spawn pass (focus/listener-spawn.ts processPendingSpawnFocuses)
|
|
23
|
+
* - the auto-review window (completion/state-cascade.ts checkAutoReview)
|
|
24
|
+
* spawnFocusTeam has exactly those two callers, and a stage directive never spawns
|
|
25
|
+
* on its own (directive/directive-dispatch.ts stashes it for the pending pass), so
|
|
26
|
+
* these gates are the whole spawn surface.
|
|
27
|
+
*
|
|
28
|
+
* The hold is standing while ANY of three facts holds (isReviewCycleCapHeld):
|
|
29
|
+
* - an OPEN review_cycle_cap_exceeded observation for the focus. The crossing
|
|
30
|
+
* resets review_cycle_count to 0 once that observation is filed
|
|
31
|
+
* (completion/review-cycle-cap.ts), so a fresh cap of cycles is needed to
|
|
32
|
+
* re-cross. The hold is keyed on the machine-lane observation's KIND, never on
|
|
33
|
+
* a human act: the daemon has no human-facing route, and the promotion sweep
|
|
34
|
+
* hands a held focus's observations to the routing decider
|
|
35
|
+
* (queries/agent-resolvable-promotion.ts).
|
|
36
|
+
* - an OPEN lineage CARRIER naming one of the focus's review_cycle_cap_exceeded
|
|
37
|
+
* observations, open or resolved: a human-lane row whose
|
|
38
|
+
* metadata.originalEscalationId names it (queries/escalation-consumption.ts
|
|
39
|
+
* LineageCarrier -- what a routing decider files through telora_agent escalate
|
|
40
|
+
* with sourceEscalationId). The sweep closes the observation auto_swept the
|
|
41
|
+
* moment such a row exists, so without this fact the hold would lift -- and the
|
|
42
|
+
* focus bill another full cap of cycles -- while the human-facing filing still
|
|
43
|
+
* sits unacted. A carrier has its own close-half (its resolution), unlike a
|
|
44
|
+
* correlated or absorbed symptom, which is why carriers are matched by lineage
|
|
45
|
+
* here and hasOpenFocusEscalation's matchCorrelated is not used as the hold.
|
|
46
|
+
* Carriers carry no kind marker (no originalKind; original_cause_key only when
|
|
47
|
+
* the source had a cause_key, which this observation does not), so the match
|
|
48
|
+
* is by source id against the focus's own rows of the kind, any status.
|
|
49
|
+
* - review_cycle_count >= cap: the count is written before the filing, so a
|
|
50
|
+
* filing that fails still holds; the cascade re-files it every poll until it
|
|
51
|
+
* lands (reconcileReviewCycleCapFiling).
|
|
52
|
+
* Resolving the observation with no carrier, or resolving the carrier, lifts the
|
|
53
|
+
* hold (the count is already 0).
|
|
54
|
+
*
|
|
55
|
+
* Fails CLOSED: an unreadable count, observation or carrier read holds. This is a
|
|
56
|
+
* stop gate (workflow/gate-failure-policy.ts, safety class) and every read
|
|
57
|
+
* repeats each poll, so a transient failure delays one poll instead of billing a
|
|
58
|
+
* pass the cap exists to prevent.
|
|
59
|
+
*
|
|
60
|
+
* @module focus/review-cycle-cap-hold
|
|
61
|
+
*/
|
|
62
|
+
import { listFocusEscalationsOfKind, listOpenLineageCarriersForOrg, } from '../queries/escalation-consumption.js';
|
|
63
|
+
import { isOpenFocusKindRow } from '../queries/incident-correlation.js';
|
|
64
|
+
import { getActiveFocuses } from '../queries/focus-discovery.js';
|
|
65
|
+
import { resolveReviewCycleCap } from '../verify/stall-detector-config.js';
|
|
66
|
+
import { safetyGateFailsClosed } from '../workflow/gate-failure-policy.js';
|
|
67
|
+
import { createLogger } from '../shell/log.js';
|
|
68
|
+
const log = createLogger({ module: 'focus' });
|
|
69
|
+
/** The observation kind the cap files and the hold reads. */
|
|
70
|
+
export const REVIEW_CYCLE_CAP_EXCEEDED_KIND = 'review_cycle_cap_exceeded';
|
|
71
|
+
/** Pure: whether the review-cycle cap holds the focus. An unreadable fact holds. */
|
|
72
|
+
export function isReviewCycleCapHeld(facts) {
|
|
73
|
+
if (facts.reviewCycleCount === null || facts.capObservationOpen === null || facts.capCarrierOpen === null)
|
|
74
|
+
return true;
|
|
75
|
+
return facts.capObservationOpen || facts.capCarrierOpen || facts.reviewCycleCount >= facts.cap;
|
|
76
|
+
}
|
|
77
|
+
/** Pure: whether an open carrier names one of the given cap observations (matched by source id). */
|
|
78
|
+
export function capCarrierNamesObservation(carriers, capObservationIds) {
|
|
79
|
+
return carriers.some((c) => capObservationIds.has(c.sourceEscalationId));
|
|
80
|
+
}
|
|
81
|
+
/** Pure: why a held focus is held, for the one log line per episode. */
|
|
82
|
+
function describeHold(facts) {
|
|
83
|
+
if (facts.reviewCycleCount === null || facts.capObservationOpen === null || facts.capCarrierOpen === null) {
|
|
84
|
+
return 'a read failed (fail closed)';
|
|
85
|
+
}
|
|
86
|
+
if (facts.capObservationOpen)
|
|
87
|
+
return 'its review_cycle_cap_exceeded observation is open';
|
|
88
|
+
if (facts.capCarrierOpen)
|
|
89
|
+
return 'a human-facing filing made from its review_cycle_cap_exceeded observation is open';
|
|
90
|
+
return `cycles=${facts.reviewCycleCount} >= cap=${facts.cap}`;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Read the hold's facts for a focus whose review_cycle_count the caller already
|
|
94
|
+
* read (null when it could not). The carrier read is made only when it can turn
|
|
95
|
+
* the decision: skipped (false) when the focus has no cap observation for a
|
|
96
|
+
* carrier to name, or when the other facts already hold.
|
|
97
|
+
*/
|
|
98
|
+
export async function readReviewCycleCapFacts(focus, deps = {}) {
|
|
99
|
+
const base = { reviewCycleCount: focus.reviewCycleCount, cap: (deps.resolveReviewCycleCap ?? resolveReviewCycleCap)() };
|
|
100
|
+
const site = `review-cycle-cap-hold "${focus.focusName}"`;
|
|
101
|
+
const listRows = deps.listCapObservations
|
|
102
|
+
?? ((focusId) => listFocusEscalationsOfKind(focusId, REVIEW_CYCLE_CAP_EXCEEDED_KIND));
|
|
103
|
+
let rows;
|
|
104
|
+
try {
|
|
105
|
+
rows = await listRows(focus.focusId);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
return { ...base, capObservationOpen: safetyGateFailsClosed(`${site} observation read`, err, null), capCarrierOpen: null };
|
|
109
|
+
}
|
|
110
|
+
const own = rows.filter((r) => r.focusId === focus.focusId && r.escalationKind === REVIEW_CYCLE_CAP_EXCEEDED_KIND);
|
|
111
|
+
const capObservationOpen = own.some((r) => isOpenFocusKindRow(r, focus.focusId, REVIEW_CYCLE_CAP_EXCEEDED_KIND));
|
|
112
|
+
const unread = { ...base, capObservationOpen, capCarrierOpen: false };
|
|
113
|
+
if (own.length === 0 || isReviewCycleCapHeld(unread))
|
|
114
|
+
return unread;
|
|
115
|
+
try {
|
|
116
|
+
const carriers = await (deps.listOpenLineageCarriers ?? (() => listOpenLineageCarriersForOrg()))();
|
|
117
|
+
return { ...unread, capCarrierOpen: capCarrierNamesObservation(carriers, new Set(own.map((r) => r.id))) };
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
return { ...unread, capCarrierOpen: safetyGateFailsClosed(`${site} lineage-carrier read`, err, null) };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/** Focuses whose held episode was already logged (one line per episode, not per poll). */
|
|
124
|
+
const heldLoggedFocuses = new Set();
|
|
125
|
+
/** Test seam: clear the per-episode log throttle. */
|
|
126
|
+
export function __resetReviewCycleCapHoldLog() {
|
|
127
|
+
heldLoggedFocuses.clear();
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Resolve the hold for a focus whose review_cycle_count the caller already read
|
|
131
|
+
* (null when it could not). Reads the facts, applies the one predicate, and logs
|
|
132
|
+
* the held edge once per episode.
|
|
133
|
+
*/
|
|
134
|
+
export async function resolveReviewCycleCapHold(focus, deps = {}) {
|
|
135
|
+
const facts = await readReviewCycleCapFacts(focus, deps);
|
|
136
|
+
const held = isReviewCycleCapHeld(facts);
|
|
137
|
+
if (!held) {
|
|
138
|
+
heldLoggedFocuses.delete(focus.focusId);
|
|
139
|
+
}
|
|
140
|
+
else if (!heldLoggedFocuses.has(focus.focusId)) {
|
|
141
|
+
heldLoggedFocuses.add(focus.focusId);
|
|
142
|
+
log.info(`[review-cycle-cap-hold] "${focus.focusName}" is held at its review-cycle cap: ${describeHold(facts)}. ` +
|
|
143
|
+
`No coding or review pass spawns until the observation -- or the human-facing filing made from it -- ` +
|
|
144
|
+
`is resolved, or the focus converges.`);
|
|
145
|
+
}
|
|
146
|
+
return held;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* A hold reader for the ready-focus spawn gate. getReadyFocuses rows do not carry
|
|
150
|
+
* review_cycle_count, so the count comes from the active-focus read -- once per
|
|
151
|
+
* product for the reader's lifetime (create one per poll). A failed read, or a
|
|
152
|
+
* ready focus absent from the active read (both filter status='active', so only a
|
|
153
|
+
* same-poll race), leaves the count unreadable: held. The org-wide carrier read is
|
|
154
|
+
* likewise made at most once per reader, however many focuses need it.
|
|
155
|
+
*/
|
|
156
|
+
export function createReadyFocusCapHoldReader(organizationId, deps = {}) {
|
|
157
|
+
const countsByProduct = new Map();
|
|
158
|
+
const readCounts = (productId) => {
|
|
159
|
+
const key = productId ?? '';
|
|
160
|
+
let counts = countsByProduct.get(key);
|
|
161
|
+
if (!counts) {
|
|
162
|
+
counts = (deps.getActiveFocuses ?? getActiveFocuses)(organizationId, productId ?? undefined)
|
|
163
|
+
.then((rows) => new Map(rows.map((r) => [r.focus_id, r.review_cycle_count])))
|
|
164
|
+
.catch((err) => safetyGateFailsClosed(`review-cycle-cap-hold count read (product ${key || '<none>'})`, err, null));
|
|
165
|
+
countsByProduct.set(key, counts);
|
|
166
|
+
}
|
|
167
|
+
return counts;
|
|
168
|
+
};
|
|
169
|
+
let carriers;
|
|
170
|
+
const readCarriers = deps.listOpenLineageCarriers ?? (() => listOpenLineageCarriersForOrg());
|
|
171
|
+
const holdDeps = { ...deps, listOpenLineageCarriers: () => (carriers ??= readCarriers()) };
|
|
172
|
+
return async (focus) => {
|
|
173
|
+
const counts = await readCounts(focus.product_id);
|
|
174
|
+
const reviewCycleCount = counts?.get(focus.focus_id) ?? null;
|
|
175
|
+
return resolveReviewCycleCapHold({ focusId: focus.focus_id, focusName: focus.focus_name, reviewCycleCount }, holdDeps);
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=review-cycle-cap-hold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-cycle-cap-hold.js","sourceRoot":"","sources":["../../src/focus/review-cycle-cap-hold.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* The single definition of "is there team-actionable work for this focus right
|
|
8
8
|
* now?", read by every controller that can spawn, hold, or exit a team so they
|
|
9
9
|
* cannot disagree about the same focus state:
|
|
10
|
-
* - the spawn gate (focus/
|
|
11
|
-
* processPendingSpawnFocuses)
|
|
10
|
+
* - the spawn gate (focus/focus-spawn-decision.ts decideFocusSpawn +
|
|
11
|
+
* focus/listener-spawn.ts processPendingSpawnFocuses)
|
|
12
12
|
* - the team-exit decision (completion/event-phases.ts, computeCompletionFacts)
|
|
13
13
|
* - the directive executor's spawn-producing paths
|
|
14
14
|
* (directive/directive-verify-hold-gate.ts, consumed
|
|
@@ -7,6 +7,25 @@
|
|
|
7
7
|
* of focus/listener-auto-advance.ts (file-size limit); it owns the schema-drift
|
|
8
8
|
* bounded-retry guard exclusively (checkDeliveryAutoAdvance does not use it).
|
|
9
9
|
* Importers reference this module directly (no re-export facade).
|
|
10
|
+
*
|
|
11
|
+
* The route is a routing decision a gate verdict gates, exactly like the review
|
|
12
|
+
* exit's verify_failed route: while a gate run that may judge the focus commit is
|
|
13
|
+
* selected or in flight and no verdict is recorded for it, the delivery is left in
|
|
14
|
+
* verify and re-checked next poll (completion/review-exit-verdict-gate.ts
|
|
15
|
+
* awaitsInFlightGateRun). Without that wait this pass would route around a review
|
|
16
|
+
* exit's held re-work one poll after the window closed, and the verdict it waited
|
|
17
|
+
* for would route nothing.
|
|
18
|
+
*
|
|
19
|
+
* The route also CARRIES what it judged, exactly as the review exit's does: the
|
|
20
|
+
* commit the wait read (the focus worktree HEAD, read once) is stamped as the
|
|
21
|
+
* delivery's judged commit with the delivery's own-gate verdict for it beside it
|
|
22
|
+
* (completion/review-exit-verdict-gate.ts openWorkReworkGateState), so the coding
|
|
23
|
+
* team resumed on the re-work is shown that commit's outcome, failing stage and
|
|
24
|
+
* sha -- never the HEAD it resumes at, nor a sibling gate's verdict. The stamp is
|
|
25
|
+
* written over the gate_state as it stands (this route never cleared a verdict or
|
|
26
|
+
* hold, and still clears none) and carries the verification history forward. A
|
|
27
|
+
* schema-drift rejection writes nothing of its own: the next poll recomputes the
|
|
28
|
+
* stamp with the route.
|
|
10
29
|
*/
|
|
11
30
|
import type { DaemonConfig } from '../types/index.js';
|
|
12
31
|
import { updateDeliveryStatus } from '../queries/deliveries.js';
|
|
@@ -16,6 +35,7 @@ import { fetchEffectiveWorkflow } from '../queries/workflows.js';
|
|
|
16
35
|
import { getActiveTeams } from './focus-executor.js';
|
|
17
36
|
import { getDeliveryIssues, updateIssueStatus } from '../queries/issues.js';
|
|
18
37
|
import { createEscalation as defaultCreateEscalation } from '../queries/escalations.js';
|
|
38
|
+
import { type CommitGateSeams } from '../verify/commit-gate-configured.js';
|
|
19
39
|
/**
|
|
20
40
|
* Escalation kind used when the bounded retry cap is hit. The dashboard
|
|
21
41
|
* and merge-back loop scan for this kind to surface schema drift to humans.
|
|
@@ -57,6 +77,8 @@ export interface CheckVerifyDeliveriesDeps {
|
|
|
57
77
|
fetchEffectiveWorkflow?: typeof fetchEffectiveWorkflow;
|
|
58
78
|
updateDeliveryStatus?: typeof updateDeliveryStatus;
|
|
59
79
|
updateIssueStatus?: typeof updateIssueStatus;
|
|
80
|
+
/** The gate seams the in-flight wait reads; defaults to the production seams. */
|
|
81
|
+
gate?: Partial<CommitGateSeams>;
|
|
60
82
|
}
|
|
61
83
|
export declare function checkVerifyDeliveriesForOpenIssues(config: DaemonConfig, deps?: CheckVerifyDeliveriesDeps): Promise<void>;
|
|
62
84
|
//# sourceMappingURL=verify-open-issues.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-open-issues.d.ts","sourceRoot":"","sources":["../../src/focus/verify-open-issues.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-open-issues.d.ts","sourceRoot":"","sources":["../../src/focus/verify-open-issues.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAwE5F;;;GAGG;AACH,eAAO,MAAM,yBAAyB,yBAAyB,CAAC;AAsChE;;GAEG;AACH,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D;AAED;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAElF;AAwID;;;;;;;;;;GAUG;AACH;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,CAAC,EAAE,OAAO,uBAAuB,CAAC;IAClD,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3C,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IAC7C,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACvD,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACnD,iBAAiB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IAC7C,iFAAiF;IACjF,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;CACjC;AAED,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,YAAY,EACpB,IAAI,GAAE,yBAA8B,GACnC,OAAO,CAAC,IAAI,CAAC,CAqKf"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/focus/delivery-state-machine-listener-characterization.test.ts,
|
|
3
3
|
// packages/daemon/src/focus/listener-auto-advance-bounded-retry.test.ts,
|
|
4
|
-
// packages/daemon/src/focus/listener-
|
|
4
|
+
// packages/daemon/src/focus/listener-product-poll.test.ts,
|
|
5
|
+
// packages/daemon/src/focus/listener-review-window-suppression.test.ts,
|
|
6
|
+
// packages/daemon/src/focus/verify-routing-passes.test.ts,
|
|
7
|
+
// packages/daemon/src/integration/focus-commit-verdict-scenario.test.ts,
|
|
8
|
+
// packages/daemon/src/integration/review-rework-resume-verdict.test.ts
|
|
5
9
|
// PINNED-BY-END
|
|
6
10
|
import { updateDeliveryStatus } from '../queries/deliveries.js';
|
|
7
11
|
import { getActiveFocuses } from '../queries/focus-discovery.js';
|
|
@@ -13,6 +17,8 @@ import { autoCloseContextGroups } from '../delivery/delivery-close-actions.js';
|
|
|
13
17
|
import { resolveReconciledWrite } from '../delivery/delivery-reconciler-apply.js';
|
|
14
18
|
import { getDeliveryIssues, updateIssueStatus } from '../queries/issues.js';
|
|
15
19
|
import { createEscalation as defaultCreateEscalation } from '../queries/escalations.js';
|
|
20
|
+
import { commitGateSeams } from '../verify/commit-gate-configured.js';
|
|
21
|
+
import { awaitsInFlightGateRun, openWorkReworkGateState, readJudgedCommit } from '../completion/review-exit-verdict-gate.js';
|
|
16
22
|
import { createLogger } from '../shell/log.js';
|
|
17
23
|
const log = createLogger({ module: 'listener' });
|
|
18
24
|
/**
|
|
@@ -85,6 +91,106 @@ export function __resetSchemaViolationStateForTests() {
|
|
|
85
91
|
export function __getSchemaViolationAttemptsForTests() {
|
|
86
92
|
return violationAttempts;
|
|
87
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* File the terminal schema_drift_blocked escalation once the bounded retry cap is
|
|
96
|
+
* hit. Best-effort: a failed filing is logged, never thrown.
|
|
97
|
+
*/
|
|
98
|
+
async function fileSchemaDriftBlocked(createEscalation, config, focus, delivery, schemaErr, attempts, err) {
|
|
99
|
+
log.error(`[listener] Schema drift blocked (${schemaErr.cause}): ${schemaErr.constraintName ?? '<unknown>'} ` +
|
|
100
|
+
`rejects ${schemaErr.rejectedValue ?? '<null>'} after ${attempts} attempts on delivery "${delivery.name}". ` +
|
|
101
|
+
`Filing escalation.`);
|
|
102
|
+
const description = schemaErr.cause === 'read_only_mode'
|
|
103
|
+
? `Schema drift: daemon is in read-only mode (schema-version gate fired in warn ` +
|
|
104
|
+
`mode) so action '${schemaErr.rejectedValue}' is blocked after ${attempts} attempts.\n\n` +
|
|
105
|
+
`**Delivery:** ${delivery.name} (${delivery.id})\n` +
|
|
106
|
+
`**Focus:** ${focus.focusName} (${focus.focusId})\n` +
|
|
107
|
+
`**Last error:** ${err.message}`
|
|
108
|
+
: `Schema drift: CHECK constraint ${schemaErr.constraintName ?? '<unknown>'} ` +
|
|
109
|
+
`rejects value ${schemaErr.rejectedValue ?? '<null>'} after ${attempts} attempts.\n\n` +
|
|
110
|
+
`**Delivery:** ${delivery.name} (${delivery.id})\n` +
|
|
111
|
+
`**Focus:** ${focus.focusName} (${focus.focusId})\n` +
|
|
112
|
+
`**Last error:** ${err.message}`;
|
|
113
|
+
const whatWasTried = schemaErr.cause === 'read_only_mode'
|
|
114
|
+
? `Listener attempted verify_failed transition ${attempts} times; each was ` +
|
|
115
|
+
`blocked by the read-only gate before the network call.`
|
|
116
|
+
: `Listener attempted verify_failed transition ${attempts} times; each was ` +
|
|
117
|
+
`rejected by the same CHECK constraint.`;
|
|
118
|
+
const helpNeeded = schemaErr.cause === 'read_only_mode'
|
|
119
|
+
? `Apply the missing migrations the daemon expects (see schema-gate log line ` +
|
|
120
|
+
`at startup) and restart the daemon, OR set TELORA_SCHEMA_GATE=off to bypass ` +
|
|
121
|
+
`the gate if you know the missing migrations are intentional.`
|
|
122
|
+
: `Confirm the production DB schema includes the migration that teaches ` +
|
|
123
|
+
`the CHECK constraint to accept '${schemaErr.rejectedValue ?? '<null>'}'. ` +
|
|
124
|
+
`If the schema is correct, the daemon source may be writing a stale value.`;
|
|
125
|
+
try {
|
|
126
|
+
await createEscalation({
|
|
127
|
+
organizationId: config.organizationId,
|
|
128
|
+
sessionId: '',
|
|
129
|
+
issueId: null,
|
|
130
|
+
reasonType: ESCALATION_REASON_ERROR_ENCOUNTERED,
|
|
131
|
+
disposition: ESCALATION_DISPOSITION_NEEDS_OPERATOR,
|
|
132
|
+
humanAct: schemaDriftHumanAct(schemaErr),
|
|
133
|
+
anchor: { deliveryId: delivery.id, focusId: focus.focusId },
|
|
134
|
+
description,
|
|
135
|
+
whatWasTried,
|
|
136
|
+
helpNeeded,
|
|
137
|
+
escalationKind: SCHEMA_DRIFT_BLOCKED_KIND,
|
|
138
|
+
// Evidence/payload only -- provenance lives on the columns
|
|
139
|
+
// via the anchor.
|
|
140
|
+
metadata: {
|
|
141
|
+
cause: schemaErr.cause,
|
|
142
|
+
constraintName: schemaErr.constraintName,
|
|
143
|
+
rejectedValue: schemaErr.rejectedValue,
|
|
144
|
+
deliveryName: delivery.name,
|
|
145
|
+
attempts,
|
|
146
|
+
lastAttemptAt: new Date().toISOString(),
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
catch (escErr) {
|
|
151
|
+
log.warn(`[listener] Failed to file schema_drift_blocked escalation for "${delivery.name}":`, escErr.message);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/** `${deliveryId}@${sha}` gate waits already logged (one line per wait, not one per poll). */
|
|
155
|
+
const loggedGateWaits = new Set();
|
|
156
|
+
/**
|
|
157
|
+
* Whether a verify delivery carrying open work waits for a gate run that judges
|
|
158
|
+
* `sha` (the focus commit) instead of routing to verify_failed this poll (see the
|
|
159
|
+
* module header). Logs a wait once.
|
|
160
|
+
*/
|
|
161
|
+
async function waitsOnInFlightGateRun(gate, config, focus, delivery, sha) {
|
|
162
|
+
const waits = await awaitsInFlightGateRun(gate, {
|
|
163
|
+
productId: config.productId,
|
|
164
|
+
focusId: focus.focusId,
|
|
165
|
+
focusReadOnly: focus.readOnly,
|
|
166
|
+
deliveryId: delivery.id,
|
|
167
|
+
injectionId: delivery.injectionId ?? null,
|
|
168
|
+
gateState: delivery.gateState,
|
|
169
|
+
}, sha);
|
|
170
|
+
const key = `${delivery.id}@${sha ?? ''}`;
|
|
171
|
+
if (!waits) {
|
|
172
|
+
loggedGateWaits.delete(key);
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
if (!loggedGateWaits.has(key)) {
|
|
176
|
+
loggedGateWaits.add(key);
|
|
177
|
+
log.info(`[listener] Delivery "${delivery.name}" left in verify despite open work: a gate run that judges ` +
|
|
178
|
+
`${sha ? sha.slice(0, 12) : 'the focus commit'} is still selected or in flight -- its verdict is read before the ` +
|
|
179
|
+
`verify_failed route; re-checked every poll`);
|
|
180
|
+
}
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Write the verify -> verify_failed route for a verify delivery carrying open
|
|
185
|
+
* work. The commit the in-flight wait read is stamped as the judged commit, with
|
|
186
|
+
* the delivery's own-gate verdict beside it, and rides the status write over the
|
|
187
|
+
* gate_state as it stands (see the module header). Throws what the stamp read or
|
|
188
|
+
* the write throws, so the caller's schema-drift guard classifies it.
|
|
189
|
+
*/
|
|
190
|
+
async function writeVerifyFailedRoute(write, gate, config, focus, delivery, route, judgedSha) {
|
|
191
|
+
const gateState = await openWorkReworkGateState(gate, { productId: config.productId, focusId: focus.focusId }, { read_only: focus.readOnly }, delivery, judgedSha);
|
|
192
|
+
await write(delivery.id, route.target, route.stageId, gateState, undefined, { organizationId: config.organizationId, fromStatus: 'verify' });
|
|
193
|
+
}
|
|
88
194
|
export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
89
195
|
const createEscalation = deps.createEscalation ?? defaultCreateEscalation;
|
|
90
196
|
const _getActiveFocuses = deps.getActiveFocuses ?? getActiveFocuses;
|
|
@@ -93,6 +199,7 @@ export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
|
93
199
|
const _fetchEffectiveWorkflow = deps.fetchEffectiveWorkflow ?? fetchEffectiveWorkflow;
|
|
94
200
|
const _updateDeliveryStatus = deps.updateDeliveryStatus ?? updateDeliveryStatus;
|
|
95
201
|
const _updateIssueStatus = deps.updateIssueStatus ?? updateIssueStatus;
|
|
202
|
+
const gate = deps.gate ?? commitGateSeams;
|
|
96
203
|
const activeTeams = (deps.getActiveTeams ?? getActiveTeams)();
|
|
97
204
|
if (activeTeams.size === 0)
|
|
98
205
|
return;
|
|
@@ -107,11 +214,15 @@ export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
|
107
214
|
// per-focus (keyed on that focus's review_requested_at), NOT global: deliveries
|
|
108
215
|
// of OTHER focuses with no open window still route promptly in this same tick.
|
|
109
216
|
const reviewWindowFocusIds = new Set();
|
|
217
|
+
// Read-only focuses run no gate, so the in-flight wait never applies to them.
|
|
218
|
+
const readOnlyFocusIds = new Set();
|
|
110
219
|
try {
|
|
111
220
|
const focuses = await _getActiveFocuses(config.organizationId, config.productId);
|
|
112
221
|
for (const f of focuses) {
|
|
113
222
|
if (f.review_requested_at)
|
|
114
223
|
reviewWindowFocusIds.add(f.focus_id);
|
|
224
|
+
if (f.read_only === true)
|
|
225
|
+
readOnlyFocusIds.add(f.focus_id);
|
|
115
226
|
}
|
|
116
227
|
}
|
|
117
228
|
catch (err) {
|
|
@@ -152,6 +263,10 @@ export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
|
152
263
|
await autoCloseContextGroups(contextGroups, _updateIssueStatus, log);
|
|
153
264
|
continue;
|
|
154
265
|
}
|
|
266
|
+
// A gate run for the focus commit still pending with no verdict: its verdict is read first (module header).
|
|
267
|
+
const judgedSha = readJudgedCommit(gate, focusId);
|
|
268
|
+
if (await waitsOnInFlightGateRun(gate, config, { focusId, readOnly: readOnlyFocusIds.has(focusId) }, delivery, judgedSha))
|
|
269
|
+
continue;
|
|
155
270
|
// Route verify -> verify_failed through the single-writer reconciler.
|
|
156
271
|
// Open work on a verify delivery is the trigger; the reconciler agrees
|
|
157
272
|
// (verify + open work -> verify_failed) ahead of any review signal.
|
|
@@ -166,9 +281,8 @@ export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
|
166
281
|
},
|
|
167
282
|
});
|
|
168
283
|
const awaitingVerifyStage = workflow.stages.find(s => s.name === decision.target);
|
|
169
|
-
const verifyFailedTransition = { organizationId: config.organizationId, fromStatus: 'verify' };
|
|
170
284
|
try {
|
|
171
|
-
await _updateDeliveryStatus(delivery
|
|
285
|
+
await writeVerifyFailedRoute(_updateDeliveryStatus, gate, config, { focusId, readOnly: readOnlyFocusIds.has(focusId) }, delivery, { target: decision.target, stageId: awaitingVerifyStage?.id }, judgedSha);
|
|
172
286
|
// Successful update -- evict any prior violation counters
|
|
173
287
|
// for this delivery so transient earlier violations do not
|
|
174
288
|
// accumulate across distinct (constraint, value) windows.
|
|
@@ -200,60 +314,7 @@ export async function checkVerifyDeliveriesForOpenIssues(config, deps = {}) {
|
|
|
200
314
|
`attempt ${attempts}/${SCHEMA_VIOLATION_RETRY_CAP}, will retry next poll`);
|
|
201
315
|
}
|
|
202
316
|
else {
|
|
203
|
-
|
|
204
|
-
`rejects ${schemaErr.rejectedValue ?? '<null>'} after ${attempts} attempts on delivery "${delivery.name}". ` +
|
|
205
|
-
`Filing escalation.`);
|
|
206
|
-
const description = schemaErr.cause === 'read_only_mode'
|
|
207
|
-
? `Schema drift: daemon is in read-only mode (schema-version gate fired in warn ` +
|
|
208
|
-
`mode) so action '${schemaErr.rejectedValue}' is blocked after ${attempts} attempts.\n\n` +
|
|
209
|
-
`**Delivery:** ${delivery.name} (${delivery.id})\n` +
|
|
210
|
-
`**Focus:** ${team.focusName} (${focusId})\n` +
|
|
211
|
-
`**Last error:** ${err.message}`
|
|
212
|
-
: `Schema drift: CHECK constraint ${schemaErr.constraintName ?? '<unknown>'} ` +
|
|
213
|
-
`rejects value ${schemaErr.rejectedValue ?? '<null>'} after ${attempts} attempts.\n\n` +
|
|
214
|
-
`**Delivery:** ${delivery.name} (${delivery.id})\n` +
|
|
215
|
-
`**Focus:** ${team.focusName} (${focusId})\n` +
|
|
216
|
-
`**Last error:** ${err.message}`;
|
|
217
|
-
const whatWasTried = schemaErr.cause === 'read_only_mode'
|
|
218
|
-
? `Listener attempted verify_failed transition ${attempts} times; each was ` +
|
|
219
|
-
`blocked by the read-only gate before the network call.`
|
|
220
|
-
: `Listener attempted verify_failed transition ${attempts} times; each was ` +
|
|
221
|
-
`rejected by the same CHECK constraint.`;
|
|
222
|
-
const helpNeeded = schemaErr.cause === 'read_only_mode'
|
|
223
|
-
? `Apply the missing migrations the daemon expects (see schema-gate log line ` +
|
|
224
|
-
`at startup) and restart the daemon, OR set TELORA_SCHEMA_GATE=off to bypass ` +
|
|
225
|
-
`the gate if you know the missing migrations are intentional.`
|
|
226
|
-
: `Confirm the production DB schema includes the migration that teaches ` +
|
|
227
|
-
`the CHECK constraint to accept '${schemaErr.rejectedValue ?? '<null>'}'. ` +
|
|
228
|
-
`If the schema is correct, the daemon source may be writing a stale value.`;
|
|
229
|
-
try {
|
|
230
|
-
await createEscalation({
|
|
231
|
-
organizationId: config.organizationId,
|
|
232
|
-
sessionId: '',
|
|
233
|
-
issueId: null,
|
|
234
|
-
reasonType: ESCALATION_REASON_ERROR_ENCOUNTERED,
|
|
235
|
-
disposition: ESCALATION_DISPOSITION_NEEDS_OPERATOR,
|
|
236
|
-
humanAct: schemaDriftHumanAct(schemaErr),
|
|
237
|
-
anchor: { deliveryId: delivery.id, focusId },
|
|
238
|
-
description,
|
|
239
|
-
whatWasTried,
|
|
240
|
-
helpNeeded,
|
|
241
|
-
escalationKind: SCHEMA_DRIFT_BLOCKED_KIND,
|
|
242
|
-
// Evidence/payload only -- provenance lives on the columns
|
|
243
|
-
// via the anchor.
|
|
244
|
-
metadata: {
|
|
245
|
-
cause: schemaErr.cause,
|
|
246
|
-
constraintName: schemaErr.constraintName,
|
|
247
|
-
rejectedValue: schemaErr.rejectedValue,
|
|
248
|
-
deliveryName: delivery.name,
|
|
249
|
-
attempts,
|
|
250
|
-
lastAttemptAt: new Date().toISOString(),
|
|
251
|
-
},
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
catch (escErr) {
|
|
255
|
-
log.warn(`[listener] Failed to file schema_drift_blocked escalation for "${delivery.name}":`, escErr.message);
|
|
256
|
-
}
|
|
317
|
+
await fileSchemaDriftBlocked(createEscalation, config, { focusId, focusName: team.focusName }, delivery, schemaErr, attempts, err);
|
|
257
318
|
// Evict so a later schema fix can heal cleanly without manual reset.
|
|
258
319
|
violationAttempts.delete(key);
|
|
259
320
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-open-issues.js","sourceRoot":"","sources":["../../src/focus/verify-open-issues.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verify-open-issues.js","sourceRoot":"","sources":["../../src/focus/verify-open-issues.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The verify-routing phase of the focus poll: the per-product passes that route
|
|
3
|
+
* verify deliveries between team exits, in this order --
|
|
4
|
+
* 1. checkVerifyDeliveriesForOpenIssues: open work filed on a verify delivery
|
|
5
|
+
* whose focus has no review window open -> verify_failed, after the same
|
|
6
|
+
* in-flight gate wait the review exit applies;
|
|
7
|
+
* 2. releaseCommitVerdictHolds: a review exit held on its commit's gate verdict
|
|
8
|
+
* is replayed once that verdict lands (held re-work: once the run is over),
|
|
9
|
+
* or its held evidence is dropped when HEAD moved.
|
|
10
|
+
*
|
|
11
|
+
* The release pass is the ONLY production path that routes a held review exit: if
|
|
12
|
+
* it stops running, every commit-verdict hold waits until its overdue observation
|
|
13
|
+
* and the verdict it waited for routes nothing. It runs AFTER the open-work pass
|
|
14
|
+
* in the same phase, so a poll that finds a verdict landed routes the held
|
|
15
|
+
* delivery before the next poll's spawn / cascade passes read it. So the phase is
|
|
16
|
+
* one function with injectable passes, pinned by verify-routing-passes.test.ts, and
|
|
17
|
+
* focus/listener.ts runs it once per product per poll. Both passes are best-effort
|
|
18
|
+
* and never throw.
|
|
19
|
+
*
|
|
20
|
+
* @module focus/verify-routing-passes
|
|
21
|
+
*/
|
|
22
|
+
import type { DaemonConfig } from '../types/index.js';
|
|
23
|
+
/** The passes the phase runs, in order. */
|
|
24
|
+
export interface VerifyRoutingPasses {
|
|
25
|
+
checkVerifyDeliveriesForOpenIssues: (config: DaemonConfig) => Promise<void>;
|
|
26
|
+
releaseCommitVerdictHolds: (config: DaemonConfig) => Promise<unknown>;
|
|
27
|
+
}
|
|
28
|
+
/** The production passes: the real modules, unwrapped. */
|
|
29
|
+
export declare const productionVerifyRoutingPasses: VerifyRoutingPasses;
|
|
30
|
+
/** Run the verify-routing phase for one product-scoped config. */
|
|
31
|
+
export declare function runVerifyRoutingPasses(config: DaemonConfig, passes?: VerifyRoutingPasses): Promise<void>;
|
|
32
|
+
//# sourceMappingURL=verify-routing-passes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-routing-passes.d.ts","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,kCAAkC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACvE;AAED,0DAA0D;AAC1D,eAAO,MAAM,6BAA6B,EAAE,mBAG3C,CAAC;AAEF,kEAAkE;AAClE,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,MAAM,GAAE,mBAAmD,GAC1D,OAAO,CAAC,IAAI,CAAC,CAGf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/focus/listener-product-poll.test.ts,
|
|
3
|
+
// packages/daemon/src/focus/verify-routing-passes.test.ts,
|
|
4
|
+
// packages/daemon/src/integration/focus-commit-verdict-scenario.test.ts
|
|
5
|
+
// PINNED-BY-END
|
|
6
|
+
import { checkVerifyDeliveriesForOpenIssues } from './verify-open-issues.js';
|
|
7
|
+
import { releaseCommitVerdictHolds } from '../completion/commit-verdict-release.js';
|
|
8
|
+
/** The production passes: the real modules, unwrapped. */
|
|
9
|
+
export const productionVerifyRoutingPasses = {
|
|
10
|
+
checkVerifyDeliveriesForOpenIssues,
|
|
11
|
+
releaseCommitVerdictHolds,
|
|
12
|
+
};
|
|
13
|
+
/** Run the verify-routing phase for one product-scoped config. */
|
|
14
|
+
export async function runVerifyRoutingPasses(config, passes = productionVerifyRoutingPasses) {
|
|
15
|
+
await passes.checkVerifyDeliveriesForOpenIssues(config);
|
|
16
|
+
await passes.releaseCommitVerdictHolds(config);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=verify-routing-passes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-routing-passes.js","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,sEAAsE;AACtE,6DAA6D;AAC7D,0EAA0E;AAC1E,gBAAgB;AAyBhB,OAAO,EAAE,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAQpF,0DAA0D;AAC1D,MAAM,CAAC,MAAM,6BAA6B,GAAwB;IAChE,kCAAkC;IAClC,yBAAyB;CAC1B,CAAC;AAEF,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,SAA8B,6BAA6B;IAE3D,MAAM,MAAM,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
|
package/dist/git/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/git/index.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
package/dist/git/index.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by: packages/daemon/src/
|
|
3
|
-
// packages/daemon/src/
|
|
4
|
-
// packages/daemon/src/git/
|
|
5
|
-
// packages/daemon/src/git/
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/mid-flight-merge-gate.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/teardown-merge-gate.test.ts,
|
|
4
|
+
// packages/daemon/src/git/genesis-aurora-shell-smoke.test.ts, packages/daemon/src/git/git-fetch.test.ts,
|
|
5
|
+
// packages/daemon/src/git/git-genesis.test.ts, packages/daemon/src/git/git-state-detector.test.ts,
|
|
6
|
+
// packages/daemon/src/git/git-utils-output.test.ts, packages/daemon/src/git/merge-back.test.ts,
|
|
7
|
+
// packages/daemon/src/git/merge-confirm-clean-refusal.test.ts,
|
|
6
8
|
// packages/daemon/src/git/merge-integration-to-main.test.ts,
|
|
7
9
|
// packages/daemon/src/git/merge-worktree-recovery.test.ts, packages/daemon/src/git/squash-merge.test.ts,
|
|
8
|
-
// packages/daemon/src/
|
|
10
|
+
// packages/daemon/src/merge/resolved-conflict-merge-gate.test.ts,
|
|
11
|
+
// packages/daemon/src/queries/git-activity.test.ts,
|
|
12
|
+
// packages/daemon/src/worktree/safe-remove-merge-gate.test.ts
|
|
9
13
|
// PINNED-BY-END
|
|
10
14
|
/**
|
|
11
15
|
* Git subsystem barrel.
|