@telora/daemon 0.24.40 → 0.24.55
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 +9 -3
- package/dist/completion/completion-event/unfinished-work.d.ts +3 -3
- package/dist/completion/review-cycle-budget/review-loop-detection.d.ts.map +1 -1
- package/dist/completion/review-cycle-budget/review-loop-detection.js +2 -1
- package/dist/completion/review-cycle-budget/review-loop-detection.js.map +1 -1
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts +1 -1
- 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 +2 -3
- package/dist/completion/review-exit-holds/review-exit-verdict-gate.js.map +1 -1
- package/dist/completion/state-cascade/focus-next-step-read.d.ts +38 -0
- package/dist/completion/state-cascade/focus-next-step-read.d.ts.map +1 -0
- package/dist/completion/state-cascade/focus-next-step-read.js +188 -0
- package/dist/completion/state-cascade/focus-next-step-read.js.map +1 -0
- package/dist/completion/state-cascade/review-request-gate.d.ts.map +1 -1
- package/dist/completion/state-cascade/review-request-gate.js +1 -0
- package/dist/completion/state-cascade/review-request-gate.js.map +1 -1
- package/dist/completion/state-cascade/review-request-next-step.d.ts +56 -0
- package/dist/completion/state-cascade/review-request-next-step.d.ts.map +1 -0
- package/dist/completion/state-cascade/review-request-next-step.js +47 -0
- package/dist/completion/state-cascade/review-request-next-step.js.map +1 -0
- package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts +1 -1
- package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts.map +1 -1
- package/dist/completion/state-cascade/review-verify-judgment-gate.js +1 -0
- package/dist/completion/state-cascade/review-verify-judgment-gate.js.map +1 -1
- package/dist/completion/state-cascade/state-cascade.d.ts +12 -7
- package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade/state-cascade.js +36 -105
- package/dist/completion/state-cascade/state-cascade.js.map +1 -1
- package/dist/composition/commit-gate-context.d.ts.map +1 -1
- package/dist/composition/commit-gate-context.js +1 -0
- package/dist/composition/commit-gate-context.js.map +1 -1
- package/dist/composition/daemon-contexts.js +1 -1
- package/dist/composition/execution-migrations-context.d.ts.map +1 -1
- package/dist/composition/execution-migrations-context.js +3 -1
- package/dist/composition/execution-migrations-context.js.map +1 -1
- package/dist/composition/execution-process-context.js +1 -1
- package/dist/composition/execution-recovery-context.d.ts +4 -3
- package/dist/composition/execution-recovery-context.d.ts.map +1 -1
- package/dist/composition/execution-recovery-context.js +6 -3
- package/dist/composition/execution-recovery-context.js.map +1 -1
- package/dist/composition/execution-worktree-context.js +1 -1
- package/dist/composition/focus-next-step-context.d.ts +19 -0
- package/dist/composition/focus-next-step-context.d.ts.map +1 -0
- package/dist/composition/focus-next-step-context.js +51 -0
- package/dist/composition/focus-next-step-context.js.map +1 -0
- package/dist/composition/runtime-contexts.d.ts.map +1 -1
- package/dist/composition/runtime-contexts.js +6 -18
- package/dist/composition/runtime-contexts.js.map +1 -1
- package/dist/composition/runtime-poll-context.d.ts +8 -53
- package/dist/composition/runtime-poll-context.d.ts.map +1 -1
- package/dist/composition/runtime-poll-context.js +35 -94
- package/dist/composition/runtime-poll-context.js.map +1 -1
- package/dist/composition/runtime-prd-context.d.ts +8 -0
- package/dist/composition/runtime-prd-context.d.ts.map +1 -1
- package/dist/composition/runtime-prd-context.js +32 -0
- package/dist/composition/runtime-prd-context.js.map +1 -1
- package/dist/composition/runtime-spawn-pass-context.d.ts.map +1 -1
- package/dist/composition/runtime-spawn-pass-context.js +2 -3
- package/dist/composition/runtime-spawn-pass-context.js.map +1 -1
- package/dist/composition/state-cascade-context.d.ts +2 -0
- package/dist/composition/state-cascade-context.d.ts.map +1 -1
- package/dist/composition/state-cascade-context.js +9 -0
- package/dist/composition/state-cascade-context.js.map +1 -1
- package/dist/composition/tower-pass-context.d.ts +6 -1
- package/dist/composition/tower-pass-context.d.ts.map +1 -1
- package/dist/composition/tower-pass-context.js +12 -2
- package/dist/composition/tower-pass-context.js.map +1 -1
- package/dist/composition/verification-context.d.ts.map +1 -1
- package/dist/composition/verification-context.js +15 -3
- package/dist/composition/verification-context.js.map +1 -1
- package/dist/config/live-daemon-config.js +1 -1
- package/dist/daemon-state/awaiting-slot.d.ts.map +1 -1
- package/dist/daemon-state/awaiting-slot.js +2 -0
- package/dist/daemon-state/awaiting-slot.js.map +1 -1
- package/dist/daemon-state/branch-removal-record.d.ts +30 -0
- package/dist/daemon-state/branch-removal-record.d.ts.map +1 -0
- package/dist/daemon-state/branch-removal-record.js +103 -0
- package/dist/daemon-state/branch-removal-record.js.map +1 -0
- package/dist/daemon-state/focus-team-state.js +1 -1
- package/dist/delivery/advance-hold.d.ts +8 -19
- package/dist/delivery/advance-hold.d.ts.map +1 -1
- package/dist/delivery/advance-hold.js +11 -36
- package/dist/delivery/advance-hold.js.map +1 -1
- package/dist/delivery/commit-verdict-hold.d.ts +1 -1
- package/dist/delivery/commit-verdict-hold.js +1 -1
- package/dist/delivery/recorded-concerns.d.ts.map +1 -1
- package/dist/delivery/recorded-concerns.js +0 -2
- package/dist/delivery/recorded-concerns.js.map +1 -1
- package/dist/directive/directive-queue.d.ts +4 -16
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +4 -12
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +1 -1
- package/dist/directive/phase-sync.js +1 -1
- package/dist/focus/crash-recovery.d.ts +10 -32
- package/dist/focus/crash-recovery.d.ts.map +1 -1
- package/dist/focus/crash-recovery.js +55 -150
- package/dist/focus/crash-recovery.js.map +1 -1
- package/dist/focus/daemon-contexts-runtime.d.ts +3 -3
- package/dist/focus/daemon-contexts-runtime.d.ts.map +1 -1
- package/dist/focus/daemon-contexts.js +1 -1
- package/dist/focus/directive-executor.d.ts.map +1 -1
- package/dist/focus/directive-executor.js +3 -7
- package/dist/focus/directive-executor.js.map +1 -1
- package/dist/focus/failed-head-rework-start.d.ts +61 -0
- package/dist/focus/failed-head-rework-start.d.ts.map +1 -0
- package/dist/focus/failed-head-rework-start.js +52 -0
- package/dist/focus/failed-head-rework-start.js.map +1 -0
- package/dist/focus/focus-activity-record.d.ts +4 -2
- package/dist/focus/focus-activity-record.d.ts.map +1 -1
- package/dist/focus/focus-activity-record.js +4 -2
- package/dist/focus/focus-activity-record.js.map +1 -1
- package/dist/focus/focus-liveness-pass.d.ts +62 -0
- package/dist/focus/focus-liveness-pass.d.ts.map +1 -0
- package/dist/focus/focus-liveness-pass.js +197 -0
- package/dist/focus/focus-liveness-pass.js.map +1 -0
- package/dist/focus/focus-poller-spawn.js +2 -2
- package/dist/focus/focus-poller-spawn.js.map +1 -1
- package/dist/focus/focus-poller-state.js +1 -1
- package/dist/focus/live-branch-preservation.d.ts +123 -0
- package/dist/focus/live-branch-preservation.d.ts.map +1 -0
- package/dist/focus/live-branch-preservation.js +192 -0
- package/dist/focus/live-branch-preservation.js.map +1 -0
- package/dist/focus/migration-claim-pass.d.ts +2 -0
- package/dist/focus/migration-claim-pass.d.ts.map +1 -1
- package/dist/focus/migration-claim-pass.js +57 -22
- package/dist/focus/migration-claim-pass.js.map +1 -1
- package/dist/focus/migration-held-set-publish.d.ts +28 -2
- package/dist/focus/migration-held-set-publish.d.ts.map +1 -1
- package/dist/focus/migration-held-set-publish.js +14 -0
- package/dist/focus/migration-held-set-publish.js.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.js +2 -0
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
- package/dist/focus/pending-spawn-review-next-step.d.ts +5 -11
- package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
- package/dist/focus/pending-spawn-review-next-step.js +26 -72
- package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
- package/dist/focus/ready-focus-spawn-action.d.ts.map +1 -1
- package/dist/focus/ready-focus-spawn-action.js +2 -2
- package/dist/focus/ready-focus-spawn-action.js.map +1 -1
- package/dist/focus/review-refire-gate.d.ts +25 -0
- package/dist/focus/review-refire-gate.d.ts.map +1 -0
- package/dist/focus/review-refire-gate.js +68 -0
- package/dist/focus/review-refire-gate.js.map +1 -0
- package/dist/focus/verify-routing-passes.d.ts +8 -11
- package/dist/focus/verify-routing-passes.d.ts.map +1 -1
- package/dist/focus/verify-routing-passes.js +1 -2
- package/dist/focus/verify-routing-passes.js.map +1 -1
- package/dist/git/types.js +1 -1
- package/dist/prd/arm-refusal-streak.d.ts +102 -0
- package/dist/prd/arm-refusal-streak.d.ts.map +1 -0
- package/dist/prd/arm-refusal-streak.js +136 -0
- package/dist/prd/arm-refusal-streak.js.map +1 -0
- package/dist/prd/arm-refusal.d.ts.map +1 -1
- package/dist/prd/arm-refusal.js +7 -4
- package/dist/prd/arm-refusal.js.map +1 -1
- package/dist/prd/controller-shared.d.ts +40 -1
- package/dist/prd/controller-shared.d.ts.map +1 -1
- package/dist/prd/controller-shared.js +28 -2
- package/dist/prd/controller-shared.js.map +1 -1
- package/dist/prd/controller.d.ts.map +1 -1
- package/dist/prd/controller.js +3 -1
- package/dist/prd/controller.js.map +1 -1
- package/dist/prd/frontier-arming.d.ts +10 -2
- package/dist/prd/frontier-arming.d.ts.map +1 -1
- package/dist/prd/frontier-arming.js +91 -7
- package/dist/prd/frontier-arming.js.map +1 -1
- package/dist/prd/scoping-prompt.d.ts +8 -0
- package/dist/prd/scoping-prompt.d.ts.map +1 -1
- package/dist/prd/scoping-prompt.js +18 -0
- package/dist/prd/scoping-prompt.js.map +1 -1
- package/dist/prompt-sections/qa-failure-section.d.ts.map +1 -1
- package/dist/prompt-sections/qa-failure-section.js +3 -1
- package/dist/prompt-sections/qa-failure-section.js.map +1 -1
- package/dist/queries/api-client/shared.js +1 -1
- package/dist/queries/deliveries/deliveries.js +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts +4 -3
- package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state/delivery-gate-state.js +1 -1
- package/dist/queries/escalations/escalations.d.ts.map +1 -1
- package/dist/queries/escalations/escalations.js +0 -1
- package/dist/queries/escalations/escalations.js.map +1 -1
- package/dist/queries/escalations/incident-record.d.ts.map +1 -1
- package/dist/queries/escalations/incident-record.js +1 -0
- package/dist/queries/escalations/incident-record.js.map +1 -1
- package/dist/queries/focus-review/review-criterion-verdicts.d.ts.map +1 -1
- package/dist/queries/focus-review/review-criterion-verdicts.js +1 -0
- package/dist/queries/focus-review/review-criterion-verdicts.js.map +1 -1
- package/dist/queries/focuses/focus-discovery.js +1 -1
- package/dist/queries/migrations/live-focus-branches.d.ts +23 -0
- package/dist/queries/migrations/live-focus-branches.d.ts.map +1 -1
- package/dist/queries/migrations/live-focus-branches.js +32 -1
- package/dist/queries/migrations/live-focus-branches.js.map +1 -1
- package/dist/queries/prd/prd.d.ts.map +1 -1
- package/dist/queries/prd/prd.js +1 -16
- package/dist/queries/prd/prd.js.map +1 -1
- package/dist/queries/qa-packets/focus-qa-failure.d.ts +18 -0
- package/dist/queries/qa-packets/focus-qa-failure.d.ts.map +1 -1
- package/dist/queries/qa-packets/focus-qa-failure.js +14 -1
- package/dist/queries/qa-packets/focus-qa-failure.js.map +1 -1
- package/dist/queries/tower-decisions/tower-decisions.d.ts.map +1 -1
- package/dist/queries/tower-decisions/tower-decisions.js +1 -0
- package/dist/queries/tower-decisions/tower-decisions.js.map +1 -1
- package/dist/queries/verification/verification.d.ts +10 -0
- package/dist/queries/verification/verification.d.ts.map +1 -1
- package/dist/queries/verification/verification.js +1 -1
- package/dist/queries/verification/verification.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +1 -18
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/supervision/escalation-suppression.js +1 -1
- package/dist/supervision/failed-head-rerun.d.ts +7 -0
- package/dist/supervision/failed-head-rerun.d.ts.map +1 -0
- package/dist/supervision/failed-head-rerun.js +41 -0
- package/dist/supervision/failed-head-rerun.js.map +1 -0
- package/dist/supervision/focus-delivery-aggregate-phase.js +1 -1
- package/dist/supervision/focus-delivery-aggregate-phase.js.map +1 -1
- package/dist/supervision/focus-liveness.d.ts +89 -0
- package/dist/supervision/focus-liveness.d.ts.map +1 -0
- package/dist/supervision/focus-liveness.js +94 -0
- package/dist/supervision/focus-liveness.js.map +1 -0
- package/dist/supervision/focus-next-step.d.ts +175 -0
- package/dist/supervision/focus-next-step.d.ts.map +1 -0
- package/dist/supervision/focus-next-step.js +129 -0
- package/dist/supervision/focus-next-step.js.map +1 -0
- package/dist/supervision/prd-frontier-rule.d.ts +52 -0
- package/dist/supervision/prd-frontier-rule.d.ts.map +1 -0
- package/dist/supervision/prd-frontier-rule.js +51 -0
- package/dist/supervision/prd-frontier-rule.js.map +1 -0
- package/dist/supervision/prt-frontier.d.ts +22 -7
- package/dist/supervision/prt-frontier.d.ts.map +1 -1
- package/dist/supervision/prt-frontier.js +17 -7
- package/dist/supervision/prt-frontier.js.map +1 -1
- package/dist/supervision/review-loop-detector.d.ts.map +1 -1
- package/dist/supervision/review-loop-detector.js +2 -1
- package/dist/supervision/review-loop-detector.js.map +1 -1
- package/dist/supervision/spawn-cooldown.js +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-focus-health.d.ts +14 -0
- package/dist/supervision/stop-rows-focus-health.d.ts.map +1 -1
- package/dist/supervision/stop-rows-focus-health.js +32 -0
- package/dist/supervision/stop-rows-focus-health.js.map +1 -1
- package/dist/supervision/stop-rows-spawn.d.ts +3 -2
- package/dist/supervision/stop-rows-spawn.d.ts.map +1 -1
- package/dist/supervision/stop-rows-spawn.js +9 -6
- package/dist/supervision/stop-rows-spawn.js.map +1 -1
- package/dist/supervision/team-work.js +1 -1
- package/dist/supervision/team-work.js.map +1 -1
- package/dist/testing/fixtures/api-client.js +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/migration-namespace-repo.d.ts.map +1 -1
- package/dist/testing/fixtures/migration-namespace-repo.js +1 -0
- package/dist/testing/fixtures/migration-namespace-repo.js.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.d.ts +24 -0
- package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.js +47 -20
- package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
- package/dist/testing/fixtures/recording-api-client.js +1 -1
- package/dist/testing/fixtures/review-loop.d.ts.map +1 -1
- package/dist/testing/fixtures/review-loop.js +2 -0
- package/dist/testing/fixtures/review-loop.js.map +1 -1
- package/dist/testing/fixtures/verification-deps.d.ts +27 -0
- package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/verification-deps.js +77 -1
- package/dist/testing/fixtures/verification-deps.js.map +1 -1
- package/dist/testing/fixtures/vitest-failure-log.d.ts.map +1 -1
- package/dist/testing/fixtures/vitest-failure-log.js +1 -0
- package/dist/testing/fixtures/vitest-failure-log.js.map +1 -1
- package/dist/tower/tower-admission.d.ts +46 -9
- package/dist/tower/tower-admission.d.ts.map +1 -1
- package/dist/tower/tower-admission.js +59 -9
- package/dist/tower/tower-admission.js.map +1 -1
- package/dist/tower/tower-graph.d.ts.map +1 -1
- package/dist/tower/tower-graph.js +2 -1
- package/dist/tower/tower-graph.js.map +1 -1
- package/dist/tower/tower-heartbeat-status.d.ts +1 -1
- package/dist/tower/tower-heartbeat-status.d.ts.map +1 -1
- package/dist/tower/tower-heartbeat-status.js.map +1 -1
- package/dist/tower/tower-pass-standing.d.ts +11 -0
- package/dist/tower/tower-pass-standing.d.ts.map +1 -1
- package/dist/tower/tower-pass-standing.js +33 -1
- package/dist/tower/tower-pass-standing.js.map +1 -1
- package/dist/tower/tower-pass.d.ts +28 -4
- package/dist/tower/tower-pass.d.ts.map +1 -1
- package/dist/tower/tower-pass.js +60 -18
- package/dist/tower/tower-pass.js.map +1 -1
- package/dist/tower/tower-spawn-intent.d.ts.map +1 -1
- package/dist/tower/tower-spawn-intent.js +3 -2
- package/dist/tower/tower-spawn-intent.js.map +1 -1
- package/dist/tower/tower-supervisor-history.d.ts.map +1 -1
- package/dist/tower/tower-supervisor-history.js +2 -1
- package/dist/tower/tower-supervisor-history.js.map +1 -1
- package/dist/tower/tower-supervisor-prompt.d.ts.map +1 -1
- package/dist/tower/tower-supervisor-prompt.js +40 -8
- package/dist/tower/tower-supervisor-prompt.js.map +1 -1
- package/dist/tower/tower-supervisor-session.d.ts.map +1 -1
- package/dist/tower/tower-supervisor-session.js +1 -0
- package/dist/tower/tower-supervisor-session.js.map +1 -1
- package/dist/types/issue-status.d.ts.map +1 -1
- package/dist/types/issue-status.js +6 -1
- package/dist/types/issue-status.js.map +1 -1
- package/dist/verify/attribution/code-failure-evidence.d.ts +77 -0
- package/dist/verify/attribution/code-failure-evidence.d.ts.map +1 -0
- package/dist/verify/attribution/code-failure-evidence.js +92 -0
- package/dist/verify/attribution/code-failure-evidence.js.map +1 -0
- package/dist/verify/attribution/verification-attribution.d.ts +18 -0
- package/dist/verify/attribution/verification-attribution.d.ts.map +1 -1
- package/dist/verify/attribution/verification-attribution.js +49 -2
- package/dist/verify/attribution/verification-attribution.js.map +1 -1
- package/dist/verify/attribution/verification-baseline.d.ts.map +1 -1
- package/dist/verify/attribution/verification-baseline.js +1 -0
- package/dist/verify/attribution/verification-baseline.js.map +1 -1
- package/dist/verify/attribution/verification-diagnostics.d.ts +10 -0
- package/dist/verify/attribution/verification-diagnostics.d.ts.map +1 -1
- package/dist/verify/attribution/verification-diagnostics.js +39 -10
- package/dist/verify/attribution/verification-diagnostics.js.map +1 -1
- package/dist/verify/deterministic-gate/verification-deterministic.d.ts +19 -0
- package/dist/verify/deterministic-gate/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/deterministic-gate/verification-deterministic.js +1 -1
- package/dist/verify/deterministic-gate/verification-deterministic.js.map +1 -1
- package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
- package/dist/verify/engine/verification-commit-sharing.js +36 -4
- package/dist/verify/engine/verification-commit-sharing.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-engine.d.ts.map +1 -1
- package/dist/verify/engine/verification-engine.js +6 -3
- package/dist/verify/engine/verification-engine.js.map +1 -1
- package/dist/verify/escaped-tests/escaped-test-run.d.ts +5 -1
- package/dist/verify/escaped-tests/escaped-test-run.d.ts.map +1 -1
- package/dist/verify/escaped-tests/escaped-test-run.js +24 -2
- package/dist/verify/escaped-tests/escaped-test-run.js.map +1 -1
- package/dist/verify/failing-test-rerun/failing-test-retry.d.ts +4 -1
- package/dist/verify/failing-test-rerun/failing-test-retry.d.ts.map +1 -1
- package/dist/verify/failing-test-rerun/failing-test-retry.js.map +1 -1
- package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
- package/dist/verify/gate-verdicts/commit-verdict-record.js.map +1 -1
- package/dist/verify/gate-verdicts/no-verdict-record.d.ts +27 -3
- package/dist/verify/gate-verdicts/no-verdict-record.d.ts.map +1 -1
- package/dist/verify/gate-verdicts/no-verdict-record.js +36 -6
- package/dist/verify/gate-verdicts/no-verdict-record.js.map +1 -1
- package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
- package/dist/verify/outcome-routing/verification-rework-issue.js +5 -4
- package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
- package/dist/verify/run-selection/default-on-guards.d.ts +15 -4
- package/dist/verify/run-selection/default-on-guards.d.ts.map +1 -1
- package/dist/verify/run-selection/default-on-guards.js +14 -4
- package/dist/verify/run-selection/default-on-guards.js.map +1 -1
- package/dist/verify/run-selection/explicit-next-step-gate.d.ts +39 -0
- package/dist/verify/run-selection/explicit-next-step-gate.d.ts.map +1 -0
- package/dist/verify/run-selection/explicit-next-step-gate.js +70 -0
- package/dist/verify/run-selection/explicit-next-step-gate.js.map +1 -0
- package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts +0 -9
- package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts.map +1 -1
- package/dist/verify/run-selection/pre-review-gate-dispatch.js +21 -62
- package/dist/verify/run-selection/pre-review-gate-dispatch.js.map +1 -1
- package/dist/verify/run-selection/reselection-log-line.d.ts +1 -1
- package/dist/verify/run-selection/reselection-log-line.d.ts.map +1 -1
- package/dist/verify/run-selection/reselection-log-line.js +2 -0
- package/dist/verify/run-selection/reselection-log-line.js.map +1 -1
- package/dist/verify/run-selection/verification-default-on.d.ts +32 -4
- package/dist/verify/run-selection/verification-default-on.d.ts.map +1 -1
- package/dist/verify/run-selection/verification-default-on.js +83 -19
- package/dist/verify/run-selection/verification-default-on.js.map +1 -1
- package/dist/verify/shortfalls/shortfall-park.js +1 -1
- package/dist/worktree/focus-worktree-state.js +1 -1
- package/dist/worktree/focus-worktree-state.js.map +1 -1
- package/docs/runbook-tower.md +33 -5
- package/package.json +3 -3
- package/dist/completion/state-cascade/review-next-step.d.ts +0 -107
- package/dist/completion/state-cascade/review-next-step.d.ts.map +0 -1
- package/dist/completion/state-cascade/review-next-step.js +0 -90
- package/dist/completion/state-cascade/review-next-step.js.map +0 -1
- package/dist/focus/failed-head-wedge.d.ts +0 -124
- package/dist/focus/failed-head-wedge.d.ts.map +0 -1
- package/dist/focus/failed-head-wedge.js +0 -120
- package/dist/focus/failed-head-wedge.js.map +0 -1
- package/dist/focus/stranded-review-reroute.d.ts +0 -70
- package/dist/focus/stranded-review-reroute.d.ts.map +0 -1
- package/dist/focus/stranded-review-reroute.js +0 -193
- package/dist/focus/stranded-review-reroute.js.map +0 -1
- package/dist/focus/uncommitted-work-backstop.d.ts +0 -115
- package/dist/focus/uncommitted-work-backstop.d.ts.map +0 -1
- package/dist/focus/uncommitted-work-backstop.js +0 -259
- package/dist/focus/uncommitted-work-backstop.js.map +0 -1
|
@@ -1,12 +1,11 @@
|
|
|
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/completion/state-cascade/
|
|
2
|
+
// Pinned by: packages/daemon/src/completion/state-cascade/focus-next-step-agreement.test.ts,
|
|
3
3
|
// packages/daemon/src/focus/gaps-found-hands-to-coding.test.ts,
|
|
4
4
|
// packages/daemon/src/focus/held-review-window-not-stranded.test.ts,
|
|
5
5
|
// packages/daemon/src/focus/parked-shortfall-spawn.test.ts,
|
|
6
6
|
// packages/daemon/src/focus/pending-review-approved-head.test.ts,
|
|
7
7
|
// packages/daemon/src/focus/pending-spawn-review-next-step.test.ts,
|
|
8
8
|
// packages/daemon/src/focus/unchanged-reviewed-head.test.ts,
|
|
9
|
-
// packages/daemon/src/focus/uncommitted-work-backstop.test.ts,
|
|
10
9
|
// packages/daemon/src/integration/approved-head-gate-failure-respawn-regression.test.ts,
|
|
11
10
|
// packages/daemon/src/integration/approved-head-hold-release-no-directive-regression.test.ts,
|
|
12
11
|
// packages/daemon/src/integration/approved-head-hold-release-regression.test.ts,
|
|
@@ -16,40 +15,29 @@
|
|
|
16
15
|
// packages/daemon/src/spawn/review-hold-park-shortfall.test.ts
|
|
17
16
|
// PINNED-BY-END
|
|
18
17
|
/**
|
|
19
|
-
* Pending-spawn gate: a queued NON-review spawn directive
|
|
20
|
-
* focus's next
|
|
18
|
+
* Pending-spawn gate: a queued NON-review spawn directive spawns only when the
|
|
19
|
+
* focus's ONE next step (supervision/focus-next-step.ts, read by
|
|
20
|
+
* completion/state-cascade/focus-next-step-read.ts) is a coding team. Any other
|
|
21
|
+
* answer -- a review, a gate run at HEAD, a hold, a merge, done -- drops it.
|
|
21
22
|
*
|
|
22
23
|
* processPendingSpawnFocuses (focus/focus-poller-spawn.ts) spawns a team from any
|
|
23
24
|
* queued directive. A coding directive stashed by the directive executor's
|
|
24
25
|
* no-active-team fallback can outlive the coding it was for: by the time it is
|
|
25
26
|
* consumed, every delivery is in verify with no open work. The coding lead it
|
|
26
27
|
* spawns has nothing to do, holds the focus's single team slot, and the review
|
|
27
|
-
* the cascade requests a second later cannot spawn. The
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
28
|
+
* the cascade requests a second later cannot spawn. The state cascade's review
|
|
29
|
+
* request and verify's run selection act on the same decision, so the three never
|
|
30
|
+
* name different steps for one state: a parked shortfall (no truthful commit for a
|
|
31
|
+
* coding lead until verify releases the park), a gate owed or re-run at HEAD, and
|
|
32
|
+
* uncommitted work in the worktree (a coding team: the review judges a HEAD the
|
|
33
|
+
* work is not in) are all answered there, not here.
|
|
31
34
|
*
|
|
32
|
-
* A
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* ruling) and releases the park.
|
|
39
|
-
*
|
|
40
|
-
* The coding respawn the daemon itself queues to finish a teamless armed focus's
|
|
41
|
-
* UNCOMMITTED work (directive/directive-queue.ts queueDaemonCodingRespawn, purpose
|
|
42
|
-
* 'uncommitted_work'; focus/uncommitted-work-backstop.ts) is never dropped here
|
|
43
|
-
* either: a review judges the HEAD, and the work is not in it -- the next step is
|
|
44
|
-
* the coding lead that commits it, whatever the deliveries' statuses say.
|
|
45
|
-
*
|
|
46
|
-
* A REVIEW-lineage directive is never dropped here: it is the next step. When the
|
|
47
|
-
* deliveries or issues cannot be read, the directive is DEFERRED: it stays queued
|
|
48
|
-
* and nothing spawns this poll. Spawning the coding lead on an unreadable state
|
|
49
|
-
* would diverge from the cascade, which opens the review window on the delivery
|
|
50
|
-
* census when the issue read fails -- the same mutual wait this gate exists to
|
|
51
|
-
* prevent. Usually the deferral ends on its own: the state reads again, or the
|
|
52
|
-
* review directive the cascade's window triggers replaces the queued entry.
|
|
35
|
+
* A REVIEW-lineage directive is never dropped here: the review is the next step,
|
|
36
|
+
* or the review gates its own spawn. When the focus state cannot be read, the
|
|
37
|
+
* directive is DEFERRED: it stays queued and nothing spawns this poll -- spawning
|
|
38
|
+
* on an unknown state is what this gate exists to prevent. Usually the deferral
|
|
39
|
+
* ends on its own: the state reads again, or the review directive the cascade's
|
|
40
|
+
* window triggers replaces the queued entry.
|
|
53
41
|
*
|
|
54
42
|
* The deferral is BOUNDED like every other hold on a queued directive
|
|
55
43
|
* (completion/team-teardown/session-hold.ts). Its clock belongs to the queued directive
|
|
@@ -93,8 +81,7 @@ import { NO_HUMAN_ACT } from '../queries/escalations/filing-observation.js';
|
|
|
93
81
|
import { computeCauseKey } from '../queries/escalations/cause-key.js';
|
|
94
82
|
import { spoolEscalation } from '../supervision/escalation-spool.js';
|
|
95
83
|
import { FAIL_STOP_EXIT_CODE } from '../daemon-state/fail-stop.js';
|
|
96
|
-
import {
|
|
97
|
-
import { deriveFocusDeliveryAggregatePhase } from '../supervision/focus-delivery-aggregate-phase.js';
|
|
84
|
+
import { describeFocusNextStep, } from '../supervision/focus-next-step.js';
|
|
98
85
|
import { liveDaemonConfig as pollerConfig } from '../config/live-daemon-config.js';
|
|
99
86
|
import { createLogger } from '../log/daemon-log.js';
|
|
100
87
|
import { evaluateStop } from '../supervision/stop-registry.js';
|
|
@@ -130,34 +117,6 @@ export function __resetUnreadableDeferralsForTesting() {
|
|
|
130
117
|
function asError(err) {
|
|
131
118
|
return err instanceof Error ? err : new Error(String(err));
|
|
132
119
|
}
|
|
133
|
-
/** Read the shared review-next-step decision for the focus. */
|
|
134
|
-
async function readReviewNextStep(focus, deps) {
|
|
135
|
-
let deliveries;
|
|
136
|
-
try {
|
|
137
|
-
deliveries = await deps.getFocusDeliveries(focus.focus_id);
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
return { next: 'unreadable', what: 'deliveries', error: asError(err) };
|
|
141
|
-
}
|
|
142
|
-
const decision = await resolveReviewNextStep({
|
|
143
|
-
// State, not stamp: review_requested_at is deliberately not an input.
|
|
144
|
-
phase: deriveFocusDeliveryAggregatePhase({
|
|
145
|
-
deliveries: deliveries.map((d) => ({ executionStatus: d.executionStatus ?? null })),
|
|
146
|
-
reviewRequestedAt: null,
|
|
147
|
-
}),
|
|
148
|
-
deliveries,
|
|
149
|
-
pipelineConfig: focus.pipeline_config,
|
|
150
|
-
readIssues: () => deps.getFocusIssues(focus.focus_id),
|
|
151
|
-
readConcernIds: () => deps.readRecordedConcernIds(focus.focus_id),
|
|
152
|
-
});
|
|
153
|
-
if (decision.step === 'issues_unreadable')
|
|
154
|
-
return { next: 'unreadable', what: 'issues', error: decision.error };
|
|
155
|
-
if (decision.step === 'concerns_unreadable')
|
|
156
|
-
return { next: 'unreadable', what: 'concerns', error: decision.error };
|
|
157
|
-
if (decision.step === 'review' || decision.step === 'parked')
|
|
158
|
-
return { next: decision.step };
|
|
159
|
-
return { next: 'coding' };
|
|
160
|
-
}
|
|
161
120
|
/**
|
|
162
121
|
* The ONE escalation an expired unreadable-state deferral owes. Restoring the
|
|
163
122
|
* focus-state read and re-queuing coding work are agent work (read the daemon log,
|
|
@@ -187,7 +146,7 @@ export function buildUnreadableDeferralEscalation(expiry) {
|
|
|
187
146
|
max_ms: UNREADABLE_DEFERRAL_MAX_MS,
|
|
188
147
|
},
|
|
189
148
|
description: `A queued ${expiry.sessionType} spawn directive for focus "${expiry.focusName}" was deferred for ${elapsedSec}s ` +
|
|
190
|
-
`because its ${expiry.what} could not be read to decide
|
|
149
|
+
`because its ${expiry.what} could not be read to decide the focus's next step ` +
|
|
191
150
|
`(${expiry.error.message}). The ${Math.round(UNREADABLE_DEFERRAL_MAX_MS / 1000)}s bound lapsed, so the directive ` +
|
|
192
151
|
`is dropped, rather than spawned onto an unknown state, once this escalation is durable (recorded, or spooled ` +
|
|
193
152
|
`locally while the escalation writer was unavailable).\n\n` +
|
|
@@ -322,7 +281,7 @@ async function deferOrExpire(focus, pending, read, deps) {
|
|
|
322
281
|
if (hold.action === 'expire')
|
|
323
282
|
return fireDeferralEscalation(focus, pending, clock, read, nowMs, deps);
|
|
324
283
|
log.warn(`[focus-poller] Deferring queued ${pending.sessionType} directive for "${focus.focus_name}" -- could not read ` +
|
|
325
|
-
`${read.what} to decide
|
|
284
|
+
`${read.what} to decide the focus's next step (${read.error.message}); it stays queued and is ` +
|
|
326
285
|
`re-read next poll (deferred ${Math.round(elapsedMs / 1000)}s of a ${Math.round(UNREADABLE_DEFERRAL_MAX_MS / 1000)}s bound)`);
|
|
327
286
|
return true;
|
|
328
287
|
}
|
|
@@ -337,25 +296,20 @@ async function deferOrExpire(focus, pending, read, deps) {
|
|
|
337
296
|
*/
|
|
338
297
|
export async function pendingCodingSpawnSupersededByReview(focus, deps) {
|
|
339
298
|
const pending = getPendingSpawnDirective(focus.focus_id);
|
|
340
|
-
|
|
341
|
-
if (!pending || pending.lineage === 'review' || pending.purpose === 'uncommitted_work')
|
|
299
|
+
if (!pending || pending.lineage === 'review')
|
|
342
300
|
return false;
|
|
343
|
-
const read = await
|
|
344
|
-
if (read.
|
|
301
|
+
const read = await deps.readNextStep(focus);
|
|
302
|
+
if (!read.readable)
|
|
345
303
|
return deferOrExpire(focus, pending, read, deps);
|
|
346
304
|
deferralClocks.delete(pending); // a readable poll ends this directive's deferral
|
|
347
305
|
const hold = evaluateStop('review_next_step_spawn_hold', {
|
|
348
|
-
nextStep: read.next, deferredMs: 0, maxMs: UNREADABLE_DEFERRAL_MAX_MS,
|
|
306
|
+
nextStep: read.next.step, deferredMs: 0, maxMs: UNREADABLE_DEFERRAL_MAX_MS,
|
|
349
307
|
});
|
|
350
308
|
if (hold.action === 'spawn')
|
|
351
309
|
return false;
|
|
352
310
|
clearPendingSpawnDirective(focus.focus_id);
|
|
353
|
-
log.info(
|
|
354
|
-
|
|
355
|
-
`parked on a repeating verify shortfall and no unparked one owes work; a coding lead has nothing truthful to commit ` +
|
|
356
|
-
`until verify releases the park`
|
|
357
|
-
: `[focus-poller] Dropping queued ${pending.sessionType} directive for "${focus.focus_name}" -- every delivery is in ` +
|
|
358
|
-
`verify with no open work and review is enabled; the next actionable step is a review pass, not a coding lead`);
|
|
311
|
+
log.info(`[focus-poller] Dropping queued ${pending.sessionType} directive for "${focus.focus_name}" -- the focus's next step is ` +
|
|
312
|
+
`${describeFocusNextStep(read.next)}, not a coding lead`);
|
|
359
313
|
return true;
|
|
360
314
|
}
|
|
361
315
|
//# sourceMappingURL=pending-spawn-review-next-step.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending-spawn-review-next-step.js","sourceRoot":"","sources":["../../src/focus/pending-spawn-review-next-step.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"pending-spawn-review-next-step.js","sourceRoot":"","sources":["../../src/focus/pending-spawn-review-next-step.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,6FAA6F;AAC7F,kEAAkE;AAClE,uEAAuE;AACvE,8DAA8D;AAC9D,oEAAoE;AACpE,sEAAsE;AACtE,+DAA+D;AAC/D,2FAA2F;AAC3F,gGAAgG;AAChG,mFAAmF;AACnF,2FAA2F;AAC3F,mFAAmF;AACnF,gFAAgF;AAChF,iEAAiE;AACjE,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAEvG,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EACL,qBAAqB,GAItB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,gBAAgB,IAAI,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;AAErD,wGAAwG;AACxG,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,GAAG,MAAM,CAAC;AAEtD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,uCAAuC,GAAG,EAAE,GAAG,MAAM,CAAC;AAEnE,kHAAkH;AAClH,MAAM,CAAC,MAAM,sCAAsC,GAAG,EAAE,GAAG,MAAM,CAAC;AAElE,kFAAkF;AAClF,MAAM,CAAC,MAAM,6BAA6B,GAAG,sCAAsC,CAAC;AAEpF,gEAAgE;AAChE,MAAM,CAAC,MAAM,iCAAiC,GAAG,8CAA8C,CAAC;AAEhG;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,OAAO,eAAe,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AACrE,CAAC;AAsED;;;;;GAKG;AACH,IAAI,cAAc,GAAG,IAAI,OAAO,EAAmC,CAAC;AAEpE,8CAA8C;AAC9C,MAAM,UAAU,oCAAoC;IAClD,cAAc,GAAG,IAAI,OAAO,EAAmC,CAAC;AAClE,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAAC,MAAgC;IAChF,MAAM,cAAc,GAAG,YAAY,EAAE,cAAc,CAAC;IACpD,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;IAClH,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACvD,OAAO;QACL,cAAc;QACd,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,kBAAkB,CAAC,iBAAiB;QAChD,WAAW,EAAE,uBAAuB,CAAC,cAAc;QACnD,QAAQ,EAAE,YAAY;QACtB,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;QACnC,QAAQ,EAAE;YACR,KAAK,EAAE,iCAAiC;YACxC,SAAS,EAAE,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC;YACrD,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,MAAM,EAAE,0BAA0B;SACnC;QACD,WAAW,EACT,YAAY,MAAM,CAAC,WAAW,+BAA+B,MAAM,CAAC,SAAS,sBAAsB,UAAU,IAAI;YACjH,eAAe,MAAM,CAAC,IAAI,qDAAqD;YAC/E,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,mCAAmC;YAClH,+GAA+G;YAC/G,2DAA2D;YAC3D,iBAAiB,MAAM,CAAC,OAAO,EAAE;QACnC,YAAY,EACV,qBAAqB,MAAM,CAAC,IAAI,sBAAsB,UAAU,uBAAuB;QACzF,UAAU,EACR,sGAAsG;YACtG,4EAA4E;KAC/E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAgC,EAChC,IAAoD;IAEpD,MAAM,IAAI,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,MAAM,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,2GAA2G;AAC3G,SAAS,qBAAqB,CAAC,OAAe,EAAE,OAAyB;IACvE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,wBAAwB,CAAC,OAAO,CAAC,KAAK,OAAO;QAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACzF,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,OAAyB,EACzB,MAAgC,EAChC,KAAoB,EACpB,MAAqB,EACrB,OAAwD,EACxD,IAAoC;IAEpC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,MAAM,GACV,8BAA8B,6BAA6B,mBAAmB,MAAM,CAAC,SAAS,wBAAwB;QACtH,gCAAgC,MAAM,CAAC,QAAQ,yBAAyB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI;QAChH,UAAU,MAAM,CAAC,IAAI,+CAA+C,OAAO,CAAC,KAAK,cAAc;QAC/F,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,OAAO,CAAC,IAAI,GAAG,CAAC;IAClE,GAAG,CAAC,IAAI,CACN,kBAAkB,MAAM,CAAC,YAAY,oDAAoD,mBAAmB,IAAI;QAChH,GAAG,MAAM,gBAAgB,OAAO,CAAC,WAAW,6BAA6B,MAAM,CAAC,IAAI,sBAAsB;QAC1G,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CAC3B,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CACxB,OAAyB,EACzB,MAAgC,EAChC,KAAoB,EACpB,MAAyC,EACzC,IAAoC;IAEpC,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,gCAAgC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/H,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,eAAe,CACpB,EAAE,GAAG,EAAE,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,iCAAiC,CAAC,MAAM,CAAC,EAAE,EAC9G,EAAE,GAAG,EAAE,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CACxD,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QACzB,KAAK,CAAC,mBAAmB,KAAK,MAAM,CAAC,KAAK,CAAC;QAC3C,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,mBAAmB,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7H,IAAI,OAAO,CAAC,MAAM,IAAI,sCAAsC,EAAE,CAAC;YAC7D,OAAO,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7E,CAAC;QACD,GAAG,CAAC,IAAI,CACN,kBAAkB,MAAM,CAAC,YAAY,mDAAmD,MAAM,CAAC,QAAQ,WAAW;YAClH,GAAG,MAAM,CAAC,IAAI,qCAAqC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,iBAAiB,OAAO,CAAC,WAAW,GAAG;YAC9G,uDAAuD,CACxD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CACN,kBAAkB,MAAM,CAAC,YAAY,0DAA0D,MAAM,YAAY;QACjH,GAAG,IAAI,8EAA8E,OAAO,CAAC,WAAW,GAAG;QAC3G,uDAAuD,MAAM,CAAC,IAAI,uBAAuB,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,CACjH,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,sBAAsB,CACnC,KAAsC,EACtC,OAAyB,EACzB,KAAoB,EACpB,IAAoB,EACpB,KAAa,EACb,IAAoC;IAEpC,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC,CAAC,iEAAiE;IACrG,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IACxC,MAAM,YAAY,GAAG,GAAG,6BAA6B,kBAAkB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB;QAChH,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;IACrC,MAAM,MAAM,GAA6B;QACvC,OAAO,EAAE,KAAK,CAAC,QAAQ;QACvB,SAAS,EAAE,KAAK,CAAC,UAAU;QAC3B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS;QACT,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;IACF,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;QAC1B,KAAK,CAAC,oBAAoB,KAAK,KAAK,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACrC,IAAI,UAAU,IAAI,uCAAuC,EAAE,CAAC;YAC1D,OAAO,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAC7I,CAAC;QACD,GAAG,CAAC,IAAI,CACN,kBAAkB,YAAY,mDAAmD,KAAK,CAAC,cAAc,WAAW;YAChH,GAAG,OAAO,iBAAiB,OAAO,CAAC,WAAW,yDAAyD,CACxG,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,qBAAqB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CACN,kBAAkB,YAAY,+CAA+C,OAAO,CAAC,WAAW,iBAAiB;QACjH,YAAY,IAAI,CAAC,IAAI,uBAAuB,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAClE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,aAAa,CAC1B,KAAsC,EACtC,OAAyB,EACzB,IAAoB,EACpB,IAAoC;IAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,IAAI,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;QAC3I,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IACxC,MAAM,IAAI,GAAG,YAAY,CAAC,6BAA6B,EAAE;QACvD,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,0BAA0B;KACjF,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;QAAE,OAAO,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACtG,GAAG,CAAC,IAAI,CACN,mCAAmC,OAAO,CAAC,WAAW,mBAAmB,KAAK,CAAC,UAAU,sBAAsB;QAC/G,GAAG,IAAI,CAAC,IAAI,qCAAqC,IAAI,CAAC,KAAK,CAAC,OAAO,4BAA4B;QAC/F,+BAA+B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,UAAU,CAC7H,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,KAAsC,EACtC,IAAoC;IAEpC,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACrE,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,iDAAiD;IACjF,MAAM,IAAI,GAAG,YAAY,CAAC,6BAA6B,EAAE;QACvD,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,0BAA0B;KAC3E,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC1C,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3C,GAAG,CAAC,IAAI,CACN,kCAAkC,OAAO,CAAC,WAAW,mBAAmB,KAAK,CAAC,UAAU,gCAAgC;QACxH,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CACzD,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ready-focus-spawn-action.d.ts","sourceRoot":"","sources":["../../src/focus/ready-focus-spawn-action.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAoB,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,
|
|
1
|
+
{"version":3,"file":"ready-focus-spawn-action.d.ts","sourceRoot":"","sources":["../../src/focus/ready-focus-spawn-action.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAoB,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAyC,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAErI,wEAAwE;AACxE,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,iFAAiF;AACjF,KAAK,iBAAiB,GAAG;IAAE,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,+BAA+B,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjH;;;;;;GAMG;AACH,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEjH;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,6BAA6B,GAAG,uBAAuB,CAAC,EACvF,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,GAChE,OAAO,CAAC,cAAc,CAAC,CAezB;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,EAC9C,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,GAChE,OAAO,CAAC,gBAAgB,CAAC,CAM3B;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAOvE"}
|
|
@@ -5,7 +5,7 @@ import { decideFocusSpawn } from './focus-spawn-decision.js';
|
|
|
5
5
|
import { hasActiveTeam, getActiveTeamCount } from '../daemon-state/focus-team-state.js';
|
|
6
6
|
import { isNextSpawnInCooldown } from '../spawn/index.js';
|
|
7
7
|
import { installedDaemonContexts } from './daemon-contexts.js';
|
|
8
|
-
import {
|
|
8
|
+
import { admitThroughTower, noteTowerAdmission } from '../tower/tower-admission.js';
|
|
9
9
|
/**
|
|
10
10
|
* Read one ready focus's spawn-gate inputs from live state -- every gate but the
|
|
11
11
|
* tower's (towerHolds is left unset). The ONE read both the spawn pass
|
|
@@ -31,7 +31,7 @@ export async function readReadyFocusGate(focus, role, deps, cfg, readCapHold) {
|
|
|
31
31
|
}
|
|
32
32
|
export async function resolveReadyFocusSpawnAction(focus, role, deps, cfg, readCapHold) {
|
|
33
33
|
const nowMs = Date.now();
|
|
34
|
-
const tower =
|
|
34
|
+
const tower = await admitThroughTower(focus, deps.tower, nowMs);
|
|
35
35
|
const action = decideFocusSpawn({ ...(await readReadyFocusGate(focus, role, deps, cfg, readCapHold)), towerHolds: tower.holds });
|
|
36
36
|
noteTowerAdmission(focus, tower, towerOutcome(action), nowMs);
|
|
37
37
|
return action;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ready-focus-spawn-action.js","sourceRoot":"","sources":["../../src/focus/ready-focus-spawn-action.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,yEAAyE;AACzE,gBAAgB;AAQhB,OAAO,EAAE,gBAAgB,EAA8C,MAAM,2BAA2B,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAuB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ready-focus-spawn-action.js","sourceRoot":"","sources":["../../src/focus/ready-focus-spawn-action.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,yEAAyE;AACzE,gBAAgB;AAQhB,OAAO,EAAE,gBAAgB,EAA8C,MAAM,2BAA2B,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAuB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAmD,MAAM,6BAA6B,CAAC;AAiBrI;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAwB,EACxB,IAA2B,EAC3B,IAAuF,EACvF,GAAiB,EACjB,WAAiE;IAEjE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,yBAAyB,IAAI,IAAI,IAAI,KAAK,CAAC,+BAA+B,KAAK,IAAI,CAAC;IACzG,OAAO;QACL,OAAO,EAAE,IAAI,KAAK,SAAS;QAC3B,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC;QACrC,kBAAkB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,WAAW,CAAC,KAAK,CAAC;QACvE,GAAG,CAAC,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACpD,8FAA8F;QAC9F,MAAM;QACN,WAAW,EAAE,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QACxF,eAAe,EAAE,MAAM,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,cAAc,CAAC;QAClG,eAAe,EAAE,kBAAkB,EAAE;QACrC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAA8C,EAC9C,IAA2B,EAC3B,IAAwB,EACxB,GAAiB,EACjB,WAAiE;IAEjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACjI,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,MAAwB;IACnD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,iBAAiB,CAAC,CAAC,OAAO,YAAY,CAAC;QAC5C,KAAK,eAAe,CAAC,CAAC,OAAO,UAAU,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,aAAa,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { FocusNextStepReader, NextStepFocusRow } from '../supervision/focus-next-step.js';
|
|
2
|
+
/** The re-fire gate's reads (the root's `reviewRefire` binding). */
|
|
3
|
+
export interface ReviewRefireDeps {
|
|
4
|
+
/** The focus's deliveries with their gate_state: the gate-verdict hold read. */
|
|
5
|
+
getFocusDeliveries: (focusId: string) => Promise<ReadonlyArray<{
|
|
6
|
+
id: string;
|
|
7
|
+
executionStatus?: string | null;
|
|
8
|
+
gateState?: unknown;
|
|
9
|
+
}>>;
|
|
10
|
+
readNextStep: FocusNextStepReader;
|
|
11
|
+
}
|
|
12
|
+
/** The focus slice the gate reads. */
|
|
13
|
+
export interface ReviewRefireFocus extends NextStepFocusRow {
|
|
14
|
+
focus_name: string;
|
|
15
|
+
operator_stopped_at?: string | null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The gate-verdict hold read, tri-state: 'held' when some verify delivery carries
|
|
19
|
+
* the commit-verdict hold marker the review exit wrote (delivery/commit-verdict-hold.ts),
|
|
20
|
+
* 'clear' when the deliveries read and none does, 'unreadable' when the read failed.
|
|
21
|
+
*/
|
|
22
|
+
export declare function readReviewWindowGateHold(focus: Pick<ReviewRefireFocus, 'focus_id' | 'focus_name'>, deps: Pick<ReviewRefireDeps, 'getFocusDeliveries'>): Promise<'held' | 'clear' | 'unreadable'>;
|
|
23
|
+
/** True = re-fire the review directive (module header). Never throws. */
|
|
24
|
+
export declare function reviewMayRefire(focus: ReviewRefireFocus, stageName: string | undefined, hasActiveTeam: boolean, deps: ReviewRefireDeps): Promise<boolean>;
|
|
25
|
+
//# sourceMappingURL=review-refire-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-refire-gate.d.ts","sourceRoot":"","sources":["../../src/focus/review-refire-gate.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAK/F,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IACtI,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,YAAY,CAAC,EACzD,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,GACjD,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC,CAO1C;AAED,yEAAyE;AACzE,wBAAsB,eAAe,CACnC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,OAAO,CAAC,CAelB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/focus/focus-liveness-pass.test.ts,
|
|
3
|
+
// packages/daemon/src/focus/held-review-window-not-stranded.test.ts,
|
|
4
|
+
// packages/daemon/src/focus/stranded-review-refire-bound.test.ts,
|
|
5
|
+
// packages/daemon/src/integration/failed-verdict-review-exit-respawn-regression.test.ts,
|
|
6
|
+
// packages/daemon/src/integration/failed-verdict-review-loop-regression.test.ts
|
|
7
|
+
// PINNED-BY-END
|
|
8
|
+
/**
|
|
9
|
+
* Whether the stranded-review re-fire queues the review directive again for a
|
|
10
|
+
* focus whose review stage was already processed (focus/directive-executor.ts
|
|
11
|
+
* checkDirectives).
|
|
12
|
+
*
|
|
13
|
+
* The re-fire recovers a review a crash or teardown dropped: a window open, no
|
|
14
|
+
* team. It re-fires only when, in order:
|
|
15
|
+
* 1. the pure rule holds (directive/phase-sync.ts shouldRefireStrandedReview):
|
|
16
|
+
* a review stage, a window, no live team, no operator stop, and no gate
|
|
17
|
+
* verdict the window is HELD for -- read here, fail closed: an unreadable
|
|
18
|
+
* hold reads held, so the release pass (commit-verdict-release.ts) routes it;
|
|
19
|
+
* 2. the liveness detector has not reported this focus stalled
|
|
20
|
+
* (supervision/focus-liveness.ts): a review that started LIVENESS_STALL_STARTS
|
|
21
|
+
* times on an unchanged (HEAD, window) without moving the focus is not queued
|
|
22
|
+
* again -- its observation is the route, and a new commit, step or window
|
|
23
|
+
* starts over;
|
|
24
|
+
* 3. the focus's ONE next step (supervision/focus-next-step.ts) is a review: a
|
|
25
|
+
* failed gate at HEAD is its coding team's rework, a verdict still owed is a
|
|
26
|
+
* gate run -- re-queueing the review there would re-judge a commit nothing
|
|
27
|
+
* changed.
|
|
28
|
+
*
|
|
29
|
+
* @module focus/review-refire-gate
|
|
30
|
+
*/
|
|
31
|
+
import { shouldRefireStrandedReview } from '../directive/phase-sync.js';
|
|
32
|
+
import { commitVerdictHeldDeliveryIds } from '../delivery/commit-verdict-hold.js';
|
|
33
|
+
import { focusLivenessStalled } from '../supervision/focus-liveness.js';
|
|
34
|
+
import { createLogger } from '../log/daemon-log.js';
|
|
35
|
+
const log = createLogger({ module: 'directive-executor' });
|
|
36
|
+
/**
|
|
37
|
+
* The gate-verdict hold read, tri-state: 'held' when some verify delivery carries
|
|
38
|
+
* the commit-verdict hold marker the review exit wrote (delivery/commit-verdict-hold.ts),
|
|
39
|
+
* 'clear' when the deliveries read and none does, 'unreadable' when the read failed.
|
|
40
|
+
*/
|
|
41
|
+
export async function readReviewWindowGateHold(focus, deps) {
|
|
42
|
+
try {
|
|
43
|
+
return commitVerdictHeldDeliveryIds(await deps.getFocusDeliveries(focus.focus_id)).size > 0 ? 'held' : 'clear';
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
log.debug(`[directive-executor] gate-verdict hold unreadable for "${focus.focus_name}": ${err.message}`);
|
|
47
|
+
return 'unreadable';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** True = re-fire the review directive (module header). Never throws. */
|
|
51
|
+
export async function reviewMayRefire(focus, stageName, hasActiveTeam, deps) {
|
|
52
|
+
const rule = shouldRefireStrandedReview({
|
|
53
|
+
stageName,
|
|
54
|
+
reviewRequestedAt: focus.review_requested_at,
|
|
55
|
+
hasActiveTeam,
|
|
56
|
+
operatorStopped: !!focus.operator_stopped_at,
|
|
57
|
+
awaitingGateVerdict: (await readReviewWindowGateHold(focus, deps)) !== 'clear',
|
|
58
|
+
});
|
|
59
|
+
if (!rule)
|
|
60
|
+
return false;
|
|
61
|
+
if (focusLivenessStalled(focus.focus_id)) {
|
|
62
|
+
log.info(`[directive-executor] Not re-firing the review for "${focus.focus_name}": the liveness detector reported it stalled on this HEAD and window`);
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
const read = await deps.readNextStep(focus).catch(() => null);
|
|
66
|
+
return read?.readable === true && read.next.step === 'review';
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=review-refire-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-refire-gate.js","sourceRoot":"","sources":["../../src/focus/review-refire-gate.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oEAAoE;AACpE,uEAAuE;AACvE,oEAAoE;AACpE,2FAA2F;AAC3F,kFAAkF;AAClF,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAe3D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAyD,EACzD,IAAkD;IAElD,IAAI,CAAC;QACH,OAAO,4BAA4B,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,0DAA0D,KAAK,CAAC,UAAU,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpH,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAwB,EACxB,SAA6B,EAC7B,aAAsB,EACtB,IAAsB;IAEtB,MAAM,IAAI,GAAG,0BAA0B,CAAC;QACtC,SAAS;QACT,iBAAiB,EAAE,KAAK,CAAC,mBAAmB;QAC5C,aAAa;QACb,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB;QAC5C,mBAAmB,EAAE,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO;KAC/E,CAAC,CAAC;IACH,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,sDAAsD,KAAK,CAAC,UAAU,sEAAsE,CAAC,CAAC;QACvJ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,IAAI,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AAChE,CAAC"}
|
|
@@ -7,15 +7,13 @@
|
|
|
7
7
|
* 2. releaseCommitVerdictHolds: a review exit held on its commit's gate verdict
|
|
8
8
|
* is replayed once that verdict lands (held re-work: once the run is over),
|
|
9
9
|
* or its held evidence is dropped when HEAD moved;
|
|
10
|
-
* 3.
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* worktree-dirty record naming the paths (focus/uncommitted-work-backstop.ts);
|
|
18
|
-
* 5. reopenFalsifiedDoneDeliveries: a done delivery carrying an open Bug that
|
|
10
|
+
* 3. detectFocusLivenessStalls: an armed focus whose one next step names an
|
|
11
|
+
* actor that does not move it -- a coding team, a gate run, a review -- gets
|
|
12
|
+
* a coding respawn when that actor is a coding team that never started, and
|
|
13
|
+
* ONE agent-resolvable observation at the stall (focus/focus-liveness-pass.ts).
|
|
14
|
+
* It runs after the release pass, so a held exit the release routes this poll
|
|
15
|
+
* is never read as a stall;
|
|
16
|
+
* 4. reopenFalsifiedDoneDeliveries: a done delivery carrying an open Bug that
|
|
19
17
|
* names the met effects it falsifies re-opens to verify_failed -- verify
|
|
20
18
|
* was wrong (verify/outcome-routing/falsified-effect-reopen.ts).
|
|
21
19
|
*
|
|
@@ -36,8 +34,7 @@ import type { DaemonConfig } from '../types/index.js';
|
|
|
36
34
|
export interface VerifyRoutingPasses {
|
|
37
35
|
checkVerifyDeliveriesForOpenIssues: (config: DaemonConfig) => Promise<void>;
|
|
38
36
|
releaseCommitVerdictHolds: (config: DaemonConfig) => Promise<unknown>;
|
|
39
|
-
|
|
40
|
-
recoverUncommittedWork: (config: DaemonConfig) => Promise<unknown>;
|
|
37
|
+
detectFocusLivenessStalls: (config: DaemonConfig) => Promise<unknown>;
|
|
41
38
|
reopenFalsifiedDoneDeliveries: (config: DaemonConfig) => Promise<unknown>;
|
|
42
39
|
}
|
|
43
40
|
/** Run the verify-routing phase for one product-scoped config, over the given passes. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-routing-passes.d.ts","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAMA
|
|
1
|
+
{"version":3,"file":"verify-routing-passes.d.ts","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,kCAAkC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,6BAA6B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,yFAAyF;AACzF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAKf"}
|
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
export async function runVerifyRoutingPasses(config, passes) {
|
|
8
8
|
await passes.checkVerifyDeliveriesForOpenIssues(config);
|
|
9
9
|
await passes.releaseCommitVerdictHolds(config);
|
|
10
|
-
await passes.
|
|
11
|
-
await passes.recoverUncommittedWork(config);
|
|
10
|
+
await passes.detectFocusLivenessStalls(config);
|
|
12
11
|
await passes.reopenFalsifiedDoneDeliveries(config);
|
|
13
12
|
}
|
|
14
13
|
//# sourceMappingURL=verify-routing-passes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-routing-passes.js","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,6DAA6D;AAC7D,0EAA0E;AAC1E,gBAAgB;
|
|
1
|
+
{"version":3,"file":"verify-routing-passes.js","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,6DAA6D;AAC7D,0EAA0E;AAC1E,gBAAgB;AA4ChB,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,MAA2B;IAE3B,MAAM,MAAM,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC"}
|
package/dist/git/types.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: 23 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/git/types.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
4
|
/**
|
|
5
5
|
* Shared types and utilities for the git subsystem.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A refused frontier arm that no scoping agent can fix reaches the machine lane.
|
|
3
|
+
*
|
|
4
|
+
* WHY IT EXISTS. The frontier records every refused arm on the focus Debug tab
|
|
5
|
+
* (./arm-refusal.ts) and retries it each tick. That is enough for the refusal
|
|
6
|
+
* the record was written for -- `arm_criteria_required`, fixed by the tree
|
|
7
|
+
* restatement the re-spawned scoping agent writes. It is not enough for the
|
|
8
|
+
* rest: `prd_member_focus` from a daemon older than the refusal, a
|
|
9
|
+
* `daemon_credential_required`, a frontier-rule disagreement answered as a
|
|
10
|
+
* `state_conflict`, an opaque `backend_error`. No agent the frontier spawns can
|
|
11
|
+
* fix those, so without this a refused arm waits on the Debug tab until someone
|
|
12
|
+
* reads it. History: docs/daemon/history-platform.md (prd/arm-refusal-streak.ts).
|
|
13
|
+
*
|
|
14
|
+
* WHAT IT DOES. Per focus it counts consecutive refused arms carrying the SAME
|
|
15
|
+
* refusal code, with no successful arm between them. A different code starts a
|
|
16
|
+
* new streak; a successful arm ends it. When a streak of any code other than
|
|
17
|
+
* `arm_criteria_required` reaches the bound it files ONE agent_resolvable
|
|
18
|
+
* observation, cause-keyed on (focus, code) through the cause-keyed filer, so a
|
|
19
|
+
* re-observation while it is open is suppressed. It reads the filer's result:
|
|
20
|
+
* only a filing that left the observation on record (`observationRecorded`)
|
|
21
|
+
* ends the attempts -- a filing the server refused is re-sent, unchanged, on
|
|
22
|
+
* every later refusal until one is recorded. It names the focus, the PRD,
|
|
23
|
+
* the refusal code and the daemon version. A successful arm resolves any
|
|
24
|
+
* observation this process filed for the focus. The Debug-tab record is
|
|
25
|
+
* untouched: this is added beside it, not instead of it.
|
|
26
|
+
*
|
|
27
|
+
* A daemon restart forgets the counts (the streak is re-earned, and the
|
|
28
|
+
* cause-keyed filer suppresses a second row while the first is open).
|
|
29
|
+
*
|
|
30
|
+
* NEVER THROWS into the tick: a filing, list or resolve failure is logged and
|
|
31
|
+
* retried on the next report. Production I/O is bound at the composition root
|
|
32
|
+
* (composition/runtime-prd-context.ts).
|
|
33
|
+
*
|
|
34
|
+
* @module prd/arm-refusal-streak
|
|
35
|
+
*/
|
|
36
|
+
import type { IncidentRow } from '../queries/escalations/incident-record.js';
|
|
37
|
+
import type { FileEscalationIdempotentParams, FileEscalationIdempotentResult } from '../supervision/escalation-suppression.js';
|
|
38
|
+
import { type ArmFailure } from './arm-refusal.js';
|
|
39
|
+
/** Consecutive refused arms of one code, with no success between, that file the observation. */
|
|
40
|
+
export declare const ARM_REFUSAL_OBSERVATION_THRESHOLD = 5;
|
|
41
|
+
/** The cause-key kind every frontier arm-refusal observation carries. */
|
|
42
|
+
export declare const ARM_REFUSAL_CAUSE_KIND = "prd_frontier_arm_refused";
|
|
43
|
+
/** The code a refusal that carried none is counted under. */
|
|
44
|
+
export declare const UNCODED_REFUSAL = "uncoded";
|
|
45
|
+
/** One refused frontier arm, as the streak counts it. */
|
|
46
|
+
export interface RefusedArm {
|
|
47
|
+
focusId: string;
|
|
48
|
+
/** The overcome node whose focus this is. */
|
|
49
|
+
nodeId: string;
|
|
50
|
+
prdId: string;
|
|
51
|
+
prdTitle: string;
|
|
52
|
+
/** The PRD's product, stamped as the observation's provenance. */
|
|
53
|
+
productId: string | null;
|
|
54
|
+
failure: ArmFailure;
|
|
55
|
+
}
|
|
56
|
+
/** What the frontier reports about each arm it attempts. */
|
|
57
|
+
export interface ArmRefusalStreakReporter {
|
|
58
|
+
recordRefusal(arm: RefusedArm): Promise<void>;
|
|
59
|
+
recordSuccess(focusId: string): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
/** The tracker's I/O and bound, all required (production: composition/runtime-prd-context.ts). */
|
|
62
|
+
export interface ArmRefusalStreakDeps {
|
|
63
|
+
fileObservation: (params: FileEscalationIdempotentParams) => Promise<FileEscalationIdempotentResult>;
|
|
64
|
+
listOpenEscalations: () => Promise<IncidentRow[]>;
|
|
65
|
+
resolveEscalation: (escalationId: string, notes: string) => Promise<void>;
|
|
66
|
+
organizationId: () => string | Promise<string>;
|
|
67
|
+
/** The running daemon's version -- the fact an operator needs for a deploy-order refusal. */
|
|
68
|
+
daemonVersion: () => string;
|
|
69
|
+
threshold: number;
|
|
70
|
+
}
|
|
71
|
+
/** The refusal code a failure is counted under. */
|
|
72
|
+
export declare function refusalCodeOf(failure: ArmFailure): string;
|
|
73
|
+
/** Does a streak of this code ever file? The criteria refusal is the scoping agent's to fix. */
|
|
74
|
+
export declare function refusalCodeFiles(code: string): boolean;
|
|
75
|
+
/** The cause key of the observation for one (focus, refusal code). */
|
|
76
|
+
export declare function armRefusalCauseKey(focusId: string, code: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* Did this filing leave the observation on record? A new row, a correlation
|
|
79
|
+
* onto an open incident row, or an open/dismissed row of the same cause key that
|
|
80
|
+
* suppressed it all do. A filing the server REFUSED did not -- whether or not its
|
|
81
|
+
* refusal record landed -- nor did one that reports nothing at all, so the
|
|
82
|
+
* streak keeps retrying it.
|
|
83
|
+
*/
|
|
84
|
+
export declare function observationRecorded(result: FileEscalationIdempotentResult): boolean;
|
|
85
|
+
export declare class ArmRefusalStreakTracker implements ArmRefusalStreakReporter {
|
|
86
|
+
private readonly io;
|
|
87
|
+
private readonly streaks;
|
|
88
|
+
/** Cause keys this process recorded per focus, resolved on the focus's next successful arm. */
|
|
89
|
+
private readonly filedKeys;
|
|
90
|
+
constructor(io: ArmRefusalStreakDeps);
|
|
91
|
+
/** The current streak for a focus (read-only view, for tests and logs). */
|
|
92
|
+
streakOf(focusId: string): {
|
|
93
|
+
code: string;
|
|
94
|
+
consecutive: number;
|
|
95
|
+
recorded: boolean;
|
|
96
|
+
} | null;
|
|
97
|
+
recordRefusal(arm: RefusedArm): Promise<void>;
|
|
98
|
+
recordSuccess(focusId: string): Promise<void>;
|
|
99
|
+
}
|
|
100
|
+
/** The observation for one streak. PURE. */
|
|
101
|
+
export declare function buildObservation(arm: RefusedArm, code: string, causeKey: string, consecutive: number, daemonVersion: string, organizationId: string): FileEscalationIdempotentParams;
|
|
102
|
+
//# sourceMappingURL=arm-refusal-streak.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arm-refusal-streak.d.ts","sourceRoot":"","sources":["../../src/prd/arm-refusal-streak.ts"],"names":[],"mappings":"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"}
|