@telora/daemon 0.21.98 → 0.21.144
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 +6 -3
- package/dist/audit/audit-hooks.d.ts +120 -5
- package/dist/audit/audit-hooks.d.ts.map +1 -1
- package/dist/audit/audit-hooks.js +205 -45
- package/dist/audit/audit-hooks.js.map +1 -1
- package/dist/ci/ci-escalation.js +1 -1
- package/dist/ci/ci-escalation.js.map +1 -1
- package/dist/ci/ci-sensor-loop.d.ts +30 -0
- package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
- package/dist/ci/ci-sensor-loop.js +85 -12
- package/dist/ci/ci-sensor-loop.js.map +1 -1
- package/dist/cli/connect/config-write.d.ts +87 -0
- package/dist/cli/connect/config-write.d.ts.map +1 -0
- package/dist/cli/connect/config-write.js +255 -0
- package/dist/cli/connect/config-write.js.map +1 -0
- package/dist/cli/connect/registration.d.ts +76 -0
- package/dist/cli/connect/registration.d.ts.map +1 -0
- package/dist/cli/connect/registration.js +207 -0
- package/dist/cli/connect/registration.js.map +1 -0
- package/dist/cli/connect.d.ts +3 -141
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +9 -441
- package/dist/cli/connect.js.map +1 -1
- package/dist/completion/coverage-drift-state.d.ts +29 -2
- package/dist/completion/coverage-drift-state.d.ts.map +1 -1
- package/dist/completion/coverage-drift-state.js +42 -2
- package/dist/completion/coverage-drift-state.js.map +1 -1
- package/dist/completion/coverage-stabilized.d.ts +58 -0
- package/dist/completion/coverage-stabilized.d.ts.map +1 -0
- package/dist/completion/coverage-stabilized.js +84 -0
- package/dist/completion/coverage-stabilized.js.map +1 -0
- package/dist/completion/delivery-advancement-guard.d.ts +21 -0
- package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
- package/dist/completion/delivery-advancement-guard.js +31 -3
- package/dist/completion/delivery-advancement-guard.js.map +1 -1
- package/dist/completion/escalation-provenance.d.ts +2 -1
- package/dist/completion/escalation-provenance.d.ts.map +1 -1
- package/dist/completion/escalation-provenance.js +2 -1
- package/dist/completion/escalation-provenance.js.map +1 -1
- package/dist/completion/escalations.js +1 -1
- package/dist/completion/escalations.js.map +1 -1
- package/dist/completion/event-escalations.d.ts +16 -1
- package/dist/completion/event-escalations.d.ts.map +1 -1
- package/dist/completion/event-escalations.js +43 -5
- package/dist/completion/event-escalations.js.map +1 -1
- package/dist/completion/event-phases.d.ts.map +1 -1
- package/dist/completion/event-phases.js +5 -2
- package/dist/completion/event-phases.js.map +1 -1
- package/dist/completion/event.d.ts +1 -1
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +2 -2
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/machine-remediable-demotion.d.ts +74 -0
- package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
- package/dist/completion/machine-remediable-demotion.js +148 -0
- package/dist/completion/machine-remediable-demotion.js.map +1 -0
- 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 +1 -1
- package/dist/completion/read-only-pristine.js.map +1 -1
- 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-phase.d.ts +5 -2
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +15 -8
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/settle-injection-sweep.d.ts +55 -0
- package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
- package/dist/completion/settle-injection-sweep.js +88 -0
- package/dist/completion/settle-injection-sweep.js.map +1 -0
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +42 -1
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/completion/status-advance-phase.d.ts.map +1 -1
- package/dist/completion/status-advance-phase.js +18 -0
- package/dist/completion/status-advance-phase.js.map +1 -1
- package/dist/completion/team-lifecycle.d.ts +42 -0
- package/dist/completion/team-lifecycle.d.ts.map +1 -1
- package/dist/completion/team-lifecycle.js +73 -1
- package/dist/completion/team-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-advance-block.d.ts +1 -1
- package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
- package/dist/delivery/delivery-advance-block.js +1 -1
- package/dist/delivery/delivery-advance-block.js.map +1 -1
- package/dist/delivery/delivery-lifecycle.d.ts +19 -33
- package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
- package/dist/delivery/delivery-lifecycle.js +20 -148
- package/dist/delivery/delivery-lifecycle.js.map +1 -1
- package/dist/delivery/delivery-merge-ops.d.ts +46 -0
- package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
- package/dist/delivery/delivery-merge-ops.js +154 -0
- package/dist/delivery/delivery-merge-ops.js.map +1 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts +28 -0
- package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler-apply.js +30 -0
- package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
- package/dist/delivery/delivery-reconciler-shadow.d.ts +1 -1
- package/dist/delivery/delivery-reconciler-shadow.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler-shadow.js +1 -1
- package/dist/delivery/delivery-reconciler-shadow.js.map +1 -1
- package/dist/delivery/delivery-reconciler.d.ts +7 -2
- package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
- package/dist/delivery/delivery-reconciler.js +34 -5
- package/dist/delivery/delivery-reconciler.js.map +1 -1
- package/dist/delivery/external-hold-surface.d.ts +32 -0
- package/dist/delivery/external-hold-surface.d.ts.map +1 -0
- package/dist/delivery/external-hold-surface.js +67 -0
- package/dist/delivery/external-hold-surface.js.map +1 -0
- package/dist/delivery/external-hold.d.ts +21 -0
- package/dist/delivery/external-hold.d.ts.map +1 -1
- package/dist/delivery/external-hold.js +40 -5
- package/dist/delivery/external-hold.js.map +1 -1
- package/dist/delivery/operator-hold.d.ts +1 -1
- package/dist/delivery/operator-hold.d.ts.map +1 -1
- package/dist/delivery/paused-revival.d.ts +140 -0
- package/dist/delivery/paused-revival.d.ts.map +1 -0
- package/dist/delivery/paused-revival.js +230 -0
- package/dist/delivery/paused-revival.js.map +1 -0
- package/dist/delivery/wait-reachability.d.ts.map +1 -1
- package/dist/delivery/wait-reachability.js +11 -0
- package/dist/delivery/wait-reachability.js.map +1 -1
- package/dist/directive/close-loop-dispatcher.d.ts +16 -263
- package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
- package/dist/directive/close-loop-dispatcher.js +21 -259
- package/dist/directive/close-loop-dispatcher.js.map +1 -1
- package/dist/directive/directive-dispatch.d.ts +20 -1
- package/dist/directive/directive-dispatch.d.ts.map +1 -1
- package/dist/directive/directive-dispatch.js +19 -1
- package/dist/directive/directive-dispatch.js.map +1 -1
- package/dist/directive/directive-executor.d.ts +1 -3
- package/dist/directive/directive-executor.d.ts.map +1 -1
- package/dist/directive/directive-executor.js +24 -22
- package/dist/directive/directive-executor.js.map +1 -1
- package/dist/directive/phase-sync.d.ts +28 -15
- package/dist/directive/phase-sync.d.ts.map +1 -1
- package/dist/directive/phase-sync.js +28 -36
- package/dist/directive/phase-sync.js.map +1 -1
- package/dist/directive/resolver-dispatch.d.ts +19 -92
- package/dist/directive/resolver-dispatch.d.ts.map +1 -1
- package/dist/directive/resolver-dispatch.js +19 -65
- package/dist/directive/resolver-dispatch.js.map +1 -1
- package/dist/drift/staleness-sensor.js +1 -1
- package/dist/drift/staleness-sensor.js.map +1 -1
- package/dist/focus/focus-engine.d.ts.map +1 -1
- package/dist/focus/focus-engine.js +29 -2
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +290 -256
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-lifecycle.d.ts.map +1 -1
- package/dist/focus/focus-lifecycle.js +2 -1
- package/dist/focus/focus-lifecycle.js.map +1 -1
- package/dist/focus/focus-loop-registry.d.ts.map +1 -1
- package/dist/focus/focus-loop-registry.js +43 -1
- package/dist/focus/focus-loop-registry.js.map +1 -1
- package/dist/focus/focus-respawn-guard.d.ts +1 -1
- package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
- package/dist/focus/focus-respawn-guard.js +12 -3
- package/dist/focus/focus-respawn-guard.js.map +1 -1
- package/dist/focus/focus-team-state.d.ts +11 -0
- package/dist/focus/focus-team-state.d.ts.map +1 -1
- package/dist/focus/focus-team-state.js +17 -0
- package/dist/focus/focus-team-state.js.map +1 -1
- package/dist/focus/listener-auto-advance.d.ts +17 -46
- package/dist/focus/listener-auto-advance.d.ts.map +1 -1
- package/dist/focus/listener-auto-advance.js +104 -256
- package/dist/focus/listener-auto-advance.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts +62 -0
- package/dist/focus/listener-spawn.d.ts.map +1 -0
- package/dist/focus/listener-spawn.js +418 -0
- package/dist/focus/listener-spawn.js.map +1 -0
- package/dist/focus/listener-state.d.ts +57 -0
- package/dist/focus/listener-state.d.ts.map +1 -0
- package/dist/focus/listener-state.js +63 -0
- package/dist/focus/listener-state.js.map +1 -0
- package/dist/focus/listener.d.ts +0 -58
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +138 -516
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/tick-deadline.d.ts +55 -0
- package/dist/focus/tick-deadline.d.ts.map +1 -0
- package/dist/focus/tick-deadline.js +91 -0
- package/dist/focus/tick-deadline.js.map +1 -0
- package/dist/focus/verify-open-issues.d.ts +62 -0
- package/dist/focus/verify-open-issues.d.ts.map +1 -0
- package/dist/focus/verify-open-issues.js +265 -0
- package/dist/focus/verify-open-issues.js.map +1 -0
- package/dist/focus-stage-lifecycle/index.d.ts +19 -26
- package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/index.js +27 -39
- package/dist/focus-stage-lifecycle/index.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
- package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/git/index.d.ts +2 -0
- package/dist/git/index.d.ts.map +1 -1
- package/dist/git/index.js +2 -0
- package/dist/git/index.js.map +1 -1
- package/dist/git/merge-strategies.d.ts +80 -0
- package/dist/git/merge-strategies.d.ts.map +1 -0
- package/dist/git/merge-strategies.js +218 -0
- package/dist/git/merge-strategies.js.map +1 -0
- package/dist/git/merge-to-main.d.ts +76 -0
- package/dist/git/merge-to-main.d.ts.map +1 -0
- package/dist/git/merge-to-main.js +256 -0
- package/dist/git/merge-to-main.js.map +1 -0
- package/dist/git/merge.d.ts +27 -81
- package/dist/git/merge.d.ts.map +1 -1
- package/dist/git/merge.js +4 -448
- package/dist/git/merge.js.map +1 -1
- package/dist/git/state-detector.js +1 -1
- package/dist/git/state-detector.js.map +1 -1
- package/dist/guard/condition-evaluators.d.ts +9 -0
- package/dist/guard/condition-evaluators.d.ts.map +1 -1
- package/dist/guard/condition-evaluators.js +15 -0
- package/dist/guard/condition-evaluators.js.map +1 -1
- package/dist/guard/guard-evaluator.d.ts +17 -1
- package/dist/guard/guard-evaluator.d.ts.map +1 -1
- package/dist/guard/guard-evaluator.js +61 -2
- package/dist/guard/guard-evaluator.js.map +1 -1
- package/dist/guard/trigger-executor.d.ts +30 -18
- package/dist/guard/trigger-executor.d.ts.map +1 -1
- package/dist/guard/trigger-executor.js +55 -31
- package/dist/guard/trigger-executor.js.map +1 -1
- package/dist/loops/engine.js +1 -1
- package/dist/loops/engine.js.map +1 -1
- package/dist/merge/focus-merge.d.ts +1 -1
- package/dist/merge/focus-merge.d.ts.map +1 -1
- package/dist/merge/focus-merge.js +1 -1
- package/dist/merge/focus-merge.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +1 -1
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +2 -2
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/merge/merge-detector.js +1 -1
- package/dist/merge/merge-detector.js.map +1 -1
- package/dist/nexus/return.js +1 -1
- package/dist/nexus/return.js.map +1 -1
- package/dist/prd/controller-shared.d.ts +223 -0
- package/dist/prd/controller-shared.d.ts.map +1 -0
- package/dist/prd/controller-shared.js +77 -0
- package/dist/prd/controller-shared.js.map +1 -0
- package/dist/prd/controller.d.ts +5 -256
- package/dist/prd/controller.d.ts.map +1 -1
- package/dist/prd/controller.js +9 -166
- package/dist/prd/controller.js.map +1 -1
- package/dist/prd/done-sweep.d.ts +55 -0
- package/dist/prd/done-sweep.d.ts.map +1 -0
- package/dist/prd/done-sweep.js +112 -0
- package/dist/prd/done-sweep.js.map +1 -0
- package/dist/prompt/team-prompt-base.d.ts +1 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +1 -1
- package/dist/prompt/team-prompt-base.js.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 +12 -2
- package/dist/prompt-sections/execution-sections.js.map +1 -1
- package/dist/prompt-sections/persona-sections.d.ts +0 -32
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +19 -88
- package/dist/prompt-sections/persona-sections.js.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 +1 -1
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +2 -1
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/deliveries.d.ts +0 -172
- package/dist/queries/deliveries.d.ts.map +1 -1
- package/dist/queries/deliveries.js +1 -77
- package/dist/queries/deliveries.js.map +1 -1
- package/dist/queries/escalation-consumption.d.ts +120 -0
- package/dist/queries/escalation-consumption.d.ts.map +1 -0
- package/dist/queries/escalation-consumption.js +143 -0
- package/dist/queries/escalation-consumption.js.map +1 -0
- package/dist/queries/escalation-dispositions.d.ts +19 -0
- package/dist/queries/escalation-dispositions.d.ts.map +1 -0
- package/dist/queries/escalation-dispositions.js +18 -0
- package/dist/queries/escalation-dispositions.js.map +1 -0
- package/dist/queries/escalation-suppression.d.ts +1 -1
- package/dist/queries/escalation-suppression.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/escalations.d.ts +343 -0
- package/dist/queries/escalations.d.ts.map +1 -0
- package/dist/queries/escalations.js +493 -0
- package/dist/queries/escalations.js.map +1 -0
- package/dist/queries/focus-discovery.d.ts +204 -0
- package/dist/queries/focus-discovery.d.ts.map +1 -0
- package/dist/queries/focus-discovery.js +92 -0
- package/dist/queries/focus-discovery.js.map +1 -0
- package/dist/queries/focuses.d.ts +36 -0
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +45 -0
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/guards.d.ts +10 -0
- package/dist/queries/guards.d.ts.map +1 -1
- package/dist/queries/guards.js +14 -1
- package/dist/queries/guards.js.map +1 -1
- package/dist/queries/index.d.ts +4 -2
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +4 -2
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/issues.d.ts +8 -372
- package/dist/queries/issues.d.ts.map +1 -1
- package/dist/queries/issues.js +7 -482
- package/dist/queries/issues.js.map +1 -1
- package/dist/queries/schemas.d.ts +51 -0
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +34 -0
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/verification.d.ts +5 -6
- package/dist/queries/verification.d.ts.map +1 -1
- package/dist/queries/verification.js +5 -6
- package/dist/queries/verification.js.map +1 -1
- package/dist/resolvers/agent-escalations.d.ts +20 -0
- package/dist/resolvers/agent-escalations.d.ts.map +1 -1
- package/dist/resolvers/agent-escalations.js +40 -10
- package/dist/resolvers/agent-escalations.js.map +1 -1
- package/dist/resolvers/index.d.ts +2 -2
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +1 -1
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/loop-persona.d.ts +1 -11
- package/dist/resolvers/loop-persona.d.ts.map +1 -1
- package/dist/resolvers/loop-persona.js +2 -16
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/resolvers/shared/git-diff.d.ts +99 -18
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
- package/dist/resolvers/shared/git-diff.js +98 -27
- package/dist/resolvers/shared/git-diff.js.map +1 -1
- package/dist/shell/control-state.d.ts +1 -1
- package/dist/shell/control-state.d.ts.map +1 -1
- package/dist/shell/control-state.js +1 -1
- package/dist/shell/control-state.js.map +1 -1
- package/dist/shell/crash-recovery.d.ts +1 -1
- package/dist/shell/crash-recovery.d.ts.map +1 -1
- package/dist/shell/crash-recovery.js +2 -2
- package/dist/shell/crash-recovery.js.map +1 -1
- package/dist/shell/install-probe-tick.d.ts +1 -1
- package/dist/shell/install-probe-tick.d.ts.map +1 -1
- package/dist/shell/install-probe-tick.js +1 -1
- package/dist/shell/install-probe-tick.js.map +1 -1
- package/dist/shell/unified-shell-provisioning.d.ts +40 -0
- package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
- package/dist/shell/unified-shell-provisioning.js +72 -0
- package/dist/shell/unified-shell-provisioning.js.map +1 -1
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +19 -2
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/spawn/helpers.d.ts.map +1 -1
- package/dist/spawn/helpers.js +6 -1
- package/dist/spawn/helpers.js.map +1 -1
- package/dist/spawn/model-routing.d.ts +1 -1
- package/dist/spawn/model-routing.d.ts.map +1 -1
- package/dist/spawn/model-routing.js +1 -1
- package/dist/spawn/model-routing.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +7 -0
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +1 -1
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +1 -1
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/spawn-cooldown.d.ts +41 -7
- package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
- package/dist/spawn/spawn-cooldown.js +47 -0
- package/dist/spawn/spawn-cooldown.js.map +1 -1
- package/dist/spawn/spawn-decision.d.ts.map +1 -1
- package/dist/spawn/spawn-decision.js +34 -2
- package/dist/spawn/spawn-decision.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +1 -1
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +1 -1
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/templates/claude-md.d.ts +1 -1
- package/dist/templates/claude-md.d.ts.map +1 -1
- package/dist/templates/claude-md.js +12 -0
- package/dist/templates/claude-md.js.map +1 -1
- package/dist/verify/stall-detectors.d.ts +20 -8
- package/dist/verify/stall-detectors.d.ts.map +1 -1
- package/dist/verify/stall-detectors.js +27 -46
- package/dist/verify/stall-detectors.js.map +1 -1
- package/dist/verify/verification-default-on.d.ts +1 -1
- package/dist/verify/verification-default-on.d.ts.map +1 -1
- package/dist/verify/verification-deps.d.ts +1 -1
- package/dist/verify/verification-deps.d.ts.map +1 -1
- package/dist/verify/verification-engine.d.ts.map +1 -1
- package/dist/verify/verification-engine.js +20 -12
- package/dist/verify/verification-engine.js.map +1 -1
- package/dist/workflow/gate-failure-policy.d.ts +48 -0
- package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
- package/dist/workflow/gate-failure-policy.js +57 -0
- package/dist/workflow/gate-failure-policy.js.map +1 -0
- package/dist/workflow/pipeline-config.d.ts +2 -2
- package/dist/workflow/pipeline-config.js +2 -2
- package/dist/worktree/provision.js +1 -1
- package/dist/worktree/provision.js.map +1 -1
- package/dist/worktree/scratch-guard.d.ts.map +1 -1
- package/dist/worktree/scratch-guard.js +23 -2
- package/dist/worktree/scratch-guard.js.map +1 -1
- package/package.json +1 -1
- package/dist/directive/close-loop-stage.d.ts +0 -50
- package/dist/directive/close-loop-stage.d.ts.map +0 -1
- package/dist/directive/close-loop-stage.js +0 -210
- package/dist/directive/close-loop-stage.js.map +0 -1
- package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
- package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
- package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
- package/dist/focus-stage-lifecycle/review-convergence.js.map +0 -1
package/dist/cli/connect.js
CHANGED
|
@@ -11,28 +11,25 @@
|
|
|
11
11
|
* node_modules, no dev dependency) in the user's repo, so Rust/Python/Go/empty
|
|
12
12
|
* repos stay untouched.
|
|
13
13
|
*/
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { resolve, delimiter } from 'node:path';
|
|
17
|
-
import { homedir } from 'node:os';
|
|
14
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync, } from 'node:fs';
|
|
15
|
+
import { resolve } from 'node:path';
|
|
18
16
|
import { isLegacyMcpConfigShape, resolveMcpServerPath, writeMcpConfigFile, } from '../shell/mcp-resolution.js';
|
|
19
|
-
import { ensureGlobalStateDir, resolveDaemonLogPath } from '../shell/daemon-process.js';
|
|
20
|
-
import { STARTER_PROMPT } from '../prompts/starter-prompt.js';
|
|
21
17
|
import { writeProductCodexHome, renderManualCodexProfile, } from './codex-provision.js';
|
|
22
18
|
import { writeProductCodexAgentsMd } from './connect/agents.js';
|
|
23
19
|
import { harnessGitignoreEntries, writeHarnessScaffolding, } from './connect/scaffolding.js';
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
// Interactive command feedback: plain console text for the operator
|
|
27
|
-
// terminal, never JSON envelopes (review TEL-5). The daemon process's own
|
|
28
|
-
// modules keep the structured createLogger.
|
|
29
|
-
const log = cliLog;
|
|
20
|
+
import { resolveCodexCliPath, writeConnectDaemonConfig, writeStarterPromptArtifacts, ensureGitignoreEntries, startDaemonOnDisk, } from './connect/config-write.js';
|
|
21
|
+
import { findExistingProductForRepo, locateTeloraAi, registerWorkstationLocally, mergeUserClaudeSettingsHooks, } from './connect/registration.js';
|
|
30
22
|
export { retireClaudeMdSeed, writeOrMergeClaudeSettings } from './connect/claude.js';
|
|
31
23
|
export { writeOrMergeAgentsMd, writeOrMergeGlobalAgentsMd, writeProductCodexAgentsMd, retireAgentsMdSeed, globalAgentsMdPath, } from './connect/agents.js';
|
|
32
24
|
export { renderCodexMcpBlock, writeOrMergeCodexMcpToml } from './connect/codex.js';
|
|
33
25
|
export { renderClineRules, writeClineProjectRules, renderClineMcpSettings, writeOrMergeClineMcpSettings, } from './connect/cline.js';
|
|
34
26
|
export { DEFAULT_IDE_HARNESS_PRELOAD, IDE_MCP_REGISTRATION_SENTENCE, IDE_MCP_CONFIG_PATH, renderIdeMcpConfig, writeIdeMcpConfig, writeIdeHarnessScaffolding, } from './connect/ide.js';
|
|
35
27
|
export { harnessGitignoreEntries, writeHarnessScaffolding } from './connect/scaffolding.js';
|
|
28
|
+
// Config + daemon-start writers and workstation registration split out to
|
|
29
|
+
// connect/config-write.ts + connect/registration.ts (file-size limit),
|
|
30
|
+
// re-exported so existing importers keep resolving them from './connect.js'.
|
|
31
|
+
export { resolveCodexCliPath, writeConnectDaemonConfig, writeStarterPromptArtifacts, ensureGitignoreEntries, startDaemonOnDisk, } from './connect/config-write.js';
|
|
32
|
+
export { findExistingProductForRepo, readConnectedIdentity, locateTeloraAi, registerWorkstationLocally, mergeUserClaudeSettingsHooks, } from './connect/registration.js';
|
|
36
33
|
/**
|
|
37
34
|
* Production Telora API URL embedded in the published @telora/daemon package.
|
|
38
35
|
* Override with TELORA_URL for local dev.
|
|
@@ -118,243 +115,6 @@ export function defaultIO(io) {
|
|
|
118
115
|
export function validateTokenShape(token) {
|
|
119
116
|
return typeof token === 'string' && token.startsWith('TOK_') && token.length > 8;
|
|
120
117
|
}
|
|
121
|
-
function executableExists(path) {
|
|
122
|
-
return existsSync(path);
|
|
123
|
-
}
|
|
124
|
-
function resolveCommandOnPath(command) {
|
|
125
|
-
const pathEnv = process.env.PATH ?? '';
|
|
126
|
-
for (const dir of pathEnv.split(delimiter).filter(Boolean)) {
|
|
127
|
-
const candidate = resolve(dir, command);
|
|
128
|
-
if (executableExists(candidate))
|
|
129
|
-
return candidate;
|
|
130
|
-
}
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
function npmGlobalBinDir() {
|
|
134
|
-
if (process.env.NPM_CONFIG_PREFIX) {
|
|
135
|
-
return resolve(process.env.NPM_CONFIG_PREFIX, 'bin');
|
|
136
|
-
}
|
|
137
|
-
try {
|
|
138
|
-
const prefix = execFileSync('npm', ['prefix', '-g'], {
|
|
139
|
-
encoding: 'utf-8',
|
|
140
|
-
timeout: 5_000,
|
|
141
|
-
}).trim();
|
|
142
|
-
return prefix ? resolve(prefix, 'bin') : null;
|
|
143
|
-
}
|
|
144
|
-
catch {
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Resolve Codex to a stable on-disk executable for daemon config.
|
|
150
|
-
*
|
|
151
|
-
* The daemon runs detached and may not inherit the operator's login-shell PATH.
|
|
152
|
-
* Persisting an absolute path during `connect --harness codex` keeps future
|
|
153
|
-
* agent spawns independent of shell startup files.
|
|
154
|
-
*/
|
|
155
|
-
export function resolveCodexCliPath(repoPath) {
|
|
156
|
-
const onPath = resolveCommandOnPath('codex');
|
|
157
|
-
if (onPath)
|
|
158
|
-
return onPath;
|
|
159
|
-
const npmBinDir = npmGlobalBinDir();
|
|
160
|
-
const candidates = [
|
|
161
|
-
npmBinDir ? resolve(npmBinDir, 'codex') : null,
|
|
162
|
-
resolve(homedir(), '.npm-global', 'bin', 'codex'),
|
|
163
|
-
resolve(homedir(), '.local', 'bin', 'codex'),
|
|
164
|
-
resolve(repoPath, 'node_modules', '.bin', 'codex'),
|
|
165
|
-
];
|
|
166
|
-
for (const candidate of candidates) {
|
|
167
|
-
if (candidate && executableExists(candidate))
|
|
168
|
-
return candidate;
|
|
169
|
-
}
|
|
170
|
-
return null;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Write the daemon config to ~/.telora/daemon.json.
|
|
174
|
-
*
|
|
175
|
-
* Connect-flow config is single-product. If a config already exists,
|
|
176
|
-
* we overwrite it and print a warning -- re-running connect is the
|
|
177
|
-
* supported recovery path.
|
|
178
|
-
*
|
|
179
|
-
* The `trackerId` is persisted in this file (mode 0600 in $HOME) so the
|
|
180
|
-
* background daemon can read it on startup without an env var. This matches
|
|
181
|
-
* the security profile of `.mcp.json`, which already stores the same secret.
|
|
182
|
-
*/
|
|
183
|
-
export function writeConnectDaemonConfig(params) {
|
|
184
|
-
const teloraDir = resolve(homedir(), '.telora');
|
|
185
|
-
if (!existsSync(teloraDir)) {
|
|
186
|
-
mkdirSync(teloraDir, { recursive: true, mode: 0o700 });
|
|
187
|
-
}
|
|
188
|
-
const configPath = resolve(teloraDir, 'daemon.json');
|
|
189
|
-
const alreadyExists = existsSync(configPath);
|
|
190
|
-
const config = {
|
|
191
|
-
teloraUrl: params.teloraUrl,
|
|
192
|
-
trackerId: params.trackerId,
|
|
193
|
-
organizationId: params.organizationId,
|
|
194
|
-
...(params.codexPath ? { codexPath: params.codexPath } : {}),
|
|
195
|
-
products: [
|
|
196
|
-
{
|
|
197
|
-
id: params.productId,
|
|
198
|
-
repoPath: resolve(params.repoPath),
|
|
199
|
-
...(params.codexHome ? { codexHome: params.codexHome } : {}),
|
|
200
|
-
...(params.defaultCodingEngine
|
|
201
|
-
? { defaultCodingEngine: params.defaultCodingEngine }
|
|
202
|
-
: {}),
|
|
203
|
-
...(params.codexModel ? { codexModel: params.codexModel } : {}),
|
|
204
|
-
},
|
|
205
|
-
],
|
|
206
|
-
engines: {
|
|
207
|
-
focus: {
|
|
208
|
-
enabled: true,
|
|
209
|
-
integrationBranch: 'integration',
|
|
210
|
-
maxTotalSessions: 5,
|
|
211
|
-
},
|
|
212
|
-
// The factory engine is retired. Newly generated configs carry only the
|
|
213
|
-
// focus engine; a legacy `engines.factory` block in an existing config is
|
|
214
|
-
// still tolerated (ignored, force-disabled) on load by unified-shell.
|
|
215
|
-
},
|
|
216
|
-
};
|
|
217
|
-
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', { mode: 0o600 });
|
|
218
|
-
if (alreadyExists) {
|
|
219
|
-
params.io.err(`Note: replaced existing ${configPath}.\n`);
|
|
220
|
-
}
|
|
221
|
-
return configPath;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Write the AHA starter prompt + first-session marker into the repo's
|
|
225
|
-
* `.telora/` directory. The bash bootstrap reads `starter-prompt.md` and
|
|
226
|
-
* passes it to `claude` as the first user message.
|
|
227
|
-
*
|
|
228
|
-
* Returns the absolute path of the prompt file (or null on failure -- the
|
|
229
|
-
* caller treats prompt injection as best-effort and falls back to plain
|
|
230
|
-
* `claude` if this artifact is missing).
|
|
231
|
-
*/
|
|
232
|
-
export function writeStarterPromptArtifacts(repoPath, io) {
|
|
233
|
-
const teloraDir = resolve(repoPath, '.telora');
|
|
234
|
-
try {
|
|
235
|
-
if (!existsSync(teloraDir)) {
|
|
236
|
-
mkdirSync(teloraDir, { recursive: true });
|
|
237
|
-
}
|
|
238
|
-
const promptPath = resolve(teloraDir, 'starter-prompt.md');
|
|
239
|
-
writeFileSync(promptPath, STARTER_PROMPT);
|
|
240
|
-
// First-session marker: presence indicates the AHA prompt has not yet
|
|
241
|
-
// been consumed. Future logic (subsequent sessions, idempotent re-runs)
|
|
242
|
-
// can read or delete it. This delivery only writes it.
|
|
243
|
-
writeFileSync(resolve(teloraDir, '.first-session'), '');
|
|
244
|
-
io.out(`Wrote ${promptPath}.\n`);
|
|
245
|
-
return promptPath;
|
|
246
|
-
}
|
|
247
|
-
catch (err) {
|
|
248
|
-
io.err(`Warning: could not write starter prompt: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
249
|
-
return null;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Append `.telora/` and `.mcp.json` to .gitignore in the repo root if missing.
|
|
254
|
-
*
|
|
255
|
-
* `.mcp.json` is per-user-machine (absolute path to the daemon's bundled
|
|
256
|
-
* MCP). It's regenerated by `connect` and refreshed by the daemon on every
|
|
257
|
-
* startup, so collaborators don't need to share it.
|
|
258
|
-
*/
|
|
259
|
-
export function ensureGitignoreEntries(repoPath, io, extra = []) {
|
|
260
|
-
const entries = ['.telora/', '.mcp.json', ...extra];
|
|
261
|
-
const result = convergeGitignore(repoPath, entries);
|
|
262
|
-
if (result.created) {
|
|
263
|
-
io.out(`Created ${result.gitignorePath}.\n`);
|
|
264
|
-
}
|
|
265
|
-
else if (result.added.length > 0) {
|
|
266
|
-
io.out(`Updated ${result.gitignorePath}: added ${result.added.join(', ')}.\n`);
|
|
267
|
-
}
|
|
268
|
-
if (result.alreadyTracked.length > 0) {
|
|
269
|
-
io.err(`Warning: ${result.alreadyTracked.join(', ')} already tracked by git in ` +
|
|
270
|
-
`${repoPath}; the .gitignore entry is a no-op over tracked content. ` +
|
|
271
|
-
`Run 'git rm -r --cached ${result.alreadyTracked.join(' ')}' to stop tracking.\n`);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
/**
|
|
275
|
-
* Resolve an existing on-disk `telora-daemon` binary.
|
|
276
|
-
*
|
|
277
|
-
* Checks, in order:
|
|
278
|
-
* 1. A global install on PATH (`which telora-daemon`) -- the canonical
|
|
279
|
-
* long-running install.
|
|
280
|
-
* 2. A repo-local `node_modules/.bin/telora-daemon` dev dependency.
|
|
281
|
-
*
|
|
282
|
-
* Returns the absolute path to the binary, or null when none is on disk.
|
|
283
|
-
* Deliberately does NOT resolve an npx-cache binary: a daemon launched from
|
|
284
|
-
* `~/.npm/_npx/<hash>/` cannot self-update (the running process keeps loading
|
|
285
|
-
* from the cache while `npm install -g` writes the global prefix), so the
|
|
286
|
-
* long-running daemon must run from a stable on-disk install.
|
|
287
|
-
*/
|
|
288
|
-
function resolveOnDiskDaemonBinary(repoPath) {
|
|
289
|
-
try {
|
|
290
|
-
const resolved = execFileSync('which', ['telora-daemon'], {
|
|
291
|
-
encoding: 'utf-8',
|
|
292
|
-
timeout: 5_000,
|
|
293
|
-
}).trim();
|
|
294
|
-
if (resolved && existsSync(resolved))
|
|
295
|
-
return resolved;
|
|
296
|
-
}
|
|
297
|
-
catch (err) {
|
|
298
|
-
// Not on PATH -- fall through to the repo-local dev dependency.
|
|
299
|
-
log.debug('Not on PATH -- fall through to the repo-local dev dependency', { error: String(err?.message ?? err) });
|
|
300
|
-
}
|
|
301
|
-
const localBin = resolve(repoPath, 'node_modules', '.bin', 'telora-daemon');
|
|
302
|
-
if (existsSync(localBin))
|
|
303
|
-
return localBin;
|
|
304
|
-
return null;
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Start the daemon as a detached background process from a stable on-disk
|
|
308
|
-
* install -- never from an ephemeral npx cache (which cannot self-update).
|
|
309
|
-
*
|
|
310
|
-
* Resolution order:
|
|
311
|
-
* 1. Use an existing on-disk binary (global install on PATH, or a repo-local
|
|
312
|
-
* `node_modules/.bin/telora-daemon` dev dependency).
|
|
313
|
-
* 2. If none exists, run `npm install -g @telora/daemon` best-effort. Global
|
|
314
|
-
* install keeps the connect flow language-agnostic -- it leaves no
|
|
315
|
-
* `package.json`/`node_modules`/dev-dependency footprint in the user's
|
|
316
|
-
* repo (Rust/Python/Go/empty repos stay untouched).
|
|
317
|
-
* 3. Spawn the resolved on-disk `telora-daemon run`.
|
|
318
|
-
*
|
|
319
|
-
* On install failure this throws (the caller surfaces the manual
|
|
320
|
-
* `npm install -g @telora/daemon` instruction and skips auto-start); it does
|
|
321
|
-
* NOT fall back to npx, because an npx-run daemon is exactly what this focus
|
|
322
|
-
* retires.
|
|
323
|
-
*
|
|
324
|
-
* Bin name is explicit (`telora-daemon`) because the package's bins are
|
|
325
|
-
* `telora-daemon` and `telora-daemon-wrapper`; neither matches the unscoped
|
|
326
|
-
* package name `daemon`.
|
|
327
|
-
*/
|
|
328
|
-
export function startDaemonOnDisk(repoPath) {
|
|
329
|
-
let binary = resolveOnDiskDaemonBinary(repoPath);
|
|
330
|
-
if (!binary) {
|
|
331
|
-
// No on-disk install -- install globally (no repo footprint), best-effort.
|
|
332
|
-
execFileSync('npm', ['install', '-g', '@telora/daemon'], {
|
|
333
|
-
stdio: 'inherit',
|
|
334
|
-
timeout: 120_000,
|
|
335
|
-
});
|
|
336
|
-
binary = resolveOnDiskDaemonBinary(repoPath);
|
|
337
|
-
if (!binary) {
|
|
338
|
-
throw new Error('telora-daemon is not on disk after `npm install -g @telora/daemon`.');
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
ensureGlobalStateDir();
|
|
342
|
-
const logPath = resolveDaemonLogPath();
|
|
343
|
-
const logFd = openSync(logPath, 'a', 0o600);
|
|
344
|
-
try {
|
|
345
|
-
const child = spawn(binary, ['run'], {
|
|
346
|
-
detached: true,
|
|
347
|
-
stdio: ['ignore', logFd, logFd],
|
|
348
|
-
cwd: repoPath,
|
|
349
|
-
env: { ...process.env },
|
|
350
|
-
});
|
|
351
|
-
child.unref();
|
|
352
|
-
return child.pid ?? 0;
|
|
353
|
-
}
|
|
354
|
-
finally {
|
|
355
|
-
closeSync(logFd);
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
118
|
async function redeemToken(token, teloraUrl, proposedProductName, io) {
|
|
359
119
|
let response;
|
|
360
120
|
const requestBody = { token };
|
|
@@ -379,198 +139,6 @@ async function redeemToken(token, teloraUrl, proposedProductName, io) {
|
|
|
379
139
|
}
|
|
380
140
|
return body;
|
|
381
141
|
}
|
|
382
|
-
/**
|
|
383
|
-
* Look up an existing product entry in `~/.telora/daemon.json` whose
|
|
384
|
-
* repoPath matches the given path. Returns the product id when found,
|
|
385
|
-
* else null. Used by runConnect for re-run idempotency: a second run on
|
|
386
|
-
* the same dir reuses the existing binding instead of creating a duplicate
|
|
387
|
-
* product on the unbound path.
|
|
388
|
-
*/
|
|
389
|
-
export function findExistingProductForRepo(repoPath) {
|
|
390
|
-
const configPath = resolve(homedir(), '.telora', 'daemon.json');
|
|
391
|
-
if (!existsSync(configPath))
|
|
392
|
-
return null;
|
|
393
|
-
try {
|
|
394
|
-
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
395
|
-
const target = resolve(repoPath);
|
|
396
|
-
for (const entry of config.products ?? []) {
|
|
397
|
-
if (entry.repoPath && resolve(entry.repoPath) === target && entry.id) {
|
|
398
|
-
return entry.id;
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
catch (err) {
|
|
403
|
-
// Malformed config -- treat as no match; runConnect overwrites it anyway.
|
|
404
|
-
log.debug('Malformed config -- treat as no match; runConnect overwrites it anyway', { error: String(err?.message ?? err) });
|
|
405
|
-
}
|
|
406
|
-
return null;
|
|
407
|
-
}
|
|
408
|
-
/**
|
|
409
|
-
* Resolve the connected-workstation identity for `repoPath` from
|
|
410
|
-
* `~/.telora/daemon.json`: the top-level `teloraUrl` / `organizationId` plus the
|
|
411
|
-
* `products[]` entry whose `repoPath` matches. Returns null when there is no
|
|
412
|
-
* config, the config lacks url/org, or no product entry binds this repo -- i.e.
|
|
413
|
-
* the repo is not connected, so `harness add` must direct the operator to
|
|
414
|
-
* `connect` first.
|
|
415
|
-
*/
|
|
416
|
-
export function readConnectedIdentity(repoPath) {
|
|
417
|
-
const configPath = resolve(homedir(), '.telora', 'daemon.json');
|
|
418
|
-
if (!existsSync(configPath))
|
|
419
|
-
return null;
|
|
420
|
-
try {
|
|
421
|
-
const config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
422
|
-
if (!config.teloraUrl || !config.organizationId)
|
|
423
|
-
return null;
|
|
424
|
-
const target = resolve(repoPath);
|
|
425
|
-
for (const entry of config.products ?? []) {
|
|
426
|
-
if (entry.repoPath && resolve(entry.repoPath) === target && entry.id) {
|
|
427
|
-
return {
|
|
428
|
-
teloraUrl: config.teloraUrl,
|
|
429
|
-
organizationId: config.organizationId,
|
|
430
|
-
productId: entry.id,
|
|
431
|
-
};
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
catch {
|
|
436
|
-
// Malformed config -- treat as not-connected.
|
|
437
|
-
return null;
|
|
438
|
-
}
|
|
439
|
-
return null;
|
|
440
|
-
}
|
|
441
|
-
// ── Workstation tracking (D4): telora-ai detection + hook merge ─────────
|
|
442
|
-
/**
|
|
443
|
-
* Locate the `telora-ai` Python CLI on PATH. Returns the absolute path if
|
|
444
|
-
* found, else null. Detection is the entire install model -- if the user
|
|
445
|
-
* doesn't have it, connect prints a remediation hint and continues
|
|
446
|
-
* (tracking is opt-in).
|
|
447
|
-
*/
|
|
448
|
-
export function locateTeloraAi() {
|
|
449
|
-
const path = process.env.PATH ?? '';
|
|
450
|
-
const entries = path.split(delimiter).filter(Boolean);
|
|
451
|
-
for (const entry of entries) {
|
|
452
|
-
const candidate = resolve(entry, 'telora-ai');
|
|
453
|
-
if (existsSync(candidate))
|
|
454
|
-
return candidate;
|
|
455
|
-
}
|
|
456
|
-
return null;
|
|
457
|
-
}
|
|
458
|
-
/**
|
|
459
|
-
* Pre-populate the user's `~/.syntelyos/ai_tracking.db` config table with
|
|
460
|
-
* the redeem-derived credentials. Skips the
|
|
461
|
-
* `telora-ai register <code>` round-trip that Settings > AI Trackers
|
|
462
|
-
* normally requires -- the tracker row already exists in Telora (the
|
|
463
|
-
* redeem RPC inserted it), so all we need is to point the local DB at
|
|
464
|
-
* it.
|
|
465
|
-
*
|
|
466
|
-
* Each `telora-ai config <key> <value>` call is a single sqlite UPSERT;
|
|
467
|
-
* idempotent on re-runs.
|
|
468
|
-
*
|
|
469
|
-
* Returns true on success, false if any sub-call failed (the failure is
|
|
470
|
-
* surfaced via io.err but never aborts the connect flow).
|
|
471
|
-
*/
|
|
472
|
-
export function registerWorkstationLocally(params) {
|
|
473
|
-
const entries = [
|
|
474
|
-
['telora_url', params.teloraUrl],
|
|
475
|
-
['tracker_id', params.trackerId],
|
|
476
|
-
// The python tool's data model treats access_token and tracker_id as
|
|
477
|
-
// separate fields, but in our model the tracker_id IS the bearer
|
|
478
|
-
// token. Setting both keeps cmd_status / cmd_sync happy.
|
|
479
|
-
['access_token', params.trackerId],
|
|
480
|
-
['org_id', params.organizationId],
|
|
481
|
-
];
|
|
482
|
-
for (const [key, value] of entries) {
|
|
483
|
-
const result = spawnSync(params.teloraAiPath, ['config', key, value], {
|
|
484
|
-
stdio: 'pipe',
|
|
485
|
-
encoding: 'utf-8',
|
|
486
|
-
});
|
|
487
|
-
if (result.status !== 0) {
|
|
488
|
-
params.io.err(`Warning: workstation registration step '${key}' failed (${result.status ?? 'no exit'}): ${result.stderr ?? result.stdout ?? ''}\n`);
|
|
489
|
-
return false;
|
|
490
|
-
}
|
|
491
|
-
}
|
|
492
|
-
return true;
|
|
493
|
-
}
|
|
494
|
-
/**
|
|
495
|
-
* Idempotent merge of `PostToolUse` and `UserPromptSubmit` hook entries
|
|
496
|
-
* into `~/.claude/settings.json`. Mirrors the shape of `telora-ai
|
|
497
|
-
* setup-hooks` in scripts/telora-ai but runs from the daemon connect flow
|
|
498
|
-
* so the user doesn't have to invoke it manually.
|
|
499
|
-
*
|
|
500
|
-
* Existing hook entries are preserved. Re-runs do not duplicate.
|
|
501
|
-
*/
|
|
502
|
-
export function mergeUserClaudeSettingsHooks(io, homeOverride) {
|
|
503
|
-
const home = homeOverride ?? homedir();
|
|
504
|
-
const settingsDir = resolve(home, '.claude');
|
|
505
|
-
const settingsPath = resolve(settingsDir, 'settings.json');
|
|
506
|
-
const hookBin = locateBinaryOnPath('telora-ai-hook');
|
|
507
|
-
const humanHookBin = locateBinaryOnPath('telora-ai-human-hook');
|
|
508
|
-
if (!hookBin || !humanHookBin) {
|
|
509
|
-
io.err(`Warning: telora-ai-hook / telora-ai-human-hook not on PATH. Skipping ~/.claude/settings.json merge.\n`);
|
|
510
|
-
return false;
|
|
511
|
-
}
|
|
512
|
-
if (!existsSync(settingsDir))
|
|
513
|
-
mkdirSync(settingsDir, { recursive: true });
|
|
514
|
-
let parsed = {};
|
|
515
|
-
if (existsSync(settingsPath)) {
|
|
516
|
-
try {
|
|
517
|
-
const raw = readFileSync(settingsPath, 'utf-8');
|
|
518
|
-
const candidate = JSON.parse(raw);
|
|
519
|
-
if (candidate && typeof candidate === 'object' && !Array.isArray(candidate)) {
|
|
520
|
-
parsed = candidate;
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
catch (err) {
|
|
524
|
-
io.err(`Warning: ${settingsPath} is not valid JSON; leaving it alone: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
525
|
-
return false;
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
const hooks = typeof parsed.hooks === 'object' && parsed.hooks !== null
|
|
529
|
-
? parsed.hooks
|
|
530
|
-
: {};
|
|
531
|
-
const desired = {
|
|
532
|
-
PostToolUse: {
|
|
533
|
-
matcher: '',
|
|
534
|
-
hooks: [{ type: 'command', command: hookBin }],
|
|
535
|
-
},
|
|
536
|
-
UserPromptSubmit: {
|
|
537
|
-
matcher: '',
|
|
538
|
-
hooks: [{ type: 'command', command: humanHookBin }],
|
|
539
|
-
},
|
|
540
|
-
};
|
|
541
|
-
for (const [eventName, entry] of Object.entries(desired)) {
|
|
542
|
-
const existing = hooks[eventName] ?? [];
|
|
543
|
-
let alreadyPresent = false;
|
|
544
|
-
for (const rule of existing) {
|
|
545
|
-
for (const h of rule.hooks ?? []) {
|
|
546
|
-
const cmd = h.command ?? '';
|
|
547
|
-
if (cmd.includes('telora-ai-hook') || cmd.includes('telora-ai-human-hook')) {
|
|
548
|
-
alreadyPresent = true;
|
|
549
|
-
// Refresh path in case the binary moved between runs.
|
|
550
|
-
const desiredCmd = entry.hooks[0].command;
|
|
551
|
-
if (cmd !== desiredCmd)
|
|
552
|
-
h.command = desiredCmd;
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
if (!alreadyPresent)
|
|
557
|
-
existing.push(entry);
|
|
558
|
-
hooks[eventName] = existing;
|
|
559
|
-
}
|
|
560
|
-
parsed.hooks = hooks;
|
|
561
|
-
writeFileSync(settingsPath, JSON.stringify(parsed, null, 2) + '\n');
|
|
562
|
-
io.out(`Merged Telora tracking hooks into ${settingsPath}.\n`);
|
|
563
|
-
return true;
|
|
564
|
-
}
|
|
565
|
-
function locateBinaryOnPath(name) {
|
|
566
|
-
const path = process.env.PATH ?? '';
|
|
567
|
-
for (const entry of path.split(delimiter).filter(Boolean)) {
|
|
568
|
-
const candidate = resolve(entry, name);
|
|
569
|
-
if (existsSync(candidate))
|
|
570
|
-
return candidate;
|
|
571
|
-
}
|
|
572
|
-
return null;
|
|
573
|
-
}
|
|
574
142
|
/**
|
|
575
143
|
* Write `.telora/.product-bootstrapped` -- a marker the starter prompt
|
|
576
144
|
* detects on first turn to offer a rename of the basename-derived product
|
package/dist/cli/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/cli/connect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EACL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,oEAAoE;AACpE,0EAA0E;AAC1E,4CAA4C;AAC5C,MAAM,GAAG,GAAG,MAAM,CAAC;AAUnB,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAE5F;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AA0B9D;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC;IAC5C,MAAM,OAAO,GAAG,MAAM,EAAE,QAAQ,CAAC;IACjC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrE,OAAO;QACL,OAAO;QACP,KAAK,EAAE,OAAO,MAAM,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC5D,GAAG,CAAC,OAAO,MAAM,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,wBAAwB,GAAoB,QAAQ,CAAC;AAElE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF,sEAAsE;AACtE,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AA2CD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAwB;IACrD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,2EAA2E,CAAC;QACrF,KAAK,wBAAwB;YAC3B,OAAO,gEAAgE,CAAC;QAC1E,KAAK,iBAAiB;YACpB,OAAO,4EAA4E,CAAC;QACtF,KAAK,eAAe;YAClB,OAAO,CACL,4EAA4E;gBAC5E,6EAA6E;gBAC7E,+EAA+E;gBAC/E,uBAAuB,CACxB,CAAC;QACJ,KAAK,wBAAwB;YAC3B,OAAO,CACL,0EAA0E;gBAC1E,yEAAyE;gBACzE,0EAA0E,CAC3E,CAAC;QACJ,KAAK,wBAAwB;YAC3B,OAAO,CACL,uEAAuE;gBACvE,qEAAqE;gBACrE,6EAA6E,CAC9E,CAAC;QACJ;YACE,OAAO,4DAA4D,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,oCAAoC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAuB;IAC/C,OAAO;QACL,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,KAAK,EAAE,EAAE,EAAE,KAAK,IAAI,UAAU,CAAC,KAAK;KACrC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,gBAAgB,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACnD,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG;QACjB,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9C,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC;QACjD,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;QAC5C,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC;KACnD,CAAC;IAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAexC;IACC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAG;QACb,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,QAAQ,EAAE;YACR;gBACE,EAAE,EAAE,MAAM,CAAC,SAAS;gBACpB,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAClC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,GAAG,CAAC,MAAM,CAAC,mBAAmB;oBAC5B,CAAC,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,EAAE;oBACrD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChE;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI;gBACb,iBAAiB,EAAE,aAAa;gBAChC,gBAAgB,EAAE,CAAC;aACpB;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,sEAAsE;SACvE;KACF,CAAC;IAEF,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAEnF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,2BAA2B,UAAU,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CACzC,QAAgB,EAChB,EAAa;IAEb,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAC3D,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC1C,sEAAsE;QACtE,wEAAwE;QACxE,uDAAuD;QACvD,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;QACxD,EAAE,CAAC,GAAG,CAAC,SAAS,UAAU,KAAK,CAAC,CAAC;QACjC,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CACJ,4CACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,EAAa,EACb,QAA2B,EAAE;IAE7B,MAAM,OAAO,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,EAAE,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,aAAa,KAAK,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,EAAE,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,aAAa,WAAW,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,EAAE,CAAC,GAAG,CACJ,YAAY,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B;YACzE,GAAG,QAAQ,0DAA0D;YACrE,2BAA2B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAClF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,yBAAyB,CAAC,QAAgB;IACjD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE;YACxD,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACjB,gEAAgE;QAC5D,GAAG,CAAC,KAAK,CAAC,8DAA8D,EAAE,EAAE,KAAK,EAAE,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/H,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5E,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,IAAI,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,2EAA2E;QAC3E,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE;YACvD,KAAK,EAAE,SAAS;YAChB,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,oBAAoB,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;YACnC,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC;YAC/B,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IACxB,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAa,EACb,SAAiB,EACjB,mBAAkC,EAClC,EAAa;IAEb,IAAI,QAAkB,CAAC;IACvB,MAAM,WAAW,GAA4B,EAAE,KAAK,EAAE,CAAC;IACvD,IAAI,mBAAmB;QAAE,WAAW,CAAC,qBAAqB,GAAG,mBAAmB,CAAC;IACjF,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,6BAA6B,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;IAED,IAAI,IAAoB,CAAC;IACzB,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,6CAA6C,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAE1D,CAAC;QACF,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACrE,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACjB,0EAA0E;QACtE,GAAG,CAAC,KAAK,CAAC,wEAAwE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAE,GAAa,EAAE,OAAO,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IACzI,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAcD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB;IACpD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAI1D,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACrE,OAAO;oBACL,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;oBACrC,SAAS,EAAE,KAAK,CAAC,EAAE;iBACpB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,2EAA2E;AAE3E;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC9C,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAM1C;IACC,MAAM,OAAO,GAA4B;QACvC,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC;QAChC,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC;QAChC,qEAAqE;QACrE,iEAAiE;QACjE,yDAAyD;QACzD,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC;QAClC,CAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC;KAClC,CAAC;IAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;YACpE,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,EAAE,CAAC,GAAG,CACX,2CAA2C,GAAG,aAAa,MAAM,CAAC,MAAM,IAAI,SAAS,MACnF,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EACpC,IAAI,CACL,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,EAAa,EACb,YAAqB;IAErB,MAAM,IAAI,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE3D,MAAM,OAAO,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAChE,IAAI,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9B,EAAE,CAAC,GAAG,CACJ,uGAAuG,CACxG,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1E,IAAI,MAAM,GAA4B,EAAE,CAAC;IACzC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5E,MAAM,GAAG,SAAoC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,EAAE,CAAC,GAAG,CACJ,YAAY,YAAY,yCACtB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GACT,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI;QACvD,CAAC,CAAE,MAAM,CAAC,KAAyG;QACnH,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,OAAO,GAAyF;QACpG,WAAW,EAAE;YACX,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SAC/C;QACD,gBAAgB,EAAE;YAChB,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;SACpD;KACF,CAAC;IAEF,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC5B,IAAI,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;oBAC3E,cAAc,GAAG,IAAI,CAAC;oBACtB,sDAAsD;oBACtD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;oBAC1C,IAAI,GAAG,KAAK,UAAU;wBAAE,CAAC,CAAC,OAAO,GAAG,UAAU,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,cAAc;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,EAAE,CAAC,GAAG,CAAC,qCAAqC,YAAY,KAAK,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB,EAAE,EAAa;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,uBAAuB,CAAC,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CACJ,8CACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAoB;IACnD,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,yEAAyE;IACzE,6EAA6E;IAC7E,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,kBAAkB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEvG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IAED,uEAAuE;IACvE,0EAA0E;IAC1E,8EAA8E;IAC9E,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAC5E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;IAElF,IAAI,qBAAqB,EAAE,CAAC;QAC1B,EAAE,CAAC,GAAG,CAAC,wCAAwC,QAAQ,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,EAAE,CAAC,GAAG,CAAC,8BAA8B,SAAS,OAAO,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAE/E,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACnF,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAClC,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;IAClC,sEAAsE;IACtE,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,wEAAwE;IACxE,kEAAkE;IAClE,4DAA4D;IAC5D,MAAM,iBAAiB,GAAG,SAAS,CAAC;IACpC,MAAM,OAAO,GAAoB,IAAI,CAAC,OAAO,IAAI,wBAAwB,CAAC;IAE1E,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,uEAAuE;IACvE,sEAAsE;IACtE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,SAA6B,CAAC;IAClC,IAAI,UAA8B,CAAC;IACnC,IAAI,aAAiC,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvE,SAAS,GAAG,EAAE,CAAC;QACf,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,aAAa,GAAG,IAAI,CAAC,qBAAqB,IAAI,OAAO,CAAC;QACtD,EAAE,CAAC,GAAG,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;QACzC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACb,0EAA0E;QAC1E,yEAAyE;QACzE,yEAAyE;QACzE,yDAAyD;QACzD,yBAAyB,CACvB,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,EAC9E,EAAE,CACH,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QACtC,EAAE,CAAC,GAAG,CACJ,wHAAwH,CACzH,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,MAAM,UAAU,GAAG,wBAAwB,CAAC;QAC1C,SAAS,EAAE,iBAAiB;QAC5B,SAAS;QACT,cAAc;QACd,SAAS;QACT,QAAQ;QACR,EAAE;QACF,SAAS;QACT,mBAAmB,EAAE,aAAa;QAClC,UAAU;QACV,SAAS,EAAE,SAAS,IAAI,SAAS;KAClC,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,SAAS,UAAU,KAAK,CAAC,CAAC;IAEjC,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,uEAAuE;IACvE,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACjD,IAAI,UAAU,GAAkC,MAAM,CAAC;IACvD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,UAAU,GAAG,QAAQ,CAAC;QACxB,CAAC;IACH,CAAC;IACD,IAAI,aAAa,GAAkB,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;QAC7C,kBAAkB,CAAC,QAAQ,EAAE;YAC3B,aAAa;YACb,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,aAAa,GAAG,SAAS,CAAC;QAC1B,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,EAAE,CAAC,GAAG,CAAC,GAAG,aAAa,uDAAuD,CAAC,CAAC;QAClF,CAAC;aAAM,CAAC;YACN,EAAE,CAAC,GAAG,CAAC,SAAS,aAAa,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CACJ,0CACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF,6EAA6E;IAC7E,oEAAoE;IACpE,sBAAsB,CAAC,QAAQ,EAAE,EAAE,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEvE,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,gFAAgF;IAChF,0EAA0E;IAC1E,0EAA0E;IAC1E,4EAA4E;IAC5E,iFAAiF;IACjF,8EAA8E;IAC9E,iDAAiD;IACjD,uBAAuB,CACrB,QAAQ,EACR,OAAO,EACP,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,SAAS,EAAE,EAC9E,EAAE,CACH,CAAC;IAEF,4EAA4E;IAC5E,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEpE,0EAA0E;IAC1E,0EAA0E;IAC1E,qEAAqE;IACrE,qEAAqE;IACrE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACnC,EAAE,CAAC,GAAG,CACJ,qEAAqE;YACnE,oCAAoC,CACvC,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,kCAAkC;IAClC,MAAM,YAAY,GAAG,cAAc,EAAE,CAAC;IACtC,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,0BAA0B,CAAC;YAC5C,YAAY;YACZ,SAAS;YACT,cAAc;YACd,SAAS,EAAE,iBAAiB;YAC5B,EAAE;SACH,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,EAAE,CAAC,GAAG,CAAC,uCAAuC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9E,CAAC;QACD,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,GAAG,CACJ,uEAAuE;YACrE,gGAAgG;YAChG,mCAAmC,iBAAiB,IAAI;YACxD,mCAAmC,SAAS,IAAI;YAChD,6BAA6B,CAChC,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACxC,EAAE,CAAC,GAAG,CAAC,uBAAuB,SAAS,wCAAwC,CAAC,CAAC;QACnF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oEAAoE;YACpE,uEAAuE;YACvE,8CAA8C;YAC9C,EAAE,CAAC,GAAG,CACJ,kDACE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CACjD,IAAI,CACL,CAAC;YACF,EAAE,CAAC,GAAG,CAAC,8FAA8F,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,EAAE,CAAC,GAAG,CACJ,6EAA6E;QAC3E,6CAA6C;QAC7C,iDAAiD;QACjD,8CAA8C,CACjD,CAAC;IAEF,4DAA4D;IAC5D,EAAE,CAAC,GAAG,CAAC,wBAAwB,SAAS,KAAK,CAAC,CAAC;IAE/C,OAAO;QACL,SAAS;QACT,cAAc;QACd,SAAS;QACT,SAAS,EAAE,iBAAiB;QAC5B,UAAU;QACV,aAAa;QACb,iBAAiB;QACjB,SAAS;QACT,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI;QACpD,qBAAqB;KACtB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/cli/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,10 +14,37 @@
|
|
|
14
14
|
* the exact state it would approve). First drift arms a full-pass re-review (no
|
|
15
15
|
* escalation); a second consecutive drift files ONE needs_operator escalation
|
|
16
16
|
* (deduped in the DB by kind+focus). Cleared on a coverage-complete exit and on
|
|
17
|
-
* the coverage-escalation re-arm edge.
|
|
18
|
-
*
|
|
17
|
+
* the coverage-escalation re-arm edge.
|
|
18
|
+
*
|
|
19
|
+
* DURABLE: the count is a spent budget toward the review_coverage_incomplete
|
|
20
|
+
* escalation, persisted to product_focuses.below_coverage_drift_count so the
|
|
21
|
+
* second drift is still reached when a daemon re-exec falls between the two --
|
|
22
|
+
* "a spent budget stays spent" (TEL-2). recordBelowCoverageDrift /
|
|
23
|
+
* resetCoverageDriftState write through; hydrateBelowCoverageDriftCount restores
|
|
24
|
+
* it on boot. (Mutate ONLY through those functions so the write-through holds --
|
|
25
|
+
* the raw Map export remains for the read/reset call sites.)
|
|
19
26
|
*/
|
|
20
27
|
export declare const belowCoverageDriftCounts: Map<string, number>;
|
|
28
|
+
/**
|
|
29
|
+
* Durable write-through seam for the below-coverage drift count. Registered once
|
|
30
|
+
* at boot (setCoverageDriftPersister); called best-effort (fire-and-forget).
|
|
31
|
+
* Unset in tests -> pure in-memory.
|
|
32
|
+
*/
|
|
33
|
+
export type CoverageDriftPersister = (focusId: string, count: number) => void;
|
|
34
|
+
/** Register (or clear, with null) the durable write-through persister at boot. */
|
|
35
|
+
export declare function setCoverageDriftPersister(fn: CoverageDriftPersister | null): void;
|
|
36
|
+
/**
|
|
37
|
+
* Increment a focus's consecutive below-coverage drift streak by one, write it
|
|
38
|
+
* through durably, and return the new streak. The single mutation path for the
|
|
39
|
+
* increment so the durable column cannot drift from the in-memory Map.
|
|
40
|
+
*/
|
|
41
|
+
export declare function recordBelowCoverageDrift(focusId: string): number;
|
|
42
|
+
/**
|
|
43
|
+
* Restore a focus's below-coverage drift count from its persisted column, the
|
|
44
|
+
* first time the daemon sees the focus after a (re-)start. Non-clobbering +
|
|
45
|
+
* first-sight-only; skips a focus with no persisted streak.
|
|
46
|
+
*/
|
|
47
|
+
export declare function hydrateBelowCoverageDriftCount(focusId: string, count: number): void;
|
|
21
48
|
/**
|
|
22
49
|
* Focuses whose NEXT review must be a full pass (drift was detected, so the
|
|
23
50
|
* prior coverage cannot be trusted incrementally). Consumed + cleared by the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage-drift-state.d.ts","sourceRoot":"","sources":["../../src/completion/coverage-drift-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH
|
|
1
|
+
{"version":3,"file":"coverage-drift-state.d.ts","sourceRoot":"","sources":["../../src/completion/coverage-drift-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,qBAA4B,CAAC;AAElE;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAI9E,kFAAkF;AAClF,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAInF;AAED;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,aAAoB,CAAC;AAE5D;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAO7D;AAED,wDAAwD;AACxD,wBAAgB,iCAAiC,IAAI,IAAI,CAGxD"}
|
|
@@ -14,10 +14,45 @@
|
|
|
14
14
|
* the exact state it would approve). First drift arms a full-pass re-review (no
|
|
15
15
|
* escalation); a second consecutive drift files ONE needs_operator escalation
|
|
16
16
|
* (deduped in the DB by kind+focus). Cleared on a coverage-complete exit and on
|
|
17
|
-
* the coverage-escalation re-arm edge.
|
|
18
|
-
*
|
|
17
|
+
* the coverage-escalation re-arm edge.
|
|
18
|
+
*
|
|
19
|
+
* DURABLE: the count is a spent budget toward the review_coverage_incomplete
|
|
20
|
+
* escalation, persisted to product_focuses.below_coverage_drift_count so the
|
|
21
|
+
* second drift is still reached when a daemon re-exec falls between the two --
|
|
22
|
+
* "a spent budget stays spent" (TEL-2). recordBelowCoverageDrift /
|
|
23
|
+
* resetCoverageDriftState write through; hydrateBelowCoverageDriftCount restores
|
|
24
|
+
* it on boot. (Mutate ONLY through those functions so the write-through holds --
|
|
25
|
+
* the raw Map export remains for the read/reset call sites.)
|
|
19
26
|
*/
|
|
20
27
|
export const belowCoverageDriftCounts = new Map();
|
|
28
|
+
let coveragePersister = null;
|
|
29
|
+
/** Register (or clear, with null) the durable write-through persister at boot. */
|
|
30
|
+
export function setCoverageDriftPersister(fn) {
|
|
31
|
+
coveragePersister = fn;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Increment a focus's consecutive below-coverage drift streak by one, write it
|
|
35
|
+
* through durably, and return the new streak. The single mutation path for the
|
|
36
|
+
* increment so the durable column cannot drift from the in-memory Map.
|
|
37
|
+
*/
|
|
38
|
+
export function recordBelowCoverageDrift(focusId) {
|
|
39
|
+
const streak = (belowCoverageDriftCounts.get(focusId) ?? 0) + 1;
|
|
40
|
+
belowCoverageDriftCounts.set(focusId, streak);
|
|
41
|
+
coveragePersister?.(focusId, streak);
|
|
42
|
+
return streak;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Restore a focus's below-coverage drift count from its persisted column, the
|
|
46
|
+
* first time the daemon sees the focus after a (re-)start. Non-clobbering +
|
|
47
|
+
* first-sight-only; skips a focus with no persisted streak.
|
|
48
|
+
*/
|
|
49
|
+
export function hydrateBelowCoverageDriftCount(focusId, count) {
|
|
50
|
+
if (belowCoverageDriftCounts.has(focusId))
|
|
51
|
+
return; // in-memory wins during a run
|
|
52
|
+
if (count <= 0)
|
|
53
|
+
return; // no streak to restore
|
|
54
|
+
belowCoverageDriftCounts.set(focusId, count);
|
|
55
|
+
}
|
|
21
56
|
/**
|
|
22
57
|
* Focuses whose NEXT review must be a full pass (drift was detected, so the
|
|
23
58
|
* prior coverage cannot be trusted incrementally). Consumed + cleared by the
|
|
@@ -35,8 +70,13 @@ export const forceFullPassReviewFocuses = new Set();
|
|
|
35
70
|
* mirrors resetDeliveryAdvancementGuard's role for the team_failure re-arm.
|
|
36
71
|
*/
|
|
37
72
|
export function resetCoverageDriftState(focusId) {
|
|
73
|
+
const hadStreak = (belowCoverageDriftCounts.get(focusId) ?? 0) > 0;
|
|
38
74
|
belowCoverageDriftCounts.delete(focusId);
|
|
39
75
|
forceFullPassReviewFocuses.delete(focusId);
|
|
76
|
+
// Write the cleared budget through -- but only when it stood above 0, to avoid
|
|
77
|
+
// a needless DB write on every routed exit / re-arm (the streak is usually 0).
|
|
78
|
+
if (hadStreak)
|
|
79
|
+
coveragePersister?.(focusId, 0);
|
|
40
80
|
}
|
|
41
81
|
/** Test reset hook for the in-memory drift trackers. */
|
|
42
82
|
export function __resetCoverageDriftStateForTests() {
|