@telora/daemon 0.22.104 → 0.22.132
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 +79 -33
- package/dist/verify/verification-baseline.d.ts.map +1 -1
- package/dist/verify/verification-baseline.js +99 -106
- 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 +159 -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 +14 -4
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-failure-parser.d.ts +37 -3
- package/dist/verify/verification-failure-parser.d.ts.map +1 -1
- package/dist/verify/verification-failure-parser.js +66 -3
- package/dist/verify/verification-failure-parser.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 @@
|
|
|
1
|
+
{"version":3,"file":"verification-attribution.js","sourceRoot":"","sources":["../../src/verify/verification-attribution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { type VerifyCheckout } from './verification-checkout.js';
|
|
2
|
+
import { type WorktreeProvisioningStatus } from '../worktree/worktree-package-provisioning.js';
|
|
3
|
+
/**
|
|
4
|
+
* A base run's output and how it ended. A runner that returns only the output
|
|
5
|
+
* string reports no exit status, so its stage outcomes are unknown: stage reds
|
|
6
|
+
* are then never demoted, while failing-test ids still parse.
|
|
7
|
+
*/
|
|
8
|
+
export interface BaselineRunOutput {
|
|
9
|
+
output: string;
|
|
10
|
+
exitCode: number | null;
|
|
11
|
+
timedOut: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** One red stage the base measured. */
|
|
14
|
+
export interface BaseStageRed {
|
|
15
|
+
stage: string;
|
|
16
|
+
/** The failing-test ids of the run that ended at this red. */
|
|
17
|
+
failingTests: string[];
|
|
18
|
+
/** The red's diagnostic signatures (a multiset, sorted). */
|
|
19
|
+
diagnostics: string[];
|
|
20
|
+
}
|
|
21
|
+
/** What the base did, stage by stage, across the gate run and its continuations. */
|
|
22
|
+
export interface BaseStageRecord {
|
|
23
|
+
/** Stages that ran green, in the order they finished. */
|
|
24
|
+
ran: string[];
|
|
25
|
+
/** Every red stage, in order. */
|
|
26
|
+
failed: BaseStageRed[];
|
|
27
|
+
/** Stages the base never ran: after a red the measurement could not continue past. */
|
|
28
|
+
notRun: string[];
|
|
29
|
+
}
|
|
30
|
+
/** What one base measurement recorded: its failing-test ids and its stage outcomes. */
|
|
31
|
+
export interface BaselineRecord {
|
|
32
|
+
failingTests: string[];
|
|
33
|
+
/** Null when the base gate run's log vouched for no stage outcomes (it then demotes no stage red). */
|
|
34
|
+
stages: BaseStageRecord | null;
|
|
35
|
+
}
|
|
36
|
+
/** No base evidence could be taken this time: never a verdict, never cached. */
|
|
37
|
+
export interface BaselineUnavailable {
|
|
38
|
+
unavailable: string;
|
|
39
|
+
/**
|
|
40
|
+
* Set when the base can never be measured comparably with the installs at hand
|
|
41
|
+
* (the focus changed its dependency install inputs -- module doc): retrying
|
|
42
|
+
* would refuse the same way, so nothing is demoted and every HEAD red is
|
|
43
|
+
* charged rather than deferred.
|
|
44
|
+
*/
|
|
45
|
+
incomparable?: true;
|
|
46
|
+
}
|
|
47
|
+
/** A base checkout the measurement runs commands in. */
|
|
48
|
+
export interface BaselineCheckout {
|
|
49
|
+
/** Run one command (the gate, then each continuation) in the checkout. */
|
|
50
|
+
run: (command: string) => Promise<BaselineRunOutput | string>;
|
|
51
|
+
/** The checkout's absolute path, stripped from diagnostics. */
|
|
52
|
+
path?: string;
|
|
53
|
+
/** True when an install moved the linked dependency trees since the checkout was made. */
|
|
54
|
+
dependenciesMoved?: () => boolean;
|
|
55
|
+
dispose?: () => void;
|
|
56
|
+
}
|
|
57
|
+
export type BaselineOpenResult = BaselineCheckout | BaselineUnavailable;
|
|
58
|
+
export declare const isBaselineUnavailable: (value: object) => value is BaselineUnavailable;
|
|
59
|
+
/**
|
|
60
|
+
* Measure the base in `checkout` (module doc): the gate, then a continuation after
|
|
61
|
+
* each red until the chain completes or cannot be continued. A killed gate run
|
|
62
|
+
* vouches for no stages -- the last stage it started was cut off, not failed.
|
|
63
|
+
*/
|
|
64
|
+
export declare function measureBaseline(checkout: BaselineCheckout, gateCommand: string): Promise<BaselineRecord>;
|
|
65
|
+
/**
|
|
66
|
+
* Validate a base stage record read back from a cache file: the record, null when
|
|
67
|
+
* the entry recorded that the base yielded none, or undefined when the value is
|
|
68
|
+
* not a record of this format (an old-format entry with a single `failedStage`
|
|
69
|
+
* and no diagnostics, or a corrupt one -- a cache miss).
|
|
70
|
+
*/
|
|
71
|
+
export declare function readBaseStages(value: unknown): BaseStageRecord | null | undefined;
|
|
72
|
+
/** Git result slice the parity read uses (structural over runGitSync). */
|
|
73
|
+
type GitRun = (args: string[], cwd: string) => {
|
|
74
|
+
success: boolean;
|
|
75
|
+
output: string;
|
|
76
|
+
error?: string;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Whether the focus worktree's installs stand for the base's: yes, no (naming what
|
|
80
|
+
* changed, and why each input the install-input model could not follow counts as
|
|
81
|
+
* a change), or unknown.
|
|
82
|
+
*/
|
|
83
|
+
export type DependencyParity = {
|
|
84
|
+
comparable: true;
|
|
85
|
+
} | {
|
|
86
|
+
comparable: false;
|
|
87
|
+
changed: string[];
|
|
88
|
+
unresolvable?: string[];
|
|
89
|
+
} | {
|
|
90
|
+
unreadable: string;
|
|
91
|
+
};
|
|
92
|
+
/** Reads a tracked file's content at a commit; throws when git cannot. */
|
|
93
|
+
export type CommitFileReader = (worktreePath: string, sha: string, path: string) => string;
|
|
94
|
+
/**
|
|
95
|
+
* Compare every tracked install input between `baseSha` and the focus worktree's
|
|
96
|
+
* working tree -- what its installs were provisioned from (module doc). A manifest
|
|
97
|
+
* added or removed since the base is a change; one modified on both sides is a
|
|
98
|
+
* change unless its install intent is equal (unparseable on either side is a
|
|
99
|
+
* change). Every file an install consumes is compared byte for byte, and an input
|
|
100
|
+
* the install-input model cannot follow is a change. Unreadable when git cannot
|
|
101
|
+
* list or read them.
|
|
102
|
+
*/
|
|
103
|
+
export declare function readBaseDependencyParity(focusWorktreePath: string, baseSha: string, runGit?: GitRun, readAtCommit?: CommitFileReader): DependencyParity;
|
|
104
|
+
/** Spawn `sh -c command` in cwd and capture the FULL combined stdout+stderr and how it ended. */
|
|
105
|
+
export declare function runShellCapture(command: string, cwd: string, timeoutMs: number): Promise<BaselineRunOutput>;
|
|
106
|
+
/** Seams of the default base checkout (tests inject provisioning, dependency parity and the runner). */
|
|
107
|
+
export interface BaselineCheckoutSeams {
|
|
108
|
+
readWorktreeProvisioning?: (focusWorktreePath: string) => WorktreeProvisioningStatus;
|
|
109
|
+
readDependencyParity?: (focusWorktreePath: string, baseSha: string) => DependencyParity;
|
|
110
|
+
createCheckout?: (focusWorktreePath: string, checkoutKey: string, sha: string) => VerifyCheckout | null;
|
|
111
|
+
runCommand?: (command: string, cwd: string, timeoutMs: number) => Promise<BaselineRunOutput>;
|
|
112
|
+
acquireHold?: (worktreePath: string) => () => void;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The real base checkout (module doc): refused unless the focus worktree is
|
|
116
|
+
* provisioned and its install inputs match the base's; made off the focus
|
|
117
|
+
* worktree pinned to the base sha, its dependencies mirrored from the focus
|
|
118
|
+
* worktree; held against installs until disposed. `checkoutKey` names the
|
|
119
|
+
* directory (one per judged delivery, so two verifies never share it).
|
|
120
|
+
*/
|
|
121
|
+
export declare function buildDefaultOpenBaseline(focusWorktreePath: string, checkoutKey: string, timeoutMs: number, seams?: BaselineCheckoutSeams): (baseSha: string) => BaselineOpenResult;
|
|
122
|
+
export {};
|
|
123
|
+
//# sourceMappingURL=verification-baseline-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-baseline-run.d.ts","sourceRoot":"","sources":["../../src/verify/verification-baseline-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
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
|
+
// PINNED-BY-END
|
|
6
|
+
/**
|
|
7
|
+
* Measuring the focus base: a provisioned detached checkout at the base sha, the
|
|
8
|
+
* gate run there, and every red stage past the first measured too.
|
|
9
|
+
*
|
|
10
|
+
* Extracted from verification-baseline.ts, which owns the cache and the
|
|
11
|
+
* attribution orchestration; this module owns what one base measurement IS.
|
|
12
|
+
*
|
|
13
|
+
* The checkout carries the SAME readiness contract as the HEAD run
|
|
14
|
+
* (verify/verification-checkout.ts). A fresh `git worktree add` has no installed
|
|
15
|
+
* dependencies, and a nested package (packages/daemon, mcp/telora-products)
|
|
16
|
+
* resolves its node_modules only from its own ignored directory -- so a bare base
|
|
17
|
+
* checkout could not load eslint-import-resolver-typescript or tsx, and "base
|
|
18
|
+
* evidence" measured the checkout, not the base commit. The base checkout is
|
|
19
|
+
* therefore made off the PROVISIONED focus worktree (readWorktreeProvisioning
|
|
20
|
+
* must say ready), pinned to the base sha, with the focus worktree's node_modules
|
|
21
|
+
* mirrored in exactly as the HEAD checkout mirrors them, under a verify hold on
|
|
22
|
+
* the focus worktree so no install starts mid-run. An unready worktree, a
|
|
23
|
+
* checkout or mirror that cannot be made, a run that throws, or an install that
|
|
24
|
+
* moved the linked packages mid-run is EVIDENCE UNAVAILABLE: never a baseline
|
|
25
|
+
* verdict, never cached (the caller defers, and the next tick measures again).
|
|
26
|
+
*
|
|
27
|
+
* Dependency parity. Those mirrored installs were installed from the FOCUS
|
|
28
|
+
* worktree's lockfiles, so they stand for the base's only while the focus has
|
|
29
|
+
* not changed what an install reads. Were it measured anyway, a red the focus's
|
|
30
|
+
* own dependency change causes (a bumped tool version, a new resolver) would
|
|
31
|
+
* reproduce on base source under the focus's installs and be demoted as
|
|
32
|
+
* pre-existing. So before any checkout is made, every tracked install input
|
|
33
|
+
* (package-lock.json, npm-shrinkwrap.json, package.json, .npmrc, binding.gyp --
|
|
34
|
+
* at any depth, none under node_modules) is compared between the base sha and the
|
|
35
|
+
* focus worktree ({@link readBaseDependencyParity}), as install INTENT: a lockfile
|
|
36
|
+
* without the package's own name and version (a version bump installs nothing
|
|
37
|
+
* new, and this repo bumps a package version with most changes), a package.json's
|
|
38
|
+
* install-shaping fields and the lifecycle scripts an install RUNS (a
|
|
39
|
+
* `postinstall` and its kin write into the very node_modules the base borrows, so
|
|
40
|
+
* a red their side effects cause reproduces on base source too -- every other
|
|
41
|
+
* script is source, which the checkout pins to the base), an .npmrc or
|
|
42
|
+
* binding.gyp byte for byte. A lifecycle command's STRING is not the whole input,
|
|
43
|
+
* though: an unchanged `postinstall: node scripts/patch.cjs` whose script changed
|
|
44
|
+
* installs differently (TEL-9). So every file an install CONSUMES -- the scripts
|
|
45
|
+
* its lifecycle commands run and what they load, a native addon's sources -- is
|
|
46
|
+
* compared too, byte for byte, read from the install-input model the
|
|
47
|
+
* provisioning fingerprint reads (worktree/install-inputs.ts), on both the base
|
|
48
|
+
* and the focus worktree; a command the model cannot follow is a change. When
|
|
49
|
+
* they differ the base is INCOMPARABLE with the installs at hand. Retrying cannot change that for this base and worktree,
|
|
50
|
+
* so it is not deferred as missing evidence (which would re-run the gate every
|
|
51
|
+
* tick, forever): it is refused with `incomparable` set, never cached, demotes
|
|
52
|
+
* nothing, and every HEAD red is charged to the delivery
|
|
53
|
+
* (verify/verification-attribution.ts). A parity that cannot be READ (git fails)
|
|
54
|
+
* is plain evidence unavailable.
|
|
55
|
+
*
|
|
56
|
+
* Every red, not just the first. A gate run stops at its first red, so a base
|
|
57
|
+
* record of only that stage reads every later stage as "never ran on the base"
|
|
58
|
+
* -- and a head that inherits two reds would be charged for the second. The
|
|
59
|
+
* measurement runs the never-run stages as a CONTINUATION in the same checkout
|
|
60
|
+
* after each red, until the chain completes or a stage cannot be run (a
|
|
61
|
+
* continuation that times out or whose log vouches for nothing), recording each
|
|
62
|
+
* red's stage, failing-test ids and diagnostic signatures
|
|
63
|
+
* (verify/verification-diagnostics.ts). A stage that never ran on the base stays
|
|
64
|
+
* in `notRun`: never a pass, never pre-existing. All of it is one measurement per
|
|
65
|
+
* (base sha, gate), cached once.
|
|
66
|
+
*
|
|
67
|
+
* @module verify/verification-baseline-run
|
|
68
|
+
*/
|
|
69
|
+
import { execFileSync, spawn } from 'node:child_process';
|
|
70
|
+
import { readFileSync } from 'node:fs';
|
|
71
|
+
import { basename, join } from 'node:path';
|
|
72
|
+
import { parseFailingTests } from './verification-failure-parser.js';
|
|
73
|
+
import { MAX_STAGE_ROUNDS, continuationCommand, hasStageToContinue, parseContinuationStages, parseGateRunStages, } from './verification-gate-stages.js';
|
|
74
|
+
import { diagnosticSignatures } from './verification-diagnostics.js';
|
|
75
|
+
import { createPinnedVerifyCheckout } from './verification-checkout.js';
|
|
76
|
+
import { readWorktreeProvisioning } from '../worktree/worktree-package-provisioning.js';
|
|
77
|
+
import { acquireVerifyHold } from '../worktree/verify-interlock.js';
|
|
78
|
+
import { INSTALL_LIFECYCLE_SCRIPTS, listInstallRoots, readInstallInputs, readWorktreeInstallTree, trackedInstallTree, } from '../worktree/install-inputs.js';
|
|
79
|
+
import { runGitSync } from '../git/exec.js';
|
|
80
|
+
export const isBaselineUnavailable = (value) => 'unavailable' in value;
|
|
81
|
+
const asRunOutput = (run) => (typeof run === 'string' ? { output: run, exitCode: null, timedOut: false } : run);
|
|
82
|
+
function redOf(stage, run, output, roots) {
|
|
83
|
+
return {
|
|
84
|
+
stage,
|
|
85
|
+
failingTests: [...parseFailingTests(output)].sort(),
|
|
86
|
+
diagnostics: diagnosticSignatures(run.failedStageOutput, roots),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Measure the base in `checkout` (module doc): the gate, then a continuation after
|
|
91
|
+
* each red until the chain completes or cannot be continued. A killed gate run
|
|
92
|
+
* vouches for no stages -- the last stage it started was cut off, not failed.
|
|
93
|
+
*/
|
|
94
|
+
export async function measureBaseline(checkout, gateCommand) {
|
|
95
|
+
const first = asRunOutput(await checkout.run(gateCommand));
|
|
96
|
+
const failing = new Set(parseFailingTests(first.output));
|
|
97
|
+
const parsed = first.timedOut ? null : parseGateRunStages(first.output, first.exitCode, gateCommand);
|
|
98
|
+
if (!parsed)
|
|
99
|
+
return { failingTests: [...failing].sort(), stages: null };
|
|
100
|
+
const roots = checkout.path ? [checkout.path] : [];
|
|
101
|
+
const stages = { ran: [...parsed.ran], failed: [], notRun: [...parsed.notRun] };
|
|
102
|
+
let run = parsed;
|
|
103
|
+
let output = first.output;
|
|
104
|
+
for (let round = 1; run.failedStage !== null; round++) {
|
|
105
|
+
stages.failed.push(redOf(run.failedStage, run, output, roots));
|
|
106
|
+
if (!hasStageToContinue(run) || round >= MAX_STAGE_ROUNDS)
|
|
107
|
+
break;
|
|
108
|
+
const next = asRunOutput(await checkout.run(continuationCommand(run.continuation)));
|
|
109
|
+
for (const id of parseFailingTests(next.output))
|
|
110
|
+
failing.add(id);
|
|
111
|
+
const continued = next.timedOut
|
|
112
|
+
? null
|
|
113
|
+
: parseContinuationStages(next.output, next.exitCode, run.continuation, run.package);
|
|
114
|
+
if (!continued)
|
|
115
|
+
break; // the stages after this red stay "did not run"
|
|
116
|
+
stages.ran.push(...continued.ran);
|
|
117
|
+
stages.notRun = [...continued.notRun];
|
|
118
|
+
output = next.output;
|
|
119
|
+
run = continued;
|
|
120
|
+
}
|
|
121
|
+
return { failingTests: [...failing].sort(), stages };
|
|
122
|
+
}
|
|
123
|
+
const isStringArray = (value) => Array.isArray(value) && value.every((item) => typeof item === 'string');
|
|
124
|
+
function readRed(value) {
|
|
125
|
+
if (value === null || typeof value !== 'object')
|
|
126
|
+
return undefined;
|
|
127
|
+
const { stage, failingTests, diagnostics } = value;
|
|
128
|
+
if (typeof stage !== 'string' || !isStringArray(failingTests) || !isStringArray(diagnostics))
|
|
129
|
+
return undefined;
|
|
130
|
+
return { stage, failingTests: [...failingTests], diagnostics: [...diagnostics] };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Validate a base stage record read back from a cache file: the record, null when
|
|
134
|
+
* the entry recorded that the base yielded none, or undefined when the value is
|
|
135
|
+
* not a record of this format (an old-format entry with a single `failedStage`
|
|
136
|
+
* and no diagnostics, or a corrupt one -- a cache miss).
|
|
137
|
+
*/
|
|
138
|
+
export function readBaseStages(value) {
|
|
139
|
+
if (value === null)
|
|
140
|
+
return null;
|
|
141
|
+
if (typeof value !== 'object')
|
|
142
|
+
return undefined;
|
|
143
|
+
const { ran, failed, notRun } = value;
|
|
144
|
+
if (!isStringArray(ran) || !isStringArray(notRun) || !Array.isArray(failed))
|
|
145
|
+
return undefined;
|
|
146
|
+
const reds = failed.map(readRed);
|
|
147
|
+
if (reds.some((red) => red === undefined))
|
|
148
|
+
return undefined;
|
|
149
|
+
return { ran: [...ran], failed: reds, notRun: [...notRun] };
|
|
150
|
+
}
|
|
151
|
+
/** The tracked files an install reads, at any depth, none under a node_modules segment. */
|
|
152
|
+
const INSTALL_INPUT_PATHSPECS = [
|
|
153
|
+
':(glob)**/package-lock.json',
|
|
154
|
+
':(glob)**/npm-shrinkwrap.json',
|
|
155
|
+
':(glob)**/package.json',
|
|
156
|
+
':(glob)**/.npmrc',
|
|
157
|
+
':(glob)**/binding.gyp',
|
|
158
|
+
':(exclude,glob)**/node_modules/**',
|
|
159
|
+
];
|
|
160
|
+
/** The install inputs compared byte for byte (the rest are JSON, compared as intent). */
|
|
161
|
+
const BYTE_FOR_BYTE_INPUTS = new Set(['.npmrc', 'binding.gyp']);
|
|
162
|
+
/**
|
|
163
|
+
* The package.json fields that decide what an install puts in node_modules: the
|
|
164
|
+
* dependency fields; `bin` (and `directories.bin`, which npm reads as `bin`),
|
|
165
|
+
* because a workspace's or linked package's bins are linked into node_modules/.bin;
|
|
166
|
+
* `gypfile`, which switches the implicit `node-gyp rebuild` install npm gives a
|
|
167
|
+
* package with a binding.gyp; and `packageManager`, which picks the installer a
|
|
168
|
+
* corepack shim runs (another npm can lay out another tree from the same
|
|
169
|
+
* lockfile). Left out: fields that decide only WHETHER an install proceeds, never
|
|
170
|
+
* what it installs -- `engines`/`devEngines` (a mismatch warns, or fails under
|
|
171
|
+
* engine-strict, itself an .npmrc input) and `os`/`cpu`/`libc` (a mismatch fails
|
|
172
|
+
* a non-optional package). A change to one leaves either an unprovisioned
|
|
173
|
+
* worktree, which is never measured, or the same tree.
|
|
174
|
+
*/
|
|
175
|
+
const MANIFEST_INSTALL_FIELDS = [
|
|
176
|
+
'dependencies', 'devDependencies', 'optionalDependencies', 'peerDependencies', 'peerDependenciesMeta',
|
|
177
|
+
'bundleDependencies', 'bundledDependencies', 'overrides', 'workspaces', 'bin', 'gypfile', 'packageManager',
|
|
178
|
+
];
|
|
179
|
+
/** `git show <sha>:<path>`, with room for a whole lockfile (runGitSync's buffer is not sized for one). */
|
|
180
|
+
const readCommitFile = (worktreePath, sha, path) => execFileSync('git', ['show', `${sha}:${path}`], {
|
|
181
|
+
cwd: worktreePath,
|
|
182
|
+
encoding: 'utf8',
|
|
183
|
+
maxBuffer: 256 * 1024 * 1024,
|
|
184
|
+
timeout: 60_000,
|
|
185
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
186
|
+
});
|
|
187
|
+
const isPlainObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
188
|
+
/** An object without the package's own identity (name, version); anything else unchanged. */
|
|
189
|
+
function withoutIdentity(value) {
|
|
190
|
+
if (!isPlainObject(value))
|
|
191
|
+
return value;
|
|
192
|
+
const copy = { ...value };
|
|
193
|
+
delete copy.name;
|
|
194
|
+
delete copy.version;
|
|
195
|
+
return copy;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* What a package.json asks an install for: its install fields and install
|
|
199
|
+
* lifecycle scripts, or null when `scripts` or `directories` is not an object
|
|
200
|
+
* (not a manifest the projection can read, so a change).
|
|
201
|
+
*/
|
|
202
|
+
function manifestIntent(manifest) {
|
|
203
|
+
const { scripts = {}, directories = {} } = manifest;
|
|
204
|
+
if (!isPlainObject(scripts) || !isPlainObject(directories))
|
|
205
|
+
return null;
|
|
206
|
+
return JSON.stringify([
|
|
207
|
+
...MANIFEST_INSTALL_FIELDS.map((field) => [field, manifest[field] ?? null]),
|
|
208
|
+
['directories.bin', directories.bin ?? null],
|
|
209
|
+
...INSTALL_LIFECYCLE_SCRIPTS.map((script) => [`scripts.${script}`, scripts[script] ?? null]),
|
|
210
|
+
]);
|
|
211
|
+
}
|
|
212
|
+
/** What one install input asks an install for (module doc), or null when it cannot be read as one. */
|
|
213
|
+
function installIntent(path, text) {
|
|
214
|
+
if (BYTE_FOR_BYTE_INPUTS.has(basename(path)))
|
|
215
|
+
return text;
|
|
216
|
+
let parsed;
|
|
217
|
+
try {
|
|
218
|
+
parsed = JSON.parse(text);
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
if (!isPlainObject(parsed))
|
|
224
|
+
return null;
|
|
225
|
+
if (basename(path) === 'package.json')
|
|
226
|
+
return manifestIntent(parsed);
|
|
227
|
+
const lock = withoutIdentity(parsed);
|
|
228
|
+
if (isPlainObject(lock) && isPlainObject(lock.packages))
|
|
229
|
+
lock.packages = { ...lock.packages, '': withoutIdentity(lock.packages['']) };
|
|
230
|
+
return JSON.stringify(lock);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* The consumed install inputs (worktree/install-inputs.ts) that differ between
|
|
234
|
+
* `baseSha` and the focus worktree: for every install root on either side, each
|
|
235
|
+
* file either side's install consumes that git reports changed, and the manifest
|
|
236
|
+
* of every input either side cannot follow (fail closed: a change, with its
|
|
237
|
+
* reason -- that root's consumed files are then not listed one by one).
|
|
238
|
+
* Unreadable when git cannot list a tree or read an input.
|
|
239
|
+
*/
|
|
240
|
+
function readConsumedInputChanges(focusWorktreePath, baseSha, runGit, readAtCommit) {
|
|
241
|
+
const base8 = baseSha.slice(0, 8);
|
|
242
|
+
const listed = runGit(['ls-tree', '-r', '-z', '--name-only', baseSha], focusWorktreePath);
|
|
243
|
+
const moved = runGit(['diff', '-z', '--name-only', '--no-renames', baseSha], focusWorktreePath);
|
|
244
|
+
const head = readWorktreeInstallTree(focusWorktreePath, runGit);
|
|
245
|
+
if (!listed.success || !moved.success || head === null) {
|
|
246
|
+
return { unreadable: `git could not list the tracked files of the focus worktree and its base ${base8}: ${listed.error || moved.error || 'ls-files failed'}` };
|
|
247
|
+
}
|
|
248
|
+
const base = trackedInstallTree(listed.output.split('\0'), (path) => Buffer.from(readAtCommit(focusWorktreePath, baseSha, path), 'utf8'));
|
|
249
|
+
const movedPaths = new Set(moved.output.split('\0'));
|
|
250
|
+
const changed = new Set();
|
|
251
|
+
const unresolvable = new Set();
|
|
252
|
+
for (const root of new Set([...listInstallRoots(base), ...listInstallRoots(head)])) {
|
|
253
|
+
let sides;
|
|
254
|
+
try {
|
|
255
|
+
sides = [readInstallInputs(base, root), readInstallInputs(head, root)];
|
|
256
|
+
}
|
|
257
|
+
catch (err) {
|
|
258
|
+
return { unreadable: `the install inputs of ${root || 'the repo root'} could not be read at both ${base8} and the focus worktree: ${err.message}` };
|
|
259
|
+
}
|
|
260
|
+
const unfollowed = sides.flatMap((inputs) => inputs.unresolvable);
|
|
261
|
+
for (const input of unfollowed) {
|
|
262
|
+
changed.add(input.manifest);
|
|
263
|
+
unresolvable.add(input.reason);
|
|
264
|
+
}
|
|
265
|
+
if (unfollowed.length > 0)
|
|
266
|
+
continue;
|
|
267
|
+
for (const path of sides.flatMap((inputs) => inputs.consumed))
|
|
268
|
+
if (movedPaths.has(path))
|
|
269
|
+
changed.add(path);
|
|
270
|
+
}
|
|
271
|
+
return { changed: [...changed], unresolvable: [...unresolvable].sort() };
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Compare every tracked install input between `baseSha` and the focus worktree's
|
|
275
|
+
* working tree -- what its installs were provisioned from (module doc). A manifest
|
|
276
|
+
* added or removed since the base is a change; one modified on both sides is a
|
|
277
|
+
* change unless its install intent is equal (unparseable on either side is a
|
|
278
|
+
* change). Every file an install consumes is compared byte for byte, and an input
|
|
279
|
+
* the install-input model cannot follow is a change. Unreadable when git cannot
|
|
280
|
+
* list or read them.
|
|
281
|
+
*/
|
|
282
|
+
export function readBaseDependencyParity(focusWorktreePath, baseSha, runGit = runGitSync, readAtCommit = readCommitFile) {
|
|
283
|
+
const diff = runGit(['diff', '-z', '--name-status', '--no-renames', baseSha, '--', ...INSTALL_INPUT_PATHSPECS], focusWorktreePath);
|
|
284
|
+
if (!diff.success)
|
|
285
|
+
return { unreadable: `git diff of the install inputs against ${baseSha.slice(0, 8)} failed: ${diff.error || diff.output}` };
|
|
286
|
+
const tokens = diff.output.split('\0').filter((token) => token.length > 0);
|
|
287
|
+
const changed = new Set();
|
|
288
|
+
for (let index = 0; index + 1 < tokens.length; index += 2) {
|
|
289
|
+
const [status, path] = [tokens[index], tokens[index + 1]];
|
|
290
|
+
try {
|
|
291
|
+
const base = status === 'M' ? installIntent(path, readAtCommit(focusWorktreePath, baseSha, path)) : null;
|
|
292
|
+
const focus = status === 'M' ? installIntent(path, readFileSync(join(focusWorktreePath, path), 'utf8')) : null;
|
|
293
|
+
if (base === null || focus === null || base !== focus)
|
|
294
|
+
changed.add(path);
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
return { unreadable: `${path} could not be read at both ${baseSha.slice(0, 8)} and the focus worktree: ${err.message}` };
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
const consumed = readConsumedInputChanges(focusWorktreePath, baseSha, runGit, readAtCommit);
|
|
301
|
+
if ('unreadable' in consumed)
|
|
302
|
+
return consumed;
|
|
303
|
+
for (const path of consumed.changed)
|
|
304
|
+
changed.add(path);
|
|
305
|
+
if (changed.size === 0)
|
|
306
|
+
return { comparable: true };
|
|
307
|
+
const unresolvable = consumed.unresolvable.length > 0 ? { unresolvable: consumed.unresolvable } : {};
|
|
308
|
+
return { comparable: false, changed: [...changed].sort(), ...unresolvable };
|
|
309
|
+
}
|
|
310
|
+
/** The refusal a base checkout returns when the installs at hand do not stand for the base's, else null. */
|
|
311
|
+
function dependencyParityRefusal(parity, baseSha) {
|
|
312
|
+
const base = baseSha.slice(0, 8);
|
|
313
|
+
if ('unreadable' in parity) {
|
|
314
|
+
return {
|
|
315
|
+
unavailable: `the dependency install inputs of the focus base ${base} could not be compared with the focus worktree's `
|
|
316
|
+
+ `(${parity.unreadable}), so whether its installs stand for the base's is unknown`,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
if (parity.comparable)
|
|
320
|
+
return null;
|
|
321
|
+
const unfollowed = parity.unresolvable?.length
|
|
322
|
+
? `; an install input that cannot be followed counts as changed: ${parity.unresolvable.join('; ')}`
|
|
323
|
+
: '';
|
|
324
|
+
return {
|
|
325
|
+
unavailable: `the focus changed dependency install inputs since the base ${base} (${parity.changed.join(', ')})${unfollowed}, so a base `
|
|
326
|
+
+ 'checkout would borrow installs made from the focus\'s install inputs, not the base\'s, and a red those installs cause '
|
|
327
|
+
+ 'could not be told apart from one already on the base',
|
|
328
|
+
incomparable: true,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
// ---------------------------------------------------------------------------
|
|
332
|
+
// The default base checkout
|
|
333
|
+
// ---------------------------------------------------------------------------
|
|
334
|
+
/** Spawn `sh -c command` in cwd and capture the FULL combined stdout+stderr and how it ended. */
|
|
335
|
+
export function runShellCapture(command, cwd, timeoutMs) {
|
|
336
|
+
return new Promise((resolvePromise) => {
|
|
337
|
+
const child = spawn('sh', ['-c', command], { cwd, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
338
|
+
let out = '';
|
|
339
|
+
let timedOut = false;
|
|
340
|
+
child.stdout?.on('data', (c) => { out += c.toString('utf8'); });
|
|
341
|
+
child.stderr?.on('data', (c) => { out += c.toString('utf8'); });
|
|
342
|
+
const timer = setTimeout(() => { timedOut = true; try {
|
|
343
|
+
child.kill('SIGKILL');
|
|
344
|
+
}
|
|
345
|
+
catch { /* ignore */ } }, timeoutMs);
|
|
346
|
+
child.on('error', () => { clearTimeout(timer); resolvePromise({ output: out, exitCode: null, timedOut }); });
|
|
347
|
+
child.on('close', (code) => { clearTimeout(timer); resolvePromise({ output: out, exitCode: code, timedOut }); });
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* The real base checkout (module doc): refused unless the focus worktree is
|
|
352
|
+
* provisioned and its install inputs match the base's; made off the focus
|
|
353
|
+
* worktree pinned to the base sha, its dependencies mirrored from the focus
|
|
354
|
+
* worktree; held against installs until disposed. `checkoutKey` names the
|
|
355
|
+
* directory (one per judged delivery, so two verifies never share it).
|
|
356
|
+
*/
|
|
357
|
+
export function buildDefaultOpenBaseline(focusWorktreePath, checkoutKey, timeoutMs, seams = {}) {
|
|
358
|
+
return (baseSha) => {
|
|
359
|
+
const provisioning = (seams.readWorktreeProvisioning ?? readWorktreeProvisioning)(focusWorktreePath);
|
|
360
|
+
if (!provisioning.ready) {
|
|
361
|
+
return {
|
|
362
|
+
unavailable: `the focus worktree is not provisioned (${provisioning.state}: ${provisioning.reason}), so a base `
|
|
363
|
+
+ 'checkout would measure missing dependencies, not the base commit',
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
const parity = (seams.readDependencyParity ?? readBaseDependencyParity)(focusWorktreePath, baseSha);
|
|
367
|
+
const refused = dependencyParityRefusal(parity, baseSha);
|
|
368
|
+
if (refused)
|
|
369
|
+
return refused;
|
|
370
|
+
const release = (seams.acquireHold ?? acquireVerifyHold)(focusWorktreePath);
|
|
371
|
+
const checkout = (seams.createCheckout ?? createPinnedVerifyCheckout)(focusWorktreePath, checkoutKey, baseSha);
|
|
372
|
+
if (!checkout || checkout.sha !== baseSha) {
|
|
373
|
+
checkout?.dispose();
|
|
374
|
+
release();
|
|
375
|
+
return { unavailable: `no provisioned detached checkout of the focus base ${baseSha.slice(0, 8)} could be made` };
|
|
376
|
+
}
|
|
377
|
+
const runCommand = seams.runCommand ?? runShellCapture;
|
|
378
|
+
return {
|
|
379
|
+
path: checkout.path,
|
|
380
|
+
run: (command) => runCommand(command, checkout.path, timeoutMs),
|
|
381
|
+
dependenciesMoved: checkout.dependenciesMoved,
|
|
382
|
+
dispose: () => { checkout.dispose(); release(); },
|
|
383
|
+
};
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
//# sourceMappingURL=verification-baseline-run.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification-baseline-run.js","sourceRoot":"","sources":["../../src/verify/verification-baseline-run.ts"],"names":[],"mappings":"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"}
|