@telora/daemon 0.24.17 → 0.24.26
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 +12 -3
- package/dist/audit/audit-prompt.d.ts.map +1 -1
- package/dist/audit/audit-prompt.js +15 -0
- package/dist/audit/audit-prompt.js.map +1 -1
- package/dist/ci/candidate-failure-record.d.ts +104 -0
- package/dist/ci/candidate-failure-record.d.ts.map +1 -0
- package/dist/ci/candidate-failure-record.js +135 -0
- package/dist/ci/candidate-failure-record.js.map +1 -0
- package/dist/ci/candidate-ref.d.ts.map +1 -1
- package/dist/ci/candidate-ref.js +10 -3
- package/dist/ci/candidate-ref.js.map +1 -1
- package/dist/ci/ci-status-git.d.ts.map +1 -1
- package/dist/ci/ci-status-git.js +1 -0
- package/dist/ci/ci-status-git.js.map +1 -1
- package/dist/ci/ci-status.d.ts.map +1 -1
- package/dist/ci/ci-status.js +1 -0
- package/dist/ci/ci-status.js.map +1 -1
- package/dist/ci/gate-ref.d.ts +10 -1
- package/dist/ci/gate-ref.d.ts.map +1 -1
- package/dist/ci/gate-ref.js +11 -4
- package/dist/ci/gate-ref.js.map +1 -1
- package/dist/ci/product-ci-repo.d.ts.map +1 -1
- package/dist/ci/product-ci-repo.js +3 -2
- package/dist/ci/product-ci-repo.js.map +1 -1
- package/dist/completion/completion-event/event.d.ts +4 -3
- package/dist/completion/completion-event/event.d.ts.map +1 -1
- package/dist/completion/completion-event/event.js.map +1 -1
- package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts +19 -11
- package/dist/completion/review-cycle-budget/review-cycle-cap.d.ts.map +1 -1
- package/dist/completion/review-cycle-budget/review-cycle-cap.js +36 -36
- package/dist/completion/review-cycle-budget/review-cycle-cap.js.map +1 -1
- package/dist/completion/review-cycle-budget/review-loop-detection.d.ts +101 -0
- package/dist/completion/review-cycle-budget/review-loop-detection.d.ts.map +1 -0
- package/dist/completion/review-cycle-budget/review-loop-detection.js +105 -0
- package/dist/completion/review-cycle-budget/review-loop-detection.js.map +1 -0
- package/dist/completion/review-cycle-budget/spent-budget-release.d.ts +70 -0
- package/dist/completion/review-cycle-budget/spent-budget-release.d.ts.map +1 -0
- package/dist/completion/review-cycle-budget/spent-budget-release.js +98 -0
- package/dist/completion/review-cycle-budget/spent-budget-release.js.map +1 -0
- package/dist/completion/review-exit/review-defect-detector.d.ts +71 -49
- package/dist/completion/review-exit/review-defect-detector.d.ts.map +1 -1
- package/dist/completion/review-exit/review-defect-detector.js +75 -69
- package/dist/completion/review-exit/review-defect-detector.js.map +1 -1
- package/dist/completion/review-exit/review-exit-attribution.d.ts +1 -1
- package/dist/completion/review-exit/review-exit-attribution.js +1 -1
- package/dist/completion/review-exit/review-exit-deps.d.ts +5 -2
- package/dist/completion/review-exit/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-deps.js +1 -1
- package/dist/completion/review-exit/review-exit-evidence.d.ts +10 -1
- package/dist/completion/review-exit/review-exit-evidence.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-evidence.js +17 -14
- package/dist/completion/review-exit/review-exit-evidence.js.map +1 -1
- package/dist/completion/review-exit/review-exit-foreign-findings.d.ts +1 -1
- package/dist/completion/review-exit/review-exit-foreign-findings.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit/review-exit-phase.js +12 -8
- package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
- package/dist/completion/state-cascade/review-next-step.d.ts +12 -3
- package/dist/completion/state-cascade/review-next-step.d.ts.map +1 -1
- package/dist/completion/state-cascade/review-next-step.js +10 -1
- package/dist/completion/state-cascade/review-next-step.js.map +1 -1
- package/dist/completion/state-cascade/standing-approval-convergence.d.ts +1 -1
- package/dist/completion/state-cascade/standing-approval-convergence.d.ts.map +1 -1
- package/dist/completion/state-cascade/standing-approval-convergence.js +10 -4
- package/dist/completion/state-cascade/standing-approval-convergence.js.map +1 -1
- package/dist/completion/state-cascade/state-cascade.d.ts +3 -0
- package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade/state-cascade.js +16 -1
- package/dist/completion/state-cascade/state-cascade.js.map +1 -1
- package/dist/completion/team-exit/status-advance-phase.d.ts +1 -1
- package/dist/completion/team-exit/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/team-exit/status-advance-phase.js +6 -4
- package/dist/completion/team-exit/status-advance-phase.js.map +1 -1
- package/dist/completion/team-outcome/apply-turn.d.ts.map +1 -1
- package/dist/completion/team-outcome/apply-turn.js +9 -4
- package/dist/completion/team-outcome/apply-turn.js.map +1 -1
- package/dist/completion/team-outcome/decide-turn-entry-rows.d.ts.map +1 -1
- package/dist/completion/team-outcome/decide-turn-entry-rows.js +28 -3
- package/dist/completion/team-outcome/decide-turn-entry-rows.js.map +1 -1
- package/dist/completion/team-outcome/decide.d.ts.map +1 -1
- package/dist/completion/team-outcome/decide.js +1 -0
- package/dist/completion/team-outcome/decide.js.map +1 -1
- package/dist/completion/team-outcome/exit-limits.d.ts +6 -0
- package/dist/completion/team-outcome/exit-limits.d.ts.map +1 -1
- package/dist/completion/team-outcome/exit-limits.js +6 -0
- package/dist/completion/team-outcome/exit-limits.js.map +1 -1
- package/dist/completion/team-outcome/exit-pipeline-state.d.ts +5 -0
- package/dist/completion/team-outcome/exit-pipeline-state.d.ts.map +1 -1
- package/dist/completion/team-outcome/exit-pipeline-state.js.map +1 -1
- package/dist/completion/team-teardown/session-hold-bounds.d.ts +10 -1
- package/dist/completion/team-teardown/session-hold-bounds.d.ts.map +1 -1
- package/dist/completion/team-teardown/session-hold-bounds.js +11 -0
- package/dist/completion/team-teardown/session-hold-bounds.js.map +1 -1
- package/dist/completion/team-teardown/session-hold.d.ts.map +1 -1
- package/dist/completion/team-teardown/session-hold.js +2 -0
- package/dist/completion/team-teardown/session-hold.js.map +1 -1
- package/dist/composition/engine-start-context.d.ts.map +1 -1
- package/dist/composition/engine-start-context.js +9 -1
- package/dist/composition/engine-start-context.js.map +1 -1
- package/dist/composition/execution-merge-context.d.ts +13 -0
- package/dist/composition/execution-merge-context.d.ts.map +1 -1
- package/dist/composition/execution-merge-context.js +76 -3
- package/dist/composition/execution-merge-context.js.map +1 -1
- package/dist/composition/execution-spawn-context.d.ts.map +1 -1
- package/dist/composition/execution-spawn-context.js +2 -0
- package/dist/composition/execution-spawn-context.js.map +1 -1
- package/dist/composition/focus-activity-live-sources.d.ts.map +1 -1
- package/dist/composition/focus-activity-live-sources.js +1 -0
- package/dist/composition/focus-activity-live-sources.js.map +1 -1
- package/dist/composition/judgement-contexts.d.ts.map +1 -1
- package/dist/composition/judgement-contexts.js +8 -2
- package/dist/composition/judgement-contexts.js.map +1 -1
- package/dist/composition/review-exit-context.d.ts.map +1 -1
- package/dist/composition/review-exit-context.js +2 -0
- package/dist/composition/review-exit-context.js.map +1 -1
- package/dist/composition/review-loop-context.d.ts +28 -0
- package/dist/composition/review-loop-context.d.ts.map +1 -0
- package/dist/composition/review-loop-context.js +147 -0
- package/dist/composition/review-loop-context.js.map +1 -0
- package/dist/composition/runtime-heartbeat-context.d.ts +11 -0
- package/dist/composition/runtime-heartbeat-context.d.ts.map +1 -1
- package/dist/composition/runtime-heartbeat-context.js +33 -2
- package/dist/composition/runtime-heartbeat-context.js.map +1 -1
- package/dist/composition/spawn-pass-deps.d.ts.map +1 -1
- package/dist/composition/spawn-pass-deps.js +3 -0
- package/dist/composition/spawn-pass-deps.js.map +1 -1
- package/dist/composition/state-cascade-context.d.ts.map +1 -1
- package/dist/composition/state-cascade-context.js +3 -1
- package/dist/composition/state-cascade-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/tower-escalation-context.d.ts +12 -0
- package/dist/composition/tower-escalation-context.d.ts.map +1 -0
- package/dist/composition/tower-escalation-context.js +109 -0
- package/dist/composition/tower-escalation-context.js.map +1 -0
- package/dist/composition/verification-context.d.ts.map +1 -1
- package/dist/composition/verification-context.js +34 -4
- package/dist/composition/verification-context.js.map +1 -1
- package/dist/composition/workstation-intervals-context.d.ts +3 -0
- package/dist/composition/workstation-intervals-context.d.ts.map +1 -0
- package/dist/composition/workstation-intervals-context.js +33 -0
- package/dist/composition/workstation-intervals-context.js.map +1 -0
- package/dist/daemon-state/awaiting-slot.d.ts +18 -1
- package/dist/daemon-state/awaiting-slot.d.ts.map +1 -1
- package/dist/daemon-state/awaiting-slot.js +7 -0
- package/dist/daemon-state/awaiting-slot.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +7 -7
- package/dist/delivery/recorded-concerns.d.ts +63 -28
- package/dist/delivery/recorded-concerns.d.ts.map +1 -1
- package/dist/delivery/recorded-concerns.js +72 -28
- package/dist/delivery/recorded-concerns.js.map +1 -1
- package/dist/directive/directive-queue.d.ts +8 -0
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +1 -1
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/focus/control-state.d.ts +6 -4
- package/dist/focus/control-state.d.ts.map +1 -1
- package/dist/focus/control-state.js +6 -4
- package/dist/focus/control-state.js.map +1 -1
- package/dist/focus/daemon-contexts-judgement.d.ts +6 -0
- package/dist/focus/daemon-contexts-judgement.d.ts.map +1 -1
- package/dist/focus/daemon-contexts.d.ts +6 -0
- package/dist/focus/daemon-contexts.d.ts.map +1 -1
- package/dist/focus/daemon-contexts.js.map +1 -1
- package/dist/focus/focus-engine.d.ts.map +1 -1
- package/dist/focus/focus-engine.js +3 -1
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +3 -2
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus/focus-loop-registry.js +42 -0
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/focus/focus-poller-auto-advance.d.ts +4 -2
- package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
- package/dist/focus/focus-poller-auto-advance.js +24 -18
- package/dist/focus/focus-poller-auto-advance.js.map +1 -1
- package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
- package/dist/focus/focus-poller-spawn.js +8 -6
- package/dist/focus/focus-poller-spawn.js.map +1 -1
- package/dist/focus/heartbeat-metadata.d.ts +5 -0
- package/dist/focus/heartbeat-metadata.d.ts.map +1 -1
- package/dist/focus/heartbeat-metadata.js +12 -0
- package/dist/focus/heartbeat-metadata.js.map +1 -1
- package/dist/focus/heartbeat.d.ts +9 -2
- package/dist/focus/heartbeat.d.ts.map +1 -1
- package/dist/focus/heartbeat.js +10 -1
- package/dist/focus/heartbeat.js.map +1 -1
- package/dist/focus/host-pressure.d.ts +77 -0
- package/dist/focus/host-pressure.d.ts.map +1 -0
- package/dist/focus/host-pressure.js +83 -0
- package/dist/focus/host-pressure.js.map +1 -0
- package/dist/focus/pending-directive-gates.d.ts +14 -0
- package/dist/focus/pending-directive-gates.d.ts.map +1 -1
- package/dist/focus/pending-directive-gates.js +25 -1
- package/dist/focus/pending-directive-gates.js.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.d.ts +7 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
- package/dist/focus/pending-spawn-review-next-step.d.ts +1 -1
- package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
- package/dist/focus/pending-spawn-review-next-step.js +2 -0
- package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
- package/dist/focus/ready-focus-team-work.d.ts +9 -4
- package/dist/focus/ready-focus-team-work.d.ts.map +1 -1
- package/dist/focus/ready-focus-team-work.js +14 -3
- package/dist/focus/ready-focus-team-work.js.map +1 -1
- package/dist/focus/verify-open-issues.d.ts +3 -2
- package/dist/focus/verify-open-issues.d.ts.map +1 -1
- package/dist/focus/verify-open-issues.js +6 -4
- package/dist/focus/verify-open-issues.js.map +1 -1
- package/dist/focus/workstation-intervals.d.ts +83 -0
- package/dist/focus/workstation-intervals.d.ts.map +1 -0
- package/dist/focus/workstation-intervals.js +81 -0
- package/dist/focus/workstation-intervals.js.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +5 -2
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +2 -2
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/git/types.js +1 -1
- package/dist/merge/candidate-ci-failures.d.ts +72 -0
- package/dist/merge/candidate-ci-failures.d.ts.map +1 -0
- package/dist/merge/candidate-ci-failures.js +240 -0
- package/dist/merge/candidate-ci-failures.js.map +1 -0
- package/dist/merge/candidate-red-record.d.ts +44 -0
- package/dist/merge/candidate-red-record.d.ts.map +1 -0
- package/dist/merge/candidate-red-record.js +98 -0
- package/dist/merge/candidate-red-record.js.map +1 -0
- package/dist/merge/candidate-rework.d.ts +4 -3
- package/dist/merge/candidate-rework.d.ts.map +1 -1
- package/dist/merge/candidate-rework.js +46 -14
- package/dist/merge/candidate-rework.js.map +1 -1
- package/dist/merge/candidate-tip-attribution.d.ts +135 -0
- package/dist/merge/candidate-tip-attribution.d.ts.map +1 -0
- package/dist/merge/candidate-tip-attribution.js +319 -0
- package/dist/merge/candidate-tip-attribution.js.map +1 -0
- package/dist/merge/completion-merge-driver.d.ts +49 -5
- package/dist/merge/completion-merge-driver.d.ts.map +1 -1
- package/dist/merge/completion-merge-driver.js +56 -2
- package/dist/merge/completion-merge-driver.js.map +1 -1
- package/dist/merge/completion-merge-gate.d.ts +4 -1
- package/dist/merge/completion-merge-gate.d.ts.map +1 -1
- package/dist/merge/completion-merge-gate.js +9 -8
- package/dist/merge/completion-merge-gate.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +4 -1
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/qa-author-section.d.ts.map +1 -1
- package/dist/prompt-sections/qa-author-section.js +18 -1
- package/dist/prompt-sections/qa-author-section.js.map +1 -1
- package/dist/prompt-sections/scoping-sections.d.ts +0 -12
- package/dist/prompt-sections/scoping-sections.d.ts.map +1 -1
- package/dist/prompt-sections/scoping-sections.js +16 -2
- package/dist/prompt-sections/scoping-sections.js.map +1 -1
- package/dist/prompts/bounded-universals.d.ts +13 -0
- package/dist/prompts/bounded-universals.d.ts.map +1 -0
- package/dist/prompts/bounded-universals.js +32 -0
- package/dist/prompts/bounded-universals.js.map +1 -0
- package/dist/queries/api-client/shared.d.ts +2 -1
- package/dist/queries/api-client/shared.d.ts.map +1 -1
- package/dist/queries/api-client/shared.js +36 -1
- package/dist/queries/api-client/shared.js.map +1 -1
- package/dist/queries/candidate-ci-reds/candidate-ci-reds.d.ts +35 -0
- package/dist/queries/candidate-ci-reds/candidate-ci-reds.d.ts.map +1 -0
- package/dist/queries/candidate-ci-reds/candidate-ci-reds.js +42 -0
- package/dist/queries/candidate-ci-reds/candidate-ci-reds.js.map +1 -0
- package/dist/queries/candidate-ci-reds/gate-escape-files.d.ts +16 -0
- package/dist/queries/candidate-ci-reds/gate-escape-files.d.ts.map +1 -0
- package/dist/queries/candidate-ci-reds/gate-escape-files.js +51 -0
- package/dist/queries/candidate-ci-reds/gate-escape-files.js.map +1 -0
- package/dist/queries/deliveries/issues.d.ts.map +1 -1
- package/dist/queries/deliveries/issues.js +1 -0
- package/dist/queries/deliveries/issues.js.map +1 -1
- package/dist/queries/escalations/escalation-consumption.d.ts +13 -0
- package/dist/queries/escalations/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalations/escalation-consumption.js +12 -2
- package/dist/queries/escalations/escalation-consumption.js.map +1 -1
- package/dist/queries/escalations/tower-escalations.d.ts +82 -0
- package/dist/queries/escalations/tower-escalations.d.ts.map +1 -0
- package/dist/queries/escalations/tower-escalations.js +97 -0
- package/dist/queries/escalations/tower-escalations.js.map +1 -0
- package/dist/queries/focus-review/recorded-concern-ids.d.ts +48 -11
- package/dist/queries/focus-review/recorded-concern-ids.d.ts.map +1 -1
- package/dist/queries/focus-review/recorded-concern-ids.js +42 -12
- package/dist/queries/focus-review/recorded-concern-ids.js.map +1 -1
- package/dist/queries/focus-review/review-criterion-verdicts.d.ts +37 -0
- package/dist/queries/focus-review/review-criterion-verdicts.d.ts.map +1 -0
- package/dist/queries/focus-review/review-criterion-verdicts.js +64 -0
- package/dist/queries/focus-review/review-criterion-verdicts.js.map +1 -0
- package/dist/queries/focus-review/review-finding-facts.d.ts +18 -6
- package/dist/queries/focus-review/review-finding-facts.d.ts.map +1 -1
- package/dist/queries/focus-review/review-finding-facts.js +21 -8
- package/dist/queries/focus-review/review-finding-facts.js.map +1 -1
- package/dist/queries/focuses/ended-arm.d.ts +56 -13
- package/dist/queries/focuses/ended-arm.d.ts.map +1 -1
- package/dist/queries/focuses/ended-arm.js +40 -14
- package/dist/queries/focuses/ended-arm.js.map +1 -1
- package/dist/queries/focuses/focus-criteria-standing.d.ts +12 -0
- package/dist/queries/focuses/focus-criteria-standing.d.ts.map +1 -1
- package/dist/queries/focuses/focus-criteria-standing.js +13 -0
- package/dist/queries/focuses/focus-criteria-standing.js.map +1 -1
- package/dist/queries/focuses/focus-discovery.d.ts +14 -3
- package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focuses/focus-discovery.js +2 -19
- package/dist/queries/focuses/focus-discovery.js.map +1 -1
- package/dist/queries/focuses/focuses.d.ts +15 -12
- package/dist/queries/focuses/focuses.d.ts.map +1 -1
- package/dist/queries/focuses/focuses.js +15 -13
- 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/sessions/sessions.d.ts.map +1 -1
- package/dist/queries/sessions/sessions.js +2 -1
- package/dist/queries/sessions/sessions.js.map +1 -1
- package/dist/queries/tower-decisions/tower-decisions.d.ts +103 -0
- package/dist/queries/tower-decisions/tower-decisions.d.ts.map +1 -0
- package/dist/queries/tower-decisions/tower-decisions.js +138 -0
- package/dist/queries/tower-decisions/tower-decisions.js.map +1 -0
- package/dist/queries/verification/verification.js +1 -1
- package/dist/queries/wire-schemas/schemas.d.ts +2 -0
- package/dist/queries/wire-schemas/schemas.d.ts.map +1 -1
- package/dist/queries/wire-schemas/schemas.js +8 -2
- package/dist/queries/wire-schemas/schemas.js.map +1 -1
- package/dist/queries/workstation-intervals/workstation-intervals.d.ts +52 -0
- package/dist/queries/workstation-intervals/workstation-intervals.d.ts.map +1 -0
- package/dist/queries/workstation-intervals/workstation-intervals.js +49 -0
- package/dist/queries/workstation-intervals/workstation-intervals.js.map +1 -0
- package/dist/resolvers/escalation-answers.d.ts +31 -0
- package/dist/resolvers/escalation-answers.d.ts.map +1 -1
- package/dist/resolvers/escalation-answers.js +31 -17
- package/dist/resolvers/escalation-answers.js.map +1 -1
- package/dist/resolvers/focus-criteria-standing.d.ts.map +1 -1
- package/dist/resolvers/focus-criteria-standing.js +20 -0
- package/dist/resolvers/focus-criteria-standing.js.map +1 -1
- package/dist/shell/unified-engine-lifecycle.d.ts +11 -1
- package/dist/shell/unified-engine-lifecycle.d.ts.map +1 -1
- package/dist/shell/unified-engine-lifecycle.js +10 -1
- package/dist/shell/unified-engine-lifecycle.js.map +1 -1
- package/dist/shell/unified-shell.d.ts +25 -0
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +26 -80
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/shell/update-restart.d.ts +47 -0
- package/dist/shell/update-restart.d.ts.map +1 -0
- package/dist/shell/update-restart.js +124 -0
- package/dist/shell/update-restart.js.map +1 -0
- package/dist/spawn/directive-dispatch.d.ts.map +1 -1
- package/dist/spawn/directive-dispatch.js +1 -0
- package/dist/spawn/directive-dispatch.js.map +1 -1
- package/dist/spawn/lead-continuation.d.ts +4 -3
- package/dist/spawn/lead-continuation.d.ts.map +1 -1
- package/dist/spawn/lead-continuation.js.map +1 -1
- package/dist/spawn/live-answer-delivery.d.ts +53 -0
- package/dist/spawn/live-answer-delivery.d.ts.map +1 -0
- package/dist/spawn/live-answer-delivery.js +26 -0
- package/dist/spawn/live-answer-delivery.js.map +1 -0
- package/dist/spawn/routing-decider-spawn.d.ts +64 -2
- package/dist/spawn/routing-decider-spawn.d.ts.map +1 -1
- package/dist/spawn/routing-decider-spawn.js +65 -20
- package/dist/spawn/routing-decider-spawn.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +7 -5
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +11 -7
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/supervision/escalation-suppression.js +1 -1
- package/dist/supervision/review-cycle-cap-hold.d.ts +11 -5
- package/dist/supervision/review-cycle-cap-hold.d.ts.map +1 -1
- package/dist/supervision/review-cycle-cap-hold.js +29 -11
- package/dist/supervision/review-cycle-cap-hold.js.map +1 -1
- package/dist/supervision/review-loop-detector.d.ts +48 -0
- package/dist/supervision/review-loop-detector.d.ts.map +1 -0
- package/dist/supervision/review-loop-detector.js +13 -0
- package/dist/supervision/review-loop-detector.js.map +1 -0
- package/dist/supervision/review-loop-hold.d.ts +29 -0
- package/dist/supervision/review-loop-hold.d.ts.map +1 -0
- package/dist/supervision/review-loop-hold.js +99 -0
- package/dist/supervision/review-loop-hold.js.map +1 -0
- package/dist/supervision/stall-detector-config.d.ts +8 -0
- package/dist/supervision/stall-detector-config.d.ts.map +1 -1
- package/dist/supervision/stall-detector-config.js +14 -3
- package/dist/supervision/stall-detector-config.js.map +1 -1
- package/dist/supervision/stop-registry.d.ts +3 -0
- package/dist/supervision/stop-registry.d.ts.map +1 -1
- package/dist/supervision/stop-registry.js +3 -1
- package/dist/supervision/stop-registry.js.map +1 -1
- package/dist/supervision/stop-rows-review-loop.d.ts +35 -0
- package/dist/supervision/stop-rows-review-loop.d.ts.map +1 -0
- package/dist/supervision/stop-rows-review-loop.js +150 -0
- package/dist/supervision/stop-rows-review-loop.js.map +1 -0
- package/dist/supervision/stop-rows-team-session.d.ts +1 -1
- package/dist/supervision/stop-rows-team-session.d.ts.map +1 -1
- package/dist/supervision/stop-rows-team-session.js.map +1 -1
- package/dist/supervision/unreviewed-settle-detector.d.ts +7 -2
- package/dist/supervision/unreviewed-settle-detector.d.ts.map +1 -1
- package/dist/supervision/unreviewed-settle-detector.js +15 -2
- package/dist/supervision/unreviewed-settle-detector.js.map +1 -1
- package/dist/templates/agents-md.d.ts.map +1 -1
- package/dist/templates/agents-md.js +1 -0
- package/dist/templates/agents-md.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +12 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/testing/fixtures/api-client.js +1 -1
- package/dist/testing/fixtures/completion-judge-stubs.d.ts +7 -2
- package/dist/testing/fixtures/completion-judge-stubs.d.ts.map +1 -1
- package/dist/testing/fixtures/completion-judge-stubs.js +11 -1
- package/dist/testing/fixtures/completion-judge-stubs.js.map +1 -1
- package/dist/testing/fixtures/index.js +1 -1
- package/dist/testing/fixtures/merge-log-capture.d.ts.map +1 -1
- package/dist/testing/fixtures/merge-log-capture.js +1 -0
- package/dist/testing/fixtures/merge-log-capture.js.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.d.ts +4 -0
- package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.js +15 -2
- 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-exit-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/review-exit-deps.js +3 -1
- package/dist/testing/fixtures/review-exit-deps.js.map +1 -1
- package/dist/testing/fixtures/review-loop.d.ts +19 -0
- package/dist/testing/fixtures/review-loop.d.ts.map +1 -0
- package/dist/testing/fixtures/review-loop.js +30 -0
- package/dist/testing/fixtures/review-loop.js.map +1 -0
- package/dist/testing/fixtures/shortfall-rework-hold-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/shortfall-rework-hold-deps.js +1 -0
- package/dist/testing/fixtures/shortfall-rework-hold-deps.js.map +1 -1
- package/dist/testing/fixtures/tower-loop.d.ts +28 -0
- package/dist/testing/fixtures/tower-loop.d.ts.map +1 -0
- package/dist/testing/fixtures/tower-loop.js +83 -0
- package/dist/testing/fixtures/tower-loop.js.map +1 -0
- package/dist/testing/fixtures/verification-deps.d.ts +7 -0
- package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
- package/dist/testing/fixtures/verification-deps.js +17 -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 +2 -1
- package/dist/testing/fixtures/vitest-failure-log.js.map +1 -1
- package/dist/tower/tower-escalation-gather.d.ts +33 -0
- package/dist/tower/tower-escalation-gather.d.ts.map +1 -0
- package/dist/tower/tower-escalation-gather.js +38 -0
- package/dist/tower/tower-escalation-gather.js.map +1 -0
- package/dist/tower/tower-escalation-prompt.d.ts +62 -0
- package/dist/tower/tower-escalation-prompt.d.ts.map +1 -0
- package/dist/tower/tower-escalation-prompt.js +130 -0
- package/dist/tower/tower-escalation-prompt.js.map +1 -0
- package/dist/tower/tower-escalation-routing.d.ts +49 -0
- package/dist/tower/tower-escalation-routing.d.ts.map +1 -0
- package/dist/tower/tower-escalation-routing.js +53 -0
- package/dist/tower/tower-escalation-routing.js.map +1 -0
- package/dist/tower/tower-escalation-session.d.ts +149 -0
- package/dist/tower/tower-escalation-session.d.ts.map +1 -0
- package/dist/tower/tower-escalation-session.js +238 -0
- package/dist/tower/tower-escalation-session.js.map +1 -0
- package/dist/tower/tower-supervisor-history.d.ts +129 -0
- package/dist/tower/tower-supervisor-history.d.ts.map +1 -0
- package/dist/tower/tower-supervisor-history.js +217 -0
- package/dist/tower/tower-supervisor-history.js.map +1 -0
- package/dist/tower/tower-supervisor-prompt.d.ts +21 -0
- package/dist/tower/tower-supervisor-prompt.d.ts.map +1 -0
- package/dist/tower/tower-supervisor-prompt.js +205 -0
- package/dist/tower/tower-supervisor-prompt.js.map +1 -0
- package/dist/tower/tower-supervisor-session.d.ts +220 -0
- package/dist/tower/tower-supervisor-session.d.ts.map +1 -0
- package/dist/tower/tower-supervisor-session.js +307 -0
- package/dist/tower/tower-supervisor-session.js.map +1 -0
- package/dist/tower/tower-supervisor.d.ts +86 -0
- package/dist/tower/tower-supervisor.d.ts.map +1 -0
- package/dist/tower/tower-supervisor.js +8 -0
- package/dist/tower/tower-supervisor.js.map +1 -0
- package/dist/types/index.js +1 -1
- package/dist/update/auto-update.d.ts +11 -5
- package/dist/update/auto-update.d.ts.map +1 -1
- package/dist/update/auto-update.js +11 -5
- package/dist/update/auto-update.js.map +1 -1
- package/dist/update/restart-contract.d.ts +62 -0
- package/dist/update/restart-contract.d.ts.map +1 -0
- package/dist/update/restart-contract.js +137 -0
- package/dist/update/restart-contract.js.map +1 -0
- package/dist/verify/attribution/verification-baseline-run.d.ts.map +1 -1
- package/dist/verify/attribution/verification-baseline-run.js +1 -0
- package/dist/verify/attribution/verification-baseline-run.js.map +1 -1
- package/dist/verify/ci-gate/ci-gate-dispatch.d.ts +3 -0
- package/dist/verify/ci-gate/ci-gate-dispatch.d.ts.map +1 -1
- package/dist/verify/ci-gate/ci-gate-dispatch.js +31 -9
- package/dist/verify/ci-gate/ci-gate-dispatch.js.map +1 -1
- package/dist/verify/ci-gate/ci-gate-wait-record.d.ts +6 -0
- package/dist/verify/ci-gate/ci-gate-wait-record.d.ts.map +1 -1
- package/dist/verify/ci-gate/ci-gate-wait-record.js +1 -0
- package/dist/verify/ci-gate/ci-gate-wait-record.js.map +1 -1
- package/dist/verify/deterministic-gate/verification-checkout.d.ts +12 -2
- package/dist/verify/deterministic-gate/verification-checkout.d.ts.map +1 -1
- package/dist/verify/deterministic-gate/verification-checkout.js +18 -3
- package/dist/verify/deterministic-gate/verification-checkout.js.map +1 -1
- package/dist/verify/deterministic-gate/verification-deterministic.js +1 -1
- package/dist/verify/deterministic-gate/verification-failure-parser.d.ts +30 -9
- package/dist/verify/deterministic-gate/verification-failure-parser.d.ts.map +1 -1
- package/dist/verify/deterministic-gate/verification-failure-parser.js +52 -8
- package/dist/verify/deterministic-gate/verification-failure-parser.js.map +1 -1
- package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
- package/dist/verify/engine/verification-commit-sharing.js +6 -2
- package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
- package/dist/verify/engine/verification-deps.d.ts +9 -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 +4 -1
- package/dist/verify/engine/verification-engine.js.map +1 -1
- package/dist/verify/escaped-tests/escaped-pass-store.d.ts +19 -0
- package/dist/verify/escaped-tests/escaped-pass-store.d.ts.map +1 -0
- package/dist/verify/escaped-tests/escaped-pass-store.js +90 -0
- package/dist/verify/escaped-tests/escaped-pass-store.js.map +1 -0
- package/dist/verify/escaped-tests/escaped-test-run.d.ts +39 -0
- package/dist/verify/escaped-tests/escaped-test-run.d.ts.map +1 -0
- package/dist/verify/escaped-tests/escaped-test-run.js +156 -0
- package/dist/verify/escaped-tests/escaped-test-run.js.map +1 -0
- package/dist/verify/escaped-tests/escaped-test-set.d.ts +65 -0
- package/dist/verify/escaped-tests/escaped-test-set.d.ts.map +1 -0
- package/dist/verify/escaped-tests/escaped-test-set.js +95 -0
- package/dist/verify/escaped-tests/escaped-test-set.js.map +1 -0
- package/dist/verify/escaped-tests/escaped-tests-source.d.ts +44 -0
- package/dist/verify/escaped-tests/escaped-tests-source.d.ts.map +1 -0
- package/dist/verify/escaped-tests/escaped-tests-source.js +142 -0
- package/dist/verify/escaped-tests/escaped-tests-source.js.map +1 -0
- package/dist/verify/gate-config/verification-manifest.d.ts +12 -1
- package/dist/verify/gate-config/verification-manifest.d.ts.map +1 -1
- package/dist/verify/gate-config/verification-manifest.js +12 -1
- package/dist/verify/gate-config/verification-manifest.js.map +1 -1
- package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
- package/dist/verify/outcome-routing/verification-rework-issue.d.ts +4 -4
- package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
- package/dist/verify/outcome-routing/verification-rework-issue.js +16 -6
- package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
- package/package.json +3 -3
- package/scripts/telora-daemon-wrapper.sh +16 -7
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The workstation's equipment record: its slot capacity and its focuses' slot
|
|
3
|
+
* waits, written as time intervals (queries/workstation-intervals/).
|
|
4
|
+
*
|
|
5
|
+
* The workstation is the daemon HOST: one daemon, one workstation, one capacity
|
|
6
|
+
* interval at a time, whatever number of products it serves. Its rated capacity
|
|
7
|
+
* is the session cap (maxTotalSessions).
|
|
8
|
+
*
|
|
9
|
+
* CAPACITY. The cap takes effect at exactly two points, and each writes an
|
|
10
|
+
* interval the server opens at that instant while closing the previous one:
|
|
11
|
+
* - 'start' -- the focus engine starts (FocusEngine.start, before its first
|
|
12
|
+
* spawn pass);
|
|
13
|
+
* - 'reload' -- a SIGHUP applies a changed cap or cap source
|
|
14
|
+
* (shell/unified-engine-lifecycle.ts applyConfigHotReload).
|
|
15
|
+
* An "auto" cap is derived from the host's TOTAL memory and core count
|
|
16
|
+
* (config/session-cap.ts deriveSessionCap), and the derivation is run only at
|
|
17
|
+
* startup and on that SIGHUP re-resolve -- never on a timer, never from free
|
|
18
|
+
* memory -- so these two points are every point the cap can change. A graceful
|
|
19
|
+
* stop closes the interval (focus/heartbeat.ts stopHeartbeat, before the
|
|
20
|
+
* disconnect write).
|
|
21
|
+
*
|
|
22
|
+
* WAITS. Each spawn pass's replacement of its awaiting-slot set
|
|
23
|
+
* (daemon-state/awaiting-slot.ts) answers how the published union moved. A focus
|
|
24
|
+
* that ENTERED opens one wait (from when its wait began); a focus that LEFT
|
|
25
|
+
* closes it, as 'team_started' when the focus now has an active team, else
|
|
26
|
+
* 'not_spawnable'. A focus still waiting across passes moves nothing, so it keeps
|
|
27
|
+
* ONE open wait; an unchanged union sends nothing.
|
|
28
|
+
*
|
|
29
|
+
* Every write is BEST-EFFORT and never blocks or fails a spawn pass: writes are
|
|
30
|
+
* queued on ONE promise chain (so a wait's open is never overtaken by its own
|
|
31
|
+
* close, and the 'start' record -- which closes a crashed predecessor's waits --
|
|
32
|
+
* lands before this daemon's first wait), each failure is caught and logged at
|
|
33
|
+
* warn (a read-only daemon's refused write included), and the instant of each
|
|
34
|
+
* transition is taken when it happened, not when its write ran.
|
|
35
|
+
*
|
|
36
|
+
* @module focus/workstation-intervals
|
|
37
|
+
*/
|
|
38
|
+
import type { CapacityOpenedBy, CloseWorkstationCapacityRequest, RecordSlotWaitsRequest, RecordWorkstationCapacityRequest, WorkstationCapSource } from '../queries/workstation-intervals/workstation-intervals.js';
|
|
39
|
+
import type { AwaitingSlotTransition } from '../daemon-state/awaiting-slot.js';
|
|
40
|
+
/** How long a graceful stop waits for the capacity close (and anything queued ahead of it). */
|
|
41
|
+
export declare const WORKSTATION_CAPACITY_CLOSE_TIMEOUT_MS = 5000;
|
|
42
|
+
/** A slot cap and where it came from. */
|
|
43
|
+
export interface WorkstationCapacity {
|
|
44
|
+
slotCap: number;
|
|
45
|
+
capSource: WorkstationCapSource;
|
|
46
|
+
}
|
|
47
|
+
/** The recorder's collaborators, every one REQUIRED (bound at the composition root). */
|
|
48
|
+
export interface WorkstationIntervalDeps {
|
|
49
|
+
/** The workstation key: the daemon host name (agent_sessions.daemon_hostname). */
|
|
50
|
+
workstation: string;
|
|
51
|
+
/** This daemon's pid. */
|
|
52
|
+
pid: number;
|
|
53
|
+
now: () => Date;
|
|
54
|
+
recordCapacity: (request: RecordWorkstationCapacityRequest) => Promise<unknown>;
|
|
55
|
+
closeCapacity: (request: CloseWorkstationCapacityRequest) => Promise<unknown>;
|
|
56
|
+
recordSlotWaits: (request: RecordSlotWaitsRequest) => Promise<unknown>;
|
|
57
|
+
/** Whether the focus has a live team now (daemon-state/focus-team-state.ts hasActiveTeam). */
|
|
58
|
+
hasActiveTeam: (focusId: string) => boolean;
|
|
59
|
+
warn: (message: string) => void;
|
|
60
|
+
}
|
|
61
|
+
/** The workstation's interval writer. */
|
|
62
|
+
export interface WorkstationIntervalRecorder {
|
|
63
|
+
/** A slot cap took effect ('start' always writes; a 'reload' writes only when cap or source differ from the last written). */
|
|
64
|
+
capacityTookEffect(openedBy: CapacityOpenedBy, capacity: WorkstationCapacity): void;
|
|
65
|
+
/** One spawn pass moved the awaiting-slot union; an empty transition writes nothing. */
|
|
66
|
+
slotWaitsMoved(transition: AwaitingSlotTransition): void;
|
|
67
|
+
/** Graceful stop: close the capacity interval, waiting at most `timeoutMs`. Later calls write nothing. */
|
|
68
|
+
stop(timeoutMs: number): Promise<void>;
|
|
69
|
+
/** Settles once every write queued so far has run (tests). */
|
|
70
|
+
settled(): Promise<void>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* The capacity a resolved engine config carries, or null when its cap is not a
|
|
74
|
+
* positive integer. A config with no recorded source predates the source field
|
|
75
|
+
* and was set as a number, so it reads as 'explicit'.
|
|
76
|
+
*/
|
|
77
|
+
export declare function capacityOfConfig(config: {
|
|
78
|
+
readonly maxTotalSessions?: unknown;
|
|
79
|
+
readonly maxTotalSessionsSource?: unknown;
|
|
80
|
+
}): WorkstationCapacity | null;
|
|
81
|
+
/** Build the workstation's one interval writer (see the module header). */
|
|
82
|
+
export declare function createWorkstationIntervalRecorder(deps: WorkstationIntervalDeps): WorkstationIntervalRecorder;
|
|
83
|
+
//# sourceMappingURL=workstation-intervals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workstation-intervals.d.ts","sourceRoot":"","sources":["../../src/focus/workstation-intervals.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,+BAA+B,EAC/B,sBAAsB,EACtB,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,2DAA2D,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE/E,+FAA+F;AAC/F,eAAO,MAAM,qCAAqC,OAAQ,CAAC;AAE3D,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,oBAAoB,CAAC;CACjC;AAED,wFAAwF;AACxF,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,cAAc,EAAE,CAAC,OAAO,EAAE,gCAAgC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF,aAAa,EAAE,CAAC,OAAO,EAAE,+BAA+B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9E,eAAe,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvE,8FAA8F;IAC9F,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,yCAAyC;AACzC,MAAM,WAAW,2BAA2B;IAC1C,8HAA8H;IAC9H,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACpF,wFAAwF;IACxF,cAAc,CAAC,UAAU,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACzD,0GAA0G;IAC1G,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,8DAA8D;IAC9D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE;IAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;CAAE,GACzF,mBAAmB,GAAG,IAAI,CAM5B;AAMD,2EAA2E;AAC3E,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,uBAAuB,GAAG,2BAA2B,CAyD5G"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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/awaiting-slot.test.ts,
|
|
3
|
+
// packages/daemon/src/focus/workstation-intervals.test.ts,
|
|
4
|
+
// packages/daemon/src/shell/config-hot-reload-apply.test.ts
|
|
5
|
+
// PINNED-BY-END
|
|
6
|
+
/** How long a graceful stop waits for the capacity close (and anything queued ahead of it). */
|
|
7
|
+
export const WORKSTATION_CAPACITY_CLOSE_TIMEOUT_MS = 5_000;
|
|
8
|
+
/**
|
|
9
|
+
* The capacity a resolved engine config carries, or null when its cap is not a
|
|
10
|
+
* positive integer. A config with no recorded source predates the source field
|
|
11
|
+
* and was set as a number, so it reads as 'explicit'.
|
|
12
|
+
*/
|
|
13
|
+
export function capacityOfConfig(config) {
|
|
14
|
+
const slotCap = config.maxTotalSessions;
|
|
15
|
+
if (typeof slotCap !== 'number' || !Number.isInteger(slotCap) || slotCap <= 0)
|
|
16
|
+
return null;
|
|
17
|
+
const source = config.maxTotalSessionsSource;
|
|
18
|
+
const mode = typeof source === 'object' && source !== null && 'mode' in source ? source.mode : undefined;
|
|
19
|
+
return { slotCap, capSource: mode === 'auto' ? 'auto' : 'explicit' };
|
|
20
|
+
}
|
|
21
|
+
function message(err) {
|
|
22
|
+
return err instanceof Error ? err.message : String(err);
|
|
23
|
+
}
|
|
24
|
+
/** Build the workstation's one interval writer (see the module header). */
|
|
25
|
+
export function createWorkstationIntervalRecorder(deps) {
|
|
26
|
+
const { workstation, pid } = deps;
|
|
27
|
+
let chain = Promise.resolve();
|
|
28
|
+
let lastCapacity = null;
|
|
29
|
+
let stopped = false;
|
|
30
|
+
const enqueue = (what, write) => {
|
|
31
|
+
chain = chain.then(write).then(() => undefined, (err) => deps.warn(`[workstation-intervals] ${what} not recorded: ${message(err)}`));
|
|
32
|
+
return chain;
|
|
33
|
+
};
|
|
34
|
+
return {
|
|
35
|
+
capacityTookEffect(openedBy, capacity) {
|
|
36
|
+
if (stopped)
|
|
37
|
+
return;
|
|
38
|
+
if (openedBy === 'reload' && lastCapacity
|
|
39
|
+
&& lastCapacity.slotCap === capacity.slotCap && lastCapacity.capSource === capacity.capSource)
|
|
40
|
+
return;
|
|
41
|
+
lastCapacity = capacity;
|
|
42
|
+
const request = { workstation, pid, openedBy, ...capacity, at: deps.now().toISOString() };
|
|
43
|
+
void enqueue(`capacity (${openedBy}, cap ${capacity.slotCap})`, () => deps.recordCapacity(request));
|
|
44
|
+
},
|
|
45
|
+
slotWaitsMoved(transition) {
|
|
46
|
+
if (stopped || (transition.entered.length === 0 && transition.left.length === 0))
|
|
47
|
+
return;
|
|
48
|
+
const request = {
|
|
49
|
+
workstation,
|
|
50
|
+
opened: transition.entered.map(({ focusId, since }) => ({ focusId, since: new Date(since).toISOString() })),
|
|
51
|
+
closed: transition.left.map((focusId) => ({
|
|
52
|
+
focusId,
|
|
53
|
+
reason: deps.hasActiveTeam(focusId) ? 'team_started' : 'not_spawnable',
|
|
54
|
+
})),
|
|
55
|
+
at: deps.now().toISOString(),
|
|
56
|
+
};
|
|
57
|
+
void enqueue(`slot waits (+${request.opened.length}/-${request.closed.length})`, () => deps.recordSlotWaits(request));
|
|
58
|
+
},
|
|
59
|
+
async stop(timeoutMs) {
|
|
60
|
+
if (stopped)
|
|
61
|
+
return;
|
|
62
|
+
stopped = true;
|
|
63
|
+
const request = { workstation, pid, at: deps.now().toISOString() };
|
|
64
|
+
const closed = enqueue('capacity close', () => deps.closeCapacity(request));
|
|
65
|
+
let timer;
|
|
66
|
+
// Not unref'd: the shutdown awaiting this must not lose its event loop to a hung close.
|
|
67
|
+
const timedOut = new Promise((resolve) => {
|
|
68
|
+
timer = setTimeout(() => resolve('timeout'), timeoutMs);
|
|
69
|
+
});
|
|
70
|
+
const outcome = await Promise.race([closed.then(() => 'done'), timedOut]);
|
|
71
|
+
if (timer)
|
|
72
|
+
clearTimeout(timer);
|
|
73
|
+
if (outcome === 'timeout')
|
|
74
|
+
deps.warn(`[workstation-intervals] capacity close did not finish within ${timeoutMs}ms; stopping without it`);
|
|
75
|
+
},
|
|
76
|
+
settled() {
|
|
77
|
+
return chain;
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=workstation-intervals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workstation-intervals.js","sourceRoot":"","sources":["../../src/focus/workstation-intervals.ts"],"names":[],"mappings":"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"}
|
|
@@ -223,9 +223,12 @@ export interface WedgeFocusInput {
|
|
|
223
223
|
* deliveries recorded as new intent wait at planning for the next arm. Either
|
|
224
224
|
* way the focus is correctly un-armed with work still on it and is NOT a
|
|
225
225
|
* strand, so it is reported as ended rather than escalated as a wedge.
|
|
226
|
+
* 'run_finished' (a lifecycle clear that discounted nothing) and
|
|
227
|
+
* 'run_finished_unreviewed' (the unreviewed-settle release) are NOT announced
|
|
228
|
+
* here: they claim every delivery is terminal, so they fall through to the
|
|
229
|
+
* strand diagnosis, which still catches a clear that outran its work.
|
|
226
230
|
* Null/undefined => no machine end recorded (a live arm, a never-armed focus,
|
|
227
|
-
*
|
|
228
|
-
* exactly as it did before this column.
|
|
231
|
+
* or an operator stop).
|
|
229
232
|
*/
|
|
230
233
|
armEndedReason?: string | null;
|
|
231
234
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wedge-watchdog.d.ts","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/wedge-watchdog.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,EAAgC,KAAK,4BAA4B,EAAE,KAAK,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC3J,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"wedge-watchdog.d.ts","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/wedge-watchdog.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,EAAgC,KAAK,4BAA4B,EAAE,KAAK,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC3J,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AA+G5E,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,gFAAgF;AAChF,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,iHAAiH;IACjH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sGAAsG;IACtG,gBAAgB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC/C,yFAAyF;IACzF,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,aAAa,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AACF;;;;;;;GAOG;AACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,GACzB,kBAAkB,CA0BpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,EACxF,UAAU,EAAE,aAAa,CAAC;IAAE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAC5D,OAAO,CAUT;AAsED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAE/E;AAED,yDAAyD;AACzD,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,4BAA4B,EAAE,OAAO,4BAA4B,CAAC;IAClE,iGAAiG;IACjG,4BAA4B,EAAE,OAAO,4BAA4B,CAAC;IAClE,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IAC1C,gFAAgF;IAChF,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,uEAAuE;AACvE,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAgOD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,YAAY,CAAC,CA4HvB"}
|
|
@@ -9,7 +9,7 @@ import { DISPOSITION_AGENT_RESOLVABLE } from '../queries/escalations/escalation-
|
|
|
9
9
|
import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS, DELIVERY_STATUS, loadEnvConfig, } from '@telora/daemon-core';
|
|
10
10
|
import { focusMayRunTeam } from '../supervision/null-role-spawn.js';
|
|
11
11
|
import { stopFires } from '../supervision/stop-registry.js';
|
|
12
|
-
import { ARM_ENDED_REVIEW_BUDGET_SPENT, ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS,
|
|
12
|
+
import { ARM_ENDED_REVIEW_BUDGET_SPENT, ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS, parseRecordedWorkWaitsDetail, } from '../queries/focuses/ended-arm.js';
|
|
13
13
|
import { createLogger } from '../log/daemon-log.js';
|
|
14
14
|
const log = createLogger({ module: 'focus-stage-lifecycle' });
|
|
15
15
|
// ── Planning-wedge watchdog + zero-actionable log (D2 + D3) ───────
|
|
@@ -293,7 +293,7 @@ function announceRecordedArmEnd(focus) {
|
|
|
293
293
|
`open are recorded on the focus (arm_ended_detail). No coding or review pass spawns until a human arms ` +
|
|
294
294
|
`it again; arming grants a fresh budget.`;
|
|
295
295
|
}
|
|
296
|
-
else if (
|
|
296
|
+
else if (focus.armEndedReason === ARM_ENDED_RUN_FINISHED_RECORDED_WORK_WAITS) {
|
|
297
297
|
reason = 'arm_ended_run_finished_recorded_work_waits';
|
|
298
298
|
const detail = parseRecordedWorkWaitsDetail(focus.armEndedDetail);
|
|
299
299
|
const named = detail && detail.recordedDeliveries.length > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wedge-watchdog.js","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/wedge-watchdog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wedge-watchdog.js","sourceRoot":"","sources":["../../src/focus-stage-lifecycle/wedge-watchdog.ts"],"names":[],"mappings":"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"}
|
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: 22 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,72 @@
|
|
|
1
|
+
import { type FailureRecord, type PublishedFailureRecord } from '../ci/candidate-failure-record.js';
|
|
2
|
+
/** How long a red with no failure record yet waits for one, when its product's CI publishes them (module doc). */
|
|
3
|
+
export declare const FAILURE_RECORD_WAIT_MS: number;
|
|
4
|
+
/** The most failing-test ids a held set keeps (the files are what is used; ids are for the record). */
|
|
5
|
+
export declare const HELD_FAILING_TEST_IDS_MAX = 200;
|
|
6
|
+
/** A red candidate's failing test files, as the daemon holds them. */
|
|
7
|
+
export interface CandidateCiFailures {
|
|
8
|
+
/** The candidate commit CI judged. */
|
|
9
|
+
sha: string;
|
|
10
|
+
/** The CI run whose records these are (null: the run could not be told from the status refs). */
|
|
11
|
+
run: number | null;
|
|
12
|
+
/** The jobs (shards) that published a record. */
|
|
13
|
+
jobs: string[];
|
|
14
|
+
/** Repo-relative test files that failed, sorted. */
|
|
15
|
+
failingFiles: string[];
|
|
16
|
+
/** The failing-test ids, file made repo-relative, sorted; at most HELD_FAILING_TEST_IDS_MAX. */
|
|
17
|
+
failingTests: string[];
|
|
18
|
+
/** False when part of the run's output was cut or unreadable, or a failure named no file. */
|
|
19
|
+
complete: boolean;
|
|
20
|
+
readAt: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Merge a run's records into one failing set; null when there is no record.
|
|
24
|
+
* A log whose step exited non-zero (its record's `exitCode`) but which yields
|
|
25
|
+
* no failing-test id is unparseable red, so the set is incomplete -- never a
|
|
26
|
+
* complete empty one. Pure (the read time is passed in).
|
|
27
|
+
*/
|
|
28
|
+
export declare function failuresFromRecords(sha: string, run: number | null, records: readonly FailureRecord[], readAt: string): CandidateCiFailures | null;
|
|
29
|
+
/** The reads and the hold the set is built through; bound at the composition root. */
|
|
30
|
+
export interface CandidateCiFailuresDeps {
|
|
31
|
+
/** The candidate's refs/ci-status ref names (ci/ci-status-git.ts listCiStatusRefsAt). */
|
|
32
|
+
listCiStatusRefs: (sha: string) => string[];
|
|
33
|
+
/** The failure records CI published for the commit (ci/candidate-failure-record.ts). */
|
|
34
|
+
listRecords: (sha: string) => PublishedFailureRecord[];
|
|
35
|
+
readRecord: (published: PublishedFailureRecord) => FailureRecord | null;
|
|
36
|
+
readHeld: (sha: string) => CandidateCiFailures | null;
|
|
37
|
+
hold: (failures: CandidateCiFailures) => void;
|
|
38
|
+
now: () => string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The failing test files of the red candidate `sha`: the held set when it was
|
|
42
|
+
* read from the run that decided red AND from every record that run has
|
|
43
|
+
* published now -- a job whose record lands after the set was held (another
|
|
44
|
+
* shard, the e2e job) makes it read again -- else read now (and held). Null when the
|
|
45
|
+
* deciding run published no record -- a set held from ANOTHER run of the same
|
|
46
|
+
* commit is never answered for it, since its files did not fail in this run --
|
|
47
|
+
* or on any failure. Never throws.
|
|
48
|
+
*/
|
|
49
|
+
export declare function readCandidateCiFailures(sha: string, deps: CandidateCiFailuresDeps): CandidateCiFailures | null;
|
|
50
|
+
/** The held file for a candidate; `dir` defaults to the global state dir. Exported for tests. */
|
|
51
|
+
export declare function candidateCiFailuresPath(productId: string, focusId: string, sha: string, dir?: string): string;
|
|
52
|
+
/** Parse a held file; null when it is not a well-formed set. Pure. */
|
|
53
|
+
export declare function parseHeldCandidateCiFailures(text: string): CandidateCiFailures | null;
|
|
54
|
+
/** The set held for a candidate; null when none is, or it is unreadable. */
|
|
55
|
+
export declare function readHeldCandidateCiFailures(productId: string, focusId: string, sha: string, dir?: string): CandidateCiFailures | null;
|
|
56
|
+
/** Hold a candidate's set (temp + rename). A failed write is logged, never thrown. */
|
|
57
|
+
export declare function holdCandidateCiFailures(productId: string, focusId: string, failures: CandidateCiFailures, dir?: string): void;
|
|
58
|
+
/** Reset the wait's memory -- tests start from a clean slate. */
|
|
59
|
+
export declare function __resetFailureRecordWaitForTests(): void;
|
|
60
|
+
/** Whether this host has ever held a CI failure set for the product: its CI publishes records. */
|
|
61
|
+
export declare function productPublishesFailureRecords(productId: string, dir?: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Whether the red candidate `sha`, which has no failure record yet, should wait
|
|
64
|
+
* for one this tick rather than have its rework routed without files: only when
|
|
65
|
+
* the product publishes records, and only within FAILURE_RECORD_WAIT_MS of this
|
|
66
|
+
* process's first sighting. Never throws.
|
|
67
|
+
*/
|
|
68
|
+
export declare function awaitsFailureRecord(subject: {
|
|
69
|
+
productId: string;
|
|
70
|
+
focusId: string;
|
|
71
|
+
}, sha: string, now: number, publishes: (productId: string) => boolean): boolean;
|
|
72
|
+
//# sourceMappingURL=candidate-ci-failures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidate-ci-failures.d.ts","sourceRoot":"","sources":["../../src/merge/candidate-ci-failures.ts"],"names":[],"mappings":"AA6CA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC5B,MAAM,mCAAmC,CAAC;AAM3C,kHAAkH;AAClH,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAErD,uGAAuG;AACvG,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IAClC,sCAAsC;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,iGAAiG;IACjG,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,iDAAiD;IACjD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,oDAAoD;IACpD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gGAAgG;IAChG,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,6FAA6F;IAC7F,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAcD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,MAAM,EAAE,MAAM,GACb,mBAAmB,GAAG,IAAI,CAoC5B;AAED,sFAAsF;AACtF,MAAM,WAAW,uBAAuB;IACtC,yFAAyF;IACzF,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IAC5C,wFAAwF;IACxF,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,sBAAsB,EAAE,CAAC;IACvD,UAAU,EAAE,CAAC,SAAS,EAAE,sBAAsB,KAAK,aAAa,GAAG,IAAI,CAAC;IACxE,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,mBAAmB,GAAG,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAQD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,GAAG,mBAAmB,GAAG,IAAI,CAiB9G;AAUD,iGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,MAAM,CAExH;AAID,sEAAsE;AACtE,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAarF;AAED,4EAA4E;AAC5E,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,mBAAmB,GAAG,IAAI,CAMhJ;AAED,sFAAsF;AACtF,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,EAAE,GAAG,GAAE,MAAkB,GAAG,IAAI,CAUxI;AASD,iEAAiE;AACjE,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AAED,kGAAkG;AAClG,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CAOlG;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC/C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GACxC,OAAO,CAUT"}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
+
// Pinned by: packages/daemon/src/ci/candidate-failure-contract.test.ts,
|
|
3
|
+
// packages/daemon/src/merge/candidate-ci-failures.test.ts,
|
|
4
|
+
// packages/daemon/src/merge/candidate-red-record.test.ts,
|
|
5
|
+
// packages/daemon/src/merge/candidate-tip-attribution.test.ts,
|
|
6
|
+
// packages/daemon/src/merge/completion-merge-driver.test.ts
|
|
7
|
+
// PINNED-BY-END
|
|
8
|
+
/**
|
|
9
|
+
* The test files a red integration candidate failed in CI, as the daemon HOLDS
|
|
10
|
+
* them: read back over git from the run's failure records
|
|
11
|
+
* (ci/candidate-failure-record.ts), parsed with the gate's own failure parser
|
|
12
|
+
* (verify/deterministic-gate/verification-failure-parser.ts), and kept per
|
|
13
|
+
* (product, focus, candidate sha) under the global state dir.
|
|
14
|
+
*
|
|
15
|
+
* Read when the completion merge driver routes a red candidate's rework
|
|
16
|
+
* (merge/completion-merge-driver.ts), whose Bug names the files
|
|
17
|
+
* (merge/candidate-rework.ts). A held set is reused while the run that decided
|
|
18
|
+
* red, and the records that run has published, are the ones it was read from; a
|
|
19
|
+
* newer red run of the same commit, or another job's record of the same run, is
|
|
20
|
+
* read afresh.
|
|
21
|
+
*
|
|
22
|
+
* Sharded CI: every record (job) of the deciding run is merged into ONE set. A
|
|
23
|
+
* record whose log was cut, could not be read, or reported failures none of
|
|
24
|
+
* whose ids names a test file makes the set INCOMPLETE (`complete: false`):
|
|
25
|
+
* the files it holds failed, but they may not be all that failed. A run that
|
|
26
|
+
* published no record yields null -- the daemon holds nothing, exactly as before
|
|
27
|
+
* records existed -- and so does any read that fails. Nothing here can turn a red
|
|
28
|
+
* into a green.
|
|
29
|
+
*
|
|
30
|
+
* A LATE RECORD: CI may publish the red status before the failing job's record
|
|
31
|
+
* lands, and the red's rework is routed once (it re-opens the focus, and the
|
|
32
|
+
* candidate is not read again). So for a product whose CI has published a
|
|
33
|
+
* failure record before (one is held for it on this host), a red with no record
|
|
34
|
+
* yet waits up to FAILURE_RECORD_WAIT_MS from this process's first sighting
|
|
35
|
+
* before its rework is routed without files ({@link awaitsFailureRecord}). A
|
|
36
|
+
* product that has never published one waits not at all: no record is coming.
|
|
37
|
+
*
|
|
38
|
+
* @module merge/candidate-ci-failures
|
|
39
|
+
*/
|
|
40
|
+
import { mkdirSync, readdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
41
|
+
import { resolve } from 'node:path';
|
|
42
|
+
import { resolveGlobalStateDir } from '../daemon-state/daemon-process.js';
|
|
43
|
+
import { createLogger } from '../log/daemon-log.js';
|
|
44
|
+
import { decidingRedRun, recordsOfRun, } from '../ci/candidate-failure-record.js';
|
|
45
|
+
import { parseFailingTests, reportedFailureCount } from '../verify/deterministic-gate/verification-failure-parser.js';
|
|
46
|
+
import { testFileOfId } from '../verify/failing-test-rerun/rerun-command.js';
|
|
47
|
+
const log = createLogger({ module: 'completion-merge' });
|
|
48
|
+
/** How long a red with no failure record yet waits for one, when its product's CI publishes them (module doc). */
|
|
49
|
+
export const FAILURE_RECORD_WAIT_MS = 15 * 60 * 1000;
|
|
50
|
+
/** The most failing-test ids a held set keeps (the files are what is used; ids are for the record). */
|
|
51
|
+
export const HELD_FAILING_TEST_IDS_MAX = 200;
|
|
52
|
+
/** The repo-relative test file an id names in a log run under `root`, or null. Pure. */
|
|
53
|
+
function repoFileOf(id, root, workspace) {
|
|
54
|
+
const prefix = (file) => (root ? `${root}/${file}` : file);
|
|
55
|
+
const relative = testFileOfId(id, []);
|
|
56
|
+
if (relative !== null && !id.trimStart().startsWith('/'))
|
|
57
|
+
return prefix(relative);
|
|
58
|
+
if (workspace === null)
|
|
59
|
+
return null;
|
|
60
|
+
const absRoot = root ? `${workspace.replace(/\/+$/, '')}/${root}` : workspace;
|
|
61
|
+
const underRoot = testFileOfId(id, [absRoot]);
|
|
62
|
+
if (underRoot !== null)
|
|
63
|
+
return prefix(underRoot);
|
|
64
|
+
return testFileOfId(id, [workspace]);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Merge a run's records into one failing set; null when there is no record.
|
|
68
|
+
* A log whose step exited non-zero (its record's `exitCode`) but which yields
|
|
69
|
+
* no failing-test id is unparseable red, so the set is incomplete -- never a
|
|
70
|
+
* complete empty one. Pure (the read time is passed in).
|
|
71
|
+
*/
|
|
72
|
+
export function failuresFromRecords(sha, run, records, readAt) {
|
|
73
|
+
if (records.length === 0)
|
|
74
|
+
return null;
|
|
75
|
+
const files = new Set();
|
|
76
|
+
const tests = new Set();
|
|
77
|
+
let complete = true;
|
|
78
|
+
for (const record of records) {
|
|
79
|
+
for (const logEntry of record.logs) {
|
|
80
|
+
if (logEntry.text === null || logEntry.truncated)
|
|
81
|
+
complete = false;
|
|
82
|
+
if (logEntry.text === null)
|
|
83
|
+
continue;
|
|
84
|
+
const ids = [...parseFailingTests(logEntry.text)];
|
|
85
|
+
let named = 0;
|
|
86
|
+
for (const id of ids) {
|
|
87
|
+
const file = repoFileOf(id, logEntry.root, record.workspace);
|
|
88
|
+
if (file === null) {
|
|
89
|
+
tests.add(id);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
named += 1;
|
|
93
|
+
files.add(file);
|
|
94
|
+
tests.add([file, ...id.split(' > ').slice(1)].join(' > '));
|
|
95
|
+
}
|
|
96
|
+
const reported = reportedFailureCount(logEntry.text);
|
|
97
|
+
if ((ids.length > 0 && named === 0) || (ids.length === 0 && reported !== null && reported > 0))
|
|
98
|
+
complete = false;
|
|
99
|
+
const stepFailed = typeof logEntry.exitCode === 'number' && logEntry.exitCode !== 0;
|
|
100
|
+
if (ids.length === 0 && stepFailed)
|
|
101
|
+
complete = false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
sha,
|
|
106
|
+
run,
|
|
107
|
+
jobs: [...new Set(records.map((r) => r.job))].sort(),
|
|
108
|
+
failingFiles: [...files].sort(),
|
|
109
|
+
failingTests: [...tests].sort().slice(0, HELD_FAILING_TEST_IDS_MAX),
|
|
110
|
+
complete,
|
|
111
|
+
readAt,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/** Whether a held set was read from exactly the records the run has published now. Pure. */
|
|
115
|
+
function sameJobs(heldJobs, published) {
|
|
116
|
+
const now = [...new Set(published.map((p) => p.job))].sort();
|
|
117
|
+
return now.length === heldJobs.length && now.every((job, i) => job === heldJobs[i]);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The failing test files of the red candidate `sha`: the held set when it was
|
|
121
|
+
* read from the run that decided red AND from every record that run has
|
|
122
|
+
* published now -- a job whose record lands after the set was held (another
|
|
123
|
+
* shard, the e2e job) makes it read again -- else read now (and held). Null when the
|
|
124
|
+
* deciding run published no record -- a set held from ANOTHER run of the same
|
|
125
|
+
* commit is never answered for it, since its files did not fail in this run --
|
|
126
|
+
* or on any failure. Never throws.
|
|
127
|
+
*/
|
|
128
|
+
export function readCandidateCiFailures(sha, deps) {
|
|
129
|
+
try {
|
|
130
|
+
const run = decidingRedRun(deps.listCiStatusRefs(sha));
|
|
131
|
+
const published = recordsOfRun(deps.listRecords(sha), run);
|
|
132
|
+
const held = deps.readHeld(sha);
|
|
133
|
+
if (held !== null && run !== null && held.run === run && sameJobs(held.jobs, published))
|
|
134
|
+
return held;
|
|
135
|
+
const records = published.map((p) => deps.readRecord(p)).filter((r) => r !== null);
|
|
136
|
+
const failures = failuresFromRecords(sha, run ?? published[0]?.run ?? null, records, deps.now());
|
|
137
|
+
if (failures === null)
|
|
138
|
+
return null;
|
|
139
|
+
// A record that was listed but could not be read is part of the run that is missing.
|
|
140
|
+
const read = records.length === published.length ? failures : { ...failures, complete: false };
|
|
141
|
+
deps.hold(read);
|
|
142
|
+
return read;
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
log.warn(`[completion-merge] the CI failure record of candidate ${sha.slice(0, 9)} could not be read: ${err.message}`);
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// ---------------------------------------------------------------------------
|
|
150
|
+
// The hold: one file per (product, focus, candidate sha), written atomically.
|
|
151
|
+
// ---------------------------------------------------------------------------
|
|
152
|
+
function heldDir() {
|
|
153
|
+
return resolve(resolveGlobalStateDir(), 'candidate-ci-failures');
|
|
154
|
+
}
|
|
155
|
+
/** The held file for a candidate; `dir` defaults to the global state dir. Exported for tests. */
|
|
156
|
+
export function candidateCiFailuresPath(productId, focusId, sha, dir = heldDir()) {
|
|
157
|
+
return resolve(dir, `${productId}-${focusId}-${sha}.json`.replace(/[^a-zA-Z0-9._-]/g, '_'));
|
|
158
|
+
}
|
|
159
|
+
const isStrings = (v) => Array.isArray(v) && v.every((s) => typeof s === 'string');
|
|
160
|
+
/** Parse a held file; null when it is not a well-formed set. Pure. */
|
|
161
|
+
export function parseHeldCandidateCiFailures(text) {
|
|
162
|
+
let raw;
|
|
163
|
+
try {
|
|
164
|
+
raw = JSON.parse(text);
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
if (typeof raw !== 'object' || raw === null)
|
|
170
|
+
return null;
|
|
171
|
+
const r = raw;
|
|
172
|
+
if (typeof r.sha !== 'string' || !(r.run === null || (typeof r.run === 'number' && Number.isSafeInteger(r.run))))
|
|
173
|
+
return null;
|
|
174
|
+
if (!isStrings(r.jobs) || !isStrings(r.failingFiles) || !isStrings(r.failingTests))
|
|
175
|
+
return null;
|
|
176
|
+
if (typeof r.complete !== 'boolean' || typeof r.readAt !== 'string')
|
|
177
|
+
return null;
|
|
178
|
+
return { sha: r.sha, run: r.run, jobs: r.jobs, failingFiles: r.failingFiles, failingTests: r.failingTests, complete: r.complete, readAt: r.readAt };
|
|
179
|
+
}
|
|
180
|
+
/** The set held for a candidate; null when none is, or it is unreadable. */
|
|
181
|
+
export function readHeldCandidateCiFailures(productId, focusId, sha, dir = heldDir()) {
|
|
182
|
+
try {
|
|
183
|
+
return parseHeldCandidateCiFailures(readFileSync(candidateCiFailuresPath(productId, focusId, sha, dir), 'utf8'));
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/** Hold a candidate's set (temp + rename). A failed write is logged, never thrown. */
|
|
190
|
+
export function holdCandidateCiFailures(productId, focusId, failures, dir = heldDir()) {
|
|
191
|
+
const path = candidateCiFailuresPath(productId, focusId, failures.sha, dir);
|
|
192
|
+
try {
|
|
193
|
+
mkdirSync(dir, { recursive: true });
|
|
194
|
+
const tmp = `${path}.${process.pid}.tmp`;
|
|
195
|
+
writeFileSync(tmp, JSON.stringify(failures, null, 2));
|
|
196
|
+
renameSync(tmp, path);
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
log.warn(`[completion-merge] could not hold the CI failures of candidate ${failures.sha.slice(0, 9)}: ${err.message}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// ---------------------------------------------------------------------------
|
|
203
|
+
// The wait for a late record (module doc).
|
|
204
|
+
// ---------------------------------------------------------------------------
|
|
205
|
+
/** When this process first saw each (product, focus, candidate) red with no record. */
|
|
206
|
+
const firstSeenWithoutRecord = new Map();
|
|
207
|
+
/** Reset the wait's memory -- tests start from a clean slate. */
|
|
208
|
+
export function __resetFailureRecordWaitForTests() {
|
|
209
|
+
firstSeenWithoutRecord.clear();
|
|
210
|
+
}
|
|
211
|
+
/** Whether this host has ever held a CI failure set for the product: its CI publishes records. */
|
|
212
|
+
export function productPublishesFailureRecords(productId, dir = heldDir()) {
|
|
213
|
+
const prefix = `${productId}-`.replace(/[^a-zA-Z0-9._-]/g, '_');
|
|
214
|
+
try {
|
|
215
|
+
return readdirSync(dir).some((name) => name.startsWith(prefix) && name.endsWith('.json'));
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Whether the red candidate `sha`, which has no failure record yet, should wait
|
|
223
|
+
* for one this tick rather than have its rework routed without files: only when
|
|
224
|
+
* the product publishes records, and only within FAILURE_RECORD_WAIT_MS of this
|
|
225
|
+
* process's first sighting. Never throws.
|
|
226
|
+
*/
|
|
227
|
+
export function awaitsFailureRecord(subject, sha, now, publishes) {
|
|
228
|
+
const key = `${subject.productId}:${subject.focusId}:${sha}`;
|
|
229
|
+
const since = firstSeenWithoutRecord.get(key) ?? now;
|
|
230
|
+
firstSeenWithoutRecord.set(key, since);
|
|
231
|
+
if (now - since >= FAILURE_RECORD_WAIT_MS)
|
|
232
|
+
return false;
|
|
233
|
+
try {
|
|
234
|
+
return publishes(subject.productId);
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=candidate-ci-failures.js.map
|