@telora/daemon 0.22.97 → 0.22.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +4 -3
- package/dist/cli/verify-setup-config.d.ts +4 -3
- package/dist/cli/verify-setup-config.d.ts.map +1 -1
- package/dist/cli/verify-setup-config.js.map +1 -1
- package/dist/completion/commit-verdict-release.d.ts +49 -0
- package/dist/completion/commit-verdict-release.d.ts.map +1 -0
- package/dist/completion/commit-verdict-release.js +240 -0
- package/dist/completion/commit-verdict-release.js.map +1 -0
- package/dist/completion/completion-phase-registry.d.ts +10 -4
- package/dist/completion/completion-phase-registry.d.ts.map +1 -1
- package/dist/completion/completion-phase-registry.js +19 -7
- package/dist/completion/completion-phase-registry.js.map +1 -1
- package/dist/completion/detector.d.ts.map +1 -1
- package/dist/completion/detector.js +1 -0
- package/dist/completion/detector.js.map +1 -1
- package/dist/completion/event-entry-phases.d.ts +6 -3
- package/dist/completion/event-entry-phases.d.ts.map +1 -1
- package/dist/completion/event-entry-phases.js +135 -76
- package/dist/completion/event-entry-phases.js.map +1 -1
- package/dist/completion/event-phases.d.ts +24 -3
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +9 -9
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +8 -0
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +47 -21
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/exit-classification.d.ts.map +1 -1
- package/dist/completion/exit-classification.js +1 -0
- package/dist/completion/exit-classification.js.map +1 -1
- package/dist/completion/merge-phase.d.ts +21 -9
- package/dist/completion/merge-phase.d.ts.map +1 -1
- package/dist/completion/merge-phase.js +35 -10
- package/dist/completion/merge-phase.js.map +1 -1
- package/dist/completion/review-auto-approval-record.d.ts +19 -0
- package/dist/completion/review-auto-approval-record.d.ts.map +1 -0
- package/dist/completion/review-auto-approval-record.js +102 -0
- package/dist/completion/review-auto-approval-record.js.map +1 -0
- package/dist/completion/review-cycle-cap.d.ts +62 -0
- package/dist/completion/review-cycle-cap.d.ts.map +1 -0
- package/dist/completion/review-cycle-cap.js +180 -0
- package/dist/completion/review-cycle-cap.js.map +1 -0
- package/dist/completion/review-exit-deps.d.ts +17 -2
- package/dist/completion/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit-deps.js +19 -2
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-escalations.d.ts +45 -23
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-escalations.js +15 -74
- package/dist/completion/review-exit-escalations.js.map +1 -1
- package/dist/completion/review-exit-evidence.d.ts +9 -0
- package/dist/completion/review-exit-evidence.d.ts.map +1 -1
- package/dist/completion/review-exit-evidence.js +4 -1
- package/dist/completion/review-exit-evidence.js.map +1 -1
- package/dist/completion/review-exit-foreign-findings.d.ts +151 -0
- package/dist/completion/review-exit-foreign-findings.d.ts.map +1 -0
- package/dist/completion/review-exit-foreign-findings.js +474 -0
- package/dist/completion/review-exit-foreign-findings.js.map +1 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +71 -64
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-progress.d.ts +20 -0
- package/dist/completion/review-exit-progress.d.ts.map +1 -1
- package/dist/completion/review-exit-progress.js +28 -19
- package/dist/completion/review-exit-progress.js.map +1 -1
- package/dist/completion/review-exit-rehoming.d.ts +5 -0
- package/dist/completion/review-exit-rehoming.d.ts.map +1 -1
- package/dist/completion/review-exit-rehoming.js.map +1 -1
- package/dist/completion/review-exit-verdict-gate.d.ts +202 -0
- package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -0
- package/dist/completion/review-exit-verdict-gate.js +228 -0
- package/dist/completion/review-exit-verdict-gate.js.map +1 -0
- package/dist/completion/review-next-step.d.ts +62 -0
- package/dist/completion/review-next-step.d.ts.map +1 -0
- package/dist/completion/review-next-step.js +63 -0
- package/dist/completion/review-next-step.js.map +1 -0
- package/dist/completion/session-hold-sweep-deps.d.ts +17 -0
- package/dist/completion/session-hold-sweep-deps.d.ts.map +1 -0
- package/dist/completion/session-hold-sweep-deps.js +89 -0
- package/dist/completion/session-hold-sweep-deps.js.map +1 -0
- package/dist/completion/session-hold.d.ts +180 -0
- package/dist/completion/session-hold.d.ts.map +1 -0
- package/dist/completion/session-hold.js +238 -0
- package/dist/completion/session-hold.js.map +1 -0
- package/dist/completion/state-cascade.d.ts +19 -0
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +85 -31
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +35 -2
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +165 -94
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/team-phase.d.ts +27 -15
- package/dist/completion/team-phase.d.ts.map +1 -1
- package/dist/completion/team-phase.js +34 -15
- package/dist/completion/team-phase.js.map +1 -1
- package/dist/delivery/commit-verdict-hold.d.ts +55 -0
- package/dist/delivery/commit-verdict-hold.d.ts.map +1 -0
- package/dist/delivery/commit-verdict-hold.js +118 -0
- package/dist/delivery/commit-verdict-hold.js.map +1 -0
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +10 -3
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +1 -0
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/directive-queue.js +6 -1
- package/dist/directive/directive-queue.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +29 -2
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +30 -6
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/drift/artifact-ref-shape.d.ts +34 -0
- package/dist/drift/artifact-ref-shape.d.ts.map +1 -0
- package/dist/drift/artifact-ref-shape.js +94 -0
- package/dist/drift/artifact-ref-shape.js.map +1 -0
- package/dist/drift/drift-eval-loop.d.ts +7 -0
- package/dist/drift/drift-eval-loop.d.ts.map +1 -1
- package/dist/drift/drift-eval-loop.js +34 -5
- package/dist/drift/drift-eval-loop.js.map +1 -1
- package/dist/drift/drift-evaluator.d.ts.map +1 -1
- package/dist/drift/drift-evaluator.js +8 -3
- package/dist/drift/drift-evaluator.js.map +1 -1
- package/dist/focus/awaiting-slot.d.ts +34 -0
- package/dist/focus/awaiting-slot.d.ts.map +1 -0
- package/dist/focus/awaiting-slot.js +26 -0
- package/dist/focus/awaiting-slot.js.map +1 -0
- package/dist/focus/focus-lifecycle.js +2 -2
- package/dist/focus/focus-lifecycle.js.map +1 -1
- package/dist/focus/focus-phase.d.ts.map +1 -1
- package/dist/focus/focus-phase.js +3 -1
- package/dist/focus/focus-phase.js.map +1 -1
- package/dist/focus/focus-spawn-decision.d.ts +62 -0
- package/dist/focus/focus-spawn-decision.d.ts.map +1 -0
- package/dist/focus/focus-spawn-decision.js +41 -0
- package/dist/focus/focus-spawn-decision.js.map +1 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +1 -13
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +16 -55
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +102 -64
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener-state.d.ts.map +1 -1
- package/dist/focus/listener-state.js +4 -1
- package/dist/focus/listener-state.js.map +1 -1
- package/dist/focus/listener.d.ts +41 -2
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +135 -83
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/pending-spawn-pass-deps.d.ts +69 -0
- package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -0
- package/dist/focus/pending-spawn-pass-deps.js +34 -0
- package/dist/focus/pending-spawn-pass-deps.js.map +1 -0
- package/dist/focus/pending-spawn-review-next-step.d.ts +83 -0
- package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -0
- package/dist/focus/pending-spawn-review-next-step.js +325 -0
- package/dist/focus/pending-spawn-review-next-step.js.map +1 -0
- package/dist/focus/review-cycle-cap-hold.d.ts +132 -0
- package/dist/focus/review-cycle-cap-hold.d.ts.map +1 -0
- package/dist/focus/review-cycle-cap-hold.js +178 -0
- package/dist/focus/review-cycle-cap-hold.js.map +1 -0
- package/dist/focus/team-actionable-work.js +2 -2
- package/dist/focus/verify-open-issues.d.ts +22 -0
- package/dist/focus/verify-open-issues.d.ts.map +1 -1
- package/dist/focus/verify-open-issues.js +118 -57
- package/dist/focus/verify-open-issues.js.map +1 -1
- package/dist/focus/verify-routing-passes.d.ts +32 -0
- package/dist/focus/verify-routing-passes.d.ts.map +1 -0
- package/dist/focus/verify-routing-passes.js +18 -0
- package/dist/focus/verify-routing-passes.js.map +1 -0
- package/dist/git/exec.d.ts.map +1 -1
- package/dist/git/exec.js +2 -1
- package/dist/git/exec.js.map +1 -1
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +9 -5
- package/dist/git/index.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +16 -2
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +53 -30
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +5 -0
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +17 -8
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-gate-coverage.d.ts +94 -0
- package/dist/merge/merge-gate-coverage.d.ts.map +1 -0
- package/dist/merge/merge-gate-coverage.js +217 -0
- package/dist/merge/merge-gate-coverage.js.map +1 -0
- package/dist/prompt/focus-prompt-builder.d.ts.map +1 -1
- package/dist/prompt/focus-prompt-builder.js +6 -0
- package/dist/prompt/focus-prompt-builder.js.map +1 -1
- package/dist/prompt/prompt-listing.d.ts.map +1 -1
- package/dist/prompt/prompt-listing.js +8 -0
- package/dist/prompt/prompt-listing.js.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +5 -1
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +14 -39
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/gate-ownership.d.ts +36 -0
- package/dist/prompt-sections/gate-ownership.d.ts.map +1 -0
- package/dist/prompt-sections/gate-ownership.js +68 -0
- package/dist/prompt-sections/gate-ownership.js.map +1 -0
- package/dist/prompt-sections/gate-verdict-section.d.ts +58 -0
- package/dist/prompt-sections/gate-verdict-section.d.ts.map +1 -0
- package/dist/prompt-sections/gate-verdict-section.js +88 -0
- package/dist/prompt-sections/gate-verdict-section.js.map +1 -0
- package/dist/prompt-sections/persona-sections.d.ts +10 -0
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +35 -11
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/shared.js +1 -1
- package/dist/prompt-sections/shared.js.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +6 -3
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +20 -9
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/deliveries.d.ts +46 -4
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +69 -16
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/delivery-gate-state.d.ts +159 -1
- package/dist/queries/delivery-gate-state.d.ts.map +1 -1
- package/dist/queries/delivery-gate-state.js +95 -14
- package/dist/queries/delivery-gate-state.js.map +1 -1
- package/dist/queries/delivery-write-discipline.d.ts +65 -0
- package/dist/queries/delivery-write-discipline.d.ts.map +1 -0
- package/dist/queries/delivery-write-discipline.js +101 -0
- package/dist/queries/delivery-write-discipline.js.map +1 -0
- package/dist/queries/escalation-consumption.d.ts +11 -0
- package/dist/queries/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalation-consumption.js +22 -0
- package/dist/queries/escalation-consumption.js.map +1 -1
- package/dist/queries/escalation-spool.d.ts +75 -0
- package/dist/queries/escalation-spool.d.ts.map +1 -0
- package/dist/queries/escalation-spool.js +232 -0
- package/dist/queries/escalation-spool.js.map +1 -0
- package/dist/queries/escalation-suppression.d.ts.map +1 -1
- package/dist/queries/escalation-suppression.js +2 -0
- package/dist/queries/escalation-suppression.js.map +1 -1
- package/dist/queries/escalations.js +1 -1
- package/dist/queries/filing-observation.d.ts.map +1 -1
- package/dist/queries/filing-observation.js +2 -0
- package/dist/queries/filing-observation.js.map +1 -1
- package/dist/queries/focus-discovery.d.ts +4 -4
- package/dist/queries/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focus-discovery.js +1 -0
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/focus-review-approval.d.ts +84 -0
- package/dist/queries/focus-review-approval.d.ts.map +1 -0
- package/dist/queries/focus-review-approval.js +158 -0
- package/dist/queries/focus-review-approval.js.map +1 -0
- package/dist/queries/focuses.d.ts +6 -5
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +9 -5
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/incident-correlation.d.ts +5 -4
- package/dist/queries/incident-correlation.d.ts.map +1 -1
- package/dist/queries/incident-correlation.js +11 -5
- package/dist/queries/incident-correlation.js.map +1 -1
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +2 -1
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/loop-refusal-observation.d.ts +64 -0
- package/dist/queries/loop-refusal-observation.d.ts.map +1 -0
- package/dist/queries/loop-refusal-observation.js +137 -0
- package/dist/queries/loop-refusal-observation.js.map +1 -0
- package/dist/queries/schemas.d.ts +9 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +11 -3
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/verification.d.ts +15 -0
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +1 -14
- package/dist/queries/verification.js.map +1 -1
- package/dist/queries/wire-contract.generated.d.ts +3 -0
- package/dist/queries/wire-contract.generated.d.ts.map +1 -1
- package/dist/queries/wire-contract.generated.js +3 -0
- package/dist/queries/wire-contract.generated.js.map +1 -1
- package/dist/resolvers/assembly-engine.d.ts.map +1 -1
- package/dist/resolvers/assembly-engine.js +3 -1
- package/dist/resolvers/assembly-engine.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts +5 -2
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +121 -39
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +2 -0
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +5 -1
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/resolvers/shared/review-window-commits.d.ts +96 -0
- package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -0
- package/dist/resolvers/shared/review-window-commits.js +262 -0
- package/dist/resolvers/shared/review-window-commits.js.map +1 -0
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +4 -1
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/shell/config.d.ts.map +1 -1
- package/dist/shell/config.js +10 -9
- package/dist/shell/config.js.map +1 -1
- package/dist/shell/fail-stop.d.ts +18 -0
- package/dist/shell/fail-stop.d.ts.map +1 -0
- package/dist/shell/fail-stop.js +53 -0
- package/dist/shell/fail-stop.js.map +1 -0
- package/dist/shell/graceful-shutdown.d.ts +48 -0
- package/dist/shell/graceful-shutdown.d.ts.map +1 -0
- package/dist/shell/graceful-shutdown.js +152 -0
- package/dist/shell/graceful-shutdown.js.map +1 -0
- package/dist/shell/heartbeat.d.ts.map +1 -1
- package/dist/shell/heartbeat.js +5 -4
- package/dist/shell/heartbeat.js.map +1 -1
- package/dist/shell/log.d.ts.map +1 -1
- package/dist/shell/log.js +4 -1
- package/dist/shell/log.js.map +1 -1
- package/dist/shell/stop-request.d.ts.map +1 -1
- package/dist/shell/stop-request.js +2 -1
- package/dist/shell/stop-request.js.map +1 -1
- package/dist/shell/unified-shell-status.d.ts +6 -0
- package/dist/shell/unified-shell-status.d.ts.map +1 -1
- package/dist/shell/unified-shell-status.js +9 -2
- package/dist/shell/unified-shell-status.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +41 -114
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/lifecycle.d.ts +12 -0
- package/dist/spawn/lifecycle.d.ts.map +1 -1
- package/dist/spawn/lifecycle.js +25 -21
- package/dist/spawn/lifecycle.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +19 -1
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +70 -21
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/review-hold-park.d.ts.map +1 -1
- package/dist/spawn/review-hold-park.js +18 -8
- package/dist/spawn/review-hold-park.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +4 -0
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +2 -1
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +6 -0
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +15 -2
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/index.d.ts +10 -1
- package/dist/testing/fixtures/index.d.ts.map +1 -1
- package/dist/testing/fixtures/index.js +59 -1
- package/dist/testing/fixtures/index.js.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.d.ts +34 -0
- package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -0
- package/dist/testing/fixtures/pending-spawn-world.js +92 -0
- package/dist/testing/fixtures/pending-spawn-world.js.map +1 -0
- package/dist/types/config.d.ts +9 -6
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/verify/commit-gate-configured.d.ts +86 -0
- package/dist/verify/commit-gate-configured.d.ts.map +1 -0
- package/dist/verify/commit-gate-configured.js +234 -0
- package/dist/verify/commit-gate-configured.js.map +1 -0
- package/dist/verify/commit-verdict-record.d.ts +98 -0
- package/dist/verify/commit-verdict-record.d.ts.map +1 -0
- package/dist/verify/commit-verdict-record.js +297 -0
- package/dist/verify/commit-verdict-record.js.map +1 -0
- package/dist/verify/explicit-gate-outcome.d.ts +161 -0
- package/dist/verify/explicit-gate-outcome.d.ts.map +1 -0
- package/dist/verify/explicit-gate-outcome.js +215 -0
- package/dist/verify/explicit-gate-outcome.js.map +1 -0
- package/dist/verify/explicit-rearm.d.ts +27 -0
- package/dist/verify/explicit-rearm.d.ts.map +1 -0
- package/dist/verify/explicit-rearm.js +161 -0
- package/dist/verify/explicit-rearm.js.map +1 -0
- package/dist/verify/explicit-run-ledger.d.ts +26 -0
- package/dist/verify/explicit-run-ledger.d.ts.map +1 -0
- package/dist/verify/explicit-run-ledger.js +93 -0
- package/dist/verify/explicit-run-ledger.js.map +1 -0
- package/dist/verify/failure-signature.d.ts.map +1 -1
- package/dist/verify/failure-signature.js +5 -1
- package/dist/verify/failure-signature.js.map +1 -1
- package/dist/verify/gate-run-registry.d.ts +105 -0
- package/dist/verify/gate-run-registry.d.ts.map +1 -0
- package/dist/verify/gate-run-registry.js +111 -0
- package/dist/verify/gate-run-registry.js.map +1 -0
- package/dist/verify/gate-verdict-source.d.ts +68 -0
- package/dist/verify/gate-verdict-source.d.ts.map +1 -0
- package/dist/verify/gate-verdict-source.js +143 -0
- package/dist/verify/gate-verdict-source.js.map +1 -0
- package/dist/verify/judged-commit-gate.d.ts +11 -0
- package/dist/verify/judged-commit-gate.d.ts.map +1 -0
- package/dist/verify/judged-commit-gate.js +48 -0
- package/dist/verify/judged-commit-gate.js.map +1 -0
- package/dist/verify/rework-judgment.d.ts +58 -0
- package/dist/verify/rework-judgment.d.ts.map +1 -0
- package/dist/verify/rework-judgment.js +54 -0
- package/dist/verify/rework-judgment.js.map +1 -0
- package/dist/verify/verification-attribution.d.ts +105 -0
- package/dist/verify/verification-attribution.d.ts.map +1 -0
- package/dist/verify/verification-attribution.js +322 -0
- package/dist/verify/verification-attribution.js.map +1 -0
- package/dist/verify/verification-baseline-run.d.ts +123 -0
- package/dist/verify/verification-baseline-run.d.ts.map +1 -0
- package/dist/verify/verification-baseline-run.js +386 -0
- package/dist/verify/verification-baseline-run.js.map +1 -0
- package/dist/verify/verification-baseline.d.ts +117 -28
- package/dist/verify/verification-baseline.d.ts.map +1 -1
- package/dist/verify/verification-baseline.js +147 -120
- package/dist/verify/verification-baseline.js.map +1 -1
- package/dist/verify/verification-checkout.d.ts +32 -6
- package/dist/verify/verification-checkout.d.ts.map +1 -1
- package/dist/verify/verification-checkout.js +132 -8
- package/dist/verify/verification-checkout.js.map +1 -1
- package/dist/verify/verification-commit-sharing.d.ts +84 -0
- package/dist/verify/verification-commit-sharing.d.ts.map +1 -0
- package/dist/verify/verification-commit-sharing.js +416 -0
- package/dist/verify/verification-commit-sharing.js.map +1 -0
- package/dist/verify/verification-config.d.ts +76 -0
- package/dist/verify/verification-config.d.ts.map +1 -1
- package/dist/verify/verification-config.js +112 -14
- package/dist/verify/verification-config.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +102 -19
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-default-on.js +307 -38
- package/dist/verify/verification-default-on.js.map +1 -1
- package/dist/verify/verification-deps-default.d.ts.map +1 -1
- package/dist/verify/verification-deps-default.js +50 -43
- package/dist/verify/verification-deps-default.js.map +1 -1
- package/dist/verify/verification-deps.d.ts +86 -7
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.d.ts +56 -2
- package/dist/verify/verification-deterministic.d.ts.map +1 -1
- package/dist/verify/verification-deterministic.js +44 -25
- package/dist/verify/verification-deterministic.js.map +1 -1
- package/dist/verify/verification-diagnostics.d.ts +16 -0
- package/dist/verify/verification-diagnostics.d.ts.map +1 -0
- package/dist/verify/verification-diagnostics.js +219 -0
- package/dist/verify/verification-diagnostics.js.map +1 -0
- package/dist/verify/verification-engine.d.ts +12 -8
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +118 -102
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts +2 -1
- package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
- package/dist/verify/verification-evidence-unavailable-feedback.js +19 -5
- package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
- package/dist/verify/verification-feedback.d.ts +21 -34
- package/dist/verify/verification-feedback.d.ts.map +1 -1
- package/dist/verify/verification-feedback.js +37 -88
- package/dist/verify/verification-feedback.js.map +1 -1
- package/dist/verify/verification-gate-stages.d.ts +110 -0
- package/dist/verify/verification-gate-stages.d.ts.map +1 -0
- package/dist/verify/verification-gate-stages.js +179 -0
- package/dist/verify/verification-gate-stages.js.map +1 -0
- package/dist/verify/verification-history-reset.d.ts +61 -0
- package/dist/verify/verification-history-reset.d.ts.map +1 -0
- package/dist/verify/verification-history-reset.js +90 -0
- package/dist/verify/verification-history-reset.js.map +1 -0
- package/dist/verify/verification-manifest.d.ts.map +1 -1
- package/dist/verify/verification-manifest.js +3 -1
- package/dist/verify/verification-manifest.js.map +1 -1
- package/dist/verify/verification-rework-messages.d.ts +19 -0
- package/dist/verify/verification-rework-messages.d.ts.map +1 -0
- package/dist/verify/verification-rework-messages.js +52 -0
- package/dist/verify/verification-rework-messages.js.map +1 -0
- package/dist/verify/verification-timeout-fault.d.ts +147 -0
- package/dist/verify/verification-timeout-fault.d.ts.map +1 -0
- package/dist/verify/verification-timeout-fault.js +211 -0
- package/dist/verify/verification-timeout-fault.js.map +1 -0
- package/dist/verify/verify-gate-stall.d.ts +5 -1
- package/dist/verify/verify-gate-stall.d.ts.map +1 -1
- package/dist/verify/verify-gate-stall.js +10 -1
- package/dist/verify/verify-gate-stall.js.map +1 -1
- package/dist/worktree/install-inputs.d.ts +89 -0
- package/dist/worktree/install-inputs.d.ts.map +1 -0
- package/dist/worktree/install-inputs.js +625 -0
- package/dist/worktree/install-inputs.js.map +1 -0
- package/dist/worktree/install-script-effects.d.ts +30 -0
- package/dist/worktree/install-script-effects.d.ts.map +1 -0
- package/dist/worktree/install-script-effects.js +524 -0
- package/dist/worktree/install-script-effects.js.map +1 -0
- package/dist/worktree/install-script-tokens.d.ts +57 -0
- package/dist/worktree/install-script-tokens.d.ts.map +1 -0
- package/dist/worktree/install-script-tokens.js +299 -0
- package/dist/worktree/install-script-tokens.js.map +1 -0
- package/dist/worktree/provision.d.ts +27 -4
- package/dist/worktree/provision.d.ts.map +1 -1
- package/dist/worktree/provision.js +46 -7
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/safety.d.ts +11 -0
- package/dist/worktree/safety.d.ts.map +1 -1
- package/dist/worktree/safety.js +20 -3
- package/dist/worktree/safety.js.map +1 -1
- package/dist/worktree/verify-interlock.d.ts.map +1 -1
- package/dist/worktree/verify-interlock.js +3 -1
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/dist/worktree/worktree-package-provisioning.d.ts +75 -0
- package/dist/worktree/worktree-package-provisioning.d.ts.map +1 -0
- package/dist/worktree/worktree-package-provisioning.js +362 -0
- package/dist/worktree/worktree-package-provisioning.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/** One commit the merge would add to integration. */
|
|
2
|
+
export interface UnmergedCommit {
|
|
3
|
+
sha: string;
|
|
4
|
+
subject: string;
|
|
5
|
+
/** True for a commit with more than one parent (e.g. integration merged back in). */
|
|
6
|
+
isMerge: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* True only for a merge git's re-merge proves adds nothing over its parents
|
|
9
|
+
* (isCleanMerge). Absent or false on any other merge, which is judged.
|
|
10
|
+
*/
|
|
11
|
+
cleanMerge?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/** A commit that passed one of the focus's gates, and the unmerged commits it contains. */
|
|
14
|
+
export interface GatedAnchor {
|
|
15
|
+
sha: string;
|
|
16
|
+
source: 'approved_review' | 'passing_verdict';
|
|
17
|
+
/** The anchor's ancestry not on integration, the anchor itself included. */
|
|
18
|
+
contains: ReadonlySet<string>;
|
|
19
|
+
}
|
|
20
|
+
export interface MergeGateCoverage {
|
|
21
|
+
allGated: boolean;
|
|
22
|
+
/** Judged commits (all but a proven-clean merge) no anchor gates, in git log order (newest first). */
|
|
23
|
+
ungated: UnmergedCommit[];
|
|
24
|
+
/** The daemon captures among `ungated`. */
|
|
25
|
+
ungatedWipCaptures: UnmergedCommit[];
|
|
26
|
+
}
|
|
27
|
+
export type MergeGateCoverageResult = {
|
|
28
|
+
kind: 'unreadable';
|
|
29
|
+
reason: string;
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'judged';
|
|
32
|
+
coverage: MergeGateCoverage;
|
|
33
|
+
anchors: GatedAnchor[];
|
|
34
|
+
};
|
|
35
|
+
/** The focus branch a merge would send, and where. */
|
|
36
|
+
export interface MergeGateTarget {
|
|
37
|
+
organizationId: string;
|
|
38
|
+
productId: string;
|
|
39
|
+
focusId: string;
|
|
40
|
+
branchName: string;
|
|
41
|
+
integrationBranch: string;
|
|
42
|
+
repoPath: string;
|
|
43
|
+
}
|
|
44
|
+
/** A merge target whose focus may be unknown (a worktree or conflict row no focus names). */
|
|
45
|
+
export type BranchMergeGateTarget = Omit<MergeGateTarget, 'focusId'> & {
|
|
46
|
+
focusId: string | null;
|
|
47
|
+
};
|
|
48
|
+
/** Injected reads; defaultMergeGateCoverageDeps reaches git, the product-api and the verdict record. */
|
|
49
|
+
export interface MergeGateCoverageDeps {
|
|
50
|
+
/** integration..branch, newest first; null when git cannot list it. */
|
|
51
|
+
listUnmergedCommits: (repoPath: string, integrationBranch: string, branchName: string) => UnmergedCommit[] | null;
|
|
52
|
+
/** The anchor's full sha and its unmerged ancestry; null when git cannot resolve the sha. */
|
|
53
|
+
resolveAnchor: (repoPath: string, integrationBranch: string, sha: string) => Omit<GatedAnchor, 'source'> | null;
|
|
54
|
+
/** The commit the focus's newest current approval judged, null when none; throws when unreadable. */
|
|
55
|
+
readApprovedReviewSha: (target: MergeGateTarget) => Promise<string | null>;
|
|
56
|
+
/** Whether a passing deterministic verdict is recorded for the commit; throws when unreadable. */
|
|
57
|
+
hasPassingVerdict: (target: MergeGateTarget, sha: string) => boolean;
|
|
58
|
+
}
|
|
59
|
+
/** True for a commit the daemon wrote to capture an agent's uncommitted work. Pure. */
|
|
60
|
+
export declare function isDaemonWipCapture(commit: Pick<UnmergedCommit, 'subject'>): boolean;
|
|
61
|
+
/** Which judged commits -- every commit but a proven-clean merge -- the anchors leave ungated. Pure. */
|
|
62
|
+
export declare function judgeMergeGateCoverage(commits: readonly UnmergedCommit[], anchors: readonly GatedAnchor[]): MergeGateCoverage;
|
|
63
|
+
/**
|
|
64
|
+
* Whether a merge adds nothing over git's automatic merge of its parents: a
|
|
65
|
+
* two-parent merge whose `--remerge-diff` is empty. A conflict it decided (to
|
|
66
|
+
* either side, or to new content) or an edit beyond the merge is not clean; nor
|
|
67
|
+
* is an octopus merge (git re-merges only two parents) or a merge git cannot
|
|
68
|
+
* re-merge -- fail closed.
|
|
69
|
+
*/
|
|
70
|
+
export declare function isCleanMerge(repoPath: string, sha: string, parentCount: number): boolean;
|
|
71
|
+
/** `git log integration..branch` as commits, newest first, each merge marked clean or not; null when git fails. */
|
|
72
|
+
export declare function listUnmergedCommits(repoPath: string, integrationBranch: string, branchName: string): UnmergedCommit[] | null;
|
|
73
|
+
/** The anchor's full sha and its ancestry not on integration; null for a malformed or unknown sha. */
|
|
74
|
+
export declare function resolveGatedAnchor(repoPath: string, integrationBranch: string, sha: string): Omit<GatedAnchor, 'source'> | null;
|
|
75
|
+
export declare function defaultMergeGateCoverageDeps(): MergeGateCoverageDeps;
|
|
76
|
+
/**
|
|
77
|
+
* Judge the commits a merge of `target` would add. Verdicts (local records) are
|
|
78
|
+
* read newest-first only for commits no anchor already contains, stopping once
|
|
79
|
+
* everything is gated; the approving review (a product-api read) is read only
|
|
80
|
+
* when some commit is still ungated after that. Any unreadable input returns
|
|
81
|
+
* 'unreadable' (the caller holds the merge).
|
|
82
|
+
*/
|
|
83
|
+
export declare function evaluateMergeGateCoverage(target: MergeGateTarget, deps?: MergeGateCoverageDeps): Promise<MergeGateCoverageResult>;
|
|
84
|
+
/** Why the merge must hold, or null when it may proceed. Pure. */
|
|
85
|
+
export declare function mergeGateHoldReason(result: MergeGateCoverageResult): string | null;
|
|
86
|
+
/** The hold reason for a merge of `target`, or null when it may proceed. Never throws: a failed read holds. */
|
|
87
|
+
export declare function readMergeGateHold(target: MergeGateTarget, deps?: MergeGateCoverageDeps): Promise<string | null>;
|
|
88
|
+
/**
|
|
89
|
+
* The hold reason for a merge of a branch whose focus may be unknown. With no
|
|
90
|
+
* focus there is no verdict or approving review to read, so every non-merge
|
|
91
|
+
* commit is ungated and the merge holds.
|
|
92
|
+
*/
|
|
93
|
+
export declare function readMergeGateHoldForBranch(target: BranchMergeGateTarget, deps?: MergeGateCoverageDeps): Promise<string | null>;
|
|
94
|
+
//# sourceMappingURL=merge-gate-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-gate-coverage.d.ts","sourceRoot":"","sources":["../../src/merge/merge-gate-coverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,217 @@
|
|
|
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/mid-flight-merge-gate.test.ts,
|
|
3
|
+
// packages/daemon/src/completion/teardown-merge-gate.test.ts,
|
|
4
|
+
// packages/daemon/src/merge/merge-gate-coverage.test.ts,
|
|
5
|
+
// packages/daemon/src/merge/resolved-conflict-merge-gate.test.ts,
|
|
6
|
+
// packages/daemon/src/worktree/safe-remove-merge-gate.test.ts
|
|
7
|
+
// PINNED-BY-END
|
|
8
|
+
/**
|
|
9
|
+
* Whether a focus branch's merge to integration carries only GATED work.
|
|
10
|
+
*
|
|
11
|
+
* A focus branch reaches integration on team teardown, through the merge-back
|
|
12
|
+
* loop, mid-flight while its team executes, before its worktree is removed, and
|
|
13
|
+
* when a merge conflict is retried. The teardown merge used to send a branch
|
|
14
|
+
* whenever it had commits, so stopping a team mid-fix put the lead's
|
|
15
|
+
* uncommitted, unreviewed edits on integration: wip-preserve captured them as a
|
|
16
|
+
* commit and the merge phase merged that commit two seconds later (2026-09-15,
|
|
17
|
+
* WIP commit 188f626b1).
|
|
18
|
+
*
|
|
19
|
+
* Every commit the merge would add (integration..branch) is judged, except a
|
|
20
|
+
* merge git proves CLEAN: a two-parent merge whose `git show --remerge-diff` is
|
|
21
|
+
* empty adds nothing over git's automatic merge of its parents (an integration
|
|
22
|
+
* sync). A merge that decided a conflict -- even to exactly one side -- or edited
|
|
23
|
+
* beyond the merge carries focus-authored code and is judged like any commit, and
|
|
24
|
+
* so is an octopus merge or one git cannot re-merge (fail closed).
|
|
25
|
+
*
|
|
26
|
+
* A judged commit is GATED when it is an ancestor-or-equal of an anchor that
|
|
27
|
+
* passed one of the focus's gates:
|
|
28
|
+
* - a commit with a PASSING recorded deterministic verdict
|
|
29
|
+
* (verify/commit-verdict-record.ts; the newest verdict recorded for the
|
|
30
|
+
* commit under any gate), or
|
|
31
|
+
* - the commit the focus's newest CURRENT approval judged
|
|
32
|
+
* (queries/focus-review-approval.ts): a focus_reviews row with outcome
|
|
33
|
+
* 'approved' and its reviewed_sha, or a clean full-coverage auto-approval of
|
|
34
|
+
* the exact commit the review covered (completion/review-auto-approval-record.ts),
|
|
35
|
+
* either revoked by a newer gaps_found review of the same commit. The review
|
|
36
|
+
* coverage watermark (product_focuses.reviewed_through_sha) is NOT an anchor:
|
|
37
|
+
* it advances for a gaps_found review too, so it would authorize the window a
|
|
38
|
+
* review found defective.
|
|
39
|
+
* A daemon capture of uncommitted agent work (the worktree/safety.ts subjects)
|
|
40
|
+
* is never gated by itself -- a verify tick or a review spawn that lands on the
|
|
41
|
+
* capture as HEAD judges half-finished work -- so it is covered only by a LATER
|
|
42
|
+
* gated commit that contains it.
|
|
43
|
+
*
|
|
44
|
+
* Every focus-to-integration entry point merges only when EVERY commit is gated:
|
|
45
|
+
* the team-exit merge (completion/merge-phase.ts attemptFocusMerge), the
|
|
46
|
+
* merge-back loop (merge/merge-back-loop.ts), the mid-flight merge
|
|
47
|
+
* (completion/team-lifecycle.ts checkAndMergeCompletedDeliveries), the
|
|
48
|
+
* merge-before-remove of a focus worktree (worktree/provision.ts
|
|
49
|
+
* safeRemoveFocusWorktree) and the resolved-conflict retry
|
|
50
|
+
* (merge/focus-merge.ts checkResolvedMergeConflicts). A branch no focus row
|
|
51
|
+
* names has no verdict or review to read, so nothing on it is gated.
|
|
52
|
+
* An input that cannot be read holds the merge (fail closed); the caller's next
|
|
53
|
+
* tick or exit asks again.
|
|
54
|
+
*
|
|
55
|
+
* @module merge-gate-coverage
|
|
56
|
+
*/
|
|
57
|
+
import { listReviewAutoApprovals } from '../completion/review-auto-approval-record.js';
|
|
58
|
+
import { runGitSync } from '../git/types.js';
|
|
59
|
+
import { readLatestApprovedReviewSha } from '../queries/focus-review-approval.js';
|
|
60
|
+
import { readCommitVerdict } from '../verify/commit-verdict-record.js';
|
|
61
|
+
import { SAFETY_COMMIT_SUBJECT_PREFIX, WIP_CAPTURE_SUBJECT_PREFIX } from '../worktree/safety.js';
|
|
62
|
+
const SHA_RE = /^[0-9a-f]{7,64}$/i;
|
|
63
|
+
const FIELD_SEP = '\x1f';
|
|
64
|
+
/** True for a commit the daemon wrote to capture an agent's uncommitted work. Pure. */
|
|
65
|
+
export function isDaemonWipCapture(commit) {
|
|
66
|
+
return commit.subject.startsWith(WIP_CAPTURE_SUBJECT_PREFIX) || commit.subject.startsWith(SAFETY_COMMIT_SUBJECT_PREFIX);
|
|
67
|
+
}
|
|
68
|
+
/** An anchor gates a commit it contains -- except a daemon capture that is the anchor itself. */
|
|
69
|
+
function anchorGates(anchor, commit) {
|
|
70
|
+
if (!anchor.contains.has(commit.sha))
|
|
71
|
+
return false;
|
|
72
|
+
return !(anchor.sha === commit.sha && isDaemonWipCapture(commit));
|
|
73
|
+
}
|
|
74
|
+
/** Which judged commits -- every commit but a proven-clean merge -- the anchors leave ungated. Pure. */
|
|
75
|
+
export function judgeMergeGateCoverage(commits, anchors) {
|
|
76
|
+
const judged = commits.filter((c) => !(c.isMerge && c.cleanMerge === true));
|
|
77
|
+
const ungated = judged.filter((c) => !anchors.some((a) => anchorGates(a, c)));
|
|
78
|
+
return { allGated: ungated.length === 0, ungated, ungatedWipCaptures: ungated.filter(isDaemonWipCapture) };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Whether a merge adds nothing over git's automatic merge of its parents: a
|
|
82
|
+
* two-parent merge whose `--remerge-diff` is empty. A conflict it decided (to
|
|
83
|
+
* either side, or to new content) or an edit beyond the merge is not clean; nor
|
|
84
|
+
* is an octopus merge (git re-merges only two parents) or a merge git cannot
|
|
85
|
+
* re-merge -- fail closed.
|
|
86
|
+
*/
|
|
87
|
+
export function isCleanMerge(repoPath, sha, parentCount) {
|
|
88
|
+
if (parentCount !== 2)
|
|
89
|
+
return false;
|
|
90
|
+
const result = runGitSync(['show', '--no-color', '--remerge-diff', '--format=', sha, '--'], repoPath);
|
|
91
|
+
return result.success && result.output.trim() === '';
|
|
92
|
+
}
|
|
93
|
+
/** `git log integration..branch` as commits, newest first, each merge marked clean or not; null when git fails. */
|
|
94
|
+
export function listUnmergedCommits(repoPath, integrationBranch, branchName) {
|
|
95
|
+
const result = runGitSync(['log', `--format=%H${FIELD_SEP}%P${FIELD_SEP}%s`, `${integrationBranch}..${branchName}`, '--'], repoPath);
|
|
96
|
+
if (!result.success)
|
|
97
|
+
return null;
|
|
98
|
+
const commits = [];
|
|
99
|
+
for (const line of result.output.split('\n')) {
|
|
100
|
+
const [sha = '', parents = '', ...subject] = line.trim().split(FIELD_SEP);
|
|
101
|
+
if (!SHA_RE.test(sha))
|
|
102
|
+
continue;
|
|
103
|
+
const parentCount = parents.trim().split(/\s+/).filter(Boolean).length;
|
|
104
|
+
const isMerge = parentCount > 1;
|
|
105
|
+
commits.push({
|
|
106
|
+
sha,
|
|
107
|
+
subject: subject.join(FIELD_SEP),
|
|
108
|
+
isMerge,
|
|
109
|
+
...(isMerge ? { cleanMerge: isCleanMerge(repoPath, sha, parentCount) } : {}),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
return commits;
|
|
113
|
+
}
|
|
114
|
+
/** The anchor's full sha and its ancestry not on integration; null for a malformed or unknown sha. */
|
|
115
|
+
export function resolveGatedAnchor(repoPath, integrationBranch, sha) {
|
|
116
|
+
if (!SHA_RE.test(sha))
|
|
117
|
+
return null;
|
|
118
|
+
const full = runGitSync(['rev-parse', '--verify', '--quiet', `${sha}^{commit}`], repoPath);
|
|
119
|
+
if (!full.success || !SHA_RE.test(full.output.trim()))
|
|
120
|
+
return null;
|
|
121
|
+
const ancestry = runGitSync(['rev-list', full.output.trim(), `^${integrationBranch}`, '--'], repoPath);
|
|
122
|
+
if (!ancestry.success)
|
|
123
|
+
return null;
|
|
124
|
+
return { sha: full.output.trim(), contains: new Set(ancestry.output.split('\n').map((l) => l.trim()).filter(Boolean)) };
|
|
125
|
+
}
|
|
126
|
+
export function defaultMergeGateCoverageDeps() {
|
|
127
|
+
return {
|
|
128
|
+
listUnmergedCommits,
|
|
129
|
+
resolveAnchor: resolveGatedAnchor,
|
|
130
|
+
readApprovedReviewSha: (target) => readLatestApprovedReviewSha(target.focusId, {
|
|
131
|
+
autoApprovals: listReviewAutoApprovals(target.productId, target.focusId),
|
|
132
|
+
}),
|
|
133
|
+
hasPassingVerdict: (target, sha) => readCommitVerdict(target.productId, target.focusId, sha)?.outcome === 'passed',
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Judge the commits a merge of `target` would add. Verdicts (local records) are
|
|
138
|
+
* read newest-first only for commits no anchor already contains, stopping once
|
|
139
|
+
* everything is gated; the approving review (a product-api read) is read only
|
|
140
|
+
* when some commit is still ungated after that. Any unreadable input returns
|
|
141
|
+
* 'unreadable' (the caller holds the merge).
|
|
142
|
+
*/
|
|
143
|
+
export async function evaluateMergeGateCoverage(target, deps = defaultMergeGateCoverageDeps()) {
|
|
144
|
+
const { repoPath, integrationBranch, branchName } = target;
|
|
145
|
+
const commits = deps.listUnmergedCommits(repoPath, integrationBranch, branchName);
|
|
146
|
+
if (commits === null) {
|
|
147
|
+
return { kind: 'unreadable', reason: `the commits ${branchName} would add to ${integrationBranch} could not be listed` };
|
|
148
|
+
}
|
|
149
|
+
const anchors = [];
|
|
150
|
+
const allGated = () => judgeMergeGateCoverage(commits, anchors).allGated;
|
|
151
|
+
const addAnchor = (sha, source) => {
|
|
152
|
+
const resolved = deps.resolveAnchor(repoPath, integrationBranch, sha);
|
|
153
|
+
if (resolved)
|
|
154
|
+
anchors.push({ ...resolved, source });
|
|
155
|
+
};
|
|
156
|
+
for (const commit of commits) {
|
|
157
|
+
if (allGated())
|
|
158
|
+
break;
|
|
159
|
+
if (anchors.some((a) => a.contains.has(commit.sha)))
|
|
160
|
+
continue;
|
|
161
|
+
try {
|
|
162
|
+
if (deps.hasPassingVerdict(target, commit.sha))
|
|
163
|
+
addAnchor(commit.sha, 'passing_verdict');
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
return { kind: 'unreadable', reason: `the verdict for ${commit.sha.slice(0, 9)} could not be read: ${err.message}` };
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
if (!allGated()) {
|
|
170
|
+
try {
|
|
171
|
+
const approved = await deps.readApprovedReviewSha(target);
|
|
172
|
+
if (approved)
|
|
173
|
+
addAnchor(approved, 'approved_review');
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
return { kind: 'unreadable', reason: `the focus's approving review could not be read: ${err.message}` };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return { kind: 'judged', coverage: judgeMergeGateCoverage(commits, anchors), anchors };
|
|
180
|
+
}
|
|
181
|
+
/** Why the merge must hold, or null when it may proceed. Pure. */
|
|
182
|
+
export function mergeGateHoldReason(result) {
|
|
183
|
+
if (result.kind === 'unreadable')
|
|
184
|
+
return `its gate coverage could not be read (${result.reason})`;
|
|
185
|
+
const { ungated, ungatedWipCaptures } = result.coverage;
|
|
186
|
+
if (ungated.length === 0)
|
|
187
|
+
return null;
|
|
188
|
+
const captures = ungatedWipCaptures.length === 0
|
|
189
|
+
? ''
|
|
190
|
+
: `, including ${ungatedWipCaptures.length} daemon WIP capture(s) (${ungatedWipCaptures.map((c) => c.sha.slice(0, 9)).join(', ')})`;
|
|
191
|
+
return `${ungated.length} commit(s) not past the focus's review or verify gate${captures}`;
|
|
192
|
+
}
|
|
193
|
+
/** The hold reason for a merge of `target`, or null when it may proceed. Never throws: a failed read holds. */
|
|
194
|
+
export async function readMergeGateHold(target, deps = defaultMergeGateCoverageDeps()) {
|
|
195
|
+
try {
|
|
196
|
+
return mergeGateHoldReason(await evaluateMergeGateCoverage(target, deps));
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
return mergeGateHoldReason({ kind: 'unreadable', reason: err.message });
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* The hold reason for a merge of a branch whose focus may be unknown. With no
|
|
204
|
+
* focus there is no verdict or approving review to read, so every non-merge
|
|
205
|
+
* commit is ungated and the merge holds.
|
|
206
|
+
*/
|
|
207
|
+
export function readMergeGateHoldForBranch(target, deps = defaultMergeGateCoverageDeps()) {
|
|
208
|
+
const { focusId, ...rest } = target;
|
|
209
|
+
if (focusId !== null)
|
|
210
|
+
return readMergeGateHold({ ...rest, focusId }, deps);
|
|
211
|
+
return readMergeGateHold({ ...rest, focusId: '' }, {
|
|
212
|
+
...deps,
|
|
213
|
+
readApprovedReviewSha: async () => null,
|
|
214
|
+
hasPassingVerdict: () => false,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=merge-gate-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-gate-coverage.js","sourceRoot":"","sources":["../../src/merge/merge-gate-coverage.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,2EAA2E;AAC3E,gEAAgE;AAChE,2DAA2D;AAC3D,oEAAoE;AACpE,gEAAgE;AAChE,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AA4DjG,MAAM,MAAM,GAAG,mBAAmB,CAAC;AACnC,MAAM,SAAS,GAAG,MAAM,CAAC;AAEzB,uFAAuF;AACvF,MAAM,UAAU,kBAAkB,CAAC,MAAuC;IACxE,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;AAC1H,CAAC;AAED,iGAAiG;AACjG,SAAS,WAAW,CAAC,MAAmB,EAAE,MAAsB;IAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,sBAAsB,CAAC,OAAkC,EAAE,OAA+B;IACxG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;AAC7G,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,GAAW,EAAE,WAAmB;IAC7E,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtG,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACvD,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,iBAAyB,EAAE,UAAkB;IACjG,MAAM,MAAM,GAAG,UAAU,CACvB,CAAC,KAAK,EAAE,cAAc,SAAS,KAAK,SAAS,IAAI,EAAE,GAAG,iBAAiB,KAAK,UAAU,EAAE,EAAE,IAAI,CAAC,EAC/F,QAAQ,CACT,CAAC;IACF,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QAChC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC;YACX,GAAG;YACH,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAChC,OAAO;YACP,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,iBAAyB,EAAE,GAAW;IACzF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,GAAG,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3F,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,iBAAiB,EAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IACvG,IAAI,CAAC,QAAQ,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;AAC1H,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,mBAAmB;QACnB,aAAa,EAAE,kBAAkB;QACjC,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,2BAA2B,CAAC,MAAM,CAAC,OAAO,EAAE;YAC7E,aAAa,EAAE,uBAAuB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC;SACzE,CAAC;QACF,iBAAiB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,QAAQ;KACnH,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAuB,EACvB,OAA8B,4BAA4B,EAAE;IAE5D,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;IAClF,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,UAAU,iBAAiB,iBAAiB,sBAAsB,EAAE,CAAC;IAC3H,CAAC;IACD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,GAAY,EAAE,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;IAClF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,MAA6B,EAAQ,EAAE;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,CAAC,CAAC;QACtE,IAAI,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,QAAQ,EAAE;YAAE,MAAM;QACtB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAAE,SAAS;QAC9D,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC3F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,uBAAwB,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QAClI,CAAC;IACH,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,QAAQ;gBAAE,SAAS,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,mDAAoD,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC;QACrH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;AACzF,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,mBAAmB,CAAC,MAA+B;IACjE,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,wCAAwC,MAAM,CAAC,MAAM,GAAG,CAAC;IAClG,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,KAAK,CAAC;QAC9C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,eAAe,kBAAkB,CAAC,MAAM,2BAA2B,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACtI,OAAO,GAAG,OAAO,CAAC,MAAM,wDAAwD,QAAQ,EAAE,CAAC;AAC7F,CAAC;AAED,+GAA+G;AAC/G,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAuB,EACvB,OAA8B,4BAA4B,EAAE;IAE5D,IAAI,CAAC;QACH,OAAO,mBAAmB,CAAC,MAAM,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,mBAAmB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAA6B,EAC7B,OAA8B,4BAA4B,EAAE;IAE5D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IACpC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3E,OAAO,iBAAiB,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;QACjD,GAAG,IAAI;QACP,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QACvC,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;KAC/B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-prompt-builder.d.ts","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAM3B,YAAY,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,qBAAqB,EAAE,iBAAiB,EAAE,EAC1C,MAAM,EAAE,cAAc,EAAE,GACvB,MAAM,CAwCR;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,EACxB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC5B,MAAM,CAqER"}
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
// PINNED-BY-END
|
|
17
17
|
import { isStatusAgentActionable } from '../workflow/stage-classifier.js';
|
|
18
18
|
import { buildIssueCountLine, buildContextGroupLine, buildStandaloneIssueLine, buildVerificationFailureLines, buildShortfallReconciliationLines } from './prompt-listing.js';
|
|
19
|
+
import { formatGateVerdictHeadline, gateVerdictFromGateState } from '../prompt-sections/gate-verdict-section.js';
|
|
19
20
|
export { buildFocusTeamPrompt } from './team-prompt-base.js';
|
|
20
21
|
/**
|
|
21
22
|
* Build a re-engagement message listing all non-terminal deliveries that
|
|
@@ -43,6 +44,11 @@ export function buildReEngagementMessage(nonTerminalDeliveries, issues) {
|
|
|
43
44
|
if (delivery.description) {
|
|
44
45
|
parts.push(`**Description:** ${delivery.description}`);
|
|
45
46
|
}
|
|
47
|
+
// A re-worked delivery names the gate's recorded verdict for the commit it
|
|
48
|
+
// was judged on, so the nudge does not send the team to replay the gate.
|
|
49
|
+
const verdict = gateVerdictFromGateState(delivery.gateState);
|
|
50
|
+
if (verdict)
|
|
51
|
+
parts.push(`**${formatGateVerdictHeadline(verdict)}**`);
|
|
46
52
|
const deliveryIssues = issues.filter(i => i.deliveryId === delivery.id);
|
|
47
53
|
const workIssues = deliveryIssues.filter(i => i.issueType !== 'Context Group');
|
|
48
54
|
if (workIssues.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus-prompt-builder.js","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,iEAAiE;AACjE,uDAAuD;AACvD,6DAA6D;AAC7D,0EAA0E;AAC1E,6DAA6D;AAC7D,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAC9E,8DAA8D;AAC9D,uDAAuD;AACvD,0EAA0E;AAC1E,0DAA0D;AAC1D,6DAA6D;AAC7D,gBAAgB;AAehB,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"focus-prompt-builder.js","sourceRoot":"","sources":["../../src/prompt/focus-prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-listing.d.ts","sourceRoot":"","sources":["../../src/prompt/prompt-listing.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-listing.d.ts","sourceRoot":"","sources":["../../src/prompt/prompt-listing.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMxD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,gBAAgB,EAAE,cAAc,EAAE,GAAG,MAAM,CAa9E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,cAAc,EACrB,cAAc,EAAE,cAAc,EAAE,EAChC,aAAa,EAAE,cAAc,EAAE,GAC9B,MAAM,CAaR;AAED,uEAAuE;AACvE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAEtE;AAED,kFAAkF;AAClF,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,OAAO,GAAG,4BAA4B,GAAG,IAAI,CAWxG;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAoB1E;AAED,qFAAqF;AACrF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,OAAO,GAAG,uBAAuB,EAAE,GAAG,IAAI,CAoBzG;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,EAAE,CAqB9E"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Pinned by: packages/daemon/src/prompt/prompt-listing.test.ts,
|
|
3
3
|
// packages/daemon/src/verify/verification-feedback.test.ts
|
|
4
4
|
// PINNED-BY-END
|
|
5
|
+
import { buildGateVerdictLines, gateVerdictFromGateState, HELD_BY_SHORTFALL } from '../prompt-sections/gate-verdict-section.js';
|
|
5
6
|
/** Status buckets, in the fixed display order used across all listing prompts. */
|
|
6
7
|
const ISSUE_STATUS_ORDER = ['To Do', 'In Progress', 'Done', 'Blocked', 'In Review'];
|
|
7
8
|
/**
|
|
@@ -78,6 +79,9 @@ export function buildVerificationFailureLines(gateState) {
|
|
|
78
79
|
if (!detail)
|
|
79
80
|
return [];
|
|
80
81
|
const lines = ['**Last verification failure (daemon-side):**'];
|
|
82
|
+
// The gate's verdict for the judged commit (outcome, failing stage, sha), so a
|
|
83
|
+
// respawned team reads what the gate proved instead of replaying it.
|
|
84
|
+
lines.push(...buildGateVerdictLines(gateVerdictFromGateState(gateState, ['verification']), { heading: (h) => `- ${h}` }));
|
|
81
85
|
if (detail.exitCode != null)
|
|
82
86
|
lines.push(`- Exit code: ${detail.exitCode}`);
|
|
83
87
|
if (detail.logPath)
|
|
@@ -147,6 +151,10 @@ export function buildShortfallReconciliationLines(gateState) {
|
|
|
147
151
|
' the diff delivered against the declared intent for each targeted node and',
|
|
148
152
|
' found a gap. Close the gap in the diff for these node(s), then commit:',
|
|
149
153
|
];
|
|
154
|
+
// The gate's recorded verdict for the HEAD at re-work time -- usually a pass,
|
|
155
|
+
// and said so, since what holds a shortfall is the gap, not a failing check.
|
|
156
|
+
const verdict = gateVerdictFromGateState(gateState, ['shortfallReconciliation']);
|
|
157
|
+
lines.splice(1, 0, ...buildGateVerdictLines(verdict, { heading: (h) => `- ${h}`, heldBy: HELD_BY_SHORTFALL }));
|
|
150
158
|
for (const e of entries) {
|
|
151
159
|
lines.push(` - node ${e.nodeId}`);
|
|
152
160
|
lines.push(` declared: ${e.declared}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-listing.js","sourceRoot":"","sources":["../../src/prompt/prompt-listing.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,6DAA6D;AAC7D,gBAAgB;
|
|
1
|
+
{"version":3,"file":"prompt-listing.js","sourceRoot":"","sources":["../../src/prompt/prompt-listing.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,6DAA6D;AAC7D,gBAAgB;AAahB,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AAEhI,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAEpF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,gBAAkC;IACpE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,aAAa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAqB,EACrB,cAAgC,EAChC,aAA+B;IAE/B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAC9D,CAAC,CAAC,iBAAiB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAClB,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO,qBAAqB,KAAK,CAAC,KAAK,IAAI,UAAU,iBAAiB,cAAc,EAAE,CAAC;IACzF,CAAC;IACD,OAAO,qBAAqB,KAAK,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;AAC1D,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,wBAAwB,CAAC,KAAqB;IAC5D,OAAO,OAAO,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;AAC9D,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,gCAAgC,CAAC,SAAkB;IACjE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,CAAC,GAAI,SAAwC,CAAC,YAAY,CAAC;IACjE,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,MAAM,GAAG,CAAsE,CAAC;IACtF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QACnF,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QACnE,QAAQ,EAAE,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;KACvE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,SAAkB;IAC9D,MAAM,MAAM,GAAG,gCAAgC,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,KAAK,GAAa,CAAC,8CAA8C,CAAC,CAAC;IACzE,+EAA+E;IAC/E,qEAAqE;IACrE,KAAK,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1H,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,sBAAsB,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IACxF,OAAO,KAAK,CAAC;AACf,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,oCAAoC,CAAC,SAAkB;IACrE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7D,MAAM,EAAE,GAAI,SAAmD,CAAC,uBAAuB,CAAC;IACxF,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,UAAU,GAAI,EAA+B,CAAC,UAAU,CAAC;IAC/D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,OAAO,GAA8B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1C,MAAM,CAAC,GAAG,CAA2G,CAAC;QACtH,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,SAAS;QAC/I,OAAO,CAAC,IAAI,CAAC;YACX,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,GAAG,CAAC,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAAC,SAAkB;IAClE,MAAM,OAAO,GAAG,oCAAoC,CAAC,SAAS,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,KAAK,GAAa;QACtB,6EAA6E;QAC7E,+EAA+E;QAC/E,6EAA6E;QAC7E,0EAA0E;KAC3E,CAAC;IACF,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,OAAO,GAAG,wBAAwB,CAAC,SAAS,EAAE,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACjF,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,qBAAqB,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAC/G,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,CAAC,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,yEAAyE;AACzE,sEAAsE;AACtE,8EAA8E;AAC9E,gFAAgF;AAChF,iFAAiF;AACjF,8DAA8D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-prompt-base.d.ts","sourceRoot":"","sources":["../../src/prompt/team-prompt-base.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"team-prompt-base.d.ts","sourceRoot":"","sources":["../../src/prompt/team-prompt-base.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,YAAY,EACV,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,qCAAqC,CAAC;AAS7C,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,wCAAwC,CAAC;AAUhD,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAC7B,iCAAiC,EACjC,8BAA8B,EAC9B,4BAA4B,EAC5B,oCAAoC,EACpC,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,EAC3B,gCAAgC,EAChC,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,0CAA0C,CAAC;AAoBlD,OAAO,EACL,gCAAgC,EAChC,iCAAiC,EACjC,6BAA6B,EAC7B,0BAA0B,EAC1B,8BAA8B,EAC9B,2BAA2B,EAC3B,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAWjF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAkCR;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,sBAAsB,GAC9B,MAAM,CAwCR"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
2
|
// Pinned by: packages/daemon/src/focus/focus-executor-characterization.test.ts,
|
|
3
|
+
// packages/daemon/src/integration/review-rework-resume-verdict.test.ts,
|
|
4
|
+
// packages/daemon/src/integration/verification-rework-resume-verdict.test.ts,
|
|
5
|
+
// packages/daemon/src/prompt-sections/gate-ownership.test.ts,
|
|
3
6
|
// packages/daemon/src/prompt/close-loop-drift-check.test.ts,
|
|
4
7
|
// packages/daemon/src/prompt/decision-rule-replaces-escalation.test.ts,
|
|
5
8
|
// packages/daemon/src/prompt/engine-prompt-variant.test.ts,
|
|
@@ -12,7 +15,8 @@
|
|
|
12
15
|
// packages/daemon/src/prompt/resume-delta-message.test.ts,
|
|
13
16
|
// packages/daemon/src/prompt/review-outcome-stamping-directive.test.ts,
|
|
14
17
|
// packages/daemon/src/prompt/review-shortfall-disposition-mandate.test.ts,
|
|
15
|
-
// packages/daemon/src/prompt/scoping-mandate.test.ts, packages/daemon/src/spawn/build-spawn-prompt.test.ts
|
|
18
|
+
// packages/daemon/src/prompt/scoping-mandate.test.ts, packages/daemon/src/spawn/build-spawn-prompt.test.ts,
|
|
19
|
+
// packages/daemon/src/spawn/prompt-assembly-resume-verdict.test.ts
|
|
16
20
|
// PINNED-BY-END
|
|
17
21
|
// Role-framework sections.
|
|
18
22
|
export { buildRoleSection, buildDomainBoundariesSection, buildTeamLeadRoleSection, buildReadOnlyAuditSection, } from '../prompt-sections/role-sections.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-prompt-base.js","sourceRoot":"","sources":["../../src/prompt/team-prompt-base.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gFAAgF;AAChF,+DAA+D;AAC/D,0EAA0E;AAC1E,8DAA8D;AAC9D,mEAAmE;AACnE,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E;AAC9E,yDAAyD;AACzD,oEAAoE;AACpE,6DAA6D;AAC7D,0EAA0E;AAC1E,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"team-prompt-base.js","sourceRoot":"","sources":["../../src/prompt/team-prompt-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execution-sections.d.ts","sourceRoot":"","sources":["../../src/prompt-sections/execution-sections.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"execution-sections.d.ts","sourceRoot":"","sources":["../../src/prompt-sections/execution-sections.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAA2B,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAEnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAGhF;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,sBAAsB,GAC9B,MAAM,EAAE,CA+GV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,EAAE,CA6BxD;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,iBAAiB,EAAE,EAC/B,MAAM,EAAE,cAAc,EAAE,GACvB,MAAM,EAAE,CAoFV;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,EAAE,CAmExD;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAoGV;AAED;;;;GAIG;AACH,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAkE5F;AAED;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,MAAM,EAAE,CAwB/D;AAED;;;;GAIG;AACH,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAgDhG;AAED,8FAA8F;AAC9F,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAkC1C;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAmCpD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAapD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAcjD"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Pinned by: packages/daemon/src/prompt-sections/agent-resolvable-inbox-section.test.ts,
|
|
3
3
|
// packages/daemon/src/prompt-sections/commit-attribution-trailer.test.ts,
|
|
4
4
|
// packages/daemon/src/prompt-sections/escalation-consolidation-guidance.test.ts,
|
|
5
|
+
// packages/daemon/src/prompt-sections/gate-ownership.test.ts,
|
|
5
6
|
// packages/daemon/src/prompt-sections/verify-attribution-directive.test.ts,
|
|
6
7
|
// packages/daemon/src/prompt/decision-rule-replaces-escalation.test.ts,
|
|
7
8
|
// packages/daemon/src/prompt/prompt-contradictions.test.ts
|
|
@@ -19,6 +20,7 @@ import { DELIVERY_STATUS } from '@telora/daemon-core';
|
|
|
19
20
|
import { isStatusAgentActionable } from '../workflow/stage-classifier.js';
|
|
20
21
|
import { buildIssueCountLine, buildContextGroupLine, buildStandaloneIssueLine, buildVerificationFailureLines } from '../prompt/prompt-listing.js';
|
|
21
22
|
import { orchestrationVocabulary } from './shared.js';
|
|
23
|
+
import { buildGateOwnershipLines, buildMergeResolutionSteps } from './gate-ownership.js';
|
|
22
24
|
import { readSymptoms } from '../queries/incident-correlation.js';
|
|
23
25
|
/**
|
|
24
26
|
* Build the planning section -- emitted only when the focus has no
|
|
@@ -352,22 +354,9 @@ export function buildExecutionInstructionsSection(productId) {
|
|
|
352
354
|
' all issues under dependency CGs must complete before starting issues',
|
|
353
355
|
' under the dependent CG. Independent CGs (no depends_on) can run in parallel.',
|
|
354
356
|
' - Issues across different independent Context Groups with no file overlap can run in parallel',
|
|
355
|
-
' - **Between deliveries**:
|
|
356
|
-
'
|
|
357
|
-
'
|
|
358
|
-
' the modules you touched), not `npm test`. Do NOT run',
|
|
359
|
-
' `npm run lint:safety && npm run build && npm test` between deliveries.',
|
|
360
|
-
' - **Whole-repo measurement is the daemon\'s job, off-session.** The daemon runs',
|
|
361
|
-
' the configured verification command (lint:safety + build + full test) at the',
|
|
362
|
-
' coding -> verify edge after your last work issue completes -- so it overlaps',
|
|
363
|
-
' with the next delivery instead of serializing inside this session, and you are',
|
|
364
|
-
' not babysitting a long test run. The daemon also does the failure ATTRIBUTION',
|
|
365
|
-
' mechanically (baseline-diff against your focus base): a NEW failure your focus',
|
|
366
|
-
' introduced gates and is fed back to you; a failure PRE-EXISTING on your base is',
|
|
367
|
-
' recorded, not blocking. You do not hand-compute `git diff` attribution here any',
|
|
368
|
-
' more -- run the typecheck + targeted tests that prove YOUR change, commit, and',
|
|
369
|
-
' let the daemon measure the whole repo. Whole-repo absolute consistency is',
|
|
370
|
-
' enforced one altitude up, at integration -> main.',
|
|
357
|
+
' - **Between deliveries**: commit the delivery and move on to the next one; the gate',
|
|
358
|
+
' on that commit runs off-session, overlapping your next delivery.',
|
|
359
|
+
...buildGateOwnershipLines(' '),
|
|
371
360
|
'',
|
|
372
361
|
'### Commit attribution (MANDATORY: one trailer per commit)',
|
|
373
362
|
'',
|
|
@@ -699,20 +688,11 @@ export function buildMergeConflictSection() {
|
|
|
699
688
|
'',
|
|
700
689
|
'During your session, you may receive a message asking you to resolve merge',
|
|
701
690
|
'conflicts. This means the integration branch has changes that conflict with',
|
|
702
|
-
'your focus branch. When you receive this:',
|
|
691
|
+
'your focus branch. When you receive this, work the files listed in the message:',
|
|
703
692
|
'',
|
|
704
|
-
|
|
705
|
-
'
|
|
706
|
-
'
|
|
707
|
-
'4. Commit the merge resolution: `git commit --no-edit`',
|
|
708
|
-
'5. Run `npm run typecheck` plus the TARGETED tests for the files you resolved',
|
|
709
|
-
' (NOT the whole suite -- the daemon runs whole-repo verify off-session at the',
|
|
710
|
-
' coding -> verify edge).',
|
|
711
|
-
'6. If typecheck or the targeted tests fail, fix the issues, commit, and re-run',
|
|
712
|
-
'',
|
|
713
|
-
'Do NOT run `git merge --abort`. Your goal is to produce a clean merge',
|
|
714
|
-
'commit that passes typecheck and the targeted tests. The daemon will detect resolution',
|
|
715
|
-
'automatically when the merge commit is created and no unmerged files remain.',
|
|
693
|
+
...buildMergeResolutionSteps(),
|
|
694
|
+
'The daemon will detect resolution automatically when the merge commit is created',
|
|
695
|
+
'and no unmerged files remain.',
|
|
716
696
|
'',
|
|
717
697
|
];
|
|
718
698
|
}
|
|
@@ -724,16 +704,11 @@ export function buildCompletionSection() {
|
|
|
724
704
|
'### Completion',
|
|
725
705
|
'',
|
|
726
706
|
'When ALL issues across ALL deliveries are Done:',
|
|
727
|
-
'1.
|
|
728
|
-
'
|
|
729
|
-
'
|
|
730
|
-
'
|
|
731
|
-
|
|
732
|
-
' base failures are recorded, not blocking). Whole-repo absolute consistency is',
|
|
733
|
-
' enforced one altitude up, at integration -> main -- never at this per-focus gate.',
|
|
734
|
-
'2. Commit any final changes.',
|
|
735
|
-
'3. Summarize the changes made across all deliveries.',
|
|
736
|
-
'4. Wait for further instructions. The daemon manages your lifecycle.',
|
|
707
|
+
'1. Commit any final changes.',
|
|
708
|
+
'2. Summarize the changes made across all deliveries.',
|
|
709
|
+
'3. Wait for further instructions. The daemon manages your lifecycle.',
|
|
710
|
+
'',
|
|
711
|
+
...buildGateOwnershipLines(),
|
|
737
712
|
'',
|
|
738
713
|
'Do NOT exit on your own. The daemon will send new work or terminate you.',
|
|
739
714
|
'',
|