@telora/daemon 0.22.97 → 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/cli/verify-setup-config.d.ts +4 -3
- package/dist/cli/verify-setup-config.d.ts.map +1 -1
- package/dist/cli/verify-setup-config.js.map +1 -1
- 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/exec.d.ts.map +1 -1
- package/dist/git/exec.js +2 -1
- package/dist/git/exec.js.map +1 -1
- 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 +159 -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 +15 -0
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +1 -14
- 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/config.d.ts.map +1 -1
- package/dist/shell/config.js +10 -9
- package/dist/shell/config.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-status.d.ts +6 -0
- package/dist/shell/unified-shell-status.d.ts.map +1 -1
- package/dist/shell/unified-shell-status.js +9 -2
- package/dist/shell/unified-shell-status.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/config.d.ts +9 -6
- package/dist/types/config.d.ts.map +1 -1
- 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 +117 -28
- package/dist/verify/verification-baseline.d.ts.map +1 -1
- package/dist/verify/verification-baseline.js +147 -120
- package/dist/verify/verification-baseline.js.map +1 -1
- package/dist/verify/verification-checkout.d.ts +32 -6
- package/dist/verify/verification-checkout.d.ts.map +1 -1
- package/dist/verify/verification-checkout.js +132 -8
- 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 +76 -0
- package/dist/verify/verification-config.d.ts.map +1 -1
- package/dist/verify/verification-config.js +112 -14
- package/dist/verify/verification-config.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +102 -19
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-default-on.js +307 -38
- 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 +50 -43
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +86 -7
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +56 -2
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js +44 -25
- 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 +118 -102
- 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 +19 -5
- 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 +3 -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/verify/verification-timeout-fault.d.ts +147 -0
- package/dist/verify/verification-timeout-fault.d.ts.map +1 -0
- package/dist/verify/verification-timeout-fault.js +211 -0
- package/dist/verify/verification-timeout-fault.js.map +1 -0
- package/dist/verify/verify-gate-stall.d.ts +5 -1
- package/dist/verify/verify-gate-stall.d.ts.map +1 -1
- package/dist/verify/verify-gate-stall.js +10 -1
- package/dist/verify/verify-gate-stall.js.map +1 -1
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-baseline.d.ts","sourceRoot":"","sources":["../../src/verify/verification-baseline.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verification-baseline.d.ts","sourceRoot":"","sources":["../../src/verify/verification-baseline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,30 +1,37 @@
|
|
|
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/
|
|
2
|
+
// Pinned by: packages/daemon/src/integration/focus-commit-verdict-scenario.test.ts,
|
|
3
|
+
// packages/daemon/src/verify/verification-attribution.test.ts,
|
|
4
|
+
// packages/daemon/src/verify/verification-baseline-run.test.ts,
|
|
5
|
+
// packages/daemon/src/verify/verification-baseline.test.ts
|
|
3
6
|
// PINNED-BY-END
|
|
4
7
|
/**
|
|
5
8
|
* Baseline-diff attribution keyed by the focus-base SHA.
|
|
6
9
|
*
|
|
7
10
|
* Replaces per-delivery LLM failure attribution with an exact mechanical diff:
|
|
8
|
-
*
|
|
9
|
-
* the focus branch and integration), cache the parsed failing-test set
|
|
10
|
-
* (product, base SHA), then classify each delivery-HEAD
|
|
11
|
-
* not baseline -> gates) or PRE-EXISTING (in both ->
|
|
12
|
-
* The differential gate then measures only the delta
|
|
11
|
+
* measure the verification command ONCE against the focus base (the merge-base of
|
|
12
|
+
* the focus branch and integration), cache the parsed failing-test set and stage
|
|
13
|
+
* outcomes per (product, base SHA, gate), then classify each delivery-HEAD
|
|
14
|
+
* failure as NEW (in HEAD not baseline -> gates) or PRE-EXISTING (in both ->
|
|
15
|
+
* recorded, non-blocking). The differential gate then measures only the delta
|
|
16
|
+
* the focus introduced.
|
|
13
17
|
*
|
|
14
|
-
* Correctness note: the HEAD run
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
+
* Correctness note: the HEAD run executes in a detached checkout of the focus
|
|
19
|
+
* HEAD, and the baseline in a detached checkout of the merge-base made off the
|
|
20
|
+
* same provisioned focus worktree (verify/verification-baseline-run.ts) --
|
|
21
|
+
* otherwise the two sides are not comparable. A base that cannot be measured
|
|
22
|
+
* this tick is evidence-unavailable, never a verdict and never cached.
|
|
18
23
|
*
|
|
19
24
|
* @module verification-baseline
|
|
20
25
|
*/
|
|
21
|
-
import {
|
|
22
|
-
import { mkdirSync, readFileSync, writeFileSync, existsSync
|
|
26
|
+
import { createHash } from 'node:crypto';
|
|
27
|
+
import { mkdirSync, readFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
23
28
|
import { resolve } from 'node:path';
|
|
24
29
|
import { resolveGlobalStateDir } from '../shell/daemon-process.js';
|
|
25
30
|
import { parseFailingTests } from './verification-failure-parser.js';
|
|
31
|
+
import { parseGateRunStages } from './verification-gate-stages.js';
|
|
32
|
+
import { diagnosticSignatures, logCwdRoots } from './verification-diagnostics.js';
|
|
33
|
+
import { buildDefaultOpenBaseline, isBaselineUnavailable, measureBaseline, readBaseStages, } from './verification-baseline-run.js';
|
|
26
34
|
import { runGitSync } from '../git/exec.js';
|
|
27
|
-
import { configForProduct } from '../shell/config.js';
|
|
28
35
|
import { getFocusWorktree } from '../focus/focus-worktree-state.js';
|
|
29
36
|
import { createLogger } from '../shell/log.js';
|
|
30
37
|
const log = createLogger({ module: 'verification' });
|
|
@@ -51,60 +58,93 @@ export function classifyFailures(headFailing, baselineFailing) {
|
|
|
51
58
|
}
|
|
52
59
|
return { newFailures: newFailures.sort(), preExisting: preExisting.sort() };
|
|
53
60
|
}
|
|
54
|
-
// ---------------------------------------------------------------------------
|
|
55
|
-
// SHA-keyed baseline cache (under the global state dir)
|
|
56
|
-
// ---------------------------------------------------------------------------
|
|
57
61
|
function baselineCacheDir() {
|
|
58
62
|
return resolve(resolveGlobalStateDir(), 'verification-baseline');
|
|
59
63
|
}
|
|
60
|
-
/**
|
|
61
|
-
|
|
64
|
+
/** Short, filename-safe fingerprint of a gate. */
|
|
65
|
+
function gateFingerprint(gate) {
|
|
66
|
+
return createHash('sha256').update(JSON.stringify([gate.command, gate.timeoutMs])).digest('hex').slice(0, 16);
|
|
67
|
+
}
|
|
68
|
+
/** Cache file path for a (product, base SHA, gate). Exported for tests. */
|
|
69
|
+
export function baselineCachePath(productId, baseSha, gate) {
|
|
62
70
|
// Sanitize: productId is a uuid and baseSha a hex sha, both filename-safe, but
|
|
63
71
|
// guard against separators defensively.
|
|
64
|
-
const safe = `${productId}-${baseSha}`.replace(/[^a-zA-Z0-9._-]/g, '_');
|
|
72
|
+
const safe = `${productId}-${baseSha}-${gateFingerprint(gate)}`.replace(/[^a-zA-Z0-9._-]/g, '_');
|
|
65
73
|
return resolve(baselineCacheDir(), `${safe}.json`);
|
|
66
74
|
}
|
|
67
|
-
/**
|
|
68
|
-
|
|
69
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Read the cached baseline record, or null on miss / unreadable. The file records
|
|
77
|
+
* the gate it was run with and is re-checked against the one asked for, so an
|
|
78
|
+
* entry only ever answers for its own gate. An entry of an older format (no
|
|
79
|
+
* `stages` key, or stages recorded as a single red with no diagnostic signatures)
|
|
80
|
+
* is a MISS: it cannot answer which diagnostics each red carried, nor any red
|
|
81
|
+
* after the first, so the base is measured once more and the entry is rewritten.
|
|
82
|
+
*/
|
|
83
|
+
export function readBaselineCache(productId, baseSha, gate) {
|
|
84
|
+
const path = baselineCachePath(productId, baseSha, gate);
|
|
70
85
|
if (!existsSync(path))
|
|
71
86
|
return null;
|
|
72
87
|
try {
|
|
73
88
|
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
74
|
-
if (
|
|
89
|
+
if (parsed.command !== gate.command || parsed.timeoutMs !== gate.timeoutMs)
|
|
75
90
|
return null;
|
|
76
|
-
|
|
91
|
+
if (!Array.isArray(parsed.failingTests) || !('stages' in parsed))
|
|
92
|
+
return null;
|
|
93
|
+
const stages = readBaseStages(parsed.stages);
|
|
94
|
+
if (stages === undefined)
|
|
95
|
+
return null;
|
|
96
|
+
return { failingTests: parsed.failingTests.filter((t) => typeof t === 'string'), stages };
|
|
77
97
|
}
|
|
78
98
|
catch {
|
|
79
99
|
return null;
|
|
80
100
|
}
|
|
81
101
|
}
|
|
82
|
-
/** Write the baseline
|
|
83
|
-
export function writeBaselineCache(productId, baseSha,
|
|
102
|
+
/** Write the baseline record for a (product, base SHA, gate). Best-effort. */
|
|
103
|
+
export function writeBaselineCache(productId, baseSha, gate, record) {
|
|
84
104
|
try {
|
|
85
105
|
mkdirSync(baselineCacheDir(), { recursive: true });
|
|
86
|
-
writeFileSync(baselineCachePath(productId, baseSha), JSON.stringify({ productId, baseSha, failingTests }, null, 2), { mode: 0o600 });
|
|
106
|
+
writeFileSync(baselineCachePath(productId, baseSha, gate), JSON.stringify({ productId, baseSha, command: gate.command, timeoutMs: gate.timeoutMs, failingTests: record.failingTests, stages: record.stages }, null, 2), { mode: 0o600 });
|
|
87
107
|
}
|
|
88
108
|
catch (err) {
|
|
89
109
|
log.warn(`failed to write baseline cache for ${productId}@${baseSha.slice(0, 8)}:`, err.message);
|
|
90
110
|
}
|
|
91
111
|
}
|
|
92
112
|
/**
|
|
93
|
-
* Resolve the baseline
|
|
94
|
-
* short-circuits (an unchanged SHA
|
|
95
|
-
*
|
|
113
|
+
* Resolve the baseline record for a (product, base SHA, gate): a cache hit
|
|
114
|
+
* short-circuits (an unchanged SHA under an unchanged gate is never measured
|
|
115
|
+
* again); a miss opens ONE base checkout, measures the gate and every red past
|
|
116
|
+
* the first in it (verify/verification-baseline-run.ts), and caches the record.
|
|
117
|
+
* A base that could not be measured -- no checkout, a run that threw, an install
|
|
118
|
+
* that moved its dependencies mid-run, or a checkout refused because the focus
|
|
119
|
+
* changed its dependency install inputs (`incomparable`) -- is returned as
|
|
120
|
+
* unavailable and NOT cached: another HEAD at the same base sha may leave them
|
|
121
|
+
* unchanged. `gate` must be the one the checkout runs.
|
|
96
122
|
*/
|
|
97
|
-
export async function
|
|
98
|
-
const cached = deps.readCache(productId, baseSha);
|
|
123
|
+
export async function getBaselineRecord(productId, baseSha, gate, deps) {
|
|
124
|
+
const cached = deps.readCache(productId, baseSha, gate);
|
|
99
125
|
if (cached)
|
|
100
|
-
return
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
126
|
+
return cached;
|
|
127
|
+
const checkout = await deps.openBaseline(baseSha);
|
|
128
|
+
if (isBaselineUnavailable(checkout))
|
|
129
|
+
return checkout;
|
|
130
|
+
let record;
|
|
131
|
+
try {
|
|
132
|
+
record = await measureBaseline(checkout, gate.command);
|
|
133
|
+
if (checkout.dependenciesMoved?.()) {
|
|
134
|
+
return { unavailable: 'a dependency install moved the node_modules trees the base checkout links into while it was measured' };
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
return { unavailable: `the base measurement threw: ${err.message}` };
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
checkout.dispose?.();
|
|
142
|
+
}
|
|
143
|
+
deps.writeCache(productId, baseSha, gate, record);
|
|
144
|
+
return record;
|
|
105
145
|
}
|
|
106
146
|
// ---------------------------------------------------------------------------
|
|
107
|
-
// git
|
|
147
|
+
// git helpers
|
|
108
148
|
// ---------------------------------------------------------------------------
|
|
109
149
|
/** Resolve the focus base = merge-base(integrationBranch, HEAD) in a worktree. Null on failure. */
|
|
110
150
|
export function resolveFocusBaseSha(worktreePath, integrationBranch) {
|
|
@@ -120,68 +160,12 @@ export function resolveHeadSha(worktreePath) {
|
|
|
120
160
|
return null;
|
|
121
161
|
return result.output.trim();
|
|
122
162
|
}
|
|
123
|
-
/** Spawn `sh -c command` in cwd and capture the FULL combined stdout+stderr. */
|
|
124
|
-
function runShellCapture(command, cwd, timeoutMs) {
|
|
125
|
-
return new Promise((resolvePromise) => {
|
|
126
|
-
const child = spawn('sh', ['-c', command], { cwd, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
127
|
-
let out = '';
|
|
128
|
-
child.stdout?.on('data', (c) => { out += c.toString('utf8'); });
|
|
129
|
-
child.stderr?.on('data', (c) => { out += c.toString('utf8'); });
|
|
130
|
-
const timer = setTimeout(() => { try {
|
|
131
|
-
child.kill('SIGKILL');
|
|
132
|
-
}
|
|
133
|
-
catch { /* ignore */ } }, timeoutMs);
|
|
134
|
-
child.on('error', () => { clearTimeout(timer); resolvePromise(out); });
|
|
135
|
-
child.on('close', () => { clearTimeout(timer); resolvePromise(out); });
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Default baseline runner: create a detached worktree at the base SHA off the
|
|
140
|
-
* product's main repo, run the command there, capture output, and remove the
|
|
141
|
-
* worktree. Best-effort -- on any git failure returns '' (no baseline -> the
|
|
142
|
-
* caller treats all HEAD failures as new, i.e. the pre-attribution gate).
|
|
143
|
-
*/
|
|
144
|
-
export function buildDefaultRunBaseline(config, productId, command, timeoutMs) {
|
|
145
|
-
return async (baseSha) => {
|
|
146
|
-
const product = config.products.find(p => p.id === productId);
|
|
147
|
-
const repoPath = product ? configForProduct(config, product).repoPath : config.repoPath;
|
|
148
|
-
const wtDir = resolve(resolveGlobalStateDir(), 'verification-baseline-wt');
|
|
149
|
-
const wtPath = resolve(wtDir, `${productId}-${baseSha.slice(0, 12)}`.replace(/[^a-zA-Z0-9._-]/g, '_'));
|
|
150
|
-
try {
|
|
151
|
-
mkdirSync(wtDir, { recursive: true });
|
|
152
|
-
runGitSync(['worktree', 'prune'], repoPath);
|
|
153
|
-
if (existsSync(wtPath)) {
|
|
154
|
-
runGitSync(['worktree', 'remove', '--force', wtPath], repoPath);
|
|
155
|
-
rmSync(wtPath, { recursive: true, force: true });
|
|
156
|
-
}
|
|
157
|
-
const add = runGitSync(['worktree', 'add', '--detach', wtPath, baseSha], repoPath);
|
|
158
|
-
if (!add.success) {
|
|
159
|
-
log.warn(`baseline worktree add failed at ${baseSha.slice(0, 8)}: ${add.error}`);
|
|
160
|
-
return '';
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
catch (err) {
|
|
164
|
-
log.warn(`baseline worktree setup failed:`, err.message);
|
|
165
|
-
return '';
|
|
166
|
-
}
|
|
167
|
-
try {
|
|
168
|
-
return await runShellCapture(command, wtPath, timeoutMs);
|
|
169
|
-
}
|
|
170
|
-
finally {
|
|
171
|
-
try {
|
|
172
|
-
runGitSync(['worktree', 'remove', '--force', wtPath], repoPath);
|
|
173
|
-
rmSync(wtPath, { recursive: true, force: true });
|
|
174
|
-
runGitSync(['worktree', 'prune'], repoPath);
|
|
175
|
-
}
|
|
176
|
-
catch { /* best-effort cleanup */ }
|
|
177
|
-
}
|
|
178
|
-
};
|
|
179
|
-
}
|
|
180
163
|
/**
|
|
181
164
|
* Classify a failed HEAD run against the focus base. Returns null when no
|
|
182
165
|
* baseline could be resolved (no worktree / no merge-base) -- the caller then
|
|
183
166
|
* treats all HEAD failures as new (fail-closed toward gating, the behavior
|
|
184
|
-
* before attribution existed).
|
|
167
|
+
* before attribution existed). A base that resolved but could not be measured
|
|
168
|
+
* returns a classification carrying `baseUnavailable` and nothing attributed.
|
|
185
169
|
*/
|
|
186
170
|
export async function attributeFailures(v, result, deps) {
|
|
187
171
|
const worktreePath = deps.resolveWorktreePath(v);
|
|
@@ -200,14 +184,27 @@ export async function attributeFailures(v, result, deps) {
|
|
|
200
184
|
const headSha = deps.resolveHeadSha(worktreePath);
|
|
201
185
|
if (headSha && headSha === baseSha)
|
|
202
186
|
return null;
|
|
203
|
-
const
|
|
204
|
-
const
|
|
187
|
+
const headOutput = deps.readHeadOutput(result);
|
|
188
|
+
const headFailing = parseFailingTests(headOutput);
|
|
189
|
+
const baseline = await deps.getBaseline(v.productId, baseSha, worktreePath);
|
|
190
|
+
if (isBaselineUnavailable(baseline) && !baseline.incomparable) {
|
|
191
|
+
return { newFailures: [], preExisting: [], baseUnavailable: baseline.unavailable };
|
|
192
|
+
}
|
|
193
|
+
const head = parseGateRunStages(headOutput, result.exitCode, resolveBaselineRunConfig(v, result).command);
|
|
194
|
+
const headDiagnostics = head ? diagnosticSignatures(head.failedStageOutput, logCwdRoots(headOutput)) : [];
|
|
195
|
+
if (isBaselineUnavailable(baseline)) {
|
|
196
|
+
// Incomparable: the base was never measured, so no HEAD failure or stage red is set against it.
|
|
197
|
+
const stages = { head, headDiagnostics, base: null, baseFailingTests: [] };
|
|
198
|
+
return { ...classifyFailures(headFailing, new Set()), baseIncomparable: baseline.unavailable, stages };
|
|
199
|
+
}
|
|
205
200
|
// A demotion to pre-existing only ever removes a HEAD failure that is present in
|
|
206
|
-
//
|
|
207
|
-
// the baseline run actually PARSED: an empty (blind or green)
|
|
208
|
-
// nothing and every HEAD failure gates. No blind baseline can
|
|
209
|
-
// failure into "pre-existing".
|
|
210
|
-
|
|
201
|
+
// the baseline's failing set, so it is by construction taken only against
|
|
202
|
+
// failing-test ids the baseline run actually PARSED: an empty (blind or green)
|
|
203
|
+
// baseline demotes nothing and every HEAD failure gates. No blind baseline can
|
|
204
|
+
// launder a HEAD failure into "pre-existing". The same holds for stages: a base
|
|
205
|
+
// whose log vouched for no stage outcomes (stages null) matches no HEAD stage.
|
|
206
|
+
const classification = classifyFailures(headFailing, new Set(baseline.failingTests));
|
|
207
|
+
return { ...classification, stages: { head, headDiagnostics, base: baseline.stages, baseFailingTests: baseline.failingTests } };
|
|
211
208
|
}
|
|
212
209
|
/** Default HEAD-output reader: full log file when present, else the tails. */
|
|
213
210
|
export function readHeadOutputDefault(result) {
|
|
@@ -226,30 +223,60 @@ export function readHeadOutputDefault(result) {
|
|
|
226
223
|
// Default wiring consumed by verification-engine (kept here to keep that file
|
|
227
224
|
// under the daemon 800-line limit).
|
|
228
225
|
// ---------------------------------------------------------------------------
|
|
226
|
+
/**
|
|
227
|
+
* The command + timeout the baseline run applies: the HEAD run's applied config
|
|
228
|
+
* when the result carries one, else the verification row's. Both sides of the
|
|
229
|
+
* diff must run the SAME gate. A default-on HEAD run re-resolves its command +
|
|
230
|
+
* timeout from the verified checkout's manifest at dispatch, so sizing the
|
|
231
|
+
* baseline from the tick's provisional row config would kill a baseline the
|
|
232
|
+
* branch declared a longer timeout for -- and a killed baseline attributes
|
|
233
|
+
* nothing. Pure -- exported for testing.
|
|
234
|
+
*/
|
|
235
|
+
export function resolveBaselineRunConfig(v, result) {
|
|
236
|
+
if (result.appliedConfig) {
|
|
237
|
+
return { command: result.appliedConfig.command, timeoutMs: result.appliedConfig.timeoutMs };
|
|
238
|
+
}
|
|
239
|
+
const cfg = v.verificationConfig ?? {};
|
|
240
|
+
return {
|
|
241
|
+
command: typeof cfg.command === 'string' ? cfg.command : '',
|
|
242
|
+
timeoutMs: typeof cfg.timeoutMs === 'number' && cfg.timeoutMs > 0 ? cfg.timeoutMs : DEFAULT_BASELINE_TIMEOUT_MS,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
const DEFAULT_ATTRIBUTION_SEAMS = {
|
|
246
|
+
resolveWorktreePath: (pv) => (pv.focusId ? getFocusWorktree(pv.focusId)?.worktreePath ?? null : null),
|
|
247
|
+
resolveHeadSha,
|
|
248
|
+
readCache: readBaselineCache,
|
|
249
|
+
writeCache: writeBaselineCache,
|
|
250
|
+
buildOpenBaseline: (focusWorktreePath, checkoutKey, gate) => buildDefaultOpenBaseline(focusWorktreePath, checkoutKey, gate.timeoutMs),
|
|
251
|
+
readHeadOutput: readHeadOutputDefault,
|
|
252
|
+
};
|
|
229
253
|
/**
|
|
230
254
|
* Build the default `attributeFailures` closure: reads the focus-worktree cwd,
|
|
231
|
-
* resolves the merge-base,
|
|
232
|
-
*
|
|
233
|
-
*
|
|
255
|
+
* resolves the merge-base, measures (or reuses a cached measurement of) the base
|
|
256
|
+
* at that SHA in a provisioned detached checkout -- with the command + timeout the
|
|
257
|
+
* HEAD run applied -- and classifies HEAD failures against it. Returns null when
|
|
258
|
+
* no baseline is resolvable (caller gates all failures) or when no command ran.
|
|
234
259
|
*/
|
|
235
|
-
export function buildDefaultAttributeFailures(config) {
|
|
260
|
+
export function buildDefaultAttributeFailures(config, overrides = {}) {
|
|
261
|
+
const seams = { ...DEFAULT_ATTRIBUTION_SEAMS, ...overrides };
|
|
236
262
|
return (v, result) => {
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
263
|
+
// No command ran (its config was unresolvable from the verified code): there
|
|
264
|
+
// is no HEAD output to attribute, and a baseline run would only cost a suite.
|
|
265
|
+
if (result.configUnresolved)
|
|
266
|
+
return Promise.resolve(null);
|
|
267
|
+
// One gate sizes the baseline run AND keys its cache entry, so a set cached
|
|
268
|
+
// under another command or timeout is never reused for this HEAD run.
|
|
269
|
+
const gate = resolveBaselineRunConfig(v, result);
|
|
243
270
|
return attributeFailures(v, result, {
|
|
244
|
-
resolveWorktreePath:
|
|
245
|
-
resolveHeadSha,
|
|
271
|
+
resolveWorktreePath: seams.resolveWorktreePath,
|
|
272
|
+
resolveHeadSha: seams.resolveHeadSha,
|
|
246
273
|
integrationBranch: config.integrationBranch,
|
|
247
|
-
|
|
248
|
-
readCache:
|
|
249
|
-
writeCache:
|
|
250
|
-
|
|
274
|
+
getBaseline: (productId, baseSha, worktreePath) => getBaselineRecord(productId, baseSha, gate, {
|
|
275
|
+
readCache: seams.readCache,
|
|
276
|
+
writeCache: seams.writeCache,
|
|
277
|
+
openBaseline: seams.buildOpenBaseline(worktreePath, `${v.deliveryId}-base`, gate),
|
|
251
278
|
}),
|
|
252
|
-
readHeadOutput:
|
|
279
|
+
readHeadOutput: seams.readHeadOutput,
|
|
253
280
|
});
|
|
254
281
|
};
|
|
255
282
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-baseline.js","sourceRoot":"","sources":["../../src/verify/verification-baseline.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"verification-baseline.js","sourceRoot":"","sources":["../../src/verify/verification-baseline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { PendingVerification } from '../queries/verification.js';
|
|
2
|
-
import type
|
|
2
|
+
import { type StrategyResult } from './verification-deterministic.js';
|
|
3
3
|
import type { VerificationDeps } from './verification-deps.js';
|
|
4
|
+
import { type AppliedVerificationConfig } from './verification-config.js';
|
|
5
|
+
import { type VerifyManifestReader } from './verification-manifest.js';
|
|
6
|
+
import { type WorktreeProvisioningStatus } from '../worktree/worktree-package-provisioning.js';
|
|
4
7
|
/** A detached checkout of one commit, owned by the verify that made it. */
|
|
5
8
|
export interface VerifyCheckout {
|
|
6
9
|
/** Absolute checkout path the verify command runs in. */
|
|
@@ -38,20 +41,43 @@ export declare function listMirroredDirs(focusWorktreePath: string, runGit?: Git
|
|
|
38
41
|
* when HEAD cannot be read or the checkout cannot be created.
|
|
39
42
|
*/
|
|
40
43
|
export declare function createVerifyCheckout(focusWorktreePath: string, checkoutKey: string, deps?: VerifyCheckoutDeps): VerifyCheckout | null;
|
|
44
|
+
/**
|
|
45
|
+
* A detached verify checkout of `sha` -- a commit already chosen (the one a run
|
|
46
|
+
* judged, or the focus base) -- rather than of whatever the focus worktree's HEAD
|
|
47
|
+
* is now (a team may have moved it). createVerifyCheckout takes its sha from the
|
|
48
|
+
* focus worktree's `rev-parse HEAD`; that one read is answered with `sha` and
|
|
49
|
+
* every other git call passes through, so the checkout is made and its
|
|
50
|
+
* dependencies mirrored exactly as a HEAD checkout's are. Callers still compare
|
|
51
|
+
* the returned sha to the one they asked for.
|
|
52
|
+
*/
|
|
53
|
+
export declare function createPinnedVerifyCheckout(focusWorktreePath: string, checkoutKey: string, sha: string, runGit?: GitRun): VerifyCheckout | null;
|
|
41
54
|
/** The deps slice {@link runDeterministicAtFixedCommit} reads. */
|
|
42
|
-
export type FixedCommitVerifyDeps = Pick<VerificationDeps, 'runDeterministic' | 'resolveCwd' | 'resolveVerificationCwd' | 'resolveRecordedPreMergeRef' | 'resolveRecordedCommitShas'> & {
|
|
55
|
+
export type FixedCommitVerifyDeps = Pick<VerificationDeps, 'runDeterministic' | 'resolveCwd' | 'resolveVerificationCwd' | 'resolveRecordedPreMergeRef' | 'resolveRecordedCommitShas' | 'resolveRunVerificationConfig'> & {
|
|
43
56
|
/** The focus worktree a delivery's verify judges; null when the focus has none. */
|
|
44
57
|
resolveFocusWorktreePath?: (v: PendingVerification) => string | null;
|
|
45
58
|
createVerifyCheckout?: (focusWorktreePath: string, checkoutKey: string) => VerifyCheckout | null;
|
|
59
|
+
/** Whether the focus worktree's package installs are current (kicks provisioning when not). */
|
|
60
|
+
readWorktreeProvisioning?: (focusWorktreePath: string) => WorktreeProvisioningStatus;
|
|
46
61
|
};
|
|
62
|
+
/** Resolves a default-on run's command + timeout from the code at `runPath`. */
|
|
63
|
+
export type RunVerificationConfigResolver = (v: PendingVerification, runPath: string) => AppliedVerificationConfig;
|
|
64
|
+
/**
|
|
65
|
+
* The real dispatch-time resolver (module doc): env > the candidate's operator
|
|
66
|
+
* block > the manifest at `runPath` > the repoPath manifest, a fallback that is
|
|
67
|
+
* recorded on the result and warned naming the delivery and both paths. `env` and
|
|
68
|
+
* `readManifest` are injectable so tests never touch process.env.
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildRunVerificationConfigResolver(env?: NodeJS.ProcessEnv, readManifest?: VerifyManifestReader): RunVerificationConfigResolver;
|
|
47
71
|
/**
|
|
48
72
|
* The deterministic strategy: resolve the verify boundary env, then run the
|
|
49
73
|
* configured command against a detached checkout of the focus HEAD (holding the
|
|
50
74
|
* FOCUS worktree's interlock for the judged delivery), stamping the verdict with
|
|
51
|
-
* the sha it judged
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
75
|
+
* the sha it judged and the config it applied -- for a default-on candidate,
|
|
76
|
+
* re-resolved from the checkout itself (module doc). A verdict rendered while an
|
|
77
|
+
* install moved the linked dependencies is discarded (pending, retried). A
|
|
78
|
+
* delivery with no focus worktree runs in place, as before, on the config it
|
|
79
|
+
* carries: no team works in the product repo path the fallback cwd names, and
|
|
80
|
+
* that is the path the tick resolved the config against.
|
|
55
81
|
*/
|
|
56
82
|
export declare function runDeterministicAtFixedCommit(deps: FixedCommitVerifyDeps, v: PendingVerification): Promise<StrategyResult>;
|
|
57
83
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verification-checkout.d.ts","sourceRoot":"","sources":["../../src/verify/verification-checkout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verification-checkout.d.ts","sourceRoot":"","sources":["../../src/verify/verification-checkout.ts"],"names":[],"mappings":"AA0EA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACvG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAiD,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEtH,OAAO,EAA4B,KAAK,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAMzH,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ,0FAA0F;IAC1F,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,iGAAiG;IACjG,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wEAAwE;AACxE,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpG,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B;AAOD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAE,MAAmB,GAAG,MAAM,EAAE,CASjG;AAgGD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,kBAAuB,GAC5B,cAAc,GAAG,IAAI,CAsCvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,iBAAiB,EAAE,MAAM,EACzB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,GAAE,MAAmB,GAC1B,cAAc,GAAG,IAAI,CAMvB;AAED,kEAAkE;AAClE,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,gBAAgB,EACd,kBAAkB,GAAG,YAAY,GAAG,wBAAwB,GAAG,4BAA4B,GAAG,2BAA2B,GACzH,8BAA8B,CACjC,GAAG;IACF,mFAAmF;IACnF,wBAAwB,CAAC,EAAE,CAAC,CAAC,EAAE,mBAAmB,KAAK,MAAM,GAAG,IAAI,CAAC;IACrE,oBAAoB,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,cAAc,GAAG,IAAI,CAAC;IACjG,+FAA+F;IAC/F,wBAAwB,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,0BAA0B,CAAC;CACtF,CAAC;AAKF,gFAAgF;AAChF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,KAAK,yBAAyB,CAAC;AAEnH;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAChD,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,YAAY,GAAE,oBAAyC,GACtD,6BAA6B,CAY/B;AAgDD;;;;;;;;;;GAUG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,qBAAqB,EAC3B,CAAC,EAAE,mBAAmB,GACrB,OAAO,CAAC,cAAc,CAAC,CA6DzB"}
|