@telora/daemon 0.21.26 → 0.21.82
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/audit/audit-hooks.d.ts +127 -0
- package/dist/audit/audit-hooks.d.ts.map +1 -0
- package/dist/audit/audit-hooks.js +346 -0
- package/dist/audit/audit-hooks.js.map +1 -0
- package/dist/audit/audit-phase.d.ts +170 -0
- package/dist/audit/audit-phase.d.ts.map +1 -0
- package/dist/audit/audit-phase.js +492 -0
- package/dist/audit/audit-phase.js.map +1 -0
- package/dist/audit/audit-prompt.d.ts.map +1 -0
- package/dist/audit/audit-prompt.js.map +1 -0
- package/dist/audit/audit-shape.d.ts.map +1 -0
- package/dist/audit/audit-shape.js.map +1 -0
- package/dist/backends/agent-backend.d.ts +1 -1
- package/dist/backends/agent-backend.d.ts.map +1 -1
- package/dist/backends/availability.d.ts +1 -1
- package/dist/backends/availability.d.ts.map +1 -1
- package/dist/backends/codex/codex-backend.js +1 -1
- package/dist/backends/codex/codex-backend.js.map +1 -1
- package/dist/backends/codex/codex-mcp-proxy.js +1 -1
- package/dist/backends/codex/codex-mcp-proxy.js.map +1 -1
- package/dist/backends/codex/mcp-preflight.d.ts +1 -1
- package/dist/backends/codex/mcp-preflight.d.ts.map +1 -1
- package/dist/backends/lacuna/launch-adapter.d.ts +1 -1
- package/dist/backends/lacuna/launch-adapter.d.ts.map +1 -1
- package/dist/backends/lacuna/lifecycle.d.ts +1 -1
- package/dist/backends/lacuna/lifecycle.d.ts.map +1 -1
- package/dist/backends/lacuna/lifecycle.js +1 -1
- package/dist/backends/lacuna/lifecycle.js.map +1 -1
- package/dist/backends/lacuna/supervisor.d.ts +1 -1
- package/dist/backends/lacuna/supervisor.d.ts.map +1 -1
- package/dist/backends/lacuna/supervisor.js +2 -2
- package/dist/backends/lacuna/supervisor.js.map +1 -1
- package/dist/backends/resolve.js +2 -2
- package/dist/backends/resolve.js.map +1 -1
- package/dist/ci/ci-escalation.d.ts.map +1 -0
- package/dist/ci/ci-escalation.js +66 -0
- package/dist/ci/ci-escalation.js.map +1 -0
- package/dist/ci/ci-sensor-loop.d.ts +146 -0
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -0
- package/dist/ci/ci-sensor-loop.js +265 -0
- package/dist/ci/ci-sensor-loop.js.map +1 -0
- package/dist/ci/ci-status-git.d.ts +53 -0
- package/dist/ci/ci-status-git.d.ts.map +1 -0
- package/dist/ci/ci-status-git.js +89 -0
- package/dist/ci/ci-status-git.js.map +1 -0
- package/dist/ci/ci-status.d.ts +137 -0
- package/dist/ci/ci-status.d.ts.map +1 -0
- package/dist/ci/ci-status.js.map +1 -0
- package/dist/cli/backfill-frt-prose.d.ts +3 -3
- package/dist/cli/backfill-frt-prose.d.ts.map +1 -1
- package/dist/cli/backfill-frt-prose.js +2 -2
- package/dist/cli/backfill-frt-prose.js.map +1 -1
- package/dist/cli/codex-provision.js +1 -1
- package/dist/cli/codex-provision.js.map +1 -1
- package/dist/cli/connect/cline.js +1 -1
- package/dist/cli/connect/cline.js.map +1 -1
- package/dist/cli/connect/codex.js +1 -1
- package/dist/cli/connect/codex.js.map +1 -1
- package/dist/cli/connect/ide.js +1 -1
- package/dist/cli/connect/ide.js.map +1 -1
- package/dist/cli/connect.js +4 -4
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/open.js +2 -2
- package/dist/cli/open.js.map +1 -1
- package/dist/cli/session-state.d.ts +1 -1
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js +4 -4
- package/dist/cli/session-state.js.map +1 -1
- package/dist/cli/verify-setup-config.d.ts +1 -1
- package/dist/cli/verify-setup-config.d.ts.map +1 -1
- package/dist/cli/verify-setup.js +2 -2
- package/dist/cli/verify-setup.js.map +1 -1
- package/dist/completion/advanceability.d.ts +1 -1
- package/dist/completion/advanceability.d.ts.map +1 -1
- package/dist/completion/advanceability.js +2 -2
- package/dist/completion/advanceability.js.map +1 -1
- package/dist/completion/delivery-advancement-guard.d.ts +20 -2
- package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
- package/dist/completion/delivery-advancement-guard.js +32 -4
- package/dist/completion/delivery-advancement-guard.js.map +1 -1
- package/dist/completion/detector.d.ts +9 -3
- package/dist/completion/detector.d.ts.map +1 -1
- package/dist/completion/detector.js +26 -4
- package/dist/completion/detector.js.map +1 -1
- package/dist/completion/escalation-provenance.d.ts +78 -0
- package/dist/completion/escalation-provenance.d.ts.map +1 -0
- package/dist/completion/escalation-provenance.js +206 -0
- package/dist/completion/escalation-provenance.js.map +1 -0
- package/dist/completion/escalations.d.ts +85 -0
- package/dist/completion/escalations.d.ts.map +1 -0
- package/dist/completion/escalations.js +91 -0
- package/dist/completion/escalations.js.map +1 -0
- package/dist/completion/event-entry-phases.d.ts +1 -1
- package/dist/completion/event-entry-phases.d.ts.map +1 -1
- package/dist/completion/event-entry-phases.js +3 -3
- package/dist/completion/event-entry-phases.js.map +1 -1
- package/dist/completion/event-escalations.d.ts +1 -1
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +1 -1
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event-phases.d.ts +44 -1
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +165 -13
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +20 -1
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +7 -4
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/exit-classification.d.ts +1 -1
- package/dist/completion/exit-classification.d.ts.map +1 -1
- package/dist/completion/merge-phase.d.ts +21 -7
- package/dist/completion/merge-phase.d.ts.map +1 -1
- package/dist/completion/merge-phase.js +14 -11
- package/dist/completion/merge-phase.js.map +1 -1
- package/dist/completion/progress-snapshot.d.ts +1 -1
- package/dist/completion/progress-snapshot.d.ts.map +1 -1
- package/dist/completion/read-only-pristine.d.ts +1 -1
- package/dist/completion/read-only-pristine.d.ts.map +1 -1
- package/dist/completion/read-only-pristine.js +2 -2
- package/dist/completion/read-only-pristine.js.map +1 -1
- package/dist/completion/review-defect-detector.d.ts +82 -0
- package/dist/completion/review-defect-detector.d.ts.map +1 -0
- package/dist/completion/review-defect-detector.js +148 -0
- package/dist/completion/review-defect-detector.js.map +1 -0
- package/dist/completion/review-exit-escalations.d.ts +1 -1
- package/dist/completion/review-exit-escalations.d.ts.map +1 -1
- package/dist/completion/review-exit-escalations.js +1 -1
- package/dist/completion/review-exit-escalations.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts +4 -3
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +10 -9
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/review-exit-shortfall.d.ts +1 -1
- package/dist/completion/review-exit-shortfall.d.ts.map +1 -1
- package/dist/completion/review-exit-shortfall.js +1 -1
- package/dist/completion/review-exit-shortfall.js.map +1 -1
- package/dist/completion/review-spawn-coverage-guard.d.ts.map +1 -0
- package/dist/completion/review-spawn-coverage-guard.js.map +1 -0
- package/dist/completion/state-cascade.d.ts +90 -0
- package/dist/completion/state-cascade.d.ts.map +1 -0
- package/dist/completion/state-cascade.js +230 -0
- package/dist/completion/state-cascade.js.map +1 -0
- package/dist/completion/status-advance-phase.d.ts +4 -4
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +9 -7
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-completion.d.ts +2 -2
- package/dist/completion/team-completion.d.ts.map +1 -1
- package/dist/completion/team-completion.js +15 -9
- package/dist/completion/team-completion.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +1 -1
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +10 -11
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/completion/terminated-work-reconcile.d.ts +2 -2
- package/dist/completion/terminated-work-reconcile.d.ts.map +1 -1
- package/dist/completion/terminated-work-reconcile.js +5 -4
- package/dist/completion/terminated-work-reconcile.js.map +1 -1
- package/dist/context/context-audit.d.ts +68 -0
- package/dist/context/context-audit.d.ts.map +1 -0
- package/dist/context/context-audit.js.map +1 -0
- package/dist/context/context-lock.d.ts +129 -0
- package/dist/context/context-lock.d.ts.map +1 -0
- package/dist/context/context-lock.js.map +1 -0
- package/dist/delivery/delivery-advance-block.d.ts +143 -0
- package/dist/delivery/delivery-advance-block.d.ts.map +1 -0
- package/dist/delivery/delivery-advance-block.js +360 -0
- package/dist/delivery/delivery-advance-block.js.map +1 -0
- package/dist/delivery/delivery-artifacts.d.ts +26 -0
- package/dist/delivery/delivery-artifacts.d.ts.map +1 -0
- package/dist/delivery/delivery-artifacts.js +56 -0
- package/dist/delivery/delivery-artifacts.js.map +1 -0
- package/dist/delivery/delivery-close-actions.d.ts +39 -0
- package/dist/delivery/delivery-close-actions.d.ts.map +1 -0
- package/dist/delivery/delivery-close-actions.js +53 -0
- package/dist/delivery/delivery-close-actions.js.map +1 -0
- package/dist/delivery/delivery-lifecycle.d.ts +144 -0
- package/dist/delivery/delivery-lifecycle.d.ts.map +1 -0
- package/dist/delivery/delivery-lifecycle.js +498 -0
- package/dist/delivery/delivery-lifecycle.js.map +1 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -0
- package/dist/delivery/delivery-reconciler-apply.js +77 -0
- package/dist/delivery/delivery-reconciler-apply.js.map +1 -0
- package/dist/delivery/delivery-reconciler-shadow.d.ts +66 -0
- package/dist/delivery/delivery-reconciler-shadow.d.ts.map +1 -0
- package/dist/delivery/delivery-reconciler-shadow.js +127 -0
- package/dist/delivery/delivery-reconciler-shadow.js.map +1 -0
- package/dist/delivery/delivery-reconciler.d.ts +217 -0
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -0
- package/dist/delivery/delivery-reconciler.js +249 -0
- package/dist/delivery/delivery-reconciler.js.map +1 -0
- package/dist/delivery/external-hold.d.ts +145 -0
- package/dist/delivery/external-hold.d.ts.map +1 -0
- package/dist/delivery/external-hold.js +223 -0
- package/dist/delivery/external-hold.js.map +1 -0
- package/dist/delivery/operator-hold.d.ts +66 -0
- package/dist/delivery/operator-hold.d.ts.map +1 -0
- package/dist/delivery/operator-hold.js +99 -0
- package/dist/delivery/operator-hold.js.map +1 -0
- package/dist/directive/close-loop-dispatcher.d.ts +325 -0
- package/dist/directive/close-loop-dispatcher.d.ts.map +1 -0
- package/dist/directive/close-loop-dispatcher.js +362 -0
- package/dist/directive/close-loop-dispatcher.js.map +1 -0
- package/dist/directive/close-loop-stage.d.ts +2 -2
- package/dist/directive/close-loop-stage.d.ts.map +1 -1
- package/dist/directive/close-loop-stage.js +3 -3
- package/dist/directive/close-loop-stage.js.map +1 -1
- package/dist/directive/directive-assembly.d.ts +2 -3
- package/dist/directive/directive-assembly.d.ts.map +1 -1
- package/dist/directive/directive-assembly.js +5 -4
- package/dist/directive/directive-assembly.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts +2 -2
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +3 -3
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts +37 -0
- package/dist/directive/directive-executor.d.ts.map +1 -0
- package/dist/directive/directive-executor.js +241 -0
- package/dist/directive/directive-executor.js.map +1 -0
- package/dist/directive/directive-queue.d.ts +2 -2
- package/dist/directive/directive-queue.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +3 -3
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/directive/resolver-dispatch.d.ts.map +1 -0
- package/dist/directive/resolver-dispatch.js.map +1 -0
- package/dist/discovery-fetch.js +1 -1
- package/dist/discovery-fetch.js.map +1 -1
- package/dist/drift/drift-eval-loop.d.ts +71 -0
- package/dist/drift/drift-eval-loop.d.ts.map +1 -0
- package/dist/drift/drift-eval-loop.js +259 -0
- package/dist/drift/drift-eval-loop.js.map +1 -0
- package/dist/drift/drift-evaluator.d.ts.map +1 -0
- package/dist/drift/drift-evaluator.js.map +1 -0
- package/dist/drift/drift-ratify-policy.d.ts.map +1 -0
- package/dist/drift/drift-ratify-policy.js.map +1 -0
- package/dist/drift/retention-observation.d.ts.map +1 -0
- package/dist/drift/retention-observation.js.map +1 -0
- package/dist/drift/sensor-sweep.d.ts +194 -0
- package/dist/drift/sensor-sweep.d.ts.map +1 -0
- package/dist/drift/sensor-sweep.js +458 -0
- package/dist/drift/sensor-sweep.js.map +1 -0
- package/dist/drift/staleness-sensor.d.ts +176 -0
- package/dist/drift/staleness-sensor.d.ts.map +1 -0
- package/dist/drift/staleness-sensor.js +335 -0
- package/dist/drift/staleness-sensor.js.map +1 -0
- package/dist/drift/staleness.d.ts +134 -0
- package/dist/drift/staleness.d.ts.map +1 -0
- package/dist/drift/staleness.js +249 -0
- package/dist/drift/staleness.js.map +1 -0
- package/dist/focus/focus-branch-ahead.d.ts +42 -0
- package/dist/focus/focus-branch-ahead.d.ts.map +1 -0
- package/dist/focus/focus-branch-ahead.js +45 -0
- package/dist/focus/focus-branch-ahead.js.map +1 -0
- package/dist/focus/focus-branch-identity.d.ts +62 -0
- package/dist/focus/focus-branch-identity.d.ts.map +1 -0
- package/dist/focus/focus-branch-identity.js +59 -0
- package/dist/focus/focus-branch-identity.js.map +1 -0
- package/dist/focus/focus-engine.d.ts +74 -0
- package/dist/focus/focus-engine.d.ts.map +1 -0
- package/dist/focus/focus-engine.js +528 -0
- package/dist/focus/focus-engine.js.map +1 -0
- package/dist/focus/focus-executor.d.ts +79 -0
- package/dist/focus/focus-executor.d.ts.map +1 -0
- package/dist/focus/focus-executor.js +421 -0
- package/dist/focus/focus-executor.js.map +1 -0
- package/dist/focus/focus-lifecycle.d.ts +60 -0
- package/dist/focus/focus-lifecycle.d.ts.map +1 -0
- package/dist/focus/focus-lifecycle.js +543 -0
- package/dist/focus/focus-lifecycle.js.map +1 -0
- package/dist/focus/focus-loop-registry.d.ts +52 -0
- package/dist/focus/focus-loop-registry.d.ts.map +1 -0
- package/dist/focus/focus-loop-registry.js +362 -0
- package/dist/focus/focus-loop-registry.js.map +1 -0
- package/dist/focus/focus-loop.d.ts +96 -0
- package/dist/focus/focus-loop.d.ts.map +1 -0
- package/dist/focus/focus-loop.js +364 -0
- package/dist/focus/focus-loop.js.map +1 -0
- package/dist/focus/focus-phase.d.ts.map +1 -0
- package/dist/focus/focus-phase.js.map +1 -0
- package/dist/focus/focus-respawn-guard.d.ts +39 -0
- package/dist/focus/focus-respawn-guard.d.ts.map +1 -0
- package/dist/focus/focus-respawn-guard.js +62 -0
- package/dist/focus/focus-respawn-guard.js.map +1 -0
- package/dist/focus/focus-team-state.d.ts +115 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -0
- package/dist/focus/focus-team-state.js +195 -0
- package/dist/focus/focus-team-state.js.map +1 -0
- package/dist/focus/focus-worktree-state.d.ts +70 -0
- package/dist/focus/focus-worktree-state.d.ts.map +1 -0
- package/dist/focus/focus-worktree-state.js +118 -0
- package/dist/focus/focus-worktree-state.js.map +1 -0
- package/dist/focus/listener-auto-advance.d.ts +126 -0
- package/dist/focus/listener-auto-advance.d.ts.map +1 -0
- package/dist/focus/listener-auto-advance.js +629 -0
- package/dist/focus/listener-auto-advance.js.map +1 -0
- package/dist/focus/listener.d.ts +101 -0
- package/dist/focus/listener.d.ts.map +1 -0
- package/dist/focus/listener.js +770 -0
- package/dist/focus/listener.js.map +1 -0
- package/dist/focus-stage-lifecycle/index.d.ts +63 -0
- package/dist/focus-stage-lifecycle/index.d.ts.map +1 -0
- package/dist/focus-stage-lifecycle/index.js +179 -0
- package/dist/focus-stage-lifecycle/index.js.map +1 -0
- package/dist/focus-stage-lifecycle/planning-release.js +4 -4
- package/dist/focus-stage-lifecycle/planning-release.js.map +1 -1
- package/dist/focus-stage-lifecycle/review-convergence.d.ts +1 -1
- package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/review-convergence.js +2 -2
- package/dist/focus-stage-lifecycle/review-convergence.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +3 -3
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/git/branch.d.ts +1 -1
- package/dist/git/branch.d.ts.map +1 -1
- package/dist/git/branch.js +1 -1
- package/dist/git/branch.js.map +1 -1
- package/dist/git/exec.d.ts +24 -0
- package/dist/git/exec.d.ts.map +1 -0
- package/dist/git/exec.js +114 -0
- package/dist/git/exec.js.map +1 -0
- package/dist/git/genesis.js +1 -1
- package/dist/git/genesis.js.map +1 -1
- package/dist/git/index.d.ts +3 -8
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +3 -8
- package/dist/git/index.js.map +1 -1
- package/dist/git/integration.d.ts +1 -1
- package/dist/git/integration.d.ts.map +1 -1
- package/dist/git/integration.js +1 -1
- package/dist/git/integration.js.map +1 -1
- package/dist/git/merge-lock.js +1 -1
- package/dist/git/merge-lock.js.map +1 -1
- package/dist/git/merge.d.ts +33 -2
- package/dist/git/merge.d.ts.map +1 -1
- package/dist/git/merge.js +159 -18
- package/dist/git/merge.js.map +1 -1
- package/dist/git/state-detector.d.ts +1 -1
- package/dist/git/state-detector.d.ts.map +1 -1
- package/dist/git/state-detector.js +1 -1
- package/dist/git/state-detector.js.map +1 -1
- package/dist/git/types.d.ts +1 -1
- package/dist/git/types.d.ts.map +1 -1
- package/dist/git/utils.js +1 -1
- package/dist/git/utils.js.map +1 -1
- package/dist/guard/condition-evaluators.d.ts +70 -0
- package/dist/guard/condition-evaluators.d.ts.map +1 -0
- package/dist/guard/condition-evaluators.js +203 -0
- package/dist/guard/condition-evaluators.js.map +1 -0
- package/dist/guard/evaluation-context.d.ts.map +1 -0
- package/dist/guard/evaluation-context.js +44 -0
- package/dist/guard/evaluation-context.js.map +1 -0
- package/dist/guard/guard-evaluator.d.ts +47 -0
- package/dist/guard/guard-evaluator.d.ts.map +1 -0
- package/dist/guard/guard-evaluator.js +195 -0
- package/dist/guard/guard-evaluator.js.map +1 -0
- package/dist/guard/trigger-executor.d.ts +99 -0
- package/dist/guard/trigger-executor.d.ts.map +1 -0
- package/dist/guard/trigger-executor.js +437 -0
- package/dist/guard/trigger-executor.js.map +1 -0
- package/dist/host-control/catalog.js +1 -1
- package/dist/host-control/catalog.js.map +1 -1
- package/dist/host-control/client.js +1 -1
- package/dist/host-control/client.js.map +1 -1
- package/dist/host-control/discovery-poll.d.ts +36 -0
- package/dist/host-control/discovery-poll.d.ts.map +1 -0
- package/dist/host-control/discovery-poll.js +94 -0
- package/dist/host-control/discovery-poll.js.map +1 -0
- package/dist/host-control/sizing.js +1 -1
- package/dist/host-control/sizing.js.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/loops/context-audit-pass.d.ts +2 -2
- package/dist/loops/context-audit-pass.d.ts.map +1 -1
- package/dist/loops/context-audit-pass.js +3 -3
- package/dist/loops/context-audit-pass.js.map +1 -1
- package/dist/loops/engine.js +2 -2
- package/dist/loops/engine.js.map +1 -1
- package/dist/loops/llm-client.d.ts +8 -1
- package/dist/loops/llm-client.d.ts.map +1 -1
- package/dist/loops/llm-client.js +5 -4
- package/dist/loops/llm-client.js.map +1 -1
- package/dist/loops/prompt-builder.js +1 -1
- package/dist/loops/prompt-builder.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +131 -0
- package/dist/merge/focus-merge.d.ts.map +1 -0
- package/dist/merge/focus-merge.js +556 -0
- package/dist/merge/focus-merge.js.map +1 -0
- package/dist/merge/merge-back-loop.d.ts +122 -0
- package/dist/merge/merge-back-loop.d.ts.map +1 -0
- package/dist/merge/merge-back-loop.js +657 -0
- package/dist/merge/merge-back-loop.js.map +1 -0
- package/dist/merge/merge-detector.d.ts +55 -0
- package/dist/merge/merge-detector.d.ts.map +1 -0
- package/dist/merge/merge-detector.js +222 -0
- package/dist/merge/merge-detector.js.map +1 -0
- package/dist/merge/merge-failure-classify.d.ts +48 -0
- package/dist/merge/merge-failure-classify.d.ts.map +1 -0
- package/dist/merge/merge-failure-classify.js +89 -0
- package/dist/merge/merge-failure-classify.js.map +1 -0
- package/dist/nexus/endpoint-clearance.d.ts +12 -3
- package/dist/nexus/endpoint-clearance.d.ts.map +1 -1
- package/dist/nexus/endpoint-clearance.js +17 -8
- package/dist/nexus/endpoint-clearance.js.map +1 -1
- package/dist/nexus/escalation-bridge.js +1 -1
- package/dist/nexus/escalation-bridge.js.map +1 -1
- package/dist/nexus/incoming.d.ts +1 -1
- package/dist/nexus/incoming.d.ts.map +1 -1
- package/dist/nexus/incoming.js +1 -1
- package/dist/nexus/incoming.js.map +1 -1
- package/dist/nexus/intake-spawn.d.ts +1 -1
- package/dist/nexus/intake-spawn.d.ts.map +1 -1
- package/dist/nexus/intake-spawn.js +1 -1
- package/dist/nexus/intake-spawn.js.map +1 -1
- package/dist/nexus/intake.d.ts +1 -1
- package/dist/nexus/intake.d.ts.map +1 -1
- package/dist/nexus/intake.js +1 -1
- package/dist/nexus/intake.js.map +1 -1
- package/dist/nexus/return.d.ts +1 -1
- package/dist/nexus/return.d.ts.map +1 -1
- package/dist/nexus/return.js +2 -2
- package/dist/nexus/return.js.map +1 -1
- package/dist/otlp/log-parser.js +1 -1
- package/dist/otlp/log-parser.js.map +1 -1
- package/dist/otlp/metric-parser.js +1 -1
- package/dist/otlp/metric-parser.js.map +1 -1
- package/dist/otlp/receiver.d.ts +1 -1
- package/dist/otlp/receiver.d.ts.map +1 -1
- package/dist/otlp/receiver.js +2 -2
- package/dist/otlp/receiver.js.map +1 -1
- package/dist/otlp/telemetry-writer.d.ts +90 -0
- package/dist/otlp/telemetry-writer.d.ts.map +1 -0
- package/dist/otlp/telemetry-writer.js +213 -0
- package/dist/otlp/telemetry-writer.js.map +1 -0
- package/dist/prd/controller.d.ts +2 -2
- package/dist/prd/controller.d.ts.map +1 -1
- package/dist/prd/controller.js +3 -3
- package/dist/prd/controller.js.map +1 -1
- package/dist/prd/focus-pushdown.d.ts +1 -1
- package/dist/prd/focus-pushdown.d.ts.map +1 -1
- package/dist/prd/focus-pushdown.js +2 -2
- package/dist/prd/focus-pushdown.js.map +1 -1
- package/dist/prd/steward.d.ts +1 -1
- package/dist/prd/steward.d.ts.map +1 -1
- package/dist/prd/steward.js +3 -2
- package/dist/prd/steward.js.map +1 -1
- package/dist/prompt/focus-prompt-builder.d.ts +33 -0
- package/dist/prompt/focus-prompt-builder.d.ts.map +1 -0
- package/dist/prompt/focus-prompt-builder.js +118 -0
- package/dist/prompt/focus-prompt-builder.js.map +1 -0
- package/dist/prompt/onboarding-directive.d.ts.map +1 -0
- package/dist/prompt/onboarding-directive.js.map +1 -0
- package/dist/prompt/prompt-contradictions.d.ts.map +1 -0
- package/dist/prompt/prompt-contradictions.js.map +1 -0
- package/dist/prompt/prompt-listing.d.ts +70 -0
- package/dist/prompt/prompt-listing.d.ts.map +1 -0
- package/dist/prompt/prompt-listing.js.map +1 -0
- package/dist/prompt/team-prompt-base.d.ts +43 -0
- package/dist/prompt/team-prompt-base.d.ts.map +1 -0
- package/dist/prompt/team-prompt-base.js +123 -0
- package/dist/prompt/team-prompt-base.js.map +1 -0
- package/dist/prompt-sections/context-sections.d.ts +1 -1
- package/dist/prompt-sections/context-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.d.ts +1 -1
- package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
- package/dist/prompt-sections/execution-sections.js +2 -2
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +2 -2
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +1 -1
- package/dist/prompt-sections/role-sections.d.ts +1 -1
- package/dist/prompt-sections/role-sections.d.ts.map +1 -1
- package/dist/prompt-sections/shared.d.ts +1 -1
- package/dist/prompt-sections/shared.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts +2 -2
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +5 -5
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/context-assembly.d.ts +1 -1
- package/dist/queries/context-assembly.d.ts.map +1 -1
- package/dist/queries/context-assembly.js +1 -1
- package/dist/queries/context-assembly.js.map +1 -1
- package/dist/queries/context-lock-queries.d.ts +2 -2
- package/dist/queries/context-lock-queries.d.ts.map +1 -1
- package/dist/queries/deliveries.d.ts +24 -6
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +34 -39
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/drift.d.ts +1 -1
- package/dist/queries/drift.d.ts.map +1 -1
- package/dist/queries/escalation-suppression.js +1 -1
- package/dist/queries/escalation-suppression.js.map +1 -1
- package/dist/queries/focuses.d.ts +1 -1
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +1 -1
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/guards.d.ts +1 -1
- package/dist/queries/guards.d.ts.map +1 -1
- package/dist/queries/guards.js +1 -1
- package/dist/queries/guards.js.map +1 -1
- package/dist/queries/holds.d.ts +3 -2
- package/dist/queries/holds.d.ts.map +1 -1
- package/dist/queries/holds.js +7 -6
- package/dist/queries/holds.js.map +1 -1
- package/dist/queries/issues.d.ts +20 -8
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +26 -29
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/prd.d.ts +2 -1
- package/dist/queries/prd.d.ts.map +1 -1
- package/dist/queries/prd.js +3 -2
- package/dist/queries/prd.js.map +1 -1
- package/dist/queries/reality-tree.js +1 -1
- package/dist/queries/reality-tree.js.map +1 -1
- package/dist/queries/roles.d.ts +1 -1
- package/dist/queries/roles.d.ts.map +1 -1
- package/dist/queries/schemas.d.ts +51 -28
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +48 -28
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/sessions.d.ts +1 -1
- package/dist/queries/sessions.d.ts.map +1 -1
- package/dist/queries/shared.d.ts +12 -1
- package/dist/queries/shared.d.ts.map +1 -1
- package/dist/queries/shared.js.map +1 -1
- package/dist/queries/system-session.d.ts +14 -3
- package/dist/queries/system-session.d.ts.map +1 -1
- package/dist/queries/system-session.js +9 -11
- package/dist/queries/system-session.js.map +1 -1
- package/dist/queries/verification.d.ts +6 -5
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +17 -14
- package/dist/queries/verification.js.map +1 -1
- package/dist/queries/workflows.d.ts +1 -1
- package/dist/queries/workflows.d.ts.map +1 -1
- package/dist/queries/worktrees.d.ts +10 -10
- package/dist/queries/worktrees.d.ts.map +1 -1
- package/dist/queries/worktrees.js.map +1 -1
- package/dist/reality/realign-apply.d.ts +65 -0
- package/dist/reality/realign-apply.d.ts.map +1 -0
- package/dist/reality/realign-apply.js +302 -0
- package/dist/reality/realign-apply.js.map +1 -0
- package/dist/reality/reality-pole-capture.d.ts.map +1 -0
- package/dist/reality/reality-pole-capture.js +114 -0
- package/dist/reality/reality-pole-capture.js.map +1 -0
- package/dist/reality/reality-pole.d.ts +64 -0
- package/dist/reality/reality-pole.d.ts.map +1 -0
- package/dist/reality/reality-pole.js +101 -0
- package/dist/reality/reality-pole.js.map +1 -0
- package/dist/reality/reality-writeback.d.ts.map +1 -0
- package/dist/reality/reality-writeback.js.map +1 -0
- package/dist/resolvers/agent-escalations.js +2 -2
- package/dist/resolvers/agent-escalations.js.map +1 -1
- package/dist/resolvers/agent-session-summaries.js +2 -2
- package/dist/resolvers/agent-session-summaries.js.map +1 -1
- package/dist/resolvers/assembly-engine.d.ts +114 -0
- package/dist/resolvers/assembly-engine.d.ts.map +1 -0
- package/dist/resolvers/assembly-engine.js +137 -0
- package/dist/resolvers/assembly-engine.js.map +1 -0
- package/dist/resolvers/delivery-acceptance-criteria.js +1 -1
- package/dist/resolvers/delivery-acceptance-criteria.js.map +1 -1
- package/dist/resolvers/delivery-description.js +1 -1
- package/dist/resolvers/delivery-description.js.map +1 -1
- package/dist/resolvers/delivery-issues.js +1 -1
- package/dist/resolvers/delivery-issues.js.map +1 -1
- package/dist/resolvers/delivery-listing.js +2 -2
- package/dist/resolvers/delivery-listing.js.map +1 -1
- package/dist/resolvers/delivery-tech-context.js +1 -1
- package/dist/resolvers/delivery-tech-context.js.map +1 -1
- package/dist/resolvers/deployment-profile.js +2 -2
- package/dist/resolvers/deployment-profile.js.map +1 -1
- package/dist/resolvers/drift-shortfall-proposals.js +3 -3
- package/dist/resolvers/drift-shortfall-proposals.js.map +1 -1
- package/dist/resolvers/escalation-answers.js +2 -2
- package/dist/resolvers/escalation-answers.js.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.js +2 -2
- package/dist/resolvers/focus-anchoring-injections.js.map +1 -1
- package/dist/resolvers/focus-context.js +1 -1
- package/dist/resolvers/focus-context.js.map +1 -1
- package/dist/resolvers/focus-endpoint-catalog.js +1 -1
- package/dist/resolvers/focus-endpoint-catalog.js.map +1 -1
- package/dist/resolvers/focus-injections.js +2 -2
- package/dist/resolvers/focus-injections.js.map +1 -1
- package/dist/resolvers/focus-last-review-report.js +2 -2
- package/dist/resolvers/focus-last-review-report.js.map +1 -1
- package/dist/resolvers/focus-reality-tree.js +2 -2
- package/dist/resolvers/focus-reality-tree.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +2 -2
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/guards-evaluation-results.js +2 -2
- package/dist/resolvers/guards-evaluation-results.js.map +1 -1
- package/dist/resolvers/index.d.ts +6 -5
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +7 -6
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/loop-context.js +2 -2
- package/dist/resolvers/loop-context.js.map +1 -1
- package/dist/resolvers/loop-delivery-index.js +2 -2
- package/dist/resolvers/loop-delivery-index.js.map +1 -1
- package/dist/resolvers/loop-documents.js +2 -2
- package/dist/resolvers/loop-documents.js.map +1 -1
- package/dist/resolvers/loop-expected-effects.js +2 -2
- package/dist/resolvers/loop-expected-effects.js.map +1 -1
- package/dist/resolvers/loop-frt-statement.js +2 -2
- package/dist/resolvers/loop-frt-statement.js.map +1 -1
- package/dist/resolvers/loop-injection.js +2 -2
- package/dist/resolvers/loop-injection.js.map +1 -1
- package/dist/resolvers/loop-persona.js +3 -3
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/resolvers/loop-questions.js +2 -2
- package/dist/resolvers/loop-questions.js.map +1 -1
- package/dist/resolvers/loop-upstream-udes.js +2 -2
- package/dist/resolvers/loop-upstream-udes.js.map +1 -1
- package/dist/resolvers/prd-context.js +2 -2
- package/dist/resolvers/prd-context.js.map +1 -1
- package/dist/resolvers/prd-persona.js +1 -1
- package/dist/resolvers/prd-persona.js.map +1 -1
- package/dist/resolvers/reality-metrics.js +2 -2
- package/dist/resolvers/reality-metrics.js.map +1 -1
- package/dist/resolvers/reality-projections.js +2 -2
- package/dist/resolvers/reality-projections.js.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.js +2 -2
- package/dist/resolvers/reality-tree-snapshot.js.map +1 -1
- package/dist/resolvers/retired-injections.js +2 -2
- package/dist/resolvers/retired-injections.js.map +1 -1
- package/dist/resolvers/review-outcomes.js +2 -2
- package/dist/resolvers/review-outcomes.js.map +1 -1
- package/dist/resolvers/security-advisory.js +2 -2
- package/dist/resolvers/security-advisory.js.map +1 -1
- package/dist/resolvers/shared/loop.d.ts +1 -1
- package/dist/resolvers/shared/loop.d.ts.map +1 -1
- package/dist/resolvers/shared/wiki.d.ts +2 -1
- package/dist/resolvers/shared/wiki.d.ts.map +1 -1
- package/dist/resolvers/shared/wiki.js +4 -3
- package/dist/resolvers/shared/wiki.js.map +1 -1
- package/dist/resolvers/wiki-search.js +1 -1
- package/dist/resolvers/wiki-search.js.map +1 -1
- package/dist/resolvers/wiki-topic.js +2 -2
- package/dist/resolvers/wiki-topic.js.map +1 -1
- package/dist/resolvers/workflow-stages.js +2 -2
- package/dist/resolvers/workflow-stages.js.map +1 -1
- package/dist/scanners/deps.d.ts +1 -1
- package/dist/scanners/deps.d.ts.map +1 -1
- package/dist/scanners/signatures.d.ts +1 -1
- package/dist/scanners/signatures.d.ts.map +1 -1
- package/dist/scanners/workflow.d.ts +1 -1
- package/dist/scanners/workflow.d.ts.map +1 -1
- package/dist/security/security-auto-inject.d.ts.map +1 -0
- package/dist/security/security-auto-inject.js +168 -0
- package/dist/security/security-auto-inject.js.map +1 -0
- package/dist/security/security-finding-gate.d.ts.map +1 -0
- package/dist/security/security-finding-gate.js +84 -0
- package/dist/security/security-finding-gate.js.map +1 -0
- package/dist/security/security-rescan-resolution.d.ts.map +1 -0
- package/dist/security/security-rescan-resolution.js +117 -0
- package/dist/security/security-rescan-resolution.js.map +1 -0
- package/dist/security/security-scan-engine.d.ts +145 -0
- package/dist/security/security-scan-engine.d.ts.map +1 -0
- package/dist/security/security-scan-engine.js +271 -0
- package/dist/security/security-scan-engine.js.map +1 -0
- package/dist/session/session-lineage.d.ts.map +1 -0
- package/dist/session/session-lineage.js.map +1 -0
- package/dist/session/session-stamp.d.ts +63 -0
- package/dist/session/session-stamp.d.ts.map +1 -0
- package/dist/session/session-stamp.js +67 -0
- package/dist/session/session-stamp.js.map +1 -0
- package/dist/shell/activity-tracker.d.ts.map +1 -0
- package/dist/shell/activity-tracker.js +19 -0
- package/dist/shell/activity-tracker.js.map +1 -0
- package/dist/shell/agent-state.d.ts.map +1 -0
- package/dist/shell/agent-state.js.map +1 -0
- package/dist/shell/auth-liveness.d.ts.map +1 -0
- package/dist/shell/auth-liveness.js.map +1 -0
- package/dist/shell/branch-status.d.ts +97 -0
- package/dist/shell/branch-status.d.ts.map +1 -0
- package/dist/shell/branch-status.js +299 -0
- package/dist/shell/branch-status.js.map +1 -0
- package/dist/shell/circuit-wedge-watcher.d.ts +48 -0
- package/dist/shell/circuit-wedge-watcher.d.ts.map +1 -0
- package/dist/shell/circuit-wedge-watcher.js +94 -0
- package/dist/shell/circuit-wedge-watcher.js.map +1 -0
- package/dist/shell/config-hot-reload.d.ts +91 -0
- package/dist/shell/config-hot-reload.d.ts.map +1 -0
- package/dist/shell/config-hot-reload.js.map +1 -0
- package/dist/shell/config-reconcile.d.ts +114 -0
- package/dist/shell/config-reconcile.d.ts.map +1 -0
- package/dist/shell/config-reconcile.js +189 -0
- package/dist/shell/config-reconcile.js.map +1 -0
- package/dist/shell/config.d.ts +102 -0
- package/dist/shell/config.d.ts.map +1 -0
- package/dist/shell/config.js +486 -0
- package/dist/shell/config.js.map +1 -0
- package/dist/shell/constants.d.ts.map +1 -0
- package/dist/shell/constants.js.map +1 -0
- package/dist/shell/control-state.d.ts +109 -0
- package/dist/shell/control-state.d.ts.map +1 -0
- package/dist/shell/control-state.js +337 -0
- package/dist/shell/control-state.js.map +1 -0
- package/dist/shell/crash-recovery.d.ts +141 -0
- package/dist/shell/crash-recovery.d.ts.map +1 -0
- package/dist/shell/crash-recovery.js +631 -0
- package/dist/shell/crash-recovery.js.map +1 -0
- package/dist/shell/daemon-logs.d.ts.map +1 -0
- package/dist/shell/daemon-logs.js.map +1 -0
- package/dist/shell/daemon-process.d.ts.map +1 -0
- package/dist/shell/daemon-process.js +463 -0
- package/dist/shell/daemon-process.js.map +1 -0
- package/dist/shell/daemon-readiness.d.ts.map +1 -0
- package/dist/shell/daemon-readiness.js.map +1 -0
- package/dist/shell/drain-teardown.d.ts.map +1 -0
- package/dist/shell/drain-teardown.js.map +1 -0
- package/dist/shell/gitignore-convergence.d.ts.map +1 -0
- package/dist/shell/gitignore-convergence.js.map +1 -0
- package/dist/shell/health-events.d.ts.map +1 -0
- package/dist/shell/health-events.js.map +1 -0
- package/dist/shell/heartbeat.d.ts +165 -0
- package/dist/shell/heartbeat.d.ts.map +1 -0
- package/dist/shell/heartbeat.js +502 -0
- package/dist/shell/heartbeat.js.map +1 -0
- package/dist/shell/install-probe-tick.d.ts +63 -0
- package/dist/shell/install-probe-tick.d.ts.map +1 -0
- package/dist/shell/install-probe-tick.js +139 -0
- package/dist/shell/install-probe-tick.js.map +1 -0
- package/dist/shell/install-probe.d.ts.map +1 -0
- package/dist/shell/install-probe.js.map +1 -0
- package/dist/shell/intake-control.d.ts.map +1 -0
- package/dist/shell/intake-control.js.map +1 -0
- package/dist/shell/log-manager.d.ts +18 -0
- package/dist/shell/log-manager.d.ts.map +1 -0
- package/dist/shell/log-manager.js.map +1 -0
- package/dist/shell/log.d.ts.map +1 -0
- package/dist/shell/log.js.map +1 -0
- package/dist/shell/mcp-resolution.d.ts.map +1 -0
- package/dist/shell/mcp-resolution.js.map +1 -0
- package/dist/shell/model-resolution.d.ts.map +1 -0
- package/dist/shell/model-resolution.js.map +1 -0
- package/dist/shell/non-interactive-init.d.ts +40 -0
- package/dist/shell/non-interactive-init.d.ts.map +1 -0
- package/dist/shell/non-interactive-init.js.map +1 -0
- package/dist/shell/product-scaffold.d.ts +56 -0
- package/dist/shell/product-scaffold.d.ts.map +1 -0
- package/dist/shell/product-scaffold.js +136 -0
- package/dist/shell/product-scaffold.js.map +1 -0
- package/dist/shell/schema-version-gate.d.ts.map +1 -0
- package/dist/shell/schema-version-gate.js +220 -0
- package/dist/shell/schema-version-gate.js.map +1 -0
- package/dist/shell/shutdown-state.d.ts.map +1 -0
- package/dist/shell/shutdown-state.js.map +1 -0
- package/dist/shell/stop-request.d.ts.map +1 -0
- package/dist/shell/stop-request.js.map +1 -0
- package/dist/shell/unified-engine-lifecycle.d.ts +186 -0
- package/dist/shell/unified-engine-lifecycle.d.ts.map +1 -0
- package/dist/shell/unified-engine-lifecycle.js +594 -0
- package/dist/shell/unified-engine-lifecycle.js.map +1 -0
- package/dist/shell/unified-init.d.ts +86 -0
- package/dist/shell/unified-init.d.ts.map +1 -0
- package/dist/shell/unified-init.js +313 -0
- package/dist/shell/unified-init.js.map +1 -0
- package/dist/shell/unified-shell-config.d.ts +103 -0
- package/dist/shell/unified-shell-config.d.ts.map +1 -0
- package/dist/shell/unified-shell-config.js.map +1 -0
- package/dist/shell/unified-shell-provisioning.d.ts.map +1 -0
- package/dist/shell/unified-shell-provisioning.js +277 -0
- package/dist/shell/unified-shell-provisioning.js.map +1 -0
- package/dist/shell/unified-shell-status.d.ts.map +1 -0
- package/dist/shell/unified-shell-status.js +143 -0
- package/dist/shell/unified-shell-status.js.map +1 -0
- package/dist/shell/unified-shell.d.ts.map +1 -0
- package/dist/shell/unified-shell.js +583 -0
- package/dist/shell/unified-shell.js.map +1 -0
- package/dist/shell/worker-pidfile.d.ts.map +1 -0
- package/dist/shell/worker-pidfile.js.map +1 -0
- package/dist/spawn/dag-validator.d.ts +52 -0
- package/dist/spawn/dag-validator.d.ts.map +1 -0
- package/dist/spawn/dag-validator.js.map +1 -0
- package/dist/spawn/delivered-manifest.d.ts +1 -1
- package/dist/spawn/delivered-manifest.d.ts.map +1 -1
- package/dist/spawn/dependency-resolver.d.ts +77 -0
- package/dist/spawn/dependency-resolver.d.ts.map +1 -0
- package/dist/spawn/dependency-resolver.js.map +1 -0
- package/dist/spawn/guards.d.ts.map +1 -0
- package/dist/spawn/guards.js +46 -0
- package/dist/spawn/guards.js.map +1 -0
- package/dist/spawn/helpers.d.ts +86 -0
- package/dist/spawn/helpers.d.ts.map +1 -0
- package/dist/spawn/helpers.js +220 -0
- package/dist/spawn/helpers.js.map +1 -0
- package/dist/spawn/index.d.ts +29 -0
- package/dist/spawn/index.d.ts.map +1 -0
- package/dist/spawn/index.js +37 -0
- package/dist/spawn/index.js.map +1 -0
- package/dist/spawn/lifecycle.d.ts +148 -0
- package/dist/spawn/lifecycle.d.ts.map +1 -0
- package/dist/spawn/lifecycle.js +413 -0
- package/dist/spawn/lifecycle.js.map +1 -0
- package/dist/spawn/liveness.d.ts.map +1 -0
- package/dist/spawn/liveness.js +41 -0
- package/dist/spawn/liveness.js.map +1 -0
- package/dist/spawn/model-routing.d.ts +2 -2
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +4 -4
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts +7 -7
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +9 -9
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +6 -6
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +6 -6
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/shared.d.ts +3 -3
- package/dist/spawn/shared.d.ts.map +1 -1
- package/dist/spawn/shared.js +1 -1
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -0
- package/dist/spawn/spawn-cooldown.js +53 -0
- package/dist/spawn/spawn-cooldown.js.map +1 -0
- package/dist/spawn/spawn-decision.d.ts +6 -6
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +8 -8
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/spawn-environment.d.ts +126 -0
- package/dist/spawn/spawn-environment.d.ts.map +1 -0
- package/dist/spawn/spawn-environment.js +177 -0
- package/dist/spawn/spawn-environment.js.map +1 -0
- package/dist/spawn/spawn-sandbox.d.ts +121 -0
- package/dist/spawn/spawn-sandbox.d.ts.map +1 -0
- package/dist/spawn/spawn-sandbox.js.map +1 -0
- package/dist/spawn/state.d.ts.map +1 -0
- package/dist/spawn/state.js.map +1 -0
- package/dist/spawn/task-converter.d.ts +61 -0
- package/dist/spawn/task-converter.d.ts.map +1 -0
- package/dist/spawn/task-converter.js.map +1 -0
- package/dist/spawn/worker-registry.d.ts.map +1 -0
- package/dist/spawn/worker-registry.js.map +1 -0
- package/dist/spawn/worktree-session.d.ts +5 -5
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +12 -12
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/types/focus.d.ts +79 -51
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/update/auto-update-idle.d.ts.map +1 -0
- package/dist/update/auto-update-idle.js.map +1 -0
- package/dist/update/auto-update.d.ts.map +1 -0
- package/dist/update/auto-update.js +317 -0
- package/dist/update/auto-update.js.map +1 -0
- package/dist/update/build-info.d.ts.map +1 -0
- package/dist/update/build-info.js.map +1 -0
- package/dist/update/capability-pointer.d.ts.map +1 -0
- package/dist/update/capability-pointer.js.map +1 -0
- package/dist/update/self-update.d.ts.map +1 -0
- package/dist/update/self-update.js +565 -0
- package/dist/update/self-update.js.map +1 -0
- package/dist/update/version-check.d.ts.map +1 -0
- package/dist/update/version-check.js +115 -0
- package/dist/update/version-check.js.map +1 -0
- package/dist/verify/ai-inspection-context.d.ts +63 -0
- package/dist/verify/ai-inspection-context.d.ts.map +1 -0
- package/dist/verify/ai-inspection-context.js +203 -0
- package/dist/verify/ai-inspection-context.js.map +1 -0
- package/dist/verify/ai-inspection-runner.d.ts.map +1 -0
- package/dist/verify/ai-inspection-runner.js +256 -0
- package/dist/verify/ai-inspection-runner.js.map +1 -0
- package/dist/verify/cascade-restatement.d.ts.map +1 -0
- package/dist/verify/cascade-restatement.js.map +1 -0
- package/dist/verify/de-restatement.d.ts.map +1 -0
- package/dist/verify/de-restatement.js +160 -0
- package/dist/verify/de-restatement.js.map +1 -0
- package/dist/verify/retire-aware-restatement.d.ts.map +1 -0
- package/dist/verify/retire-aware-restatement.js +231 -0
- package/dist/verify/retire-aware-restatement.js.map +1 -0
- package/dist/verify/stall-detector-config.d.ts.map +1 -0
- package/dist/verify/stall-detector-config.js.map +1 -0
- package/dist/verify/stall-detectors.d.ts +196 -0
- package/dist/verify/stall-detectors.d.ts.map +1 -0
- package/dist/verify/stall-detectors.js +348 -0
- package/dist/verify/stall-detectors.js.map +1 -0
- package/dist/verify/verification-baseline.d.ts +112 -0
- package/dist/verify/verification-baseline.d.ts.map +1 -0
- package/dist/verify/verification-baseline.js +267 -0
- package/dist/verify/verification-baseline.js.map +1 -0
- package/dist/verify/verification-config.d.ts +146 -0
- package/dist/verify/verification-config.d.ts.map +1 -0
- package/dist/verify/verification-config.js.map +1 -0
- package/dist/verify/verification-default-on.d.ts +160 -0
- package/dist/verify/verification-default-on.d.ts.map +1 -0
- package/dist/verify/verification-default-on.js +272 -0
- package/dist/verify/verification-default-on.js.map +1 -0
- package/dist/verify/verification-deps.d.ts +191 -0
- package/dist/verify/verification-deps.d.ts.map +1 -0
- package/dist/verify/verification-deps.js.map +1 -0
- package/dist/verify/verification-deterministic.d.ts +56 -0
- package/dist/verify/verification-deterministic.d.ts.map +1 -0
- package/dist/verify/verification-deterministic.js +153 -0
- package/dist/verify/verification-deterministic.js.map +1 -0
- package/dist/verify/verification-engine.d.ts +94 -0
- package/dist/verify/verification-engine.d.ts.map +1 -0
- package/dist/verify/verification-engine.js +717 -0
- package/dist/verify/verification-engine.js.map +1 -0
- package/dist/verify/verification-evidence.d.ts +106 -0
- package/dist/verify/verification-evidence.d.ts.map +1 -0
- package/dist/verify/verification-evidence.js +159 -0
- package/dist/verify/verification-evidence.js.map +1 -0
- package/dist/verify/verification-failure-parser.d.ts.map +1 -0
- package/dist/verify/verification-failure-parser.js.map +1 -0
- package/dist/verify/verification-feedback.d.ts +173 -0
- package/dist/verify/verification-feedback.d.ts.map +1 -0
- package/dist/verify/verification-feedback.js +442 -0
- package/dist/verify/verification-feedback.js.map +1 -0
- package/dist/verify/verification-manifest.d.ts.map +1 -0
- package/dist/verify/verification-manifest.js.map +1 -0
- package/dist/verify/verify-reconciliation.d.ts.map +1 -0
- package/dist/verify/verify-reconciliation.js.map +1 -0
- package/dist/verify/verify-restatement.d.ts.map +1 -0
- package/dist/verify/verify-restatement.js +167 -0
- package/dist/verify/verify-restatement.js.map +1 -0
- package/dist/workflow/pipeline-config.d.ts +72 -0
- package/dist/workflow/pipeline-config.d.ts.map +1 -0
- package/dist/workflow/pipeline-config.js.map +1 -0
- package/dist/workflow/stage-classifier.d.ts +32 -0
- package/dist/workflow/stage-classifier.d.ts.map +1 -0
- package/dist/workflow/stage-classifier.js.map +1 -0
- package/dist/workflow/workflow-engine.d.ts +95 -0
- package/dist/workflow/workflow-engine.d.ts.map +1 -0
- package/dist/workflow/workflow-engine.js.map +1 -0
- package/dist/worktree/focus.d.ts +15 -70
- package/dist/worktree/focus.d.ts.map +1 -1
- package/dist/worktree/focus.js +16 -180
- package/dist/worktree/focus.js.map +1 -1
- package/dist/worktree/identity.js +1 -1
- package/dist/worktree/identity.js.map +1 -1
- package/dist/worktree/index.d.ts +1 -1
- package/dist/worktree/index.js +1 -1
- package/dist/worktree/provision.d.ts +147 -0
- package/dist/worktree/provision.d.ts.map +1 -0
- package/dist/worktree/provision.js +467 -0
- package/dist/worktree/provision.js.map +1 -0
- package/dist/worktree/reap.js +1 -1
- package/dist/worktree/reap.js.map +1 -1
- package/dist/worktree/safety.js +1 -1
- package/dist/worktree/safety.js.map +1 -1
- package/dist/worktree/scratch-guard.js +1 -1
- package/dist/worktree/scratch-guard.js.map +1 -1
- package/dist/worktree/state.d.ts +1 -1
- package/dist/worktree/state.d.ts.map +1 -1
- package/dist/worktree/state.js +3 -3
- package/dist/worktree/state.js.map +1 -1
- package/dist/worktree/verify-interlock.js +1 -1
- package/dist/worktree/verify-interlock.js.map +1 -1
- package/package.json +4 -4
- package/dist/activity-tracker.d.ts.map +0 -1
- package/dist/activity-tracker.js +0 -19
- package/dist/activity-tracker.js.map +0 -1
- package/dist/agent-state.d.ts.map +0 -1
- package/dist/agent-state.js.map +0 -1
- package/dist/ai-inspection-context.d.ts +0 -63
- package/dist/ai-inspection-context.d.ts.map +0 -1
- package/dist/ai-inspection-context.js +0 -203
- package/dist/ai-inspection-context.js.map +0 -1
- package/dist/ai-inspection-runner.d.ts.map +0 -1
- package/dist/ai-inspection-runner.js +0 -256
- package/dist/ai-inspection-runner.js.map +0 -1
- package/dist/assembly-engine.d.ts +0 -114
- package/dist/assembly-engine.d.ts.map +0 -1
- package/dist/assembly-engine.js +0 -137
- package/dist/assembly-engine.js.map +0 -1
- package/dist/assembly-resolvers.d.ts +0 -28
- package/dist/assembly-resolvers.d.ts.map +0 -1
- package/dist/assembly-resolvers.js +0 -30
- package/dist/assembly-resolvers.js.map +0 -1
- package/dist/audit-hooks.d.ts +0 -122
- package/dist/audit-hooks.d.ts.map +0 -1
- package/dist/audit-hooks.js +0 -274
- package/dist/audit-hooks.js.map +0 -1
- package/dist/audit-phase.d.ts +0 -171
- package/dist/audit-phase.d.ts.map +0 -1
- package/dist/audit-phase.js +0 -491
- package/dist/audit-phase.js.map +0 -1
- package/dist/audit-prompt.d.ts.map +0 -1
- package/dist/audit-prompt.js.map +0 -1
- package/dist/audit-shape.d.ts.map +0 -1
- package/dist/audit-shape.js.map +0 -1
- package/dist/auth-liveness.d.ts.map +0 -1
- package/dist/auth-liveness.js.map +0 -1
- package/dist/auto-update-idle.d.ts.map +0 -1
- package/dist/auto-update-idle.js.map +0 -1
- package/dist/auto-update.d.ts.map +0 -1
- package/dist/auto-update.js +0 -317
- package/dist/auto-update.js.map +0 -1
- package/dist/branch-status.d.ts +0 -79
- package/dist/branch-status.d.ts.map +0 -1
- package/dist/branch-status.js +0 -292
- package/dist/branch-status.js.map +0 -1
- package/dist/build-info.d.ts.map +0 -1
- package/dist/build-info.js.map +0 -1
- package/dist/capability-pointer.d.ts.map +0 -1
- package/dist/capability-pointer.js.map +0 -1
- package/dist/cascade-restatement.d.ts.map +0 -1
- package/dist/cascade-restatement.js.map +0 -1
- package/dist/ci-escalation.d.ts.map +0 -1
- package/dist/ci-escalation.js +0 -66
- package/dist/ci-escalation.js.map +0 -1
- package/dist/ci-sensor-loop.d.ts +0 -112
- package/dist/ci-sensor-loop.d.ts.map +0 -1
- package/dist/ci-sensor-loop.js +0 -243
- package/dist/ci-sensor-loop.js.map +0 -1
- package/dist/ci-status-git.d.ts +0 -53
- package/dist/ci-status-git.d.ts.map +0 -1
- package/dist/ci-status-git.js +0 -89
- package/dist/ci-status-git.js.map +0 -1
- package/dist/ci-status.d.ts +0 -137
- package/dist/ci-status.d.ts.map +0 -1
- package/dist/ci-status.js.map +0 -1
- package/dist/circuit-wedge-watcher.d.ts +0 -48
- package/dist/circuit-wedge-watcher.d.ts.map +0 -1
- package/dist/circuit-wedge-watcher.js +0 -94
- package/dist/circuit-wedge-watcher.js.map +0 -1
- package/dist/close-loop-dispatcher.d.ts +0 -325
- package/dist/close-loop-dispatcher.d.ts.map +0 -1
- package/dist/close-loop-dispatcher.js +0 -362
- package/dist/close-loop-dispatcher.js.map +0 -1
- package/dist/condition-evaluators.d.ts +0 -70
- package/dist/condition-evaluators.d.ts.map +0 -1
- package/dist/condition-evaluators.js +0 -203
- package/dist/condition-evaluators.js.map +0 -1
- package/dist/config-hot-reload.d.ts +0 -91
- package/dist/config-hot-reload.d.ts.map +0 -1
- package/dist/config-hot-reload.js.map +0 -1
- package/dist/config-reconcile.d.ts +0 -114
- package/dist/config-reconcile.d.ts.map +0 -1
- package/dist/config-reconcile.js +0 -189
- package/dist/config-reconcile.js.map +0 -1
- package/dist/config.d.ts +0 -102
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -486
- package/dist/config.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/context-audit.d.ts +0 -68
- package/dist/context-audit.d.ts.map +0 -1
- package/dist/context-audit.js.map +0 -1
- package/dist/context-lock.d.ts +0 -129
- package/dist/context-lock.d.ts.map +0 -1
- package/dist/context-lock.js.map +0 -1
- package/dist/control-state.d.ts +0 -109
- package/dist/control-state.d.ts.map +0 -1
- package/dist/control-state.js +0 -337
- package/dist/control-state.js.map +0 -1
- package/dist/crash-recovery.d.ts +0 -141
- package/dist/crash-recovery.d.ts.map +0 -1
- package/dist/crash-recovery.js +0 -631
- package/dist/crash-recovery.js.map +0 -1
- package/dist/daemon-logs.d.ts.map +0 -1
- package/dist/daemon-logs.js.map +0 -1
- package/dist/daemon-process.d.ts.map +0 -1
- package/dist/daemon-process.js +0 -463
- package/dist/daemon-process.js.map +0 -1
- package/dist/daemon-readiness.d.ts.map +0 -1
- package/dist/daemon-readiness.js.map +0 -1
- package/dist/dag-validator.d.ts +0 -52
- package/dist/dag-validator.d.ts.map +0 -1
- package/dist/dag-validator.js.map +0 -1
- package/dist/de-restatement.d.ts.map +0 -1
- package/dist/de-restatement.js +0 -160
- package/dist/de-restatement.js.map +0 -1
- package/dist/delivery-advance-block.d.ts +0 -143
- package/dist/delivery-advance-block.d.ts.map +0 -1
- package/dist/delivery-advance-block.js +0 -360
- package/dist/delivery-advance-block.js.map +0 -1
- package/dist/delivery-artifacts.d.ts +0 -26
- package/dist/delivery-artifacts.d.ts.map +0 -1
- package/dist/delivery-artifacts.js +0 -56
- package/dist/delivery-artifacts.js.map +0 -1
- package/dist/delivery-close-actions.d.ts +0 -39
- package/dist/delivery-close-actions.d.ts.map +0 -1
- package/dist/delivery-close-actions.js +0 -53
- package/dist/delivery-close-actions.js.map +0 -1
- package/dist/delivery-lifecycle.d.ts +0 -144
- package/dist/delivery-lifecycle.d.ts.map +0 -1
- package/dist/delivery-lifecycle.js +0 -495
- package/dist/delivery-lifecycle.js.map +0 -1
- package/dist/delivery-merge.d.ts +0 -17
- package/dist/delivery-merge.d.ts.map +0 -1
- package/dist/delivery-merge.js +0 -95
- package/dist/delivery-merge.js.map +0 -1
- package/dist/delivery-reconciler-apply.d.ts.map +0 -1
- package/dist/delivery-reconciler-apply.js +0 -77
- package/dist/delivery-reconciler-apply.js.map +0 -1
- package/dist/delivery-reconciler-shadow.d.ts +0 -65
- package/dist/delivery-reconciler-shadow.d.ts.map +0 -1
- package/dist/delivery-reconciler-shadow.js +0 -126
- package/dist/delivery-reconciler-shadow.js.map +0 -1
- package/dist/delivery-reconciler.d.ts +0 -217
- package/dist/delivery-reconciler.d.ts.map +0 -1
- package/dist/delivery-reconciler.js +0 -249
- package/dist/delivery-reconciler.js.map +0 -1
- package/dist/dependency-resolver.d.ts +0 -77
- package/dist/dependency-resolver.d.ts.map +0 -1
- package/dist/dependency-resolver.js.map +0 -1
- package/dist/directive-executor.d.ts +0 -37
- package/dist/directive-executor.d.ts.map +0 -1
- package/dist/directive-executor.js +0 -241
- package/dist/directive-executor.js.map +0 -1
- package/dist/discovery-poll.d.ts +0 -23
- package/dist/discovery-poll.d.ts.map +0 -1
- package/dist/discovery-poll.js +0 -99
- package/dist/discovery-poll.js.map +0 -1
- package/dist/drain-teardown.d.ts.map +0 -1
- package/dist/drain-teardown.js.map +0 -1
- package/dist/drift-eval-loop.d.ts +0 -71
- package/dist/drift-eval-loop.d.ts.map +0 -1
- package/dist/drift-eval-loop.js +0 -259
- package/dist/drift-eval-loop.js.map +0 -1
- package/dist/drift-evaluator.d.ts.map +0 -1
- package/dist/drift-evaluator.js.map +0 -1
- package/dist/drift-ratify-policy.d.ts.map +0 -1
- package/dist/drift-ratify-policy.js.map +0 -1
- package/dist/escalation-provenance.d.ts +0 -64
- package/dist/escalation-provenance.d.ts.map +0 -1
- package/dist/escalation-provenance.js +0 -200
- package/dist/escalation-provenance.js.map +0 -1
- package/dist/escalations.d.ts +0 -85
- package/dist/escalations.d.ts.map +0 -1
- package/dist/escalations.js +0 -91
- package/dist/escalations.js.map +0 -1
- package/dist/evaluation-context.d.ts.map +0 -1
- package/dist/evaluation-context.js +0 -44
- package/dist/evaluation-context.js.map +0 -1
- package/dist/external-hold.d.ts +0 -146
- package/dist/external-hold.d.ts.map +0 -1
- package/dist/external-hold.js +0 -223
- package/dist/external-hold.js.map +0 -1
- package/dist/focus-branch-ahead.d.ts +0 -42
- package/dist/focus-branch-ahead.d.ts.map +0 -1
- package/dist/focus-branch-ahead.js +0 -45
- package/dist/focus-branch-ahead.js.map +0 -1
- package/dist/focus-branch-identity.d.ts +0 -62
- package/dist/focus-branch-identity.d.ts.map +0 -1
- package/dist/focus-branch-identity.js +0 -59
- package/dist/focus-branch-identity.js.map +0 -1
- package/dist/focus-engine.d.ts +0 -74
- package/dist/focus-engine.d.ts.map +0 -1
- package/dist/focus-engine.js +0 -528
- package/dist/focus-engine.js.map +0 -1
- package/dist/focus-executor.d.ts +0 -80
- package/dist/focus-executor.d.ts.map +0 -1
- package/dist/focus-executor.js +0 -420
- package/dist/focus-executor.js.map +0 -1
- package/dist/focus-lifecycle.d.ts +0 -60
- package/dist/focus-lifecycle.d.ts.map +0 -1
- package/dist/focus-lifecycle.js +0 -537
- package/dist/focus-lifecycle.js.map +0 -1
- package/dist/focus-loop-registry.d.ts +0 -52
- package/dist/focus-loop-registry.d.ts.map +0 -1
- package/dist/focus-loop-registry.js +0 -362
- package/dist/focus-loop-registry.js.map +0 -1
- package/dist/focus-loop.d.ts +0 -96
- package/dist/focus-loop.d.ts.map +0 -1
- package/dist/focus-loop.js +0 -364
- package/dist/focus-loop.js.map +0 -1
- package/dist/focus-merge.d.ts +0 -131
- package/dist/focus-merge.d.ts.map +0 -1
- package/dist/focus-merge.js +0 -556
- package/dist/focus-merge.js.map +0 -1
- package/dist/focus-phase.d.ts.map +0 -1
- package/dist/focus-phase.js.map +0 -1
- package/dist/focus-prompt-builder.d.ts +0 -35
- package/dist/focus-prompt-builder.d.ts.map +0 -1
- package/dist/focus-prompt-builder.js +0 -119
- package/dist/focus-prompt-builder.js.map +0 -1
- package/dist/focus-provisioning.d.ts +0 -16
- package/dist/focus-provisioning.d.ts.map +0 -1
- package/dist/focus-provisioning.js +0 -122
- package/dist/focus-provisioning.js.map +0 -1
- package/dist/focus-respawn-guard.d.ts +0 -27
- package/dist/focus-respawn-guard.d.ts.map +0 -1
- package/dist/focus-respawn-guard.js +0 -77
- package/dist/focus-respawn-guard.js.map +0 -1
- package/dist/focus-stage-lifecycle.d.ts +0 -63
- package/dist/focus-stage-lifecycle.d.ts.map +0 -1
- package/dist/focus-stage-lifecycle.js +0 -179
- package/dist/focus-stage-lifecycle.js.map +0 -1
- package/dist/focus-team-state.d.ts +0 -94
- package/dist/focus-team-state.d.ts.map +0 -1
- package/dist/focus-team-state.js +0 -182
- package/dist/focus-team-state.js.map +0 -1
- package/dist/focus-worktree-state.d.ts +0 -58
- package/dist/focus-worktree-state.d.ts.map +0 -1
- package/dist/focus-worktree-state.js +0 -115
- package/dist/focus-worktree-state.js.map +0 -1
- package/dist/git/merge-helpers.d.ts +0 -48
- package/dist/git/merge-helpers.d.ts.map +0 -1
- package/dist/git/merge-helpers.js +0 -107
- package/dist/git/merge-helpers.js.map +0 -1
- package/dist/git/merge-strategies.d.ts +0 -49
- package/dist/git/merge-strategies.d.ts.map +0 -1
- package/dist/git/merge-strategies.js +0 -137
- package/dist/git/merge-strategies.js.map +0 -1
- package/dist/git.d.ts +0 -24
- package/dist/git.d.ts.map +0 -1
- package/dist/git.js +0 -114
- package/dist/git.js.map +0 -1
- package/dist/gitignore-convergence.d.ts.map +0 -1
- package/dist/gitignore-convergence.js.map +0 -1
- package/dist/guard-engine.d.ts +0 -19
- package/dist/guard-engine.d.ts.map +0 -1
- package/dist/guard-engine.js +0 -20
- package/dist/guard-engine.js.map +0 -1
- package/dist/guard-evaluator.d.ts +0 -47
- package/dist/guard-evaluator.d.ts.map +0 -1
- package/dist/guard-evaluator.js +0 -195
- package/dist/guard-evaluator.js.map +0 -1
- package/dist/health-events.d.ts.map +0 -1
- package/dist/health-events.js.map +0 -1
- package/dist/heartbeat.d.ts +0 -165
- package/dist/heartbeat.d.ts.map +0 -1
- package/dist/heartbeat.js +0 -501
- package/dist/heartbeat.js.map +0 -1
- package/dist/install-probe-tick.d.ts +0 -63
- package/dist/install-probe-tick.d.ts.map +0 -1
- package/dist/install-probe-tick.js +0 -139
- package/dist/install-probe-tick.js.map +0 -1
- package/dist/install-probe.d.ts.map +0 -1
- package/dist/install-probe.js.map +0 -1
- package/dist/intake-control.d.ts.map +0 -1
- package/dist/intake-control.js.map +0 -1
- package/dist/listener-auto-advance.d.ts +0 -115
- package/dist/listener-auto-advance.d.ts.map +0 -1
- package/dist/listener-auto-advance.js +0 -621
- package/dist/listener-auto-advance.js.map +0 -1
- package/dist/listener.d.ts +0 -101
- package/dist/listener.d.ts.map +0 -1
- package/dist/listener.js +0 -770
- package/dist/listener.js.map +0 -1
- package/dist/log-manager.d.ts +0 -18
- package/dist/log-manager.d.ts.map +0 -1
- package/dist/log-manager.js.map +0 -1
- package/dist/log.d.ts.map +0 -1
- package/dist/log.js.map +0 -1
- package/dist/mcp-resolution.d.ts.map +0 -1
- package/dist/mcp-resolution.js.map +0 -1
- package/dist/merge-back-loop.d.ts +0 -109
- package/dist/merge-back-loop.d.ts.map +0 -1
- package/dist/merge-back-loop.js +0 -498
- package/dist/merge-back-loop.js.map +0 -1
- package/dist/merge-detector.d.ts +0 -55
- package/dist/merge-detector.d.ts.map +0 -1
- package/dist/merge-detector.js +0 -222
- package/dist/merge-detector.js.map +0 -1
- package/dist/merge-failure-classify.d.ts +0 -39
- package/dist/merge-failure-classify.d.ts.map +0 -1
- package/dist/merge-failure-classify.js +0 -58
- package/dist/merge-failure-classify.js.map +0 -1
- package/dist/model-resolution.d.ts.map +0 -1
- package/dist/model-resolution.js.map +0 -1
- package/dist/non-interactive-init.d.ts +0 -40
- package/dist/non-interactive-init.d.ts.map +0 -1
- package/dist/non-interactive-init.js.map +0 -1
- package/dist/onboarding-directive.d.ts.map +0 -1
- package/dist/onboarding-directive.js.map +0 -1
- package/dist/operator-hold.d.ts +0 -66
- package/dist/operator-hold.d.ts.map +0 -1
- package/dist/operator-hold.js +0 -99
- package/dist/operator-hold.js.map +0 -1
- package/dist/otlp/port-manager.d.ts +0 -26
- package/dist/otlp/port-manager.d.ts.map +0 -1
- package/dist/otlp/port-manager.js +0 -132
- package/dist/otlp/port-manager.js.map +0 -1
- package/dist/output-monitor.d.ts +0 -38
- package/dist/output-monitor.d.ts.map +0 -1
- package/dist/output-monitor.js +0 -92
- package/dist/output-monitor.js.map +0 -1
- package/dist/pipeline-config.d.ts +0 -72
- package/dist/pipeline-config.d.ts.map +0 -1
- package/dist/pipeline-config.js.map +0 -1
- package/dist/planning-prompt-builder.d.ts +0 -69
- package/dist/planning-prompt-builder.d.ts.map +0 -1
- package/dist/planning-prompt-builder.js +0 -517
- package/dist/planning-prompt-builder.js.map +0 -1
- package/dist/product-scaffold.d.ts +0 -56
- package/dist/product-scaffold.d.ts.map +0 -1
- package/dist/product-scaffold.js +0 -136
- package/dist/product-scaffold.js.map +0 -1
- package/dist/prompt-contradictions.d.ts.map +0 -1
- package/dist/prompt-contradictions.js.map +0 -1
- package/dist/prompt-listing.d.ts +0 -70
- package/dist/prompt-listing.d.ts.map +0 -1
- package/dist/prompt-listing.js.map +0 -1
- package/dist/realign-apply.d.ts +0 -65
- package/dist/realign-apply.d.ts.map +0 -1
- package/dist/realign-apply.js +0 -302
- package/dist/realign-apply.js.map +0 -1
- package/dist/reality-pole-capture.d.ts.map +0 -1
- package/dist/reality-pole-capture.js +0 -114
- package/dist/reality-pole-capture.js.map +0 -1
- package/dist/reality-pole.d.ts +0 -64
- package/dist/reality-pole.d.ts.map +0 -1
- package/dist/reality-pole.js +0 -101
- package/dist/reality-pole.js.map +0 -1
- package/dist/reality-writeback.d.ts.map +0 -1
- package/dist/reality-writeback.js.map +0 -1
- package/dist/resolver-dispatch.d.ts.map +0 -1
- package/dist/resolver-dispatch.js.map +0 -1
- package/dist/resolver-reach.d.ts +0 -192
- package/dist/resolver-reach.d.ts.map +0 -1
- package/dist/resolver-reach.js +0 -168
- package/dist/resolver-reach.js.map +0 -1
- package/dist/retention-observation.d.ts.map +0 -1
- package/dist/retention-observation.js.map +0 -1
- package/dist/retire-aware-restatement.d.ts.map +0 -1
- package/dist/retire-aware-restatement.js +0 -231
- package/dist/retire-aware-restatement.js.map +0 -1
- package/dist/review-defect-detector.d.ts +0 -82
- package/dist/review-defect-detector.d.ts.map +0 -1
- package/dist/review-defect-detector.js +0 -148
- package/dist/review-defect-detector.js.map +0 -1
- package/dist/review-spawn-coverage-guard.d.ts.map +0 -1
- package/dist/review-spawn-coverage-guard.js.map +0 -1
- package/dist/schema-version-gate.d.ts.map +0 -1
- package/dist/schema-version-gate.js +0 -220
- package/dist/schema-version-gate.js.map +0 -1
- package/dist/security-auto-inject.d.ts.map +0 -1
- package/dist/security-auto-inject.js +0 -168
- package/dist/security-auto-inject.js.map +0 -1
- package/dist/security-finding-gate.d.ts.map +0 -1
- package/dist/security-finding-gate.js +0 -84
- package/dist/security-finding-gate.js.map +0 -1
- package/dist/security-rescan-resolution.d.ts.map +0 -1
- package/dist/security-rescan-resolution.js +0 -117
- package/dist/security-rescan-resolution.js.map +0 -1
- package/dist/security-scan-engine.d.ts +0 -145
- package/dist/security-scan-engine.d.ts.map +0 -1
- package/dist/security-scan-engine.js +0 -271
- package/dist/security-scan-engine.js.map +0 -1
- package/dist/self-update.d.ts.map +0 -1
- package/dist/self-update.js +0 -565
- package/dist/self-update.js.map +0 -1
- package/dist/sensor-sweep.d.ts +0 -194
- package/dist/sensor-sweep.d.ts.map +0 -1
- package/dist/sensor-sweep.js +0 -458
- package/dist/sensor-sweep.js.map +0 -1
- package/dist/session-lineage.d.ts.map +0 -1
- package/dist/session-lineage.js.map +0 -1
- package/dist/session-stamp.d.ts +0 -63
- package/dist/session-stamp.d.ts.map +0 -1
- package/dist/session-stamp.js +0 -67
- package/dist/session-stamp.js.map +0 -1
- package/dist/shutdown-state.d.ts.map +0 -1
- package/dist/shutdown-state.js.map +0 -1
- package/dist/spawn-cooldown.d.ts.map +0 -1
- package/dist/spawn-cooldown.js +0 -53
- package/dist/spawn-cooldown.js.map +0 -1
- package/dist/spawn-environment.d.ts +0 -126
- package/dist/spawn-environment.d.ts.map +0 -1
- package/dist/spawn-environment.js +0 -177
- package/dist/spawn-environment.js.map +0 -1
- package/dist/spawn-sandbox.d.ts +0 -121
- package/dist/spawn-sandbox.d.ts.map +0 -1
- package/dist/spawn-sandbox.js.map +0 -1
- package/dist/spawner/guards.d.ts.map +0 -1
- package/dist/spawner/guards.js +0 -46
- package/dist/spawner/guards.js.map +0 -1
- package/dist/spawner/helpers.d.ts +0 -69
- package/dist/spawner/helpers.d.ts.map +0 -1
- package/dist/spawner/helpers.js +0 -215
- package/dist/spawner/helpers.js.map +0 -1
- package/dist/spawner/index.d.ts +0 -31
- package/dist/spawner/index.d.ts.map +0 -1
- package/dist/spawner/index.js +0 -39
- package/dist/spawner/index.js.map +0 -1
- package/dist/spawner/lifecycle.d.ts +0 -148
- package/dist/spawner/lifecycle.d.ts.map +0 -1
- package/dist/spawner/lifecycle.js +0 -413
- package/dist/spawner/lifecycle.js.map +0 -1
- package/dist/spawner/liveness.d.ts.map +0 -1
- package/dist/spawner/liveness.js +0 -41
- package/dist/spawner/liveness.js.map +0 -1
- package/dist/spawner/resolution.d.ts +0 -27
- package/dist/spawner/resolution.d.ts.map +0 -1
- package/dist/spawner/resolution.js +0 -101
- package/dist/spawner/resolution.js.map +0 -1
- package/dist/spawner/state.d.ts.map +0 -1
- package/dist/spawner/state.js.map +0 -1
- package/dist/spawner/stream-handlers.d.ts +0 -19
- package/dist/spawner/stream-handlers.d.ts.map +0 -1
- package/dist/spawner/stream-handlers.js +0 -34
- package/dist/spawner/stream-handlers.js.map +0 -1
- package/dist/spawner/worker-registry.d.ts.map +0 -1
- package/dist/spawner/worker-registry.js.map +0 -1
- package/dist/stage-classifier.d.ts +0 -32
- package/dist/stage-classifier.d.ts.map +0 -1
- package/dist/stage-classifier.js.map +0 -1
- package/dist/staleness-sensor.d.ts +0 -176
- package/dist/staleness-sensor.d.ts.map +0 -1
- package/dist/staleness-sensor.js +0 -335
- package/dist/staleness-sensor.js.map +0 -1
- package/dist/staleness.d.ts +0 -134
- package/dist/staleness.d.ts.map +0 -1
- package/dist/staleness.js +0 -249
- package/dist/staleness.js.map +0 -1
- package/dist/stall-detector-config.d.ts.map +0 -1
- package/dist/stall-detector-config.js.map +0 -1
- package/dist/stall-detectors.d.ts +0 -196
- package/dist/stall-detectors.d.ts.map +0 -1
- package/dist/stall-detectors.js +0 -348
- package/dist/stall-detectors.js.map +0 -1
- package/dist/state-cascade.d.ts +0 -90
- package/dist/state-cascade.d.ts.map +0 -1
- package/dist/state-cascade.js +0 -230
- package/dist/state-cascade.js.map +0 -1
- package/dist/stop-request.d.ts.map +0 -1
- package/dist/stop-request.js.map +0 -1
- package/dist/supabase.d.ts +0 -38
- package/dist/supabase.d.ts.map +0 -1
- package/dist/supabase.js +0 -52
- package/dist/supabase.js.map +0 -1
- package/dist/task-converter.d.ts +0 -61
- package/dist/task-converter.d.ts.map +0 -1
- package/dist/task-converter.js.map +0 -1
- package/dist/task-dag-builder.d.ts +0 -14
- package/dist/task-dag-builder.d.ts.map +0 -1
- package/dist/task-dag-builder.js +0 -17
- package/dist/task-dag-builder.js.map +0 -1
- package/dist/team-prompt-base.d.ts +0 -43
- package/dist/team-prompt-base.d.ts.map +0 -1
- package/dist/team-prompt-base.js +0 -123
- package/dist/team-prompt-base.js.map +0 -1
- package/dist/telemetry-writer.d.ts +0 -89
- package/dist/telemetry-writer.d.ts.map +0 -1
- package/dist/telemetry-writer.js +0 -212
- package/dist/telemetry-writer.js.map +0 -1
- package/dist/trigger-executor.d.ts +0 -85
- package/dist/trigger-executor.d.ts.map +0 -1
- package/dist/trigger-executor.js +0 -437
- package/dist/trigger-executor.js.map +0 -1
- package/dist/types.d.ts +0 -9
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -9
- package/dist/types.js.map +0 -1
- package/dist/unified-engine-lifecycle.d.ts +0 -186
- package/dist/unified-engine-lifecycle.d.ts.map +0 -1
- package/dist/unified-engine-lifecycle.js +0 -594
- package/dist/unified-engine-lifecycle.js.map +0 -1
- package/dist/unified-init.d.ts +0 -86
- package/dist/unified-init.d.ts.map +0 -1
- package/dist/unified-init.js +0 -313
- package/dist/unified-init.js.map +0 -1
- package/dist/unified-shell-config.d.ts +0 -103
- package/dist/unified-shell-config.d.ts.map +0 -1
- package/dist/unified-shell-config.js.map +0 -1
- package/dist/unified-shell-provisioning.d.ts.map +0 -1
- package/dist/unified-shell-provisioning.js +0 -277
- package/dist/unified-shell-provisioning.js.map +0 -1
- package/dist/unified-shell-status.d.ts.map +0 -1
- package/dist/unified-shell-status.js +0 -143
- package/dist/unified-shell-status.js.map +0 -1
- package/dist/unified-shell.d.ts.map +0 -1
- package/dist/unified-shell.js +0 -583
- package/dist/unified-shell.js.map +0 -1
- package/dist/verification-baseline.d.ts +0 -112
- package/dist/verification-baseline.d.ts.map +0 -1
- package/dist/verification-baseline.js +0 -267
- package/dist/verification-baseline.js.map +0 -1
- package/dist/verification-config.d.ts +0 -146
- package/dist/verification-config.d.ts.map +0 -1
- package/dist/verification-config.js.map +0 -1
- package/dist/verification-default-on.d.ts +0 -159
- package/dist/verification-default-on.d.ts.map +0 -1
- package/dist/verification-default-on.js +0 -272
- package/dist/verification-default-on.js.map +0 -1
- package/dist/verification-deps.d.ts +0 -190
- package/dist/verification-deps.d.ts.map +0 -1
- package/dist/verification-deps.js.map +0 -1
- package/dist/verification-deterministic.d.ts +0 -56
- package/dist/verification-deterministic.d.ts.map +0 -1
- package/dist/verification-deterministic.js +0 -153
- package/dist/verification-deterministic.js.map +0 -1
- package/dist/verification-engine.d.ts +0 -94
- package/dist/verification-engine.d.ts.map +0 -1
- package/dist/verification-engine.js +0 -716
- package/dist/verification-engine.js.map +0 -1
- package/dist/verification-evidence.d.ts +0 -106
- package/dist/verification-evidence.d.ts.map +0 -1
- package/dist/verification-evidence.js +0 -159
- package/dist/verification-evidence.js.map +0 -1
- package/dist/verification-failure-parser.d.ts.map +0 -1
- package/dist/verification-failure-parser.js.map +0 -1
- package/dist/verification-feedback.d.ts +0 -173
- package/dist/verification-feedback.d.ts.map +0 -1
- package/dist/verification-feedback.js +0 -442
- package/dist/verification-feedback.js.map +0 -1
- package/dist/verification-manifest.d.ts.map +0 -1
- package/dist/verification-manifest.js.map +0 -1
- package/dist/verify-reconciliation.d.ts.map +0 -1
- package/dist/verify-reconciliation.js.map +0 -1
- package/dist/verify-restatement.d.ts.map +0 -1
- package/dist/verify-restatement.js +0 -167
- package/dist/verify-restatement.js.map +0 -1
- package/dist/version-check.d.ts.map +0 -1
- package/dist/version-check.js +0 -115
- package/dist/version-check.js.map +0 -1
- package/dist/worker-pidfile.d.ts.map +0 -1
- package/dist/worker-pidfile.js.map +0 -1
- package/dist/workflow-engine.d.ts +0 -95
- package/dist/workflow-engine.d.ts.map +0 -1
- package/dist/workflow-engine.js.map +0 -1
- package/dist/worktree.d.ts +0 -147
- package/dist/worktree.d.ts.map +0 -1
- package/dist/worktree.js +0 -467
- package/dist/worktree.js.map +0 -1
- /package/dist/{audit-prompt.d.ts → audit/audit-prompt.d.ts} +0 -0
- /package/dist/{audit-prompt.js → audit/audit-prompt.js} +0 -0
- /package/dist/{audit-shape.d.ts → audit/audit-shape.d.ts} +0 -0
- /package/dist/{audit-shape.js → audit/audit-shape.js} +0 -0
- /package/dist/{ci-escalation.d.ts → ci/ci-escalation.d.ts} +0 -0
- /package/dist/{ci-status.js → ci/ci-status.js} +0 -0
- /package/dist/{review-spawn-coverage-guard.d.ts → completion/review-spawn-coverage-guard.d.ts} +0 -0
- /package/dist/{review-spawn-coverage-guard.js → completion/review-spawn-coverage-guard.js} +0 -0
- /package/dist/{context-audit.js → context/context-audit.js} +0 -0
- /package/dist/{context-lock.js → context/context-lock.js} +0 -0
- /package/dist/{delivery-reconciler-apply.d.ts → delivery/delivery-reconciler-apply.d.ts} +0 -0
- /package/dist/{resolver-dispatch.d.ts → directive/resolver-dispatch.d.ts} +0 -0
- /package/dist/{resolver-dispatch.js → directive/resolver-dispatch.js} +0 -0
- /package/dist/{drift-evaluator.d.ts → drift/drift-evaluator.d.ts} +0 -0
- /package/dist/{drift-evaluator.js → drift/drift-evaluator.js} +0 -0
- /package/dist/{drift-ratify-policy.d.ts → drift/drift-ratify-policy.d.ts} +0 -0
- /package/dist/{drift-ratify-policy.js → drift/drift-ratify-policy.js} +0 -0
- /package/dist/{retention-observation.d.ts → drift/retention-observation.d.ts} +0 -0
- /package/dist/{retention-observation.js → drift/retention-observation.js} +0 -0
- /package/dist/{focus-phase.d.ts → focus/focus-phase.d.ts} +0 -0
- /package/dist/{focus-phase.js → focus/focus-phase.js} +0 -0
- /package/dist/{evaluation-context.d.ts → guard/evaluation-context.d.ts} +0 -0
- /package/dist/{onboarding-directive.d.ts → prompt/onboarding-directive.d.ts} +0 -0
- /package/dist/{onboarding-directive.js → prompt/onboarding-directive.js} +0 -0
- /package/dist/{prompt-contradictions.d.ts → prompt/prompt-contradictions.d.ts} +0 -0
- /package/dist/{prompt-contradictions.js → prompt/prompt-contradictions.js} +0 -0
- /package/dist/{prompt-listing.js → prompt/prompt-listing.js} +0 -0
- /package/dist/{reality-pole-capture.d.ts → reality/reality-pole-capture.d.ts} +0 -0
- /package/dist/{reality-writeback.d.ts → reality/reality-writeback.d.ts} +0 -0
- /package/dist/{reality-writeback.js → reality/reality-writeback.js} +0 -0
- /package/dist/{security-auto-inject.d.ts → security/security-auto-inject.d.ts} +0 -0
- /package/dist/{security-finding-gate.d.ts → security/security-finding-gate.d.ts} +0 -0
- /package/dist/{security-rescan-resolution.d.ts → security/security-rescan-resolution.d.ts} +0 -0
- /package/dist/{session-lineage.d.ts → session/session-lineage.d.ts} +0 -0
- /package/dist/{session-lineage.js → session/session-lineage.js} +0 -0
- /package/dist/{activity-tracker.d.ts → shell/activity-tracker.d.ts} +0 -0
- /package/dist/{agent-state.d.ts → shell/agent-state.d.ts} +0 -0
- /package/dist/{agent-state.js → shell/agent-state.js} +0 -0
- /package/dist/{auth-liveness.d.ts → shell/auth-liveness.d.ts} +0 -0
- /package/dist/{auth-liveness.js → shell/auth-liveness.js} +0 -0
- /package/dist/{config-hot-reload.js → shell/config-hot-reload.js} +0 -0
- /package/dist/{constants.d.ts → shell/constants.d.ts} +0 -0
- /package/dist/{constants.js → shell/constants.js} +0 -0
- /package/dist/{daemon-logs.d.ts → shell/daemon-logs.d.ts} +0 -0
- /package/dist/{daemon-logs.js → shell/daemon-logs.js} +0 -0
- /package/dist/{daemon-process.d.ts → shell/daemon-process.d.ts} +0 -0
- /package/dist/{daemon-readiness.d.ts → shell/daemon-readiness.d.ts} +0 -0
- /package/dist/{daemon-readiness.js → shell/daemon-readiness.js} +0 -0
- /package/dist/{drain-teardown.d.ts → shell/drain-teardown.d.ts} +0 -0
- /package/dist/{drain-teardown.js → shell/drain-teardown.js} +0 -0
- /package/dist/{gitignore-convergence.d.ts → shell/gitignore-convergence.d.ts} +0 -0
- /package/dist/{gitignore-convergence.js → shell/gitignore-convergence.js} +0 -0
- /package/dist/{health-events.d.ts → shell/health-events.d.ts} +0 -0
- /package/dist/{health-events.js → shell/health-events.js} +0 -0
- /package/dist/{install-probe.d.ts → shell/install-probe.d.ts} +0 -0
- /package/dist/{install-probe.js → shell/install-probe.js} +0 -0
- /package/dist/{intake-control.d.ts → shell/intake-control.d.ts} +0 -0
- /package/dist/{intake-control.js → shell/intake-control.js} +0 -0
- /package/dist/{log-manager.js → shell/log-manager.js} +0 -0
- /package/dist/{log.d.ts → shell/log.d.ts} +0 -0
- /package/dist/{log.js → shell/log.js} +0 -0
- /package/dist/{mcp-resolution.d.ts → shell/mcp-resolution.d.ts} +0 -0
- /package/dist/{mcp-resolution.js → shell/mcp-resolution.js} +0 -0
- /package/dist/{model-resolution.d.ts → shell/model-resolution.d.ts} +0 -0
- /package/dist/{model-resolution.js → shell/model-resolution.js} +0 -0
- /package/dist/{non-interactive-init.js → shell/non-interactive-init.js} +0 -0
- /package/dist/{schema-version-gate.d.ts → shell/schema-version-gate.d.ts} +0 -0
- /package/dist/{shutdown-state.d.ts → shell/shutdown-state.d.ts} +0 -0
- /package/dist/{shutdown-state.js → shell/shutdown-state.js} +0 -0
- /package/dist/{stop-request.d.ts → shell/stop-request.d.ts} +0 -0
- /package/dist/{stop-request.js → shell/stop-request.js} +0 -0
- /package/dist/{unified-shell-config.js → shell/unified-shell-config.js} +0 -0
- /package/dist/{unified-shell-provisioning.d.ts → shell/unified-shell-provisioning.d.ts} +0 -0
- /package/dist/{unified-shell-status.d.ts → shell/unified-shell-status.d.ts} +0 -0
- /package/dist/{unified-shell.d.ts → shell/unified-shell.d.ts} +0 -0
- /package/dist/{worker-pidfile.d.ts → shell/worker-pidfile.d.ts} +0 -0
- /package/dist/{worker-pidfile.js → shell/worker-pidfile.js} +0 -0
- /package/dist/{dag-validator.js → spawn/dag-validator.js} +0 -0
- /package/dist/{dependency-resolver.js → spawn/dependency-resolver.js} +0 -0
- /package/dist/{spawner → spawn}/guards.d.ts +0 -0
- /package/dist/{spawner → spawn}/liveness.d.ts +0 -0
- /package/dist/{spawn-cooldown.d.ts → spawn/spawn-cooldown.d.ts} +0 -0
- /package/dist/{spawn-sandbox.js → spawn/spawn-sandbox.js} +0 -0
- /package/dist/{spawner → spawn}/state.d.ts +0 -0
- /package/dist/{spawner → spawn}/state.js +0 -0
- /package/dist/{task-converter.js → spawn/task-converter.js} +0 -0
- /package/dist/{spawner → spawn}/worker-registry.d.ts +0 -0
- /package/dist/{spawner → spawn}/worker-registry.js +0 -0
- /package/dist/{auto-update-idle.d.ts → update/auto-update-idle.d.ts} +0 -0
- /package/dist/{auto-update-idle.js → update/auto-update-idle.js} +0 -0
- /package/dist/{auto-update.d.ts → update/auto-update.d.ts} +0 -0
- /package/dist/{build-info.d.ts → update/build-info.d.ts} +0 -0
- /package/dist/{build-info.js → update/build-info.js} +0 -0
- /package/dist/{capability-pointer.d.ts → update/capability-pointer.d.ts} +0 -0
- /package/dist/{capability-pointer.js → update/capability-pointer.js} +0 -0
- /package/dist/{self-update.d.ts → update/self-update.d.ts} +0 -0
- /package/dist/{version-check.d.ts → update/version-check.d.ts} +0 -0
- /package/dist/{ai-inspection-runner.d.ts → verify/ai-inspection-runner.d.ts} +0 -0
- /package/dist/{cascade-restatement.d.ts → verify/cascade-restatement.d.ts} +0 -0
- /package/dist/{cascade-restatement.js → verify/cascade-restatement.js} +0 -0
- /package/dist/{de-restatement.d.ts → verify/de-restatement.d.ts} +0 -0
- /package/dist/{retire-aware-restatement.d.ts → verify/retire-aware-restatement.d.ts} +0 -0
- /package/dist/{stall-detector-config.d.ts → verify/stall-detector-config.d.ts} +0 -0
- /package/dist/{stall-detector-config.js → verify/stall-detector-config.js} +0 -0
- /package/dist/{verification-config.js → verify/verification-config.js} +0 -0
- /package/dist/{verification-deps.js → verify/verification-deps.js} +0 -0
- /package/dist/{verification-failure-parser.d.ts → verify/verification-failure-parser.d.ts} +0 -0
- /package/dist/{verification-failure-parser.js → verify/verification-failure-parser.js} +0 -0
- /package/dist/{verification-manifest.d.ts → verify/verification-manifest.d.ts} +0 -0
- /package/dist/{verification-manifest.js → verify/verification-manifest.js} +0 -0
- /package/dist/{verify-reconciliation.d.ts → verify/verify-reconciliation.d.ts} +0 -0
- /package/dist/{verify-reconciliation.js → verify/verify-reconciliation.js} +0 -0
- /package/dist/{verify-restatement.d.ts → verify/verify-restatement.d.ts} +0 -0
- /package/dist/{pipeline-config.js → workflow/pipeline-config.js} +0 -0
- /package/dist/{stage-classifier.js → workflow/stage-classifier.js} +0 -0
- /package/dist/{workflow-engine.js → workflow/workflow-engine.js} +0 -0
|
@@ -0,0 +1,657 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Continuous merge-back loop tick.
|
|
3
|
+
*
|
|
4
|
+
* Observes focus-branch state and merges to integration when safe.
|
|
5
|
+
* Adds a state-driven recovery path on top of the existing event-driven
|
|
6
|
+
* merge-back in focus-completion.handleTeamCompletion: any branch that
|
|
7
|
+
* ends up ahead of integration -- whether because the team-exit event
|
|
8
|
+
* was missed, the agent role was cleared mid-flight, the daemon
|
|
9
|
+
* restarted, or any other reason -- eventually gets merged here.
|
|
10
|
+
*
|
|
11
|
+
* Per product, per focus-branch ahead of integration:
|
|
12
|
+
* - Skip if isWorktreeBeingWritten reports active.
|
|
13
|
+
* - Skip if the worktree has uncommitted changes (covered by primitive,
|
|
14
|
+
* but checked explicitly so the skip reason is logged at debug).
|
|
15
|
+
* - Skip if a pending merge-conflict escalation exists for this branch.
|
|
16
|
+
* - Otherwise: call mergeFocusBranch with a minimal synthetic teamState
|
|
17
|
+
* and let the existing escalateMergeConflict path fire on failure.
|
|
18
|
+
*
|
|
19
|
+
* Stuck-branch escalation (Delivery 4) extends this tick with per-branch
|
|
20
|
+
* attempt tracking and creates 'stuck_focus_branch' escalations when a
|
|
21
|
+
* branch sits ahead of integration past a configurable threshold.
|
|
22
|
+
*
|
|
23
|
+
* @module merge-back-loop
|
|
24
|
+
*/
|
|
25
|
+
import { branchHasUnmergedCommits, worktreeHasUncommittedChanges } from '../worktree/index.js';
|
|
26
|
+
import { runGitSync } from '../git/index.js';
|
|
27
|
+
import { configForProduct } from '../shell/config.js';
|
|
28
|
+
import { mergeFocusBranch as defaultMergeFocusBranch } from './focus-merge.js';
|
|
29
|
+
import { getActiveFocuses } from '../queries/deliveries.js';
|
|
30
|
+
import { getFocusDeliveries as defaultGetFocusDeliveries } from '../queries/focuses.js';
|
|
31
|
+
import { listPendingEscalations as defaultListPendingEscalations, markEscalationResolved as defaultMarkEscalationResolved } from '../queries/issues.js';
|
|
32
|
+
import { fileEscalationIdempotent as defaultFileEscalationIdempotent, } from '../queries/escalation-suppression.js';
|
|
33
|
+
import { focusBlockageCauseKey } from '../queries/cause-key.js';
|
|
34
|
+
import { classifyMergeFailure } from './merge-failure-classify.js';
|
|
35
|
+
import { getAllFocusWorktrees } from '../focus/focus-worktree-state.js';
|
|
36
|
+
import { isWorktreeBeingWritten as defaultIsWorktreeBeingWritten } from '../worktree/index.js';
|
|
37
|
+
import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS, loadEnvConfig } from '@telora/daemon-core';
|
|
38
|
+
import { createLogger } from '../shell/log.js';
|
|
39
|
+
const log = createLogger({ module: 'merge-back-loop' });
|
|
40
|
+
// ── Stuck-branch escalation kind (Delivery 4) ─────────────────────────
|
|
41
|
+
export const STUCK_FOCUS_BRANCH_KIND = 'stuck_focus_branch';
|
|
42
|
+
const EMPTY_ATTEMPT_STATE = {
|
|
43
|
+
lastSuccessAt: null,
|
|
44
|
+
lastFailureAt: null,
|
|
45
|
+
lastFailureReason: null,
|
|
46
|
+
lastFailureClass: null,
|
|
47
|
+
firstRepeatAt: null,
|
|
48
|
+
repeatCount: 0,
|
|
49
|
+
throttledUntil: null,
|
|
50
|
+
};
|
|
51
|
+
const branchAttempts = new Map();
|
|
52
|
+
/** Reset attempt tracking — tests use this to start from a clean slate. */
|
|
53
|
+
export function __resetMergeBackAttemptsForTesting() {
|
|
54
|
+
branchAttempts.clear();
|
|
55
|
+
}
|
|
56
|
+
/** Read the attempt state for a branch (for tests / introspection). */
|
|
57
|
+
export function getBranchAttemptState(branchName) {
|
|
58
|
+
return branchAttempts.get(branchName);
|
|
59
|
+
}
|
|
60
|
+
function recordSuccess(branchName, now) {
|
|
61
|
+
// A success clears the whole failure history including any throttle -- the
|
|
62
|
+
// branch merged, so the deterministic-failure run is over.
|
|
63
|
+
branchAttempts.set(branchName, { ...EMPTY_ATTEMPT_STATE, lastSuccessAt: now });
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Record a merge failure and classify it. Tracks an IDENTICAL repeat (same
|
|
67
|
+
* classified condition as the previous failure) so a deterministic, unclearable
|
|
68
|
+
* failure can be signalled + throttled within minutes rather than waiting out the
|
|
69
|
+
* 24h stuck-branch threshold or re-running every tick. Returns the updated state
|
|
70
|
+
* and its classification so the caller can act on it.
|
|
71
|
+
*/
|
|
72
|
+
function recordFailure(branchName, now, reason) {
|
|
73
|
+
const existing = branchAttempts.get(branchName) ?? EMPTY_ATTEMPT_STATE;
|
|
74
|
+
const classification = classifyMergeFailure(reason);
|
|
75
|
+
const sameAsPrev = existing.lastFailureClass === classification.class;
|
|
76
|
+
const state = {
|
|
77
|
+
...existing,
|
|
78
|
+
lastFailureAt: now,
|
|
79
|
+
lastFailureReason: reason,
|
|
80
|
+
lastFailureClass: classification.class,
|
|
81
|
+
firstRepeatAt: sameAsPrev ? existing.firstRepeatAt ?? existing.lastFailureAt ?? now : now,
|
|
82
|
+
repeatCount: sameAsPrev ? existing.repeatCount + 1 : 1,
|
|
83
|
+
throttledUntil: existing.throttledUntil,
|
|
84
|
+
};
|
|
85
|
+
branchAttempts.set(branchName, state);
|
|
86
|
+
return { state, failureClass: classification.class, isDeterministic: classification.isDeterministic };
|
|
87
|
+
}
|
|
88
|
+
/** Mark a branch throttled until `until` (a deterministic-failure backoff). */
|
|
89
|
+
function setThrottle(branchName, until) {
|
|
90
|
+
const existing = branchAttempts.get(branchName) ?? EMPTY_ATTEMPT_STATE;
|
|
91
|
+
branchAttempts.set(branchName, { ...existing, throttledUntil: until });
|
|
92
|
+
}
|
|
93
|
+
/** Default minutes a deterministic merge failure may repeat before signal/throttle.
|
|
94
|
+
* MIRRORS the canonical default declared in @telora/daemon-core env-config as
|
|
95
|
+
* TELORA_MERGE_DETERMINISTIC_SIGNAL_MINUTES. */
|
|
96
|
+
const DETERMINISTIC_SIGNAL_MINUTES_DEFAULT = 5;
|
|
97
|
+
function readDeterministicSignalMs(env) {
|
|
98
|
+
// The canonical, zod-validated declaration lives in @telora/daemon-core
|
|
99
|
+
// env-config (TELORA_MERGE_DETERMINISTIC_SIGNAL_MINUTES, default 5). daemon-core
|
|
100
|
+
// is registry-installed, so a build predating that field returns undefined for
|
|
101
|
+
// it; read defensively and fall back to the mirrored default. Once daemon-core
|
|
102
|
+
// republishes with the field, loadEnvConfig parses + validates it and any
|
|
103
|
+
// operator override takes effect here automatically -- no further change.
|
|
104
|
+
const cfg = loadEnvConfig(env);
|
|
105
|
+
const minutes = cfg.TELORA_MERGE_DETERMINISTIC_SIGNAL_MINUTES;
|
|
106
|
+
const resolved = typeof minutes === 'number' && Number.isFinite(minutes) && minutes > 0
|
|
107
|
+
? minutes
|
|
108
|
+
: DETERMINISTIC_SIGNAL_MINUTES_DEFAULT;
|
|
109
|
+
return resolved * 60_000;
|
|
110
|
+
}
|
|
111
|
+
function readStuckBranchThresholdMs(env) {
|
|
112
|
+
// Sourced from the typed env-config (validated at startup; default 24h).
|
|
113
|
+
return loadEnvConfig(env).TELORA_STUCK_BRANCH_THRESHOLD_HOURS * 3_600_000;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Read the unix-epoch milliseconds timestamp of the oldest commit on
|
|
117
|
+
* `branchName` not yet present on `targetBranch`. Returns null if there
|
|
118
|
+
* are no unmerged commits or the git invocation fails.
|
|
119
|
+
*/
|
|
120
|
+
export function getOldestUnmergedCommitMs(branchName, targetBranch, repoPath) {
|
|
121
|
+
const result = runGitSync(['log', '--format=%ct', `${targetBranch}..${branchName}`], repoPath);
|
|
122
|
+
if (!result.success)
|
|
123
|
+
return null;
|
|
124
|
+
const lines = result.output.trim().split('\n').filter(Boolean);
|
|
125
|
+
if (lines.length === 0)
|
|
126
|
+
return null;
|
|
127
|
+
// git log lists newest-first; the last line is the oldest commit.
|
|
128
|
+
const seconds = Number.parseInt(lines[lines.length - 1], 10);
|
|
129
|
+
if (!Number.isFinite(seconds) || Number.isNaN(seconds))
|
|
130
|
+
return null;
|
|
131
|
+
return seconds * 1000;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Enumerate focus branches with commits ahead of integration.
|
|
135
|
+
*
|
|
136
|
+
* Combines getActiveFocuses (for org/name/readOnly context) with the
|
|
137
|
+
* in-memory worktree state (for branchName + worktreePath). Returns one
|
|
138
|
+
* entry per focus whose branch has unmerged commits.
|
|
139
|
+
*/
|
|
140
|
+
export async function defaultEnumerateFocusBranchesAhead(config) {
|
|
141
|
+
const out = [];
|
|
142
|
+
const worktrees = getAllFocusWorktrees();
|
|
143
|
+
for (const product of config.products) {
|
|
144
|
+
const pc = configForProduct(config, product);
|
|
145
|
+
let focuses;
|
|
146
|
+
try {
|
|
147
|
+
focuses = await getActiveFocuses(pc.organizationId, product.id);
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
log.warn(`[merge-back-loop] getActiveFocuses failed for product ${product.id}:`, err.message);
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
for (const focus of focuses) {
|
|
154
|
+
const wt = worktrees.get(focus.focus_id);
|
|
155
|
+
if (!wt)
|
|
156
|
+
continue;
|
|
157
|
+
const ahead = branchHasUnmergedCommits(wt.branchName, pc.integrationBranch, pc.repoPath);
|
|
158
|
+
if (!ahead)
|
|
159
|
+
continue;
|
|
160
|
+
out.push({
|
|
161
|
+
focusId: focus.focus_id,
|
|
162
|
+
focusName: focus.focus_name,
|
|
163
|
+
organizationId: pc.organizationId,
|
|
164
|
+
productId: product.id,
|
|
165
|
+
branchName: wt.branchName,
|
|
166
|
+
worktreePath: wt.worktreePath,
|
|
167
|
+
repoPath: pc.repoPath,
|
|
168
|
+
pipelineConfig: focus.pipeline_config ?? null,
|
|
169
|
+
readOnly: focus.read_only,
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return out;
|
|
174
|
+
}
|
|
175
|
+
function defaultDeps() {
|
|
176
|
+
return {
|
|
177
|
+
enumerateFocusBranchesAhead: defaultEnumerateFocusBranchesAhead,
|
|
178
|
+
isWorktreeBeingWritten: defaultIsWorktreeBeingWritten,
|
|
179
|
+
worktreeHasUncommittedChanges,
|
|
180
|
+
listPendingEscalations: defaultListPendingEscalations,
|
|
181
|
+
markEscalationResolved: defaultMarkEscalationResolved,
|
|
182
|
+
fileEscalation: defaultFileEscalationIdempotent,
|
|
183
|
+
mergeFocusBranch: defaultMergeFocusBranch,
|
|
184
|
+
getFocusDeliveries: defaultGetFocusDeliveries,
|
|
185
|
+
getOldestUnmergedCommitMs,
|
|
186
|
+
now: () => Date.now(),
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Find a pending escalation matching a kind and branch name.
|
|
191
|
+
* Uses the new metadata.branch_name field when present; falls back to
|
|
192
|
+
* scanning description strings for backward compatibility with rows
|
|
193
|
+
* created before the metadata column existed.
|
|
194
|
+
*/
|
|
195
|
+
function findPendingEscalationForBranch(pending, kind, branchName) {
|
|
196
|
+
for (const e of pending) {
|
|
197
|
+
const md = e.metadata ?? null;
|
|
198
|
+
const branchFromMd = md && typeof md === 'object' ? md.branch_name : undefined;
|
|
199
|
+
if (e.escalationKind === kind && branchFromMd === branchName) {
|
|
200
|
+
return { id: e.id };
|
|
201
|
+
}
|
|
202
|
+
// Fallback for legacy rows without escalationKind/metadata.
|
|
203
|
+
if (e.escalationKind == null &&
|
|
204
|
+
kind === STUCK_FOCUS_BRANCH_KIND &&
|
|
205
|
+
typeof e.description === 'string' &&
|
|
206
|
+
e.description.includes(`Branch: ${branchName}`)) {
|
|
207
|
+
return { id: e.id };
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Find any pending merge-conflict escalation for this branch.
|
|
214
|
+
* Old-style rows do not carry escalationKind; they're detected via the
|
|
215
|
+
* description prefix used by escalateMergeConflict (focus-merge.ts:69).
|
|
216
|
+
*/
|
|
217
|
+
function findPendingConflictForBranch(pending, branchName) {
|
|
218
|
+
for (const e of pending) {
|
|
219
|
+
if (e.reasonType === ESCALATION_REASONS.ERROR_ENCOUNTERED &&
|
|
220
|
+
typeof e.description === 'string' &&
|
|
221
|
+
e.description.includes(`Source branch:** ${branchName}`)) {
|
|
222
|
+
return { id: e.id };
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Build a minimal FocusTeamState shape that mergeFocusBranch can consume.
|
|
229
|
+
* Many fields are unused by mergeFocusBranch's read-path; they default to
|
|
230
|
+
* empty/null so the synthetic state stays observably distinct from real
|
|
231
|
+
* in-flight teams.
|
|
232
|
+
*/
|
|
233
|
+
function buildSyntheticTeamState(info, knownDeliveryIds) {
|
|
234
|
+
return {
|
|
235
|
+
focusId: info.focusId,
|
|
236
|
+
focusName: info.focusName,
|
|
237
|
+
roleId: '',
|
|
238
|
+
roleName: 'merge-back-loop',
|
|
239
|
+
organizationId: info.organizationId,
|
|
240
|
+
productId: info.productId,
|
|
241
|
+
executionConfig: { maxWorkers: 0, idlePollIntervalMs: 0, activePollIntervalMs: 0 },
|
|
242
|
+
pipelineConfig: info.pipelineConfig,
|
|
243
|
+
startedAt: new Date(),
|
|
244
|
+
phase: 'terminated',
|
|
245
|
+
knownDeliveryIds,
|
|
246
|
+
mergedDeliveryIds: new Set(),
|
|
247
|
+
planningPhase: false,
|
|
248
|
+
leadSessionId: null,
|
|
249
|
+
leadPid: null,
|
|
250
|
+
leadStdin: null,
|
|
251
|
+
branchName: info.branchName,
|
|
252
|
+
worktreePath: info.worktreePath,
|
|
253
|
+
integrationBaseSha: null,
|
|
254
|
+
reviewSpawnTip: null,
|
|
255
|
+
deliveryStageIds: new Map(),
|
|
256
|
+
resolvingMergeConflict: false,
|
|
257
|
+
shutdownReason: null,
|
|
258
|
+
readOnly: info.readOnly,
|
|
259
|
+
sessionType: 'coding',
|
|
260
|
+
lineage: 'coding',
|
|
261
|
+
completionDetector: null,
|
|
262
|
+
claudeSessionId: null,
|
|
263
|
+
lastProgressSnapshot: null,
|
|
264
|
+
noProgressCycles: 0,
|
|
265
|
+
commitNudgeAttempts: 0,
|
|
266
|
+
lastConsumedDirectiveHash: null,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Statuses that mark deliveries as worked-on (ready for git state REPORTING).
|
|
271
|
+
*
|
|
272
|
+
* 'done' is included so focuses whose deliveries all reached done before the
|
|
273
|
+
* branch was merged still get propagated. Without 'done' the merge-back loop
|
|
274
|
+
* skips the focus with "no worked deliveries" and the branch stays stranded.
|
|
275
|
+
*
|
|
276
|
+
* NOTE: this set is REPORTING-only (per-delivery git-state telemetry inside
|
|
277
|
+
* mergeFocusBranch). It is deliberately distinct from MERGE_ELIGIBLE_STATUSES:
|
|
278
|
+
* 'coding' is worked-on for reporting but NOT a merge trigger, so unreviewed
|
|
279
|
+
* coding-status code cannot reach integration ahead of the review gate.
|
|
280
|
+
*/
|
|
281
|
+
const WORKED_STATUSES = new Set(['coding', 'verify', 'done']);
|
|
282
|
+
/**
|
|
283
|
+
* Statuses that make a focus branch ELIGIBLE to merge to integration.
|
|
284
|
+
*
|
|
285
|
+
* A delivery only becomes mergeable once it has passed the dev-complete bar:
|
|
286
|
+
* `verify` (awaiting the review gate) or `done` (already approved). `coding` is
|
|
287
|
+
* intentionally EXCLUDED so the merge-back loop never pushes unreviewed
|
|
288
|
+
* coding-status work to integration before the review gate runs against it.
|
|
289
|
+
* Separating this from WORKED_STATUSES keeps git-state reporting (which still
|
|
290
|
+
* marks coding deliveries worked-on) decoupled from the merge decision.
|
|
291
|
+
*/
|
|
292
|
+
const MERGE_ELIGIBLE_STATUSES = new Set(['verify', 'done']);
|
|
293
|
+
/**
|
|
294
|
+
* Build a `whatWasTried` summary string for stuck-branch escalations.
|
|
295
|
+
*/
|
|
296
|
+
function summarizeAttempts(state) {
|
|
297
|
+
if (!state)
|
|
298
|
+
return 'No merge attempts recorded since daemon startup.';
|
|
299
|
+
const parts = [];
|
|
300
|
+
if (state.lastSuccessAt) {
|
|
301
|
+
parts.push(`last success at ${new Date(state.lastSuccessAt).toISOString()}`);
|
|
302
|
+
}
|
|
303
|
+
if (state.lastFailureAt) {
|
|
304
|
+
parts.push(`last failure at ${new Date(state.lastFailureAt).toISOString()}: ${state.lastFailureReason ?? 'unknown'}`);
|
|
305
|
+
}
|
|
306
|
+
if (state.lastFailureClass && state.repeatCount > 1) {
|
|
307
|
+
parts.push(`condition '${state.lastFailureClass}' repeated ${state.repeatCount}x identically`);
|
|
308
|
+
}
|
|
309
|
+
if (parts.length === 0)
|
|
310
|
+
return 'No merge attempts recorded since daemon startup.';
|
|
311
|
+
return parts.join('; ');
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Decide whether to file a stuck-branch escalation for this branch.
|
|
315
|
+
*
|
|
316
|
+
* Conditions (all must hold):
|
|
317
|
+
* - branch has at least one unmerged commit (already guaranteed by enumerate)
|
|
318
|
+
* - oldest unmerged commit is older than threshold
|
|
319
|
+
* - worktree is NOT being written
|
|
320
|
+
* - no successful merge attempt has been recorded within the threshold window
|
|
321
|
+
* - no open OR dismissed stuck_focus_branch escalation carries this branch's
|
|
322
|
+
* cause key (idempotency + dismissal memory, enforced by the shared gate)
|
|
323
|
+
*/
|
|
324
|
+
async function maybeFileStuckBranchEscalation(info, oldestUnmergedMs, worktreeActive, thresholdMs, now, fileEscalation) {
|
|
325
|
+
if (worktreeActive)
|
|
326
|
+
return;
|
|
327
|
+
if (oldestUnmergedMs == null)
|
|
328
|
+
return;
|
|
329
|
+
if (now - oldestUnmergedMs <= thresholdMs)
|
|
330
|
+
return;
|
|
331
|
+
const state = branchAttempts.get(info.branchName);
|
|
332
|
+
if (state?.lastSuccessAt && now - state.lastSuccessAt <= thresholdMs)
|
|
333
|
+
return;
|
|
334
|
+
// Per-branch cause key: one open row per stuck branch, and a dismissed one keeps
|
|
335
|
+
// it silent until the branch merges (dedup + dismissal memory in one gate). The
|
|
336
|
+
// pending-list dedup this replaced saw only OPEN rows, so a dismissal re-filed
|
|
337
|
+
// every 30s tick until merge -- the incident pattern this closes.
|
|
338
|
+
const causeKey = focusBlockageCauseKey(STUCK_FOCUS_BRANCH_KIND, info.focusId, info.branchName);
|
|
339
|
+
const ageHours = Math.floor((now - oldestUnmergedMs) / 3_600_000);
|
|
340
|
+
const description = `Focus branch sat ahead of integration for ~${ageHours}h with no successful merge.\n\n` +
|
|
341
|
+
`**Focus:** ${info.focusName}\n` +
|
|
342
|
+
`**Branch:** ${info.branchName}\n` +
|
|
343
|
+
`**Oldest unmerged commit:** ${new Date(oldestUnmergedMs).toISOString()}\n` +
|
|
344
|
+
`**Recent attempts:** ${summarizeAttempts(state)}`;
|
|
345
|
+
try {
|
|
346
|
+
await fileEscalation({
|
|
347
|
+
causeKey,
|
|
348
|
+
organizationId: info.organizationId,
|
|
349
|
+
sessionId: '',
|
|
350
|
+
issueId: null,
|
|
351
|
+
reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
|
|
352
|
+
// Operator triage: rebase/merge manually, mark complete, or clear the branch.
|
|
353
|
+
disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
|
|
354
|
+
// Provenance via the anchor; focus_id no longer denormalized into metadata.
|
|
355
|
+
anchor: { focusId: info.focusId, branch: info.branchName },
|
|
356
|
+
description,
|
|
357
|
+
whatWasTried: summarizeAttempts(state),
|
|
358
|
+
helpNeeded: `Inspect the branch (${info.branchName}) and integration history. ` +
|
|
359
|
+
`Either rebase/merge manually, mark the focus complete, or clear the branch ` +
|
|
360
|
+
`if its commits are no longer wanted.`,
|
|
361
|
+
escalationKind: STUCK_FOCUS_BRANCH_KIND,
|
|
362
|
+
metadata: {
|
|
363
|
+
// branch_name is the dedup discriminator for this branch-scoped class
|
|
364
|
+
// (findPendingEscalationForBranch reads it); there is no branch column.
|
|
365
|
+
branch_name: info.branchName,
|
|
366
|
+
oldest_commit_ts: oldestUnmergedMs,
|
|
367
|
+
last_failure_reason: state?.lastFailureReason ?? null,
|
|
368
|
+
},
|
|
369
|
+
});
|
|
370
|
+
log.info(`Filed stuck_focus_branch escalation for ${info.branchName} (${ageHours}h old)`);
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
373
|
+
log.warn(`[merge-back-loop] fileEscalation failed for ${info.branchName}:`, err.message);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Auto-resolve any open stuck-branch escalations for a branch we just merged.
|
|
378
|
+
*/
|
|
379
|
+
async function resolveStuckBranchEscalations(branchName, pending, markResolved) {
|
|
380
|
+
const match = findPendingEscalationForBranch(pending, STUCK_FOCUS_BRANCH_KIND, branchName);
|
|
381
|
+
if (!match)
|
|
382
|
+
return;
|
|
383
|
+
try {
|
|
384
|
+
await markResolved(match.id, 'Branch merged automatically by merge-back-loop');
|
|
385
|
+
log.info(`Auto-resolved stuck_focus_branch escalation ${match.id} for ${branchName}`);
|
|
386
|
+
}
|
|
387
|
+
catch (err) {
|
|
388
|
+
log.warn(`[merge-back-loop] markEscalationResolved failed for ${match.id}:`, err.message);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
/** Human-readable one-liner for a deterministic merge-failure condition. */
|
|
392
|
+
function describeDeterministicCondition(failureClass) {
|
|
393
|
+
switch (failureClass) {
|
|
394
|
+
case 'hook_rejected':
|
|
395
|
+
return 'a commit-msg hook rejected the merge commit (the daemon cannot satisfy it by retrying)';
|
|
396
|
+
case 'worktree_dirty':
|
|
397
|
+
return 'the merge worktree carried local changes the merge would overwrite, and the pre-merge recovery did not clear them';
|
|
398
|
+
default:
|
|
399
|
+
return 'a deterministic condition that re-fails identically on retry';
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
/** The operator remedy for a deterministic merge-failure condition. */
|
|
403
|
+
function describeDeterministicRemedy(failureClass, branch) {
|
|
404
|
+
switch (failureClass) {
|
|
405
|
+
case 'hook_rejected':
|
|
406
|
+
return `Inspect the commit-msg hook installed for the merge worktree and the ${branch} branch. A merge commit should be exempt from the delivery-trailer guard; if the hook is rejecting merges, the hook install is wrong.`;
|
|
407
|
+
case 'worktree_dirty':
|
|
408
|
+
return `Inspect the merge worktree (.telora/merge-worktree) -- it is holding uncommitted changes the automatic recovery is not clearing. Clean it manually, then let merge-back retry.`;
|
|
409
|
+
default:
|
|
410
|
+
return `Inspect the ${branch} branch and the merge worktree; the same merge failure is repeating unchanged.`;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
/**
|
|
414
|
+
* Signal a DETERMINISTIC merge failure that has repeated identically for at least
|
|
415
|
+
* the signal window. Unlike the aged-out stuck-branch escalation (24h threshold),
|
|
416
|
+
* this fires within minutes: the failure is self-inflicted and unclearable by
|
|
417
|
+
* retrying, so waiting a day serves nothing. Files through the SAME cause-keyed
|
|
418
|
+
* idempotent gate as the stuck-branch escalation (one open row per branch), so
|
|
419
|
+
* the two never double-file. Returns true when a signal was filed.
|
|
420
|
+
*/
|
|
421
|
+
async function maybeSignalDeterministicRepeat(info, state, failureClass, now, signalMs, fileEscalation) {
|
|
422
|
+
// Only after the SAME condition has repeated (>=2) AND persisted past the
|
|
423
|
+
// signal window -- a single transient failure is never signalled.
|
|
424
|
+
if (state.repeatCount < 2)
|
|
425
|
+
return false;
|
|
426
|
+
if (state.firstRepeatAt == null || now - state.firstRepeatAt < signalMs)
|
|
427
|
+
return false;
|
|
428
|
+
const causeKey = focusBlockageCauseKey(STUCK_FOCUS_BRANCH_KIND, info.focusId, info.branchName);
|
|
429
|
+
const minutes = Math.floor((now - state.firstRepeatAt) / 60_000);
|
|
430
|
+
const description = `Merge-back for focus "${info.focusName}" branch ${info.branchName} has FAILED IDENTICALLY ` +
|
|
431
|
+
`(${failureClass}) ${state.repeatCount} times over ~${minutes}m -- ` +
|
|
432
|
+
`${describeDeterministicCondition(failureClass)}. Retries are now throttled so it does not ` +
|
|
433
|
+
`re-run every poll tick.`;
|
|
434
|
+
try {
|
|
435
|
+
await fileEscalation({
|
|
436
|
+
causeKey,
|
|
437
|
+
organizationId: info.organizationId,
|
|
438
|
+
sessionId: '',
|
|
439
|
+
issueId: null,
|
|
440
|
+
reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
|
|
441
|
+
disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
|
|
442
|
+
anchor: { focusId: info.focusId, branch: info.branchName },
|
|
443
|
+
description,
|
|
444
|
+
whatWasTried: summarizeAttempts(state),
|
|
445
|
+
helpNeeded: describeDeterministicRemedy(failureClass, info.branchName),
|
|
446
|
+
escalationKind: STUCK_FOCUS_BRANCH_KIND,
|
|
447
|
+
metadata: {
|
|
448
|
+
branch_name: info.branchName,
|
|
449
|
+
failure_class: failureClass,
|
|
450
|
+
repeat_count: state.repeatCount,
|
|
451
|
+
first_repeat_ts: state.firstRepeatAt,
|
|
452
|
+
last_failure_reason: state.lastFailureReason ?? null,
|
|
453
|
+
},
|
|
454
|
+
});
|
|
455
|
+
log.warn(`[merge-back-loop] SIGNAL: ${info.branchName} deterministic ${failureClass} x${state.repeatCount} ` +
|
|
456
|
+
`(~${minutes}m); filed stuck_focus_branch and throttling.`);
|
|
457
|
+
return true;
|
|
458
|
+
}
|
|
459
|
+
catch (err) {
|
|
460
|
+
log.warn(`[merge-back-loop] deterministic-repeat signal fileEscalation failed for ${info.branchName}:`, err.message);
|
|
461
|
+
return false;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Act on a recorded merge failure. A DETERMINISTIC condition (hook rejection /
|
|
466
|
+
* dirty worktree) is throttled -- so it does not re-run at full poll rate -- and,
|
|
467
|
+
* once it has repeated past the signal window, signalled within minutes. Every
|
|
468
|
+
* failure logs which condition occurred and what the daemon did about it, so the
|
|
469
|
+
* state is readable from the log without reconstructing it from git.
|
|
470
|
+
*/
|
|
471
|
+
async function handleMergeFailure(info, rec, now, signalMs, fileEscalation) {
|
|
472
|
+
const { state, failureClass, isDeterministic } = rec;
|
|
473
|
+
if (isDeterministic) {
|
|
474
|
+
setThrottle(info.branchName, now + signalMs);
|
|
475
|
+
log.warn(`[merge-back-loop] ${info.branchName}: deterministic merge failure '${failureClass}' ` +
|
|
476
|
+
`(repeat ${state.repeatCount}) -- ${describeDeterministicCondition(failureClass)}. ` +
|
|
477
|
+
`Throttling retries for ~${Math.round(signalMs / 60_000)}m and evaluating a signal.`);
|
|
478
|
+
await maybeSignalDeterministicRepeat(info, state, failureClass, now, signalMs, fileEscalation);
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
log.warn(`[merge-back-loop] ${info.branchName}: merge failure classified '${failureClass}' ` +
|
|
482
|
+
`(repeat ${state.repeatCount}); handled by the conflict / stuck-branch paths, not throttled.`);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Run one merge-back tick across all products in the daemon config.
|
|
487
|
+
*
|
|
488
|
+
* Idempotent: when no branches are ahead of integration, the tick is a
|
|
489
|
+
* no-op (no info-level log, debug only). When work happens, logs a
|
|
490
|
+
* single info-level summary line.
|
|
491
|
+
*/
|
|
492
|
+
export async function runMergeBackTick(config, depOverrides = {}) {
|
|
493
|
+
const deps = { ...defaultDeps(), ...depOverrides };
|
|
494
|
+
const counts = { scanned: 0, merged: 0, skipped: 0, conflicts: 0 };
|
|
495
|
+
const thresholdMs = readStuckBranchThresholdMs();
|
|
496
|
+
const signalMs = readDeterministicSignalMs();
|
|
497
|
+
let branches;
|
|
498
|
+
try {
|
|
499
|
+
branches = await deps.enumerateFocusBranchesAhead(config);
|
|
500
|
+
}
|
|
501
|
+
catch (err) {
|
|
502
|
+
log.warn('enumerate failed:', err.message);
|
|
503
|
+
return counts;
|
|
504
|
+
}
|
|
505
|
+
// Pull pending escalations once per tick — used for both conflict-skip and
|
|
506
|
+
// stuck-branch dedup checks. Empty list on error so the tick continues.
|
|
507
|
+
let pending;
|
|
508
|
+
try {
|
|
509
|
+
pending = await deps.listPendingEscalations();
|
|
510
|
+
}
|
|
511
|
+
catch (err) {
|
|
512
|
+
log.warn('listPendingEscalations failed:', err.message);
|
|
513
|
+
pending = [];
|
|
514
|
+
}
|
|
515
|
+
counts.scanned = branches.length;
|
|
516
|
+
if (branches.length === 0) {
|
|
517
|
+
log.debug('tick: 0 branches ahead of integration');
|
|
518
|
+
return counts;
|
|
519
|
+
}
|
|
520
|
+
for (const info of branches) {
|
|
521
|
+
const now = (deps.now ?? Date.now)();
|
|
522
|
+
// Gate 0: read-only audit focuses never merge to integration. The
|
|
523
|
+
// event-driven path enforces this via shouldAttemptMerge's readOnly
|
|
524
|
+
// check; mirror that here so a violating audit team (one that
|
|
525
|
+
// committed in violation of its constraint) can't bypass the guard
|
|
526
|
+
// through the state-driven loop.
|
|
527
|
+
if (info.readOnly) {
|
|
528
|
+
counts.skipped += 1;
|
|
529
|
+
log.debug(`skip ${info.branchName}: read-only focus`);
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
// Gate 0.5: throttle. A branch whose last failure was deterministic and
|
|
533
|
+
// unclearable is backed off so it does not re-attempt every 30s tick; it
|
|
534
|
+
// becomes eligible again once the throttle window elapses (state may have
|
|
535
|
+
// changed by then -- the hook fixed, the worktree cleaned).
|
|
536
|
+
const priorState = branchAttempts.get(info.branchName);
|
|
537
|
+
if (priorState?.throttledUntil && now < priorState.throttledUntil) {
|
|
538
|
+
counts.skipped += 1;
|
|
539
|
+
log.debug(`[merge-back-loop] skip ${info.branchName}: throttled after deterministic ` +
|
|
540
|
+
`'${priorState.lastFailureClass ?? 'failure'}' until ` +
|
|
541
|
+
`${new Date(priorState.throttledUntil).toISOString()}`);
|
|
542
|
+
continue;
|
|
543
|
+
}
|
|
544
|
+
// Gate 1: in-memory writer / active session / recent commit / dirty
|
|
545
|
+
let writeSignal;
|
|
546
|
+
try {
|
|
547
|
+
writeSignal = await deps.isWorktreeBeingWritten(info.focusId);
|
|
548
|
+
}
|
|
549
|
+
catch (err) {
|
|
550
|
+
log.warn(`[merge-back-loop] isWorktreeBeingWritten failed for ${info.focusId}:`, err.message);
|
|
551
|
+
counts.skipped += 1;
|
|
552
|
+
continue;
|
|
553
|
+
}
|
|
554
|
+
if (writeSignal.active) {
|
|
555
|
+
counts.skipped += 1;
|
|
556
|
+
log.debug(`[merge-back-loop] skip ${info.branchName}: ${writeSignal.reason?.code ?? 'unknown'} -- ${writeSignal.reason?.message ?? ''}`);
|
|
557
|
+
continue;
|
|
558
|
+
}
|
|
559
|
+
// Gate 2: explicit dirty-worktree skip (redundant w/ isWorktreeBeingWritten,
|
|
560
|
+
// but logged separately so the skip is easy to read in the log).
|
|
561
|
+
if (deps.worktreeHasUncommittedChanges(info.worktreePath)) {
|
|
562
|
+
counts.skipped += 1;
|
|
563
|
+
log.debug(`skip ${info.branchName}: dirty worktree`);
|
|
564
|
+
continue;
|
|
565
|
+
}
|
|
566
|
+
// Gate 3: existing pending merge-conflict escalation for this branch
|
|
567
|
+
if (findPendingConflictForBranch(pending, info.branchName)) {
|
|
568
|
+
counts.skipped += 1;
|
|
569
|
+
log.debug(`skip ${info.branchName}: pending merge-conflict escalation`);
|
|
570
|
+
// Even when we skip the merge, the stuck-branch escalation may still
|
|
571
|
+
// need to fire if the branch has aged out. Skip that here too —
|
|
572
|
+
// a stuck conflict already has an escalation surface.
|
|
573
|
+
continue;
|
|
574
|
+
}
|
|
575
|
+
// Gather worked deliveries (see WORKED_STATUSES).
|
|
576
|
+
let deliveries = [];
|
|
577
|
+
try {
|
|
578
|
+
deliveries = await deps.getFocusDeliveries(info.focusId);
|
|
579
|
+
}
|
|
580
|
+
catch (err) {
|
|
581
|
+
log.warn(`[merge-back-loop] getFocusDeliveries failed for ${info.focusId}:`, err.message);
|
|
582
|
+
}
|
|
583
|
+
const allDeliveryIds = deliveries.map((d) => d.id);
|
|
584
|
+
const workedDeliveryIds = deliveries
|
|
585
|
+
.filter((d) => WORKED_STATUSES.has(d.executionStatus ?? ''))
|
|
586
|
+
.map((d) => d.id);
|
|
587
|
+
if (allDeliveryIds.length === 0) {
|
|
588
|
+
// Degenerate case: branch is ahead but the focus has no deliveries
|
|
589
|
+
// (e.g., orphaned branch with no focus row). Skip and consider the
|
|
590
|
+
// stuck-branch surface — operators decide whether to keep or clean up.
|
|
591
|
+
counts.skipped += 1;
|
|
592
|
+
log.debug(`skip ${info.branchName}: focus has no deliveries`);
|
|
593
|
+
const oldestMs = deps.getOldestUnmergedCommitMs(info.branchName, config.integrationBranch, info.repoPath);
|
|
594
|
+
await maybeFileStuckBranchEscalation(info, oldestMs, writeSignal.active, thresholdMs, now, deps.fileEscalation);
|
|
595
|
+
continue;
|
|
596
|
+
}
|
|
597
|
+
// Gate 4: merge-eligibility. A focus whose deliveries are ALL still in
|
|
598
|
+
// `coding` is not yet past the dev-complete bar -- its branch carries
|
|
599
|
+
// unreviewed code. Skip the merge so the review gate runs first; the work
|
|
600
|
+
// becomes merge-eligible once a delivery reaches verify/done (the
|
|
601
|
+
// terminate-path reconciliation in completion/event.ts advances finished
|
|
602
|
+
// coding work to verify, so genuinely-complete work is not stranded here).
|
|
603
|
+
//
|
|
604
|
+
// Deliberately do NOT file a stuck_focus_branch escalation on this path: a
|
|
605
|
+
// coding-only focus is INTENTIONALLY held by the review gate, not stuck in
|
|
606
|
+
// the merge-back sense. A genuinely wedged coding focus (nothing committed,
|
|
607
|
+
// no progress) is surfaced by the completion-path team_failure / no-progress
|
|
608
|
+
// watchdogs, not by merge-back. So a held coding focus never spuriously
|
|
609
|
+
// ages into a stuck_focus_branch escalation before the threshold.
|
|
610
|
+
const mergeEligible = deliveries.some((d) => MERGE_ELIGIBLE_STATUSES.has(d.executionStatus ?? ''));
|
|
611
|
+
if (!mergeEligible) {
|
|
612
|
+
counts.skipped += 1;
|
|
613
|
+
log.debug(`[merge-back-loop] skip ${info.branchName}: no verify/done delivery ` +
|
|
614
|
+
`(deliveries still coding) -- waiting for the review gate`);
|
|
615
|
+
continue;
|
|
616
|
+
}
|
|
617
|
+
// Pass ALL delivery IDs as knownDeliveryIds so mergeFocusBranch's
|
|
618
|
+
// representative fallback can find a delivery even when workedDeliveryIds
|
|
619
|
+
// is empty (e.g., done-only focus). workedDeliveryIds still drives
|
|
620
|
+
// per-delivery git-state telemetry inside mergeFocusBranch.
|
|
621
|
+
const teamState = buildSyntheticTeamState(info, new Set(allDeliveryIds));
|
|
622
|
+
// Pass a product-scoped config so mergeFocusBranch's downstream git
|
|
623
|
+
// operations (mergeToIntegration, etc.) run against the correct repo.
|
|
624
|
+
const productConfig = { ...config, repoPath: info.repoPath, productId: info.productId };
|
|
625
|
+
let mergeResult;
|
|
626
|
+
try {
|
|
627
|
+
mergeResult = await deps.mergeFocusBranch(productConfig, teamState,
|
|
628
|
+
/* sessionId */ '', info.branchName, workedDeliveryIds);
|
|
629
|
+
}
|
|
630
|
+
catch (err) {
|
|
631
|
+
counts.conflicts += 1;
|
|
632
|
+
const rec = recordFailure(info.branchName, now, err.message);
|
|
633
|
+
log.warn(`[merge-back-loop] mergeFocusBranch threw for ${info.branchName}:`, err.message);
|
|
634
|
+
await handleMergeFailure(info, rec, now, signalMs, deps.fileEscalation);
|
|
635
|
+
continue;
|
|
636
|
+
}
|
|
637
|
+
if (mergeResult.mergeSucceeded) {
|
|
638
|
+
counts.merged += 1;
|
|
639
|
+
recordSuccess(info.branchName, now);
|
|
640
|
+
await resolveStuckBranchEscalations(info.branchName, pending, deps.markEscalationResolved);
|
|
641
|
+
}
|
|
642
|
+
else {
|
|
643
|
+
counts.conflicts += 1;
|
|
644
|
+
const rec = recordFailure(info.branchName, now, mergeResult.exitReason);
|
|
645
|
+
// Deterministic conditions (hook rejection / dirty worktree) are throttled
|
|
646
|
+
// and signalled within minutes; every failure logs its condition + action.
|
|
647
|
+
await handleMergeFailure(info, rec, now, signalMs, deps.fileEscalation);
|
|
648
|
+
// Re-evaluate stuck-branch escalation: a persistent failure should
|
|
649
|
+
// surface as 'stuck' once the branch ages out (24h path, shared cause key).
|
|
650
|
+
const oldestMs = deps.getOldestUnmergedCommitMs(info.branchName, config.integrationBranch, info.repoPath);
|
|
651
|
+
await maybeFileStuckBranchEscalation(info, oldestMs, writeSignal.active, thresholdMs, now, deps.fileEscalation);
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
log.info(`[merge-back-loop] tick: ${counts.scanned} branches scanned, ${counts.merged} merged, ${counts.skipped} skipped, ${counts.conflicts} conflicts`);
|
|
655
|
+
return counts;
|
|
656
|
+
}
|
|
657
|
+
//# sourceMappingURL=merge-back-loop.js.map
|