@telora/daemon 0.22.289 → 0.22.293
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/README.md +2 -2
- package/build-info.json +2 -2
- package/dist/backends/agent-backend.d.ts +2 -0
- package/dist/backends/agent-backend.d.ts.map +1 -1
- package/dist/backends/availability.d.ts +14 -0
- package/dist/backends/availability.d.ts.map +1 -1
- package/dist/backends/availability.js +37 -0
- package/dist/backends/availability.js.map +1 -1
- package/dist/backends/claude/claude-backend.d.ts.map +1 -1
- package/dist/backends/claude/claude-backend.js +2 -0
- package/dist/backends/claude/claude-backend.js.map +1 -1
- package/dist/backends/codex/codex-backend.d.ts.map +1 -1
- package/dist/backends/codex/codex-backend.js +2 -0
- package/dist/backends/codex/codex-backend.js.map +1 -1
- package/dist/backends/index.d.ts +1 -1
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +2 -17
- package/dist/backends/index.js.map +1 -1
- package/dist/cli/connect/config-write.d.ts.map +1 -1
- package/dist/cli/connect/config-write.js +2 -1
- package/dist/cli/connect/config-write.js.map +1 -1
- package/dist/cli/status-commands.d.ts +7 -0
- package/dist/cli/status-commands.d.ts.map +1 -1
- package/dist/cli/status-commands.js +17 -0
- package/dist/cli/status-commands.js.map +1 -1
- package/dist/completion/completion-event/event.d.ts +1 -0
- package/dist/completion/completion-event/event.d.ts.map +1 -1
- package/dist/completion/completion-event/event.js +1 -0
- package/dist/completion/completion-event/event.js.map +1 -1
- package/dist/completion/review-exit/review-census-record.d.ts +4 -2
- package/dist/completion/review-exit/review-census-record.d.ts.map +1 -1
- package/dist/completion/review-exit/review-census-record.js +11 -3
- package/dist/completion/review-exit/review-census-record.js.map +1 -1
- package/dist/completion/review-exit/review-exit-deps.js +1 -1
- package/dist/completion/review-exit/review-exit-phase.d.ts +9 -0
- package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-phase.js +1 -1
- package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-holds/commit-verdict-release.d.ts.map +1 -1
- package/dist/completion/review-exit-holds/commit-verdict-release.js +2 -1
- package/dist/completion/review-exit-holds/commit-verdict-release.js.map +1 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts +1 -0
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts.map +1 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.js +1 -0
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.js.map +1 -1
- package/dist/completion/team-exit/team-completion.d.ts.map +1 -1
- package/dist/completion/team-exit/team-completion.js +3 -1
- package/dist/completion/team-exit/team-completion.js.map +1 -1
- package/dist/completion/team-liveness/liveness-firing.js +3 -3
- package/dist/completion/team-liveness/team-liveness-phase.d.ts +6 -1
- package/dist/completion/team-liveness/team-liveness-phase.d.ts.map +1 -1
- package/dist/completion/team-liveness/team-liveness-phase.js.map +1 -1
- package/dist/completion/team-outcome/apply-close.d.ts.map +1 -1
- package/dist/completion/team-outcome/apply-close.js +4 -1
- package/dist/completion/team-outcome/apply-close.js.map +1 -1
- package/dist/completion/team-outcome/apply-turn.d.ts.map +1 -1
- package/dist/completion/team-outcome/apply-turn.js +3 -1
- package/dist/completion/team-outcome/apply-turn.js.map +1 -1
- package/dist/completion/team-outcome/apply.d.ts.map +1 -1
- package/dist/completion/team-outcome/apply.js +3 -1
- package/dist/completion/team-outcome/apply.js.map +1 -1
- package/dist/completion/team-outcome/decide-shared.d.ts.map +1 -1
- package/dist/completion/team-outcome/decide-shared.js +3 -2
- package/dist/completion/team-outcome/decide-shared.js.map +1 -1
- package/dist/completion/team-outcome/exit-pipeline-state.d.ts.map +1 -1
- package/dist/completion/team-outcome/exit-pipeline-state.js +2 -1
- package/dist/completion/team-outcome/exit-pipeline-state.js.map +1 -1
- package/dist/completion/team-outcome/team-outcome.d.ts.map +1 -1
- package/dist/completion/team-outcome/team-outcome.js +3 -1
- package/dist/completion/team-outcome/team-outcome.js.map +1 -1
- package/dist/composition/execution-migrations-context.d.ts.map +1 -1
- package/dist/composition/execution-migrations-context.js +2 -0
- package/dist/composition/execution-migrations-context.js.map +1 -1
- package/dist/composition/execution-process-context.js +1 -1
- package/dist/composition/execution-spawn-context.d.ts.map +1 -1
- package/dist/composition/execution-spawn-context.js +3 -1
- package/dist/composition/execution-spawn-context.js.map +1 -1
- package/dist/composition/execution-spawn-process-context.d.ts.map +1 -1
- package/dist/composition/execution-spawn-process-context.js +3 -2
- package/dist/composition/execution-spawn-process-context.js.map +1 -1
- package/dist/composition/focus-activity-live-sources.d.ts +4 -0
- package/dist/composition/focus-activity-live-sources.d.ts.map +1 -0
- package/dist/composition/focus-activity-live-sources.js +68 -0
- package/dist/composition/focus-activity-live-sources.js.map +1 -0
- package/dist/composition/runtime-delivery-advance-context.d.ts +6 -1
- package/dist/composition/runtime-delivery-advance-context.d.ts.map +1 -1
- package/dist/composition/runtime-delivery-advance-context.js +14 -3
- package/dist/composition/runtime-delivery-advance-context.js.map +1 -1
- package/dist/composition/runtime-heartbeat-context.d.ts.map +1 -1
- package/dist/composition/runtime-heartbeat-context.js +3 -1
- package/dist/composition/runtime-heartbeat-context.js.map +1 -1
- package/dist/composition/team-lifecycle-context.d.ts.map +1 -1
- package/dist/composition/team-lifecycle-context.js +3 -1
- package/dist/composition/team-lifecycle-context.js.map +1 -1
- package/dist/composition/team-liveness-phase-sources.d.ts.map +1 -1
- package/dist/composition/team-liveness-phase-sources.js +1 -0
- package/dist/composition/team-liveness-phase-sources.js.map +1 -1
- package/dist/composition/verification-context.d.ts.map +1 -1
- package/dist/composition/verification-context.js +4 -1
- package/dist/composition/verification-context.js.map +1 -1
- package/dist/composition/verify-probe-context.d.ts +7 -0
- package/dist/composition/verify-probe-context.d.ts.map +1 -1
- package/dist/composition/verify-probe-context.js +55 -3
- package/dist/composition/verify-probe-context.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +4 -3
- package/dist/config/config.js.map +1 -1
- package/dist/config/session-cap.d.ts +89 -0
- package/dist/config/session-cap.d.ts.map +1 -0
- package/dist/config/session-cap.js +176 -0
- package/dist/config/session-cap.js.map +1 -0
- package/dist/daemon-state/awaiting-slot.d.ts +8 -2
- package/dist/daemon-state/awaiting-slot.d.ts.map +1 -1
- package/dist/daemon-state/awaiting-slot.js +21 -8
- package/dist/daemon-state/awaiting-slot.js.map +1 -1
- package/dist/daemon-state/engine-readiness.d.ts +73 -0
- package/dist/daemon-state/engine-readiness.d.ts.map +1 -0
- package/dist/daemon-state/engine-readiness.js +191 -0
- package/dist/daemon-state/engine-readiness.js.map +1 -0
- package/dist/daemon-state/focus-progress-clock.d.ts +34 -0
- package/dist/daemon-state/focus-progress-clock.d.ts.map +1 -0
- package/dist/daemon-state/focus-progress-clock.js +167 -0
- package/dist/daemon-state/focus-progress-clock.js.map +1 -0
- package/dist/daemon-state/focus-team-state.d.ts +32 -9
- package/dist/daemon-state/focus-team-state.d.ts.map +1 -1
- package/dist/daemon-state/focus-team-state.js +50 -9
- package/dist/daemon-state/focus-team-state.js.map +1 -1
- package/dist/daemon-state/provider-window.d.ts.map +1 -1
- package/dist/daemon-state/provider-window.js +5 -1
- package/dist/daemon-state/provider-window.js.map +1 -1
- package/dist/daemon-state/review-park-record.d.ts +36 -0
- package/dist/daemon-state/review-park-record.d.ts.map +1 -0
- package/dist/daemon-state/review-park-record.js +27 -0
- package/dist/daemon-state/review-park-record.js.map +1 -0
- package/dist/daemon-state/worker-pidfile.d.ts.map +1 -1
- package/dist/daemon-state/worker-pidfile.js +3 -1
- package/dist/daemon-state/worker-pidfile.js.map +1 -1
- package/dist/delivery/commit-verdict-hold.d.ts.map +1 -1
- package/dist/delivery/commit-verdict-hold.js +3 -1
- package/dist/delivery/commit-verdict-hold.js.map +1 -1
- package/dist/directive/directive-queue.js +1 -1
- package/dist/focus/focus-activity-held.d.ts +37 -0
- package/dist/focus/focus-activity-held.d.ts.map +1 -0
- package/dist/focus/focus-activity-held.js +89 -0
- package/dist/focus/focus-activity-held.js.map +1 -0
- package/dist/focus/focus-activity-poll-facts.d.ts +39 -0
- package/dist/focus/focus-activity-poll-facts.d.ts.map +1 -0
- package/dist/focus/focus-activity-poll-facts.js +110 -0
- package/dist/focus/focus-activity-poll-facts.js.map +1 -0
- package/dist/focus/focus-activity-producers.d.ts +43 -0
- package/dist/focus/focus-activity-producers.d.ts.map +1 -0
- package/dist/focus/focus-activity-producers.js +130 -0
- package/dist/focus/focus-activity-producers.js.map +1 -0
- package/dist/focus/focus-activity-record.d.ts +58 -0
- package/dist/focus/focus-activity-record.d.ts.map +1 -0
- package/dist/focus/focus-activity-record.js +141 -0
- package/dist/focus/focus-activity-record.js.map +1 -0
- package/dist/focus/focus-activity-sources.d.ts +99 -0
- package/dist/focus/focus-activity-sources.d.ts.map +1 -0
- package/dist/focus/focus-activity-sources.js +45 -0
- package/dist/focus/focus-activity-sources.js.map +1 -0
- package/dist/focus/focus-executor.js +1 -1
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
- package/dist/focus/focus-poller-auto-advance.js +2 -0
- package/dist/focus/focus-poller-auto-advance.js.map +1 -1
- package/dist/focus/heartbeat-metadata.d.ts.map +1 -1
- package/dist/focus/heartbeat-metadata.js +6 -0
- package/dist/focus/heartbeat-metadata.js.map +1 -1
- package/dist/focus/heartbeat.d.ts +3 -0
- package/dist/focus/heartbeat.d.ts.map +1 -1
- package/dist/focus/heartbeat.js +31 -31
- package/dist/focus/heartbeat.js.map +1 -1
- package/dist/focus/pending-review-approved-head.d.ts.map +1 -1
- package/dist/focus/pending-review-approved-head.js +4 -2
- package/dist/focus/pending-review-approved-head.js.map +1 -1
- package/dist/focus/unchanged-reviewed-head.d.ts.map +1 -1
- package/dist/focus/unchanged-reviewed-head.js +4 -2
- package/dist/focus/unchanged-reviewed-head.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/queries/deliveries/deliveries.d.ts +4 -0
- package/dist/queries/deliveries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries/deliveries.js +6 -0
- package/dist/queries/deliveries/deliveries.js.map +1 -1
- package/dist/queries/deliveries/issues.d.ts +3 -0
- package/dist/queries/deliveries/issues.d.ts.map +1 -1
- package/dist/queries/deliveries/issues.js +10 -2
- package/dist/queries/deliveries/issues.js.map +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts +27 -1
- package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.d.ts +3 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.js.map +1 -1
- package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focuses/focus-discovery.js +2 -0
- package/dist/queries/focuses/focus-discovery.js.map +1 -1
- package/dist/queries/focuses/focuses.d.ts.map +1 -1
- package/dist/queries/focuses/focuses.js +2 -0
- package/dist/queries/focuses/focuses.js.map +1 -1
- package/dist/queries/sessions/daemon-connection.d.ts.map +1 -1
- package/dist/queries/sessions/daemon-connection.js +1 -0
- package/dist/queries/sessions/daemon-connection.js.map +1 -1
- package/dist/queries/workflow-transitions/workflows.d.ts.map +1 -1
- package/dist/queries/workflow-transitions/workflows.js +1 -0
- package/dist/queries/workflow-transitions/workflows.js.map +1 -1
- package/dist/shell/config-hot-reload.d.ts +11 -0
- package/dist/shell/config-hot-reload.d.ts.map +1 -1
- package/dist/shell/config-hot-reload.js +12 -0
- package/dist/shell/config-hot-reload.js.map +1 -1
- package/dist/shell/unified-engine-lifecycle.d.ts +8 -1
- package/dist/shell/unified-engine-lifecycle.d.ts.map +1 -1
- package/dist/shell/unified-engine-lifecycle.js +44 -24
- package/dist/shell/unified-engine-lifecycle.js.map +1 -1
- package/dist/shell/unified-init.d.ts +5 -1
- package/dist/shell/unified-init.d.ts.map +1 -1
- package/dist/shell/unified-init.js +2 -2
- package/dist/shell/unified-init.js.map +1 -1
- package/dist/shell/unified-shell-config.d.ts +2 -1
- package/dist/shell/unified-shell-config.d.ts.map +1 -1
- package/dist/shell/unified-shell-config.js +9 -3
- package/dist/shell/unified-shell-config.js.map +1 -1
- package/dist/shell/unified-shell-status.d.ts +11 -1
- package/dist/shell/unified-shell-status.d.ts.map +1 -1
- package/dist/shell/unified-shell-status.js +15 -1
- 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 +25 -5
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/codex-auth.d.ts +32 -0
- package/dist/spawn/codex-auth.d.ts.map +1 -0
- package/dist/spawn/codex-auth.js +55 -0
- package/dist/spawn/codex-auth.js.map +1 -0
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +19 -3
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/model-reached.d.ts +36 -0
- package/dist/spawn/model-reached.d.ts.map +1 -0
- package/dist/spawn/model-reached.js +43 -0
- package/dist/spawn/model-reached.js.map +1 -0
- package/dist/spawn/next-spawn-cooldown.d.ts +21 -2
- package/dist/spawn/next-spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/next-spawn-cooldown.js +65 -7
- package/dist/spawn/next-spawn-cooldown.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +8 -5
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts +12 -1
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +25 -9
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +4 -0
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/team-working-delivery.d.ts +76 -0
- package/dist/spawn/team-working-delivery.d.ts.map +1 -0
- package/dist/spawn/team-working-delivery.js +76 -0
- package/dist/spawn/team-working-delivery.js.map +1 -0
- package/dist/spawn/worktree-session.d.ts +15 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +25 -2
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/supervision/spawn-cooldown-window.d.ts +15 -0
- package/dist/supervision/spawn-cooldown-window.d.ts.map +1 -0
- package/dist/supervision/spawn-cooldown-window.js +46 -0
- package/dist/supervision/spawn-cooldown-window.js.map +1 -0
- package/dist/supervision/spawn-cooldown.d.ts +3 -2
- package/dist/supervision/spawn-cooldown.d.ts.map +1 -1
- package/dist/supervision/spawn-cooldown.js +6 -1
- package/dist/supervision/spawn-cooldown.js.map +1 -1
- package/dist/supervision/stop-registry.d.ts +1 -0
- package/dist/supervision/stop-registry.d.ts.map +1 -1
- package/dist/supervision/stop-rows-spawn.d.ts +8 -0
- package/dist/supervision/stop-rows-spawn.d.ts.map +1 -1
- package/dist/supervision/stop-rows-spawn.js +28 -1
- package/dist/supervision/stop-rows-spawn.js.map +1 -1
- package/dist/testing/fake-npm-registry.d.ts +31 -0
- package/dist/testing/fake-npm-registry.d.ts.map +1 -0
- package/dist/testing/fake-npm-registry.js +127 -0
- package/dist/testing/fake-npm-registry.js.map +1 -0
- package/dist/testing/fixtures/approved-head-inert-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/approved-head-inert-deps.js +4 -2
- package/dist/testing/fixtures/approved-head-inert-deps.js.map +1 -1
- package/dist/testing/fixtures/codex-stream-session.d.ts +4 -0
- package/dist/testing/fixtures/codex-stream-session.d.ts.map +1 -1
- package/dist/testing/fixtures/codex-stream-session.js +21 -5
- package/dist/testing/fixtures/codex-stream-session.js.map +1 -1
- package/dist/testing/fixtures/completion-event-deps.js +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/process-close-context.d.ts.map +1 -1
- package/dist/testing/fixtures/process-close-context.js +2 -0
- package/dist/testing/fixtures/process-close-context.js.map +1 -1
- package/dist/testing/fixtures/recording-api-client.js +1 -1
- package/dist/testing/fixtures/review-exit-deps.js +1 -1
- package/dist/testing/fixtures/session-wire.d.ts.map +1 -1
- package/dist/testing/fixtures/session-wire.js +2 -1
- package/dist/testing/fixtures/session-wire.js.map +1 -1
- package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/verification-deps.js +4 -0
- package/dist/testing/fixtures/verification-deps.js.map +1 -1
- package/dist/types/config.d.ts +30 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/focus-team-state.d.ts +28 -2
- package/dist/types/focus-team-state.d.ts.map +1 -1
- package/dist/types/focus-team-state.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/deterministic-gate/verification-checkout.d.ts +8 -4
- package/dist/verify/deterministic-gate/verification-checkout.d.ts.map +1 -1
- package/dist/verify/deterministic-gate/verification-checkout.js +50 -13
- package/dist/verify/deterministic-gate/verification-checkout.js.map +1 -1
- package/dist/verify/deterministic-gate/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/deterministic-gate/verification-deterministic.js +3 -1
- package/dist/verify/deterministic-gate/verification-deterministic.js.map +1 -1
- package/dist/verify/engine/verification-deps.d.ts +7 -0
- package/dist/verify/engine/verification-deps.d.ts.map +1 -1
- package/dist/verify/engine/verification-deps.js +1 -1
- package/dist/verify/engine/verification-engine.d.ts.map +1 -1
- package/dist/verify/engine/verification-engine.js +107 -8
- package/dist/verify/engine/verification-engine.js.map +1 -1
- package/dist/verify/gate-config/verification-config.js +1 -1
- package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
- package/dist/verify/gate-verdicts/gate-run-registry.d.ts +74 -3
- package/dist/verify/gate-verdicts/gate-run-registry.d.ts.map +1 -1
- package/dist/verify/gate-verdicts/gate-run-registry.js +41 -20
- package/dist/verify/gate-verdicts/gate-run-registry.js.map +1 -1
- package/dist/verify/install-probe/in-repo-publish.d.ts +154 -0
- package/dist/verify/install-probe/in-repo-publish.d.ts.map +1 -0
- package/dist/verify/install-probe/in-repo-publish.js +183 -0
- package/dist/verify/install-probe/in-repo-publish.js.map +1 -0
- package/dist/verify/install-probe/install-probe-tick.d.ts +23 -2
- package/dist/verify/install-probe/install-probe-tick.d.ts.map +1 -1
- package/dist/verify/install-probe/install-probe-tick.js +84 -12
- package/dist/verify/install-probe/install-probe-tick.js.map +1 -1
- package/dist/verify/install-probe/install-probe.d.ts +16 -0
- package/dist/verify/install-probe/install-probe.d.ts.map +1 -1
- package/dist/verify/install-probe/install-probe.js +35 -19
- package/dist/verify/install-probe/install-probe.js.map +1 -1
- package/dist/verify/install-probe/npm-unresolved.d.ts +37 -0
- package/dist/verify/install-probe/npm-unresolved.d.ts.map +1 -0
- package/dist/verify/install-probe/npm-unresolved.js +63 -0
- package/dist/verify/install-probe/npm-unresolved.js.map +1 -0
- package/dist/verify/run-selection/default-on-guards.d.ts.map +1 -1
- package/dist/verify/run-selection/default-on-guards.js +1 -19
- package/dist/verify/run-selection/default-on-guards.js.map +1 -1
- package/dist/worktree/verify-interlock.d.ts +23 -2
- package/dist/worktree/verify-interlock.d.ts.map +1 -1
- package/dist/worktree/verify-interlock.js +79 -2
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-probe-tick.d.ts","sourceRoot":"","sources":["../../../src/verify/install-probe/install-probe-tick.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-probe-tick.d.ts","sourceRoot":"","sources":["../../../src/verify/install-probe/install-probe-tick.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAE3E,OAAO,EAAE,KAAK,iBAAiB,EAA4B,MAAM,0DAA0D,CAAC;AAC5H,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,yDAAyD;AACzD,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,GACZ,iBAAiB,GAAG,IAAI,CAc1B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAShG;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,iBAAiB,GAAG,IAAI,EACnC,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,yHAAyH;AACzH,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5E,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACvE,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpF,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnH,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,kBAAkB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACrJ;AAaD,oCAAoC;AACpC,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AA4DD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,sBAAsB,CAAC,CAkEjC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
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/in-repo-publish-branch.test.ts,
|
|
3
|
+
// packages/daemon/src/verify/install-probe/install-probe-tick.test.ts
|
|
3
4
|
// PINNED-BY-END
|
|
4
5
|
import { DELIVERY_STATUS } from '@telora/daemon-core';
|
|
5
6
|
import { configForProduct } from '../../config/config.js';
|
|
@@ -12,13 +13,19 @@ const log = createLogger({ module: 'install-probe' });
|
|
|
12
13
|
export const INSTALL_PROBE_GUARD = 'clean_install_probe';
|
|
13
14
|
/**
|
|
14
15
|
* Build the gate_state entry for a probe result. resolution_failed -> a blocking
|
|
15
|
-
* condition (holds/surfaces on "Waiting on"
|
|
16
|
+
* condition (holds/surfaces on "Waiting on", naming what npm could not resolve
|
|
17
|
+
* under `installProbe`); unverifiable (registry unreachable)
|
|
16
18
|
* -> a non-blocking WARNING (probe infra, not a delivery failure); pass/skipped
|
|
17
19
|
* -> null (clear any prior probe gate). Pure -- exported for testing.
|
|
18
20
|
*/
|
|
19
|
-
export function probeGateState(result, evaluatedAt) {
|
|
21
|
+
export function probeGateState(result, evaluatedAt, note) {
|
|
20
22
|
if (result.verdict === 'failed') {
|
|
21
|
-
return {
|
|
23
|
+
return {
|
|
24
|
+
blocking: [{ guardName: INSTALL_PROBE_GUARD, passed: false }],
|
|
25
|
+
warnings: [],
|
|
26
|
+
evaluatedAt,
|
|
27
|
+
installProbe: installProbeDetail(result, note),
|
|
28
|
+
};
|
|
22
29
|
}
|
|
23
30
|
if (result.verdict === 'unverifiable') {
|
|
24
31
|
return { blocking: [], warnings: [{ guardName: INSTALL_PROBE_GUARD, passed: false }], evaluatedAt };
|
|
@@ -26,6 +33,23 @@ export function probeGateState(result, evaluatedAt) {
|
|
|
26
33
|
// pass / skipped -> no probe gate.
|
|
27
34
|
return null;
|
|
28
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* What a failed probe waits on: each package@spec npm named, per probed package,
|
|
38
|
+
* and the packages whose failure named none. `note` records what the daemon did
|
|
39
|
+
* about it (install-probe/in-repo-publish.ts). Pure -- exported for testing.
|
|
40
|
+
*/
|
|
41
|
+
export function installProbeDetail(result, note) {
|
|
42
|
+
const failed = result.packages.filter(p => p.outcome === 'resolution_failed');
|
|
43
|
+
const detail = {
|
|
44
|
+
unresolved: failed.flatMap(p => (p.unresolved ?? []).map(u => ({ packageDir: p.packageDir, name: u.name, spec: u.spec }))),
|
|
45
|
+
};
|
|
46
|
+
const unattributed = failed.filter(p => (p.unresolved ?? []).length === 0).map(p => p.packageDir);
|
|
47
|
+
if (unattributed.length > 0)
|
|
48
|
+
detail.unattributedPackageDirs = unattributed;
|
|
49
|
+
if (note)
|
|
50
|
+
detail.note = note;
|
|
51
|
+
return detail;
|
|
52
|
+
}
|
|
29
53
|
/**
|
|
30
54
|
* The probe's production gate_state write: WITHOUT changing execution_status
|
|
31
55
|
* (stays verify) or logging a transition. Passing the same status is idempotent;
|
|
@@ -35,12 +59,50 @@ export function probeGateState(result, evaluatedAt) {
|
|
|
35
59
|
export async function writeProbeGateState(deliveryId, gateState, organizationId) {
|
|
36
60
|
await updateDeliveryStatus(deliveryId, DELIVERY_STATUS.VERIFY, undefined, gateState, undefined, { organizationId });
|
|
37
61
|
}
|
|
38
|
-
/** In-memory cache: probe
|
|
62
|
+
/** In-memory cache: probe per (focusId, head SHA). Probes -- and publishes -- once per branch state. */
|
|
39
63
|
const probeCache = new Map();
|
|
40
64
|
/** Test hook to reset the cache. */
|
|
41
65
|
export function __resetInstallProbeCacheForTests() {
|
|
42
66
|
probeCache.clear();
|
|
43
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Probe one branch state; when it fails on nothing but unpublished in-repo
|
|
70
|
+
* versions, publish them (deps.publishAround), and re-probe the branch state
|
|
71
|
+
* that produced -- the lockfile commit moves HEAD, so the result is cached under
|
|
72
|
+
* the new head as well. A publish that failed (e.g. no registry credentials on
|
|
73
|
+
* this host) is recorded as the gate entry's note and not retried for this
|
|
74
|
+
* branch state; one that was deferred (its inputs uncommitted) is retried.
|
|
75
|
+
*/
|
|
76
|
+
async function probeBranchState(deps, state, counts) {
|
|
77
|
+
const result = await deps.runProbe(state.changed, state.worktreePath);
|
|
78
|
+
counts.probesRun++;
|
|
79
|
+
const cached = await publishAroundFailure(deps, state, counts, result);
|
|
80
|
+
probeCache.set(`${state.focusId}:${state.headSha}`, cached);
|
|
81
|
+
return cached;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* When a probed branch state failed, attempt the in-repo publish and, on
|
|
85
|
+
* success, re-probe. A deferred attempt keeps the failed verdict and is marked
|
|
86
|
+
* for retry, so a later tick attempts it again without re-probing.
|
|
87
|
+
*/
|
|
88
|
+
async function publishAroundFailure(deps, state, counts, result) {
|
|
89
|
+
const { focusId, worktreePath, headSha, deliveryId } = state;
|
|
90
|
+
if (result.verdict !== 'failed' || !deps.publishAround || !deliveryId)
|
|
91
|
+
return { result };
|
|
92
|
+
const outcome = await deps.publishAround({ worktreePath, headSha, result, deliveryId });
|
|
93
|
+
if (outcome.kind !== 'resolved') {
|
|
94
|
+
log.warn(`[install-probe] Focus ${focusId}: in-repo publish ${outcome.kind}: ${outcome.note}`);
|
|
95
|
+
return outcome.kind === 'deferred' ? { result, note: outcome.note, retryPublish: true } : { result, note: outcome.note };
|
|
96
|
+
}
|
|
97
|
+
const reChanged = outcome.sha ? deps.listChangedFiles(worktreePath, `${state.integrationBranch}..HEAD`) : state.changed;
|
|
98
|
+
const again = await deps.runProbe(reChanged, worktreePath);
|
|
99
|
+
counts.probesRun++;
|
|
100
|
+
const cached = { result: again, note: outcome.note };
|
|
101
|
+
if (outcome.sha)
|
|
102
|
+
probeCache.set(`${focusId}:${outcome.sha}`, cached);
|
|
103
|
+
log.info(`[install-probe] Focus ${focusId}: ${outcome.note}; re-probe ${again.verdict}.`);
|
|
104
|
+
return cached;
|
|
105
|
+
}
|
|
44
106
|
/**
|
|
45
107
|
* One install-probe pass over every configured product's active, manifest-
|
|
46
108
|
* touching verify deliveries. Best-effort per focus/delivery -- a failure never
|
|
@@ -73,14 +135,24 @@ export async function runInstallProbeTick(config, deps) {
|
|
|
73
135
|
if (touched.length === 0)
|
|
74
136
|
continue; // no manifest change -> no probe (AC2)
|
|
75
137
|
const headSha = deps.resolveHeadSha(wt.worktreePath);
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
138
|
+
const state = {
|
|
139
|
+
focusId: focus.focus_id,
|
|
140
|
+
headSha,
|
|
141
|
+
worktreePath: wt.worktreePath,
|
|
142
|
+
changed,
|
|
143
|
+
deliveryId: verifyDeliveries[0]?.id ?? '',
|
|
144
|
+
integrationBranch: pc.integrationBranch,
|
|
145
|
+
};
|
|
146
|
+
let cached = probeCache.get(`${focus.focus_id}:${headSha}`);
|
|
147
|
+
if (!cached) {
|
|
148
|
+
cached = await probeBranchState(deps, state, counts);
|
|
149
|
+
}
|
|
150
|
+
else if (cached.retryPublish) {
|
|
151
|
+
cached = await publishAroundFailure(deps, state, counts, cached.result);
|
|
152
|
+
probeCache.set(`${focus.focus_id}:${headSha}`, cached);
|
|
82
153
|
}
|
|
83
|
-
const
|
|
154
|
+
const { result, note } = cached;
|
|
155
|
+
const gateState = probeGateState(result, deps.now(), note);
|
|
84
156
|
if (result.verdict === 'failed')
|
|
85
157
|
counts.deliveriesBlocked += verifyDeliveries.length;
|
|
86
158
|
else if (result.verdict === 'unverifiable')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-probe-tick.js","sourceRoot":"","sources":["../../../src/verify/install-probe/install-probe-tick.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"install-probe-tick.js","sourceRoot":"","sources":["../../../src/verify/install-probe/install-probe-tick.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type UnresolvedSpec } from './npm-unresolved.js';
|
|
1
2
|
/**
|
|
2
3
|
* Outcome of resolving one workspace package's install from the registry.
|
|
3
4
|
* - pass -- npm ci --dry-run resolved cleanly (exit 0).
|
|
@@ -17,6 +18,12 @@ export interface PackageProbeResult {
|
|
|
17
18
|
outcome: ProbeOutcome;
|
|
18
19
|
/** Short reason (classifier tag or exit note) for gate_state / logs. */
|
|
19
20
|
detail: string;
|
|
21
|
+
/**
|
|
22
|
+
* resolution_failed: each package@spec npm's output named as unresolvable
|
|
23
|
+
* (npm-unresolved.ts). Empty when npm named none -- a failure the probe
|
|
24
|
+
* cannot attribute to a package, which nothing may publish around.
|
|
25
|
+
*/
|
|
26
|
+
unresolved?: UnresolvedSpec[];
|
|
20
27
|
}
|
|
21
28
|
/**
|
|
22
29
|
* Aggregate verdict for the delivery.
|
|
@@ -93,4 +100,13 @@ export declare function runInstallProbe(changedFiles: readonly string[], runner:
|
|
|
93
100
|
* The isolated cache dir is created once per runner and reused across packages.
|
|
94
101
|
*/
|
|
95
102
|
export declare function createNpmCiDryRunRunner(repoPath: string): InstallProbeRunner;
|
|
103
|
+
/**
|
|
104
|
+
* Run `npm <args>` in `cwd` and collect combined stdout+stderr. Never rejects: a
|
|
105
|
+
* spawn error or a timeout resolves with a null exit and the error text (the
|
|
106
|
+
* probe classifier reads both as registry_unreachable = infra).
|
|
107
|
+
*/
|
|
108
|
+
export declare function spawnNpm(cwd: string, args: string[], env: NodeJS.ProcessEnv, timeoutMs: number): Promise<{
|
|
109
|
+
exitCode: number | null;
|
|
110
|
+
output: string;
|
|
111
|
+
}>;
|
|
96
112
|
//# sourceMappingURL=install-probe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-probe.d.ts","sourceRoot":"","sources":["../../../src/verify/install-probe/install-probe.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AAEjF,gCAAgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"install-probe.d.ts","sourceRoot":"","sources":["../../../src/verify/install-probe/install-probe.ts"],"names":[],"mappings":"AAgCA,OAAO,EAA0C,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAElG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AAEjF,gCAAgC;AAChC,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;AAE1E,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAmBlF;AAkBD;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAO1F;AAED,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAmD7B;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAa5E;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA4BtD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
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/verify/install-probe/
|
|
2
|
+
// Pinned by: packages/daemon/src/verify/install-probe/in-repo-publish.test.ts,
|
|
3
|
+
// packages/daemon/src/verify/install-probe/install-probe-tick.test.ts,
|
|
3
4
|
// packages/daemon/src/verify/install-probe/install-probe.test.ts
|
|
4
5
|
// PINNED-BY-END
|
|
5
6
|
/**
|
|
@@ -27,6 +28,7 @@ import { spawn } from 'node:child_process';
|
|
|
27
28
|
import { resolve } from 'node:path';
|
|
28
29
|
import { mkdtempSync } from 'node:fs';
|
|
29
30
|
import { tmpdir } from 'node:os';
|
|
31
|
+
import { parseUnresolvedSpecs, formatUnresolved } from './npm-unresolved.js';
|
|
30
32
|
const MANIFEST_BASENAMES = new Set(['package.json', 'package-lock.json']);
|
|
31
33
|
/**
|
|
32
34
|
* Map a set of changed (repo-relative) files to the workspace package dirs whose
|
|
@@ -116,15 +118,25 @@ export async function runInstallProbe(changedFiles, runner) {
|
|
|
116
118
|
try {
|
|
117
119
|
const { exitCode, output } = await runner(dir);
|
|
118
120
|
const outcome = classifyNpmCiFailure(exitCode, output);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
121
|
+
if (outcome === 'resolution_failed') {
|
|
122
|
+
const unresolved = parseUnresolvedSpecs(output);
|
|
123
|
+
const named = unresolved.length > 0 ? `: ${unresolved.map(formatUnresolved).join(', ')}` : '';
|
|
124
|
+
result = {
|
|
125
|
+
packageDir: dir,
|
|
126
|
+
outcome,
|
|
127
|
+
detail: `registry could not satisfy manifest/lockfile (exit ${exitCode})${named}`,
|
|
128
|
+
unresolved,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
result = {
|
|
133
|
+
packageDir: dir,
|
|
134
|
+
outcome,
|
|
135
|
+
detail: outcome === 'pass'
|
|
136
|
+
? 'npm ci --dry-run resolved from registry'
|
|
137
|
+
: 'registry unreachable (probe infrastructure)',
|
|
138
|
+
};
|
|
139
|
+
}
|
|
128
140
|
}
|
|
129
141
|
catch (err) {
|
|
130
142
|
// A runner that throws (e.g. spawn failed) is infra, not a delivery
|
|
@@ -166,8 +178,15 @@ export function createNpmCiDryRunRunner(repoPath) {
|
|
|
166
178
|
cacheDir = mkdtempSync(resolve(tmpdir(), 'telora-install-probe-'));
|
|
167
179
|
return cacheDir;
|
|
168
180
|
};
|
|
169
|
-
return (packageDir) =>
|
|
170
|
-
|
|
181
|
+
return (packageDir) => spawnNpm(packageDir === '.' ? repoPath : resolve(repoPath, packageDir), ['ci', '--dry-run', '--no-audit', '--no-fund'], { ...process.env, npm_config_cache: ensureCache(), npm_config_fund: 'false', npm_config_audit: 'false' }, NPM_CI_DRY_RUN_TIMEOUT_MS);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Run `npm <args>` in `cwd` and collect combined stdout+stderr. Never rejects: a
|
|
185
|
+
* spawn error or a timeout resolves with a null exit and the error text (the
|
|
186
|
+
* probe classifier reads both as registry_unreachable = infra).
|
|
187
|
+
*/
|
|
188
|
+
export function spawnNpm(cwd, args, env, timeoutMs) {
|
|
189
|
+
return new Promise((resolvePromise) => {
|
|
171
190
|
let out = '';
|
|
172
191
|
let settled = false;
|
|
173
192
|
const finish = (exitCode) => {
|
|
@@ -178,22 +197,19 @@ export function createNpmCiDryRunRunner(repoPath) {
|
|
|
178
197
|
};
|
|
179
198
|
let child;
|
|
180
199
|
try {
|
|
181
|
-
child = spawn('npm',
|
|
182
|
-
cwd,
|
|
183
|
-
env: { ...process.env, npm_config_cache: ensureCache(), npm_config_fund: 'false', npm_config_audit: 'false' },
|
|
184
|
-
});
|
|
200
|
+
child = spawn('npm', args, { cwd, env });
|
|
185
201
|
}
|
|
186
202
|
catch (err) {
|
|
187
203
|
// Spawn itself threw (npm missing) -> infra; surface as non-zero + text.
|
|
188
|
-
finish(null);
|
|
189
204
|
out = `spawn error: ${err.message}`;
|
|
205
|
+
finish(null);
|
|
190
206
|
return;
|
|
191
207
|
}
|
|
192
208
|
const timer = setTimeout(() => {
|
|
193
|
-
out +=
|
|
209
|
+
out += `\nnpm ${args[0] ?? ''} timed out (ETIMEDOUT, treated as registry unreachable)`;
|
|
194
210
|
child.kill('SIGKILL');
|
|
195
211
|
finish(null);
|
|
196
|
-
},
|
|
212
|
+
}, timeoutMs);
|
|
197
213
|
child.stdout?.on('data', (d) => { out += d.toString(); });
|
|
198
214
|
child.stderr?.on('data', (d) => { out += d.toString(); });
|
|
199
215
|
child.on('error', (err) => { out += `\nspawn error: ${err.message}`; clearTimeout(timer); finish(null); });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-probe.js","sourceRoot":"","sources":["../../../src/verify/install-probe/install-probe.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"install-probe.js","sourceRoot":"","sources":["../../../src/verify/install-probe/install-probe.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What npm could not resolve, read from its own output.
|
|
3
|
+
*
|
|
4
|
+
* A failed `npm ci --dry-run` names the package it could not satisfy in one of a
|
|
5
|
+
* few fixed shapes: a registry with no matching version (ETARGET), a registry
|
|
6
|
+
* with no such package or tarball (E404), or a lockfile that no longer satisfies
|
|
7
|
+
* the manifest (EUSAGE "Invalid:" / "Missing:"). This module lifts each named
|
|
8
|
+
* package and the version/range npm asked for, so the probe's gate entry can say
|
|
9
|
+
* WHAT a delivery is waiting on rather than only that it is waiting.
|
|
10
|
+
*
|
|
11
|
+
* Pure: string in, list out. An output that names nothing yields an empty list
|
|
12
|
+
* -- the caller then knows the failure is one it cannot name, never a guess.
|
|
13
|
+
*
|
|
14
|
+
* @module npm-unresolved
|
|
15
|
+
*/
|
|
16
|
+
/** One package and the version (or range) npm could not resolve for it. */
|
|
17
|
+
export interface UnresolvedSpec {
|
|
18
|
+
/** Package name, e.g. `@telora/daemon-core`. */
|
|
19
|
+
name: string;
|
|
20
|
+
/** The version or range as npm stated it, e.g. `^0.2.102` or `0.2.102`. */
|
|
21
|
+
spec: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Every package@spec npm's output names as unresolvable, deduped and in order of
|
|
25
|
+
* first mention. Empty when the output names none.
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseUnresolvedSpecs(output: string): UnresolvedSpec[];
|
|
28
|
+
/**
|
|
29
|
+
* The exact version a spec pins, or null when it is a range this module does not
|
|
30
|
+
* reduce. `0.2.102`, `^0.2.102`, `~0.2.102`, `>=0.2.102`, `v0.2.102` -> `0.2.102`.
|
|
31
|
+
* A compound range (`1.x`, `>=1 <2`, `*`) is NOT reduced: the caller must not
|
|
32
|
+
* act on a version it had to guess.
|
|
33
|
+
*/
|
|
34
|
+
export declare function pinnedVersion(spec: string): string | null;
|
|
35
|
+
/** `name@spec` joined for display. */
|
|
36
|
+
export declare function formatUnresolved(u: UnresolvedSpec): string;
|
|
37
|
+
//# sourceMappingURL=npm-unresolved.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-unresolved.d.ts","sourceRoot":"","sources":["../../../src/verify/install-probe/npm-unresolved.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAwBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAkBrE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED,sCAAsC;AACtC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/verify/install-probe/npm-unresolved.test.ts
|
|
3
|
+
// PINNED-BY-END
|
|
4
|
+
// A package name: optionally scoped, then the bare name. Anchored per use.
|
|
5
|
+
const NAME = '(@[a-z0-9][\\w.-]*\\/[a-z0-9][\\w.-]*|[a-z0-9][\\w.-]*)';
|
|
6
|
+
// A version or range npm prints after the `@`: no whitespace, no closing quote.
|
|
7
|
+
const SPEC = '([^\\s\'"`]+?)';
|
|
8
|
+
const PATTERNS = [
|
|
9
|
+
// ETARGET: "notarget No matching version found for @telora/daemon-core@^0.2.102."
|
|
10
|
+
new RegExp(`No matching version found for ${NAME}@${SPEC}\\.?(?:\\s|$)`, 'g'),
|
|
11
|
+
// E404: "404 '@telora/daemon-core@0.2.102' is not in this registry."
|
|
12
|
+
new RegExp(`'${NAME}@${SPEC}' is not in this registry`, 'g'),
|
|
13
|
+
// EUSAGE desync: "Invalid: lock file's @telora/daemon-core@0.2.100 does not satisfy @telora/daemon-core@^0.2.102"
|
|
14
|
+
new RegExp(`does not satisfy ${NAME}@${SPEC}(?:\\s|$)`, 'g'),
|
|
15
|
+
// EUSAGE desync: "Missing: @telora/daemon-core@0.2.102 from lock file"
|
|
16
|
+
new RegExp(`Missing: ${NAME}@${SPEC} from lock file`, 'g'),
|
|
17
|
+
];
|
|
18
|
+
// E404 on a lockfile-resolved tarball, in the npmjs layout or Gitea's:
|
|
19
|
+
// "404 Not Found - GET https://host/@telora/daemon-core/-/daemon-core-0.2.102.tgz"
|
|
20
|
+
// "404 Not Found - GET https://host/api/packages/o/npm/%40telora%2Fdaemon-core/-/0.2.102/daemon-core-0.2.102.tgz"
|
|
21
|
+
// (the scope's `@` and `/` may each be URL-encoded).
|
|
22
|
+
const TARBALL_404 = /404 Not Found - GET \S*?\/(?:@|%40)([a-z0-9][\w.-]*)(?:\/|%2[fF])([a-z0-9][\w.-]*)\/-\/(?:[\w.+-]+\/)?[\w.-]+?-(\d+\.\d+\.\d+[\w.+-]*?)\.tgz/g;
|
|
23
|
+
/**
|
|
24
|
+
* Every package@spec npm's output names as unresolvable, deduped and in order of
|
|
25
|
+
* first mention. Empty when the output names none.
|
|
26
|
+
*/
|
|
27
|
+
export function parseUnresolvedSpecs(output) {
|
|
28
|
+
const seen = new Set();
|
|
29
|
+
const found = [];
|
|
30
|
+
const add = (at, name, spec) => {
|
|
31
|
+
const key = `${name}@${spec}`;
|
|
32
|
+
if (seen.has(key))
|
|
33
|
+
return;
|
|
34
|
+
seen.add(key);
|
|
35
|
+
found.push({ at, spec: { name, spec } });
|
|
36
|
+
};
|
|
37
|
+
const hay = output ?? '';
|
|
38
|
+
for (const re of PATTERNS) {
|
|
39
|
+
for (const m of hay.matchAll(re))
|
|
40
|
+
add(m.index ?? 0, m[1] ?? '', (m[2] ?? '').replace(/\.$/, ''));
|
|
41
|
+
}
|
|
42
|
+
for (const m of hay.matchAll(TARBALL_404))
|
|
43
|
+
add(m.index ?? 0, `@${m[1]}/${m[2]}`, m[3] ?? '');
|
|
44
|
+
return found
|
|
45
|
+
.filter(f => f.spec.name !== '' && f.spec.spec !== '')
|
|
46
|
+
.sort((a, b) => a.at - b.at)
|
|
47
|
+
.map(f => f.spec);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The exact version a spec pins, or null when it is a range this module does not
|
|
51
|
+
* reduce. `0.2.102`, `^0.2.102`, `~0.2.102`, `>=0.2.102`, `v0.2.102` -> `0.2.102`.
|
|
52
|
+
* A compound range (`1.x`, `>=1 <2`, `*`) is NOT reduced: the caller must not
|
|
53
|
+
* act on a version it had to guess.
|
|
54
|
+
*/
|
|
55
|
+
export function pinnedVersion(spec) {
|
|
56
|
+
const m = /^(?:\^|~|>=|=|v)?(\d+\.\d+\.\d+(?:-[\w.]+)?)$/.exec(spec.trim());
|
|
57
|
+
return m ? (m[1] ?? null) : null;
|
|
58
|
+
}
|
|
59
|
+
/** `name@spec` joined for display. */
|
|
60
|
+
export function formatUnresolved(u) {
|
|
61
|
+
return `${u.name}@${u.spec}`;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=npm-unresolved.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm-unresolved.js","sourceRoot":"","sources":["../../../src/verify/install-probe/npm-unresolved.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-on-guards.d.ts","sourceRoot":"","sources":["../../../src/verify/run-selection/default-on-guards.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"default-on-guards.d.ts","sourceRoot":"","sources":["../../../src/verify/run-selection/default-on-guards.ts"],"names":[],"mappings":"AA2CA,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAsJjF,8EAA8E;AAC9E,wBAAgB,6BAA6B,IAAI,IAAI,CAMpD;AAED,0GAA0G;AAC1G,wBAAgB,2BAA2B,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAEhF;AAED,sHAAsH;AACtH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEpE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE/D;AAED,4CAA4C;AAC5C,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEnE;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAS3F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,IAAI,CA0C1F;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAYzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAqBzH;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAc3F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAuBxG"}
|
|
@@ -1,23 +1,5 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by: packages/daemon/src/
|
|
3
|
-
// packages/daemon/src/integration/explicit-verdict-invalidation-restart.test.ts,
|
|
4
|
-
// packages/daemon/src/integration/explicit-verdict-reuse.test.ts,
|
|
5
|
-
// packages/daemon/src/integration/focus-commit-verdict-scenario.test.ts,
|
|
6
|
-
// packages/daemon/src/integration/held-route-pull-dispatch.test.ts,
|
|
7
|
-
// packages/daemon/src/integration/review-verdict-ruling-release.test.ts,
|
|
8
|
-
// packages/daemon/src/integration/shortfall-ruling-disposes-proposals-regression.test.ts,
|
|
9
|
-
// packages/daemon/src/integration/shortfall-ruling-release.test.ts,
|
|
10
|
-
// packages/daemon/src/verify/deterministic-gate/verify-unprovisioned-worktree.test.ts,
|
|
11
|
-
// packages/daemon/src/verify/engine/verification-commit-sharing.test.ts,
|
|
12
|
-
// packages/daemon/src/verify/gate-config/verification-run-config-source.test.ts,
|
|
13
|
-
// packages/daemon/src/verify/outcome-routing/verification-model-unavailable-hold.test.ts,
|
|
14
|
-
// packages/daemon/src/verify/run-selection/commit-verdict-pull.test.ts,
|
|
15
|
-
// packages/daemon/src/verify/run-selection/credit-rearm.test.ts,
|
|
16
|
-
// packages/daemon/src/verify/run-selection/reselection-log-line.test.ts,
|
|
17
|
-
// packages/daemon/src/verify/run-selection/verification-default-on.test.ts,
|
|
18
|
-
// packages/daemon/src/verify/run-selection/verification-tick-product-scoping.test.ts,
|
|
19
|
-
// packages/daemon/src/verify/shortfalls/shortfall-rulings.test.ts,
|
|
20
|
-
// packages/daemon/src/worktree/worktree-package-provisioning.test.ts
|
|
2
|
+
// Pinned by: 21 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/verify/run-selection/default-on-guards.ts
|
|
21
3
|
// PINNED-BY-END
|
|
22
4
|
/**
|
|
23
5
|
* The default-on scan's steady-state re-run guards: what a delivery sitting in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-on-guards.js","sourceRoot":"","sources":["../../../src/verify/run-selection/default-on-guards.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"default-on-guards.js","sourceRoot":"","sources":["../../../src/verify/run-selection/default-on-guards.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
*
|
|
10
10
|
* `deliveryId` names the delivery the verify is judging, so the actionable-work
|
|
11
11
|
* predicate can withhold exactly that delivery (see {@link verifyHeldDeliveryIds}).
|
|
12
|
+
* `maxHoldMs` is the owner's kill timeout -- how long its process can live -- so a
|
|
13
|
+
* waiter can bound its wait by it ({@link verifyHoldOutlastsMs}).
|
|
12
14
|
*/
|
|
13
|
-
export declare function acquireVerifyHold(worktreePath: string, deliveryId?: string): () => void;
|
|
15
|
+
export declare function acquireVerifyHold(worktreePath: string, deliveryId?: string, maxHoldMs?: number): () => void;
|
|
14
16
|
/**
|
|
15
17
|
* The delivery ids the in-flight verifies in `worktreePath` are judging. Empty
|
|
16
18
|
* when the worktree is not held, or when its holds named no delivery.
|
|
@@ -24,7 +26,26 @@ export declare function verifyHeldDeliveryIds(worktreePath: string): ReadonlySet
|
|
|
24
26
|
* verify in one focus's worktree never blocks a commit in another's.
|
|
25
27
|
*/
|
|
26
28
|
export declare function isWorktreeUnderVerify(worktreePath: string): boolean;
|
|
27
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* How long, from `now`, the holds standing on `worktreePath` can still stand: the
|
|
31
|
+
* latest deadline among them, each its acquisition plus the kill timeout its owner
|
|
32
|
+
* declared; a hold whose owner declared none counts as standing `undeclaredMs` more.
|
|
33
|
+
* 0 when nothing holds the worktree. A wait bounded by at least this never ends
|
|
34
|
+
* before a legitimate hold's own timeout ends it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function verifyHoldOutlastsMs(worktreePath: string, undeclaredMs: number, now: number): number;
|
|
37
|
+
/**
|
|
38
|
+
* Resolve once no verify holds `worktreePath` -- at once when none does -- or when
|
|
39
|
+
* `maxWaitMs` elapses first ('timed_out'). The bound is a backstop, not the
|
|
40
|
+
* expected path: every hold is released when its verify process exits, and that
|
|
41
|
+
* process is killed at its own timeout, so a wait bounded past that timeout
|
|
42
|
+
* ({@link verifyHoldOutlastsMs}) outlives the bound only when a hold leaked. A gate
|
|
43
|
+
* run waits here before it takes a verification slot, so it does not start in a
|
|
44
|
+
* worktree another verify is judging -- nor after a timed-out wait, which ends
|
|
45
|
+
* that dispatch unstarted (verify/engine/verification-engine.ts).
|
|
46
|
+
*/
|
|
47
|
+
export declare function awaitVerifyHoldRelease(worktreePath: string, maxWaitMs: number): Promise<'released' | 'timed_out'>;
|
|
48
|
+
/** Test seam: clear all holds between cases (anyone waiting on a release is woken). */
|
|
28
49
|
export declare function __resetVerifyHolds(): void;
|
|
29
50
|
/** The probe {@link runWorktreeMutationUnderInterlock} decides over; production binds {@link isWorktreeUnderVerify}. */
|
|
30
51
|
export interface WorktreeMutationInterlockDeps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-interlock.d.ts","sourceRoot":"","sources":["../../src/worktree/verify-interlock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"verify-interlock.d.ts","sourceRoot":"","sources":["../../src/worktree/verify-interlock.ts"],"names":[],"mappings":"AAyGA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,IAAI,CAyB3G;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAE/E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAMpG;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,CAqBjH;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,IAAI,IAAI,CAKzC;AAED,wHAAwH;AACxH,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,qBAAqB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CACnE;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,IAChC;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AAEnC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iCAAiC,CAAC,CAAC,EACjD,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,EACf,IAAI,EAAE,6BAA6B,GAClC,sBAAsB,CAAC,CAAC,CAAC,CAM3B"}
|