@adhdev/daemon-core 0.9.82-rc.47 → 0.9.82-rc.470
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/dist/boot/daemon-lifecycle.d.ts +9 -0
- package/dist/boot/process-hardening.d.ts +50 -0
- package/dist/build-info.d.ts +37 -0
- package/dist/chat/source-machine.d.ts +166 -0
- package/dist/chat/source-resolver.d.ts +104 -0
- package/dist/chat/subscription-updates.d.ts +1 -0
- package/dist/cli-adapter-types.d.ts +68 -2
- package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
- package/dist/cli-adapters/cli-state-engine.d.ts +200 -0
- package/dist/cli-adapters/provider-cli-adapter.d.ts +126 -64
- package/dist/cli-adapters/provider-cli-parse.d.ts +5 -0
- package/dist/cli-adapters/provider-cli-runtime.d.ts +34 -0
- package/dist/cli-adapters/provider-cli-shared.d.ts +74 -0
- package/dist/cli-adapters/pty-write-chunking.d.ts +34 -0
- package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
- package/dist/cli-adapters/resolve-executable.d.ts +69 -0
- package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +6 -3
- package/dist/cli-adapters/terminal-backends/types.d.ts +10 -2
- package/dist/cli-adapters/terminal-screen.d.ts +4 -11
- package/dist/commands/chat-commands-debug-bundle.d.ts +14 -0
- package/dist/commands/chat-commands-read.d.ts +7 -0
- package/dist/commands/chat-commands-scope.d.ts +39 -0
- package/dist/commands/chat-commands-shared.d.ts +33 -0
- package/dist/commands/chat-commands-write.d.ts +14 -0
- package/dist/commands/chat-commands.d.ts +10 -23
- package/dist/commands/cli-manager.d.ts +25 -1
- package/dist/commands/handler.d.ts +125 -0
- package/dist/commands/high-family/index.d.ts +3 -0
- package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
- package/dist/commands/high-family/mesh-events.d.ts +2 -0
- package/dist/commands/high-family/mesh-status.d.ts +2 -0
- package/dist/commands/high-family/types.d.ts +64 -0
- package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
- package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
- package/dist/commands/low-family/diagnostics.d.ts +2 -0
- package/dist/commands/low-family/index.d.ts +3 -0
- package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
- package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
- package/dist/commands/low-family/notification.d.ts +2 -0
- package/dist/commands/low-family/refine-config.d.ts +2 -0
- package/dist/commands/low-family/session-host.d.ts +2 -0
- package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
- package/dist/commands/low-family/status-meta.d.ts +2 -0
- package/dist/commands/low-family/types.d.ts +33 -0
- package/dist/commands/med-family/cli-agent.d.ts +2 -0
- package/dist/commands/med-family/fast-forward.d.ts +2 -0
- package/dist/commands/med-family/ide.d.ts +10 -0
- package/dist/commands/med-family/index.d.ts +3 -0
- package/dist/commands/med-family/mesh-crud.d.ts +48 -0
- package/dist/commands/med-family/mesh-host-pairing.d.ts +2 -0
- package/dist/commands/med-family/mesh-queue.d.ts +2 -0
- package/dist/commands/med-family/mesh-restart.d.ts +2 -0
- package/dist/commands/med-family/types.d.ts +152 -0
- package/dist/commands/mesh-coordinator.d.ts +85 -1
- package/dist/commands/router-aggregate-status.d.ts +24 -0
- package/dist/commands/router-mesh-session-owner.d.ts +59 -0
- package/dist/commands/router-refine.d.ts +137 -0
- package/dist/commands/router-worktree-cleanup.d.ts +133 -0
- package/dist/commands/router.d.ts +204 -15
- package/dist/commands/upgrade-helper.d.ts +41 -1
- package/dist/config/chat-history.d.ts +9 -0
- package/dist/config/config.d.ts +19 -0
- package/dist/config/mesh-config.d.ts +136 -1
- package/dist/config/mesh-json-config.d.ts +199 -0
- package/dist/config/registry-resolver.d.ts +54 -0
- package/dist/config/repo-settings.d.ts +77 -0
- package/dist/daemon/dev-server.d.ts +0 -2
- package/dist/detection/cli-detector.d.ts +17 -0
- package/dist/detection/ide-detector.d.ts +13 -0
- package/dist/detection/win32-ide-version.d.ts +37 -0
- package/dist/git/change-impact-config.d.ts +159 -0
- package/dist/git/git-commands.d.ts +26 -2
- package/dist/git/git-diff.d.ts +6 -0
- package/dist/git/git-executor.d.ts +11 -0
- package/dist/git/git-status.d.ts +57 -0
- package/dist/git/git-types.d.ts +2 -50
- package/dist/git/git-worktree.d.ts +71 -1
- package/dist/git/index.d.ts +3 -1
- package/dist/index.d.ts +70 -16
- package/dist/index.js +58255 -24541
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +59189 -25650
- package/dist/index.mjs.map +1 -1
- package/dist/installer.d.ts +1 -4
- package/dist/ipc/local-ipc-server.d.ts +91 -0
- package/dist/launch.d.ts +1 -1
- package/dist/logging/async-batch-writer.d.ts +10 -0
- package/dist/logging/debug-config.d.ts +16 -0
- package/dist/logging/log-redactor.d.ts +24 -0
- package/dist/logging/log-tail-reader.d.ts +81 -0
- package/dist/logging/logger.d.ts +1 -1
- package/dist/mesh/contracts.d.ts +230 -0
- package/dist/mesh/coordinator-prompt.d.ts +76 -0
- package/dist/mesh/coordinator-registry.d.ts +59 -0
- package/dist/mesh/mesh-active-work.d.ts +203 -0
- package/dist/mesh/mesh-clone-grace.d.ts +8 -0
- package/dist/mesh/mesh-completion-synthesis.d.ts +4 -0
- package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
- package/dist/mesh/mesh-delivery-policy.d.ts +104 -0
- package/dist/mesh/mesh-event-classify.d.ts +7 -0
- package/dist/mesh/mesh-event-forwarding.d.ts +41 -0
- package/dist/mesh/mesh-event-trace.d.ts +21 -0
- package/dist/mesh/mesh-events-coordinator.d.ts +4 -0
- package/dist/mesh/mesh-events-pending.d.ts +246 -0
- package/dist/mesh/mesh-events-stale.d.ts +61 -0
- package/dist/mesh/mesh-events-utils.d.ts +75 -0
- package/dist/mesh/mesh-events.d.ts +6 -49
- package/dist/mesh/mesh-fast-forward.d.ts +81 -0
- package/dist/mesh/mesh-host-ownership.d.ts +29 -0
- package/dist/mesh/mesh-init.d.ts +128 -0
- package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
- package/dist/mesh/mesh-ledger.d.ts +139 -1
- package/dist/mesh/mesh-magi-status.d.ts +63 -0
- package/dist/mesh/mesh-missions.d.ts +226 -0
- package/dist/mesh/mesh-node-identity.d.ts +310 -0
- package/dist/mesh/mesh-queue-assignment.d.ts +158 -0
- package/dist/mesh/mesh-reconcile-acked-hold.d.ts +17 -0
- package/dist/mesh/mesh-reconcile-config.d.ts +6 -0
- package/dist/mesh/mesh-reconcile-identity.d.ts +6 -0
- package/dist/mesh/mesh-reconcile-loop.d.ts +80 -0
- package/dist/mesh/mesh-reconcile-v2-backstop.d.ts +16 -0
- package/dist/mesh/mesh-refine-batch.d.ts +68 -0
- package/dist/mesh/mesh-refine-gates.d.ts +428 -0
- package/dist/mesh/mesh-refine-status.d.ts +62 -0
- package/dist/mesh/mesh-remote-event-pull.d.ts +15 -0
- package/dist/mesh/mesh-review-inbox.d.ts +90 -0
- package/dist/mesh/mesh-routing.d.ts +70 -0
- package/dist/mesh/mesh-runtime-store.d.ts +508 -0
- package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
- package/dist/mesh/mesh-task-inflight.d.ts +46 -0
- package/dist/mesh/mesh-task-stats.d.ts +49 -0
- package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
- package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
- package/dist/mesh/mesh-work-queue.d.ts +363 -5
- package/dist/mesh/preview-freshness.d.ts +28 -0
- package/dist/mesh/refine-config.d.ts +216 -0
- package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
- package/dist/providers/acp-provider-instance.d.ts +5 -0
- package/dist/providers/approval-utils.d.ts +46 -0
- package/dist/providers/chat-message-normalization.d.ts +58 -1
- package/dist/providers/cli-provider-effect-format.d.ts +30 -0
- package/dist/providers/cli-provider-history-dedup.d.ts +17 -0
- package/dist/providers/cli-provider-input-prompt.d.ts +12 -0
- package/dist/providers/cli-provider-instance-types.d.ts +45 -0
- package/dist/providers/cli-provider-instance.d.ts +340 -30
- package/dist/providers/cli-provider-status-helpers.d.ts +46 -0
- package/dist/providers/cli-provider-transcript-merge.d.ts +7 -0
- package/dist/providers/contracts.d.ts +149 -6
- package/dist/providers/external-sources.d.ts +71 -0
- package/dist/providers/manual-attendance.d.ts +79 -0
- package/dist/providers/native-history/antigravity-claim-registry.d.ts +28 -0
- package/dist/providers/native-history/antigravity-cli-transcript.d.ts +137 -0
- package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
- package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
- package/dist/providers/native-history/constants.d.ts +12 -0
- package/dist/providers/native-history/dispatcher.d.ts +31 -0
- package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
- package/dist/providers/native-history/index.d.ts +13 -0
- package/dist/providers/provider-instance-manager.d.ts +29 -0
- package/dist/providers/provider-instance.d.ts +30 -1
- package/dist/providers/provider-loader.d.ts +42 -5
- package/dist/providers/provider-trust.d.ts +31 -0
- package/dist/providers/read-chat-contract.d.ts +29 -0
- package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
- package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
- package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
- package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
- package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
- package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
- package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
- package/dist/providers/sdk/v1/index.d.ts +30 -0
- package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
- package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
- package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
- package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
- package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
- package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
- package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
- package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
- package/dist/providers/spec/adapter.d.ts +98 -0
- package/dist/providers/spec/cli-adapter.d.ts +223 -0
- package/dist/providers/spec/evaluator.d.ts +45 -0
- package/dist/providers/spec/fsm-driver.d.ts +449 -0
- package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
- package/dist/providers/spec/fsm-loader.d.ts +14 -0
- package/dist/providers/spec/fsm-types.d.ts +202 -0
- package/dist/providers/spec/native-history-executor.d.ts +41 -0
- package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
- package/dist/providers/spec/route.d.ts +4 -0
- package/dist/providers/spec/types.d.ts +244 -0
- package/dist/providers/status-monitor.d.ts +7 -7
- package/dist/providers/transcript-v2.d.ts +176 -0
- package/dist/providers/types/interactive-prompt.d.ts +84 -0
- package/dist/providers/working-dir.d.ts +17 -0
- package/dist/repo-mesh-types.d.ts +629 -12
- package/dist/runtime-defaults.d.ts +2 -0
- package/dist/session-host/managed-host.d.ts +64 -0
- package/dist/session-host/runtime-surface.d.ts +10 -16
- package/dist/sessions/registry.d.ts +6 -0
- package/dist/shared-types-extra.d.ts +2 -4
- package/dist/shared-types.d.ts +86 -55
- package/dist/status/normalize.d.ts +1 -1
- package/dist/status/normalize.js +1 -0
- package/dist/status/normalize.js.map +1 -1
- package/dist/status/normalize.mjs +1 -0
- package/dist/status/normalize.mjs.map +1 -1
- package/dist/status/reporter.d.ts +2 -0
- package/dist/status/snapshot.d.ts +26 -0
- package/dist/system/hash.d.ts +8 -0
- package/dist/system/load-better-sqlite3.d.ts +21 -0
- package/dist/types.d.ts +5 -0
- package/package.json +11 -4
- package/src/agent-stream/poller.ts +2 -3
- package/src/agent-stream/provider-adapter.ts +1 -1
- package/src/boot/daemon-lifecycle.ts +80 -14
- package/src/boot/process-hardening.ts +89 -0
- package/src/build-info.ts +73 -0
- package/src/chat/source-machine.ts +534 -0
- package/src/chat/source-resolver.ts +0 -0
- package/src/chat/subscription-updates.ts +20 -1
- package/src/cli-adapter-types.d.ts +3 -1
- package/src/cli-adapter-types.ts +68 -2
- package/src/cli-adapters/cli-script-runner.ts +421 -0
- package/src/cli-adapters/cli-state-engine.ts +1246 -0
- package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
- package/src/cli-adapters/provider-cli-adapter.ts +914 -1144
- package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
- package/src/cli-adapters/provider-cli-parse.ts +19 -0
- package/src/cli-adapters/provider-cli-runtime.ts +56 -7
- package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
- package/src/cli-adapters/provider-cli-shared.ts +121 -11
- package/src/cli-adapters/pty-transport.ts +2 -1
- package/src/cli-adapters/pty-write-chunking.ts +106 -0
- package/src/cli-adapters/raw-terminal-io.ts +252 -0
- package/src/cli-adapters/resolve-executable.ts +204 -0
- package/src/cli-adapters/session-host-transport.ts +2 -1
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +63 -29
- package/src/cli-adapters/terminal-backends/types.ts +10 -3
- package/src/cli-adapters/terminal-screen.ts +16 -81
- package/src/commands/chat-commands-debug-bundle.ts +398 -0
- package/src/commands/chat-commands-read.ts +2488 -0
- package/src/commands/chat-commands-scope.ts +54 -0
- package/src/commands/chat-commands-shared.ts +114 -0
- package/src/commands/chat-commands-write.ts +891 -0
- package/src/commands/chat-commands.ts +19 -1841
- package/src/commands/cli-manager.ts +596 -27
- package/src/commands/handler.ts +845 -2
- package/src/commands/high-family/index.ts +28 -0
- package/src/commands/high-family/mesh-coordinator-launch.ts +680 -0
- package/src/commands/high-family/mesh-events.ts +102 -0
- package/src/commands/high-family/mesh-status.ts +849 -0
- package/src/commands/high-family/types.ts +80 -0
- package/src/commands/low-family/coordinator-prompt.ts +72 -0
- package/src/commands/low-family/daemon-lifecycle.ts +120 -0
- package/src/commands/low-family/diagnostics.ts +57 -0
- package/src/commands/low-family/index.ts +37 -0
- package/src/commands/low-family/mesh-ledger.ts +62 -0
- package/src/commands/low-family/mesh-node-logs.ts +87 -0
- package/src/commands/low-family/notification.ts +116 -0
- package/src/commands/low-family/refine-config.ts +106 -0
- package/src/commands/low-family/session-host.ts +274 -0
- package/src/commands/low-family/spec-providerdev.ts +217 -0
- package/src/commands/low-family/status-meta.ts +112 -0
- package/src/commands/low-family/types.ts +39 -0
- package/src/commands/med-family/cli-agent.ts +241 -0
- package/src/commands/med-family/fast-forward.ts +230 -0
- package/src/commands/med-family/ide.ts +163 -0
- package/src/commands/med-family/index.ts +37 -0
- package/src/commands/med-family/mesh-crud.ts +1287 -0
- package/src/commands/med-family/mesh-host-pairing.ts +234 -0
- package/src/commands/med-family/mesh-queue.ts +167 -0
- package/src/commands/med-family/mesh-restart.ts +92 -0
- package/src/commands/med-family/types.ts +153 -0
- package/src/commands/mesh-coordinator.ts +334 -124
- package/src/commands/router-aggregate-status.ts +209 -0
- package/src/commands/router-mesh-session-owner.ts +114 -0
- package/src/commands/router-refine.ts +1711 -0
- package/src/commands/router-worktree-cleanup.ts +870 -0
- package/src/commands/router.ts +795 -4143
- package/src/commands/stream-commands.ts +8 -0
- package/src/commands/upgrade-helper.ts +310 -45
- package/src/config/chat-history.ts +493 -24
- package/src/config/config.ts +30 -0
- package/src/config/mesh-config.ts +632 -23
- package/src/config/mesh-json-config.ts +376 -0
- package/src/config/recent-activity.ts +8 -2
- package/src/config/registry-resolver.ts +100 -0
- package/src/config/repo-settings.ts +111 -0
- package/src/daemon/dev-auto-implement.ts +3 -2
- package/src/daemon/dev-cli-debug.ts +10 -1
- package/src/daemon/dev-server.ts +0 -541
- package/src/detection/cli-detector.ts +94 -9
- package/src/detection/ide-detector.ts +55 -16
- package/src/detection/win32-ide-version.ts +106 -0
- package/src/git/change-impact-config.ts +354 -0
- package/src/git/git-commands.ts +112 -16
- package/src/git/git-diff.ts +81 -11
- package/src/git/git-executor.ts +12 -0
- package/src/git/git-status.ts +767 -48
- package/src/git/git-types.ts +14 -62
- package/src/git/git-worktree.ts +261 -4
- package/src/git/index.ts +17 -0
- package/src/index.ts +207 -13
- package/src/installer.d.ts +1 -1
- package/src/installer.ts +8 -6
- package/src/ipc/local-ipc-server.ts +278 -0
- package/src/launch.d.ts +1 -1
- package/src/launch.ts +37 -28
- package/src/logging/async-batch-writer.ts +55 -0
- package/src/logging/command-log.ts +7 -5
- package/src/logging/debug-config.ts +25 -0
- package/src/logging/debug-trace.ts +7 -2
- package/src/logging/log-redactor.ts +100 -0
- package/src/logging/log-tail-reader.ts +341 -0
- package/src/logging/logger.ts +14 -7
- package/src/mesh/contracts.ts +469 -0
- package/src/mesh/coordinator-prompt.ts +572 -34
- package/src/mesh/coordinator-registry.ts +121 -0
- package/src/mesh/mesh-active-work.ts +706 -0
- package/src/mesh/mesh-clone-grace.ts +68 -0
- package/src/mesh/mesh-completion-synthesis.ts +398 -0
- package/src/mesh/mesh-coordinator-config.ts +97 -0
- package/src/mesh/mesh-delivery-policy.ts +284 -0
- package/src/mesh/mesh-event-classify.ts +78 -0
- package/src/mesh/mesh-event-forwarding.ts +1964 -0
- package/src/mesh/mesh-event-trace.ts +67 -0
- package/src/mesh/mesh-events-coordinator.ts +32 -0
- package/src/mesh/mesh-events-pending.ts +1494 -0
- package/src/mesh/mesh-events-stale.ts +440 -0
- package/src/mesh/mesh-events-utils.ts +443 -0
- package/src/mesh/mesh-events.ts +43 -1035
- package/src/mesh/mesh-fast-forward.ts +856 -0
- package/src/mesh/mesh-host-ownership.ts +111 -0
- package/src/mesh/mesh-init.ts +350 -0
- package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
- package/src/mesh/mesh-ledger.ts +898 -102
- package/src/mesh/mesh-magi-status.ts +223 -0
- package/src/mesh/mesh-missions.ts +568 -0
- package/src/mesh/mesh-node-identity.ts +2065 -0
- package/src/mesh/mesh-queue-assignment.ts +2247 -0
- package/src/mesh/mesh-reconcile-acked-hold.ts +230 -0
- package/src/mesh/mesh-reconcile-config.ts +66 -0
- package/src/mesh/mesh-reconcile-identity.ts +103 -0
- package/src/mesh/mesh-reconcile-loop.ts +1473 -0
- package/src/mesh/mesh-reconcile-v2-backstop.ts +62 -0
- package/src/mesh/mesh-refine-batch.ts +205 -0
- package/src/mesh/mesh-refine-gates.ts +1686 -0
- package/src/mesh/mesh-refine-status.ts +231 -0
- package/src/mesh/mesh-remote-event-pull.ts +279 -0
- package/src/mesh/mesh-review-inbox.ts +308 -0
- package/src/mesh/mesh-routing.ts +291 -0
- package/src/mesh/mesh-runtime-store.ts +2150 -0
- package/src/mesh/mesh-scheduling-runtime.ts +198 -0
- package/src/mesh/mesh-task-inflight.ts +70 -0
- package/src/mesh/mesh-task-stats.ts +161 -0
- package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
- package/src/mesh/mesh-warmup-deadline.ts +152 -0
- package/src/mesh/mesh-work-queue.ts +1437 -147
- package/src/mesh/preview-freshness.ts +163 -0
- package/src/mesh/refine-config.ts +423 -0
- package/src/mesh/worktree-bootstrap-config.ts +599 -0
- package/src/providers/acp-provider-instance.ts +43 -10
- package/src/providers/approval-utils.d.ts +5 -0
- package/src/providers/approval-utils.ts +100 -6
- package/src/providers/chat-message-normalization.ts +126 -4
- package/src/providers/cli-provider-effect-format.ts +53 -0
- package/src/providers/cli-provider-history-dedup.ts +75 -0
- package/src/providers/cli-provider-input-prompt.ts +133 -0
- package/src/providers/cli-provider-instance-types.ts +131 -0
- package/src/providers/cli-provider-instance.ts +2500 -497
- package/src/providers/cli-provider-status-helpers.ts +123 -0
- package/src/providers/cli-provider-transcript-merge.ts +114 -0
- package/src/providers/contracts.d.ts +55 -0
- package/src/providers/contracts.ts +160 -6
- package/src/providers/extension-provider-instance.ts +12 -7
- package/src/providers/external-sources.ts +218 -0
- package/src/providers/ide-provider-instance.ts +35 -12
- package/src/providers/manual-attendance.ts +105 -0
- package/src/providers/native-history/antigravity-claim-registry.ts +131 -0
- package/src/providers/native-history/antigravity-cli-transcript.ts +1193 -0
- package/src/providers/native-history/claude-cli-transcript.ts +396 -0
- package/src/providers/native-history/codex-cli-transcript.ts +479 -0
- package/src/providers/native-history/constants.ts +19 -0
- package/src/providers/native-history/dispatcher.ts +503 -0
- package/src/providers/native-history/hermes-cli-transcript.ts +312 -0
- package/src/providers/native-history/index.ts +30 -0
- package/src/providers/provider-instance-manager.ts +71 -0
- package/src/providers/provider-instance.ts +24 -1
- package/src/providers/provider-loader.ts +700 -55
- package/src/providers/provider-schema.ts +87 -14
- package/src/providers/provider-trust.ts +114 -0
- package/src/providers/read-chat-contract.ts +76 -16
- package/src/providers/sdk/README.md +49 -0
- package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
- package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
- package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
- package/src/providers/sdk/v1/builders/cli/parse-approval.ts +261 -0
- package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
- package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
- package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
- package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
- package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
- package/src/providers/sdk/v1/index.ts +152 -0
- package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
- package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
- package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
- package/src/providers/sdk/v1/schemas/cli/provider.schema.json +509 -0
- package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
- package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
- package/src/providers/sdk/v1/types/cli/index.ts +365 -0
- package/src/providers/sdk/v1/types/common/index.ts +229 -0
- package/src/providers/sdk/v1/validators/index.ts +19 -0
- package/src/providers/sdk/v1/validators/manifest.ts +110 -0
- package/src/providers/sdk/v1/validators/taint.ts +309 -0
- package/src/providers/spec/adapter.ts +246 -0
- package/src/providers/spec/cli-adapter.ts +1064 -0
- package/src/providers/spec/evaluator.ts +407 -0
- package/src/providers/spec/fsm-driver.ts +1528 -0
- package/src/providers/spec/fsm-evaluator.ts +290 -0
- package/src/providers/spec/fsm-loader.ts +128 -0
- package/src/providers/spec/fsm-types.ts +301 -0
- package/src/providers/spec/native-history-executor.ts +1241 -0
- package/src/providers/spec/pre-launch-trust.ts +104 -0
- package/src/providers/spec/route.ts +51 -0
- package/src/providers/spec/types.ts +284 -0
- package/src/providers/status-monitor.d.ts +7 -7
- package/src/providers/status-monitor.ts +37 -22
- package/src/providers/transcript-v2.ts +567 -0
- package/src/providers/types/interactive-prompt.ts +536 -0
- package/src/providers/version-archive.ts +64 -24
- package/src/providers/working-dir.ts +23 -0
- package/src/repo-mesh-types.ts +868 -13
- package/src/runtime-defaults.ts +39 -0
- package/src/session-host/managed-host.ts +218 -0
- package/src/session-host/runtime-surface.ts +20 -80
- package/src/sessions/registry.ts +6 -0
- package/src/shared-types-extra.ts +2 -4
- package/src/shared-types.d.ts +8 -0
- package/src/shared-types.ts +124 -55
- package/src/status/builders.ts +26 -6
- package/src/status/normalize.ts +2 -0
- package/src/status/reporter.ts +19 -1
- package/src/status/snapshot.ts +95 -26
- package/src/system/hash.ts +23 -0
- package/src/system/host-memory.ts +29 -12
- package/src/system/load-better-sqlite3.ts +68 -0
- package/src/types.ts +5 -0
- package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
- package/dist/mesh/mesh-sync.d.ts +0 -53
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
- package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
- package/src/mesh/mesh-sync.ts +0 -111
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { DaemonCommandRouter, CommandRouterResult } from './router.js';
|
|
2
|
+
import { MeshRefineAsyncJobStatus, MeshRefineBatchJobHandle, MeshRefineBatchJobStatus, MeshRefineJobHandle, RefineContext, RefineStageOutcome } from '../mesh/mesh-refine-gates.js';
|
|
3
|
+
export declare function buildRefineJobKey(self: DaemonCommandRouter, meshId: string, nodeId: string): string;
|
|
4
|
+
export declare function buildRefineJobHandle(self: DaemonCommandRouter, args: {
|
|
5
|
+
meshId: string;
|
|
6
|
+
nodeId: string;
|
|
7
|
+
node?: any;
|
|
8
|
+
status?: MeshRefineAsyncJobStatus;
|
|
9
|
+
startedAt?: string;
|
|
10
|
+
completedAt?: string;
|
|
11
|
+
jobId?: string;
|
|
12
|
+
interactionId?: string;
|
|
13
|
+
retryOfJobId?: string;
|
|
14
|
+
coordinatorDaemonId?: string;
|
|
15
|
+
}): MeshRefineJobHandle;
|
|
16
|
+
export declare function queueRefineJobEvent(self: DaemonCommandRouter, event: 'refine:accepted' | 'refine:completed' | 'refine:failed', handle: MeshRefineJobHandle, result?: Record<string, unknown>): void;
|
|
17
|
+
export declare function appendRefineJobLedger(self: DaemonCommandRouter, kind: 'task_dispatched' | 'task_completed' | 'task_failed', handle: MeshRefineJobHandle, result?: Record<string, unknown>): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* On daemon restart, scan all mesh ledgers for refine jobs that were dispatched
|
|
20
|
+
* but never completed/failed (i.e. the daemon died mid-job). Re-queue each one
|
|
21
|
+
* so the job runs to completion automatically without coordinator intervention.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resumePendingRefineJobsOnStartup(self: DaemonCommandRouter): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Synchronous refinery for a single worktree node — the gate pipeline that
|
|
26
|
+
* validates, preflights (patch-equivalence / submodule-reachability /
|
|
27
|
+
* no-op), merges, aligns submodules, cleans up the worktree node and
|
|
28
|
+
* (optionally) pushes. The body is a flat sequence of stage methods; each
|
|
29
|
+
* stage either returns a terminal CommandRouterResult (gate failure or a
|
|
30
|
+
* successful already-merged short-circuit) or `continue` with the extended
|
|
31
|
+
* context. Behavior — stage order, every early-exit, and every result shape —
|
|
32
|
+
* is identical to the previous single inlined body.
|
|
33
|
+
*/
|
|
34
|
+
export declare function executeMeshRefineNodeSynchronously(self: DaemonCommandRouter, meshId: string, nodeId: string, args: any): Promise<CommandRouterResult>;
|
|
35
|
+
/**
|
|
36
|
+
* resolve_refs stage: resolve the mesh / worktree node / source node /
|
|
37
|
+
* repoRoot, then the worktree branch, base branch, fetched base head and
|
|
38
|
+
* branch head. Seeds the RefineContext consumed by every later stage.
|
|
39
|
+
*/
|
|
40
|
+
export declare function refineResolveRefsStage(self: DaemonCommandRouter, meshId: string, nodeId: string, args: any, refineStages: Array<Record<string, unknown>>): Promise<RefineStageOutcome>;
|
|
41
|
+
/**
|
|
42
|
+
* validation stage: run the refinery validation gate (typecheck / test /
|
|
43
|
+
* lint / build per node config) and block on failure or when no allowlisted
|
|
44
|
+
* command was available. On pass, stores the summary on the context.
|
|
45
|
+
*/
|
|
46
|
+
export declare function refineValidationStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
|
|
47
|
+
/**
|
|
48
|
+
* patch_equivalence stage: preflight that the worktree branch's cumulative
|
|
49
|
+
* patch is equivalent to base+branch. On a "behind base" branch, auto-rebase
|
|
50
|
+
* once and re-check; on an empty merge-tree with real branch changes, treat as
|
|
51
|
+
* already-merged-via-another-path and short-circuit to cleanup. Mutates the
|
|
52
|
+
* context's branchHead (after rebase) and patchEquivalence (rebased gate).
|
|
53
|
+
*/
|
|
54
|
+
export declare function refinePatchEquivalenceStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
|
|
55
|
+
/**
|
|
56
|
+
* submodule_reachability stage: verify every submodule gitlink commit that
|
|
57
|
+
* would land via the merge is reachable from its configured remote main
|
|
58
|
+
* branch (optionally auto-publishing when policy allows). Blocks the merge
|
|
59
|
+
* when any commit is unreachable. Stores the result on the context.
|
|
60
|
+
*/
|
|
61
|
+
export declare function refineSubmoduleReachabilityStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
|
|
62
|
+
/**
|
|
63
|
+
* effective_diff stage (no-op guard): block a silent no-op merge where the
|
|
64
|
+
* branch produces no effective root-tree diff against base — typically a
|
|
65
|
+
* submodule that has commits but whose root-level gitlink (pointer) bump was
|
|
66
|
+
* never committed, so the merge would land nothing real on main.
|
|
67
|
+
*/
|
|
68
|
+
export declare function refineEffectiveDiffStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
|
|
69
|
+
/**
|
|
70
|
+
* merge + finalize stage: perform the --no-ff merge, align submodule
|
|
71
|
+
* checkouts after merge, clean up (remove) the worktree node per policy,
|
|
72
|
+
* append the refinery ledger entry, and (unless approval is required) push the
|
|
73
|
+
* base branch. Always terminal — produces the final CommandRouterResult.
|
|
74
|
+
*/
|
|
75
|
+
export declare function refineMergeAndFinalizeStage(self: DaemonCommandRouter, ctx: RefineContext): Promise<RefineStageOutcome>;
|
|
76
|
+
/**
|
|
77
|
+
* Batch refinery: converge multiple sibling worktree nodes onto the base branch
|
|
78
|
+
* in one sequential pipeline, absorbing the rebase + patch-equivalence churn that
|
|
79
|
+
* arises when several siblings touch the same submodule.
|
|
80
|
+
*
|
|
81
|
+
* Reuses executeMeshRefineNodeSynchronously per node — every node goes through the
|
|
82
|
+
* exact same validation / patch-equivalence / submodule-reachability / merge / cleanup
|
|
83
|
+
* gates, including its built-in auto-rebase onto fresh origin/<base>. Because each
|
|
84
|
+
* node fetches origin/<base> at the start of its own refine, a node merged earlier in
|
|
85
|
+
* the batch advances the base, and the next node's refine auto-rebases onto it before
|
|
86
|
+
* re-running patch-equivalence. No force-push, no reset — conflicting nodes are
|
|
87
|
+
* isolated as blocked_review while the rest of the batch proceeds.
|
|
88
|
+
*/
|
|
89
|
+
export declare function batchRefineMeshNodes(self: DaemonCommandRouter, meshId: string, requestedNodeIds: string[] | undefined, args: any): Promise<CommandRouterResult>;
|
|
90
|
+
/**
|
|
91
|
+
* Convergence core shared by the synchronous batch entry and the async batch job.
|
|
92
|
+
* Refines each node in order: the per-node refine pipeline fetches origin/<base>
|
|
93
|
+
* fresh, so each merged sibling advances the base before the next node's auto-rebase
|
|
94
|
+
* + patch-equivalence re-check. A blocked/failed node is isolated; the batch
|
|
95
|
+
* continues with the remaining nodes. Does NOT touch the per-node merge logic — it
|
|
96
|
+
* only sequences calls to executeMeshRefineNodeSynchronously and aggregates outcomes.
|
|
97
|
+
*/
|
|
98
|
+
export declare function runMeshRefineBatchConvergence(self: DaemonCommandRouter, meshId: string, orderedNodes: any[], ordering: {
|
|
99
|
+
order: string[];
|
|
100
|
+
rationale?: unknown;
|
|
101
|
+
}, args: any): Promise<CommandRouterResult>;
|
|
102
|
+
export declare function buildRefineBatchJobKey(self: DaemonCommandRouter, meshId: string): string;
|
|
103
|
+
export declare function buildRefineBatchJobHandle(self: DaemonCommandRouter, args: {
|
|
104
|
+
meshId: string;
|
|
105
|
+
nodeIds: string[];
|
|
106
|
+
order: string[];
|
|
107
|
+
status?: MeshRefineBatchJobStatus;
|
|
108
|
+
startedAt?: string;
|
|
109
|
+
completedAt?: string;
|
|
110
|
+
jobId?: string;
|
|
111
|
+
interactionId?: string;
|
|
112
|
+
coordinatorDaemonId?: string;
|
|
113
|
+
}): MeshRefineBatchJobHandle;
|
|
114
|
+
/**
|
|
115
|
+
* Emit a batch Refinery terminal/accepted event through the SAME pending-event +
|
|
116
|
+
* forward mechanism single-node refine uses (queueRefineJobEvent), so the
|
|
117
|
+
* coordinator's existing refine:accepted/completed/failed handling and message
|
|
118
|
+
* renderer apply unchanged. The aggregate per-node results ride along in `result`.
|
|
119
|
+
*/
|
|
120
|
+
export declare function queueRefineBatchJobEvent(self: DaemonCommandRouter, event: 'refine:accepted' | 'refine:completed' | 'refine:failed', handle: MeshRefineBatchJobHandle, result?: Record<string, unknown>): void;
|
|
121
|
+
export declare function appendRefineBatchJobLedger(self: DaemonCommandRouter, kind: 'task_dispatched' | 'task_completed' | 'task_failed', handle: MeshRefineBatchJobHandle, result?: Record<string, unknown>): Promise<void>;
|
|
122
|
+
export declare function finishMeshRefineBatchJob(self: DaemonCommandRouter, handle: MeshRefineBatchJobHandle, orderedNodes: any[], ordering: {
|
|
123
|
+
order: string[];
|
|
124
|
+
rationale?: unknown;
|
|
125
|
+
}, args: any): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Async entry for the batch Refinery execute path. Mirrors startMeshRefineJob:
|
|
128
|
+
* resolves the plan synchronously (so target/ordering errors and the dry-run shape
|
|
129
|
+
* stay synchronous), then for execute=true registers an in-flight batch job, returns
|
|
130
|
+
* {async:true, status:'accepted', batch:true, ...plan} immediately, and runs the
|
|
131
|
+
* convergence loop in the background — emitting the same terminal refine event.
|
|
132
|
+
* Idempotent: a batch already in flight for this mesh returns the running handle
|
|
133
|
+
* with duplicate:true rather than spawning a second background job.
|
|
134
|
+
*/
|
|
135
|
+
export declare function startMeshRefineBatchJob(self: DaemonCommandRouter, meshId: string, requestedNodeIds: string[] | undefined, args: any): Promise<CommandRouterResult>;
|
|
136
|
+
export declare function finishMeshRefineJob(self: DaemonCommandRouter, handle: MeshRefineJobHandle, args: any): Promise<void>;
|
|
137
|
+
export declare function startMeshRefineJob(self: DaemonCommandRouter, meshId: string, nodeId: string, args: any): Promise<CommandRouterResult>;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { DaemonCommandRouter } from './router.js';
|
|
2
|
+
import type { RepoMeshSessionCleanupMode } from '../repo-mesh-types.js';
|
|
3
|
+
export declare function sessionMatchesMeshNode(self: DaemonCommandRouter, record: any, node: any, nodeId: string, sessionIds?: Set<string>): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Best-effort recursive removal of a managed worktree directory.
|
|
6
|
+
*
|
|
7
|
+
* The git-registry de-registration is the safety-critical step of worktree
|
|
8
|
+
* teardown; a leftover directory must never gate dropping the node from the
|
|
9
|
+
* mesh. On Windows, `fs.rmSync` can throw EINVAL/EPERM/EBUSY on submodule
|
|
10
|
+
* gitlink (`.git`) files, long paths, junctions, or while a just-stopped
|
|
11
|
+
* delegate session is still releasing a handle/cwd on the directory. This
|
|
12
|
+
* helper absorbs those errors (never throws), with bounded retries + backoff
|
|
13
|
+
* to give handles time to release, and reports whether residue remains.
|
|
14
|
+
*/
|
|
15
|
+
export declare function bestEffortRemoveWorktreeDir(self: DaemonCommandRouter, dir: string): Promise<{
|
|
16
|
+
removed: boolean;
|
|
17
|
+
residue: boolean;
|
|
18
|
+
error?: string;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Non-destructive precheck mirroring every REFUSAL condition in
|
|
22
|
+
* {@link cleanupLocalWorktreeNode} — missing workspace / source-repo / branch
|
|
23
|
+
* metadata, unexpected (non-managed) path, branch mismatch — PLUS the
|
|
24
|
+
* dirty-worktree guard that `removeWorktree(requireClean)` enforces
|
|
25
|
+
* (`git status --porcelain`). It performs ZERO destructive actions: no
|
|
26
|
+
* `git worktree remove`, no `git worktree prune`, no directory deletion.
|
|
27
|
+
*
|
|
28
|
+
* remove_mesh_node calls this BEFORE any session cleanup so that a refusal
|
|
29
|
+
* (the common one being a dirty worktree) does not first stop/delete the
|
|
30
|
+
* delegated session and orphan it — the original ordering bug. Success/skip
|
|
31
|
+
* cases that the real cleanup handles idempotently (worktree path already
|
|
32
|
+
* gone, git-de-registered residue) are NOT refusals and return `{ ok: true }`.
|
|
33
|
+
*
|
|
34
|
+
* `force:true` skips the dirty guard, preserving `removeWorktree`'s
|
|
35
|
+
* `requireClean: !force` semantics. This is a read-only superset check; the
|
|
36
|
+
* authoritative `requireClean` guard inside `removeWorktree` is intentionally
|
|
37
|
+
* kept as a second line of defense against a precheck→execute race.
|
|
38
|
+
*/
|
|
39
|
+
export declare function precheckLocalWorktreeRemovable(self: DaemonCommandRouter, args: {
|
|
40
|
+
mesh: any;
|
|
41
|
+
node: any;
|
|
42
|
+
nodeId: string;
|
|
43
|
+
force?: boolean;
|
|
44
|
+
}): Promise<{
|
|
45
|
+
ok: true;
|
|
46
|
+
} | {
|
|
47
|
+
ok: false;
|
|
48
|
+
code: string;
|
|
49
|
+
error: string;
|
|
50
|
+
recoveryHint: string;
|
|
51
|
+
}>;
|
|
52
|
+
export declare function cleanupLocalWorktreeNode(self: DaemonCommandRouter, args: {
|
|
53
|
+
mesh: any;
|
|
54
|
+
node: any;
|
|
55
|
+
nodeId: string;
|
|
56
|
+
force?: boolean;
|
|
57
|
+
}): Promise<{
|
|
58
|
+
success: true;
|
|
59
|
+
skipped?: boolean;
|
|
60
|
+
removedPath?: string;
|
|
61
|
+
repoRoot?: string;
|
|
62
|
+
reason?: string;
|
|
63
|
+
fallback?: string;
|
|
64
|
+
forced?: boolean;
|
|
65
|
+
convergence?: Record<string, unknown>;
|
|
66
|
+
recovered?: boolean;
|
|
67
|
+
residue?: boolean;
|
|
68
|
+
residueWarning?: string;
|
|
69
|
+
residueError?: string;
|
|
70
|
+
branchRefDeleted?: boolean;
|
|
71
|
+
branchRefReason?: string;
|
|
72
|
+
branchRefForced?: boolean;
|
|
73
|
+
branchRefWarning?: string;
|
|
74
|
+
} | {
|
|
75
|
+
success: false;
|
|
76
|
+
code: string;
|
|
77
|
+
error: string;
|
|
78
|
+
recoveryHint: string;
|
|
79
|
+
convergence?: Record<string, unknown>;
|
|
80
|
+
}>;
|
|
81
|
+
export declare function getWorktreeForceCleanupConvergence(self: DaemonCommandRouter, args: {
|
|
82
|
+
repoRoot: string;
|
|
83
|
+
workspace: string;
|
|
84
|
+
node: any;
|
|
85
|
+
}): Promise<{
|
|
86
|
+
allow: boolean;
|
|
87
|
+
status?: string;
|
|
88
|
+
source?: string;
|
|
89
|
+
ref?: string;
|
|
90
|
+
error?: string;
|
|
91
|
+
}>;
|
|
92
|
+
export declare function isCompletedHostedSession(self: DaemonCommandRouter, record: any): boolean;
|
|
93
|
+
export declare function recordIntentionalMeshSessionStop(self: DaemonCommandRouter, args: {
|
|
94
|
+
meshId: string;
|
|
95
|
+
nodeId: string;
|
|
96
|
+
node: any;
|
|
97
|
+
sessionId: string;
|
|
98
|
+
mode: RepoMeshSessionCleanupMode;
|
|
99
|
+
source: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
|
|
100
|
+
action: 'stop_session' | 'delete_session_force';
|
|
101
|
+
}): Promise<void>;
|
|
102
|
+
export declare function cleanupMeshSessions(self: DaemonCommandRouter, args: {
|
|
103
|
+
meshId: string;
|
|
104
|
+
nodeId: string;
|
|
105
|
+
node: any;
|
|
106
|
+
mode: RepoMeshSessionCleanupMode;
|
|
107
|
+
sessionIds?: string[];
|
|
108
|
+
dryRun?: boolean;
|
|
109
|
+
source?: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
|
|
110
|
+
/**
|
|
111
|
+
* MAGI auto-cleanup safety gate: a map of sessionId → the queue task id that
|
|
112
|
+
* session must have been AUTO-LAUNCHED for (record meta autoLaunchedForQueueTaskId).
|
|
113
|
+
* When set, a matched explicit session is only acted on if its record carries that
|
|
114
|
+
* exact marker. A reused idle session (no marker), the coordinator session, a
|
|
115
|
+
* re-assigned session, or any session whose marker points at a DIFFERENT task is
|
|
116
|
+
* skipped (reason 'auto_launch_marker_mismatch') — so MAGI never kills a session it
|
|
117
|
+
* didn't itself spawn for this fan-out. Only consulted alongside explicit sessionIds.
|
|
118
|
+
*/
|
|
119
|
+
requireAutoLaunchedForTaskIds?: Record<string, string>;
|
|
120
|
+
/**
|
|
121
|
+
* Opt-in orphan reclaim (default false). See SESSION-ACCUMULATION-LEAK.
|
|
122
|
+
* When true, a workspace-only live_runtime session (no node binding) OR a
|
|
123
|
+
* live_runtime session bound to a node absent from `liveMeshNodeIds` is
|
|
124
|
+
* stopped instead of skipped by the conservative shared-daemon guard. A
|
|
125
|
+
* session whose meshNodeId is STILL in `liveMeshNodeIds` (active sibling)
|
|
126
|
+
* is never reclaimed — that is the shared-daemon safety this preserves.
|
|
127
|
+
*/
|
|
128
|
+
reclaimOrphans?: boolean;
|
|
129
|
+
liveMeshNodeIds?: string[];
|
|
130
|
+
}): Promise<{
|
|
131
|
+
success: boolean;
|
|
132
|
+
[key: string]: unknown;
|
|
133
|
+
}>;
|
|
@@ -14,6 +14,11 @@ import { DaemonCliManager } from './cli-manager.js';
|
|
|
14
14
|
import type { ProviderLoader } from '../providers/provider-loader.js';
|
|
15
15
|
import type { ProviderInstanceManager } from '../providers/provider-instance-manager.js';
|
|
16
16
|
import { SessionRegistry } from '../sessions/registry.js';
|
|
17
|
+
import type { RepoMeshSessionCleanupMode } from '../repo-mesh-types.js';
|
|
18
|
+
import { MeshRefineBatchJobHandle, MeshRefineBatchTerminalJob, MeshRefineJobHandle, MeshRefineTerminalJob } from '../mesh/mesh-refine-gates.js';
|
|
19
|
+
export * from '../mesh/mesh-node-identity.js';
|
|
20
|
+
export * from '../mesh/mesh-refine-gates.js';
|
|
21
|
+
export * from '../mesh/mesh-coordinator-config.js';
|
|
17
22
|
export interface SessionHostControlPlane {
|
|
18
23
|
getDiagnostics(payload?: {
|
|
19
24
|
includeSessions?: boolean;
|
|
@@ -55,12 +60,14 @@ export interface CommandRouterDeps {
|
|
|
55
60
|
value: any[];
|
|
56
61
|
};
|
|
57
62
|
sessionRegistry: SessionRegistry;
|
|
58
|
-
/** Callback
|
|
63
|
+
/** Callback after CDP manager created (transport-specific extras) */
|
|
59
64
|
onCdpManagerCreated?: (ideType: string, manager: DaemonCdpManager) => void;
|
|
60
65
|
/** Callback after IDE connected (e.g., startAgentStreamPolling) */
|
|
61
66
|
onIdeConnected?: () => void;
|
|
62
67
|
/** Callback after status change (stop_ide, restart) */
|
|
63
68
|
onStatusChange?: () => void;
|
|
69
|
+
/** Callback when a mesh state is invalidated */
|
|
70
|
+
onMeshStateChange?: (meshId: string) => void;
|
|
64
71
|
/** Callback after chat-related commands */
|
|
65
72
|
onPostChatCommand?: () => void;
|
|
66
73
|
/** Get a connected CDP manager (for agent stream reset check) */
|
|
@@ -81,33 +88,211 @@ export interface CommandRouterResult {
|
|
|
81
88
|
success: boolean;
|
|
82
89
|
[key: string]: unknown;
|
|
83
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Confine a spec path to ~/.adhdev/providers, defeating both prefix-bypass
|
|
93
|
+
* (e.g. ".../providers-evil") and symlink escape. Resolves the real path of
|
|
94
|
+
* the *parent* directory (the file may not exist yet for writes), requires the
|
|
95
|
+
* basename to be a literal `*.json`, and re-joins under the verified parent so
|
|
96
|
+
* the returned path can't point outside the tree. Used by get/write_spec_source.
|
|
97
|
+
*/
|
|
98
|
+
export declare function normalizeStandaloneHostCommandUrl(hostAddress: string): string;
|
|
99
|
+
export declare function buildMemberJoinNode(mesh: any, args: any, fallbackDaemonId?: string): Record<string, unknown> | null;
|
|
84
100
|
export declare class DaemonCommandRouter {
|
|
85
|
-
private
|
|
101
|
+
/** Public (not private) so the extracted ./router-refine.ts orchestration can reach it via `self`. */
|
|
102
|
+
deps: CommandRouterDeps;
|
|
86
103
|
/** In-memory cache for cloud-originating meshes passed via inlineMesh.
|
|
87
104
|
* Allows the MCP server to query mesh data via get_mesh even when
|
|
88
105
|
* the mesh doesn't exist in the local meshes.json file. */
|
|
89
106
|
private inlineMeshCache;
|
|
90
|
-
/**
|
|
91
|
-
|
|
107
|
+
/** Tombstones for inline mesh nodes removed via remove_mesh_node, keyed by
|
|
108
|
+
* meshId → set of removed nodeIds. The dashboard keeps echoing the removed
|
|
109
|
+
* node in the inlineMesh it attaches to every command; without a tombstone,
|
|
110
|
+
* reconcileInlineMeshCache MERGEs it straight back (resurrection). A
|
|
111
|
+
* tombstoned node is skipped during reconcile only while its workspace is
|
|
112
|
+
* absent from disk — a genuine re-registration (same nodeId, workspace back
|
|
113
|
+
* on disk) clears the tombstone and merges normally, preserving clone
|
|
114
|
+
* worktree visibility and legitimate node re-creation. */
|
|
115
|
+
private removedInlineMeshNodeIds;
|
|
116
|
+
/** Coordinator-owned whole-mesh aggregate status snapshots. Browser callers read this by default.
|
|
117
|
+
* Public (not private) so the extracted ./router-aggregate-status.ts orchestration can reach it via `self`. */
|
|
118
|
+
aggregateMeshStatusCache: Map<string, {
|
|
119
|
+
builtAt: number;
|
|
120
|
+
snapshot: any;
|
|
121
|
+
queueRevision: string;
|
|
122
|
+
}>;
|
|
123
|
+
/** Shared per-peer git_status probe dedup + recently-probed reuse gate.
|
|
124
|
+
* Spans separate mesh_status/get_mesh calls so the dashboard auto-retry
|
|
125
|
+
* loop cannot storm a slow peer with back-to-back refreshUpstream probes. */
|
|
126
|
+
private meshGitProbeCache;
|
|
127
|
+
/** Meshes with a background SWR freshen (async mesh_status refresh) already in
|
|
128
|
+
* flight — so a burst of interactive detail-opens serves the cached snapshot
|
|
129
|
+
* and coalesces onto ONE background refresh instead of storming the peers. */
|
|
130
|
+
private swrRefreshInFlight;
|
|
131
|
+
/** In-memory async Refinery jobs keyed by meshId:nodeId to reject/return duplicate in-flight requests.
|
|
132
|
+
* Public (not private) so the extracted ./router-refine.ts orchestration can reach it via `self`. */
|
|
133
|
+
runningRefineJobs: Map<string, MeshRefineJobHandle>;
|
|
134
|
+
/** Terminal async Refinery jobs preserve a clear answer after the worktree node has been removed. */
|
|
135
|
+
terminalRefineJobs: Map<string, MeshRefineTerminalJob>;
|
|
136
|
+
/** In-memory async batch Refinery jobs keyed by meshId (one batch convergence per mesh at a time). */
|
|
137
|
+
runningRefineBatchJobs: Map<string, MeshRefineBatchJobHandle>;
|
|
138
|
+
/** Terminal async batch Refinery jobs preserve the last batch outcome for late readers. */
|
|
139
|
+
terminalRefineBatchJobs: Map<string, MeshRefineBatchTerminalJob>;
|
|
92
140
|
constructor(deps: CommandRouterDeps);
|
|
93
|
-
private cloneJsonValue;
|
|
94
141
|
private hydrateCachedAggregateMeshStatusFromInline;
|
|
95
142
|
private getCachedAggregateMeshStatus;
|
|
96
143
|
private rememberAggregateMeshStatus;
|
|
144
|
+
getCachedInlineMeshNodes(): any[];
|
|
145
|
+
resolveRemoteMeshSessionOwnerDaemonId(sessionId: string, ownerNodeIdHint?: string): string | undefined;
|
|
97
146
|
getCachedInlineMesh(meshId: string, inlineMesh?: unknown): any | undefined;
|
|
98
147
|
private warmInlineMeshCache;
|
|
99
|
-
|
|
100
|
-
|
|
148
|
+
getMeshForCommand(meshId: string, inlineMesh?: unknown, options?: {
|
|
149
|
+
preferInline?: boolean;
|
|
150
|
+
}): Promise<{
|
|
151
|
+
mesh: any;
|
|
152
|
+
inline: boolean;
|
|
153
|
+
source: 'inline_cache' | 'inline_bootstrap' | 'local_config';
|
|
154
|
+
} | null>;
|
|
155
|
+
invalidateAggregateMeshStatus(meshId: string): void;
|
|
156
|
+
/**
|
|
157
|
+
* Build the MedFamilyContext handed to RF-ROUTER MED family handlers. Binds the
|
|
158
|
+
* router-private collaborators those handlers need (mesh resolution, owner
|
|
159
|
+
* gating, inline-cache mutation, worktree / session cleanup, refine job
|
|
160
|
+
* starters, IDE stop/launch) plus the inline-mesh and git-probe caches. The
|
|
161
|
+
* `launchIde` field closes over the freshly-built context so restart_session /
|
|
162
|
+
* restart_ide invoke the IDE launch directly instead of recursing through
|
|
163
|
+
* executeDaemonCommand('launch_ide').
|
|
164
|
+
*/
|
|
165
|
+
private buildMedFamilyContext;
|
|
166
|
+
/**
|
|
167
|
+
* Build the HighFamilyContext handed to RF-ROUTER HIGH family handlers. Binds
|
|
168
|
+
* the router-private collaborators those handlers need (mesh resolution, the
|
|
169
|
+
* aggregate-status memory cache + its bound read/write helpers, the
|
|
170
|
+
* running-refine-job table, inline-mesh + git-probe caches, and the router's
|
|
171
|
+
* own `execute` for the get_mesh_review_inbox mesh_status re-entry). HIGH
|
|
172
|
+
* handlers reach more router-owned state than MED, but the binding shape is
|
|
173
|
+
* the same: bound methods + direct field references, none reachable from
|
|
174
|
+
* `deps`.
|
|
175
|
+
*/
|
|
176
|
+
private buildHighFamilyContext;
|
|
177
|
+
private requireMeshHostMutationOwner;
|
|
101
178
|
private updateInlineMeshNode;
|
|
102
179
|
private removeInlineMeshNode;
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
180
|
+
/**
|
|
181
|
+
* WORKTREE-BOOTSTRAP-COORD-STATE: mark a worktree node's bootstrap as reaching a
|
|
182
|
+
* terminal state (complete / failed) in THIS daemon's mesh view.
|
|
183
|
+
*
|
|
184
|
+
* Root cause this fixes: clone_mesh_node forwards the clone+bootstrap to the
|
|
185
|
+
* source node's daemon (the worktree's machine). persistWorktreeSetupState
|
|
186
|
+
* therefore flips worktreeBootstrap.status to 'complete' on the WORKER daemon's
|
|
187
|
+
* mesh object — never on the coordinator's. The coordinator only ever holds the
|
|
188
|
+
* 'running' state it stamped from the forwarded clone reply. The claim path's
|
|
189
|
+
* bootstrap gate (mesh-event-forwarding agent:ready / mesh-queue-assignment)
|
|
190
|
+
* reads the coordinator's mesh via getMeshWithCache, sees status==='running'
|
|
191
|
+
* forever, and DEFERS every claim — so the worktree_bootstrap_complete re-fire
|
|
192
|
+
* (triggerMeshQueue) loops against a gate that never opens: claim never lands,
|
|
193
|
+
* the idle session is re-registered each tick, and auto-launch keeps spawning
|
|
194
|
+
* fresh sessions (runaway worktree-session multiplication).
|
|
195
|
+
*
|
|
196
|
+
* Called from the worktree_bootstrap_complete/_failed event handler BEFORE the
|
|
197
|
+
* queue re-fire so the gate sees the terminal state and the deferred claim can
|
|
198
|
+
* finally land. Updates the inline cache (clone worktree nodes are inline-only)
|
|
199
|
+
* and, when the node also exists in local config, persists there too; both paths
|
|
200
|
+
* invalidate the aggregate status cache. Best-effort and idempotent.
|
|
201
|
+
*/
|
|
202
|
+
markWorktreeBootstrapTerminalState(meshId: string, nodeId: string, status: 'complete' | 'failed', opts?: {
|
|
203
|
+
workspace?: string;
|
|
204
|
+
}): void;
|
|
205
|
+
private tombstoneRemovedInlineMeshNode;
|
|
206
|
+
/** Filter an incoming inline mesh against this mesh's tombstones before it is
|
|
207
|
+
* reconciled into the cache. A tombstoned node is dropped only while its
|
|
208
|
+
* workspace is still absent from disk; if the workspace is back (genuine
|
|
209
|
+
* re-registration), the tombstone is cleared and the node merges normally. */
|
|
210
|
+
private applyInlineMeshNodeTombstones;
|
|
211
|
+
normalizeMeshSessionCleanupMode(value: unknown): RepoMeshSessionCleanupMode;
|
|
212
|
+
sessionMatchesMeshNode(record: any, node: any, nodeId: string, sessionIds?: Set<string>): boolean;
|
|
213
|
+
bestEffortRemoveWorktreeDir(dir: string): Promise<{
|
|
214
|
+
removed: boolean;
|
|
215
|
+
residue: boolean;
|
|
216
|
+
error?: string;
|
|
217
|
+
}>;
|
|
218
|
+
precheckLocalWorktreeRemovable(args: {
|
|
219
|
+
mesh: any;
|
|
220
|
+
node: any;
|
|
221
|
+
nodeId: string;
|
|
222
|
+
force?: boolean;
|
|
223
|
+
}): Promise<{
|
|
224
|
+
ok: true;
|
|
225
|
+
} | {
|
|
226
|
+
ok: false;
|
|
227
|
+
code: string;
|
|
228
|
+
error: string;
|
|
229
|
+
recoveryHint: string;
|
|
230
|
+
}>;
|
|
231
|
+
cleanupLocalWorktreeNode(args: {
|
|
232
|
+
mesh: any;
|
|
233
|
+
node: any;
|
|
234
|
+
nodeId: string;
|
|
235
|
+
force?: boolean;
|
|
236
|
+
}): Promise<{
|
|
237
|
+
success: true;
|
|
238
|
+
skipped?: boolean;
|
|
239
|
+
removedPath?: string;
|
|
240
|
+
repoRoot?: string;
|
|
241
|
+
reason?: string;
|
|
242
|
+
fallback?: string;
|
|
243
|
+
forced?: boolean;
|
|
244
|
+
convergence?: Record<string, unknown>;
|
|
245
|
+
recovered?: boolean;
|
|
246
|
+
residue?: boolean;
|
|
247
|
+
residueWarning?: string;
|
|
248
|
+
residueError?: string;
|
|
249
|
+
branchRefDeleted?: boolean;
|
|
250
|
+
branchRefReason?: string;
|
|
251
|
+
branchRefForced?: boolean;
|
|
252
|
+
branchRefWarning?: string;
|
|
253
|
+
} | {
|
|
254
|
+
success: false;
|
|
255
|
+
code: string;
|
|
256
|
+
error: string;
|
|
257
|
+
recoveryHint: string;
|
|
258
|
+
convergence?: Record<string, unknown>;
|
|
259
|
+
}>;
|
|
260
|
+
getWorktreeForceCleanupConvergence(args: {
|
|
261
|
+
repoRoot: string;
|
|
262
|
+
workspace: string;
|
|
263
|
+
node: any;
|
|
264
|
+
}): Promise<{
|
|
265
|
+
allow: boolean;
|
|
266
|
+
status?: string;
|
|
267
|
+
source?: string;
|
|
268
|
+
ref?: string;
|
|
269
|
+
error?: string;
|
|
270
|
+
}>;
|
|
271
|
+
isCompletedHostedSession(record: any): boolean;
|
|
272
|
+
recordIntentionalMeshSessionStop(args: {
|
|
273
|
+
meshId: string;
|
|
274
|
+
nodeId: string;
|
|
275
|
+
node: any;
|
|
276
|
+
sessionId: string;
|
|
277
|
+
mode: RepoMeshSessionCleanupMode;
|
|
278
|
+
source: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
|
|
279
|
+
action: 'stop_session' | 'delete_session_force';
|
|
280
|
+
}): Promise<void>;
|
|
281
|
+
cleanupMeshSessions(args: {
|
|
282
|
+
meshId: string;
|
|
283
|
+
nodeId: string;
|
|
284
|
+
node: any;
|
|
285
|
+
mode: RepoMeshSessionCleanupMode;
|
|
286
|
+
sessionIds?: string[];
|
|
287
|
+
dryRun?: boolean;
|
|
288
|
+
source?: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
|
|
289
|
+
requireAutoLaunchedForTaskIds?: Record<string, string>;
|
|
290
|
+
reclaimOrphans?: boolean;
|
|
291
|
+
liveMeshNodeIds?: string[];
|
|
292
|
+
}): Promise<{
|
|
293
|
+
success: boolean;
|
|
294
|
+
[key: string]: unknown;
|
|
295
|
+
}>;
|
|
111
296
|
/**
|
|
112
297
|
* Unified command routing.
|
|
113
298
|
* Returns result for all commands:
|
|
@@ -120,6 +305,10 @@ export declare class DaemonCommandRouter {
|
|
|
120
305
|
* @param source Log source ('ws' | 'p2p' | 'standalone' | etc.)
|
|
121
306
|
*/
|
|
122
307
|
execute(cmd: string, args: any, source?: string): Promise<CommandRouterResult>;
|
|
308
|
+
resumePendingRefineJobsOnStartup(): Promise<void>;
|
|
309
|
+
private batchRefineMeshNodes;
|
|
310
|
+
private startMeshRefineBatchJob;
|
|
311
|
+
private startMeshRefineJob;
|
|
123
312
|
/**
|
|
124
313
|
* Daemon-level command execution (IDE start/stop/restart, CLI, detect, logs).
|
|
125
314
|
* Returns null if not handled at this level → caller delegates to CommandHandler.
|
|
@@ -39,6 +39,46 @@ export declare function buildPinnedGlobalInstallCommand(options: {
|
|
|
39
39
|
}): PinnedGlobalInstallCommand;
|
|
40
40
|
export declare function getNpmExecOptions(platform?: NodeJS.Platform): NpmExecOptions;
|
|
41
41
|
export declare function execNpmCommandSync(args: string[], options?: ExecFileSyncOptions, surface?: Pick<CurrentGlobalInstallSurface, 'npmExecutable' | 'npmArgsPrefix' | 'execOptions'>): Buffer | string;
|
|
42
|
-
export declare function stopSessionHostProcesses(appName: string): void
|
|
42
|
+
export declare function stopSessionHostProcesses(appName: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Enumerate processes that have a locked native addon (conpty.node /
|
|
45
|
+
* ghostty-vt.dll) of *this* install memory-mapped.
|
|
46
|
+
*
|
|
47
|
+
* `stopSessionHostProcesses()` only knows the single managed session-host pid, so
|
|
48
|
+
* any *foreign* holder — e.g. an orphaned `pty_*probe*.cjs` left in `%TEMP%` — is
|
|
49
|
+
* invisible to it and keeps the addon locked through every install retry, dooming
|
|
50
|
+
* the upgrade with EBUSY. This scans by the module's full path so we only ever
|
|
51
|
+
* target a holder of the exact `packageRoot` being replaced (never an unrelated
|
|
52
|
+
* install's copy). Windows-only — these locks don't exist on POSIX.
|
|
53
|
+
*/
|
|
54
|
+
export declare function listForeignNativeAddonHolders(packageRoot: string | null | undefined): Array<{
|
|
55
|
+
pid: number;
|
|
56
|
+
commandLine: string | null;
|
|
57
|
+
}>;
|
|
58
|
+
/**
|
|
59
|
+
* Terminate every foreign process holding this install's native addon mapped,
|
|
60
|
+
* then wait for each to actually exit so the mapping is released before npm
|
|
61
|
+
* copies the file into its staging dir. Returns what it found/killed so the
|
|
62
|
+
* caller can surface an actionable recovery message on failure.
|
|
63
|
+
*/
|
|
64
|
+
export declare function stopForeignNativeAddonHolders(packageRoot: string | null | undefined, options?: {
|
|
65
|
+
parentPid?: number;
|
|
66
|
+
}): Promise<Array<{
|
|
67
|
+
pid: number;
|
|
68
|
+
commandLine: string | null;
|
|
69
|
+
killed: boolean;
|
|
70
|
+
}>>;
|
|
71
|
+
/**
|
|
72
|
+
* Best-effort removal of a leftover npm staging entry.
|
|
73
|
+
*
|
|
74
|
+
* A stale staging dir can hold a locked native binary — e.g. `ghostty-vt.dll`
|
|
75
|
+
* from `@adhdev/ghostty-vt-node` still mapped by a lingering session-host
|
|
76
|
+
* process — which makes `rmSync` throw `EPERM` on Windows. Staging cleanup is
|
|
77
|
+
* only housekeeping: the leftover is inert and npm creates its own fresh
|
|
78
|
+
* staging dir for the real install, so a lock on an old leftover must NOT abort
|
|
79
|
+
* the upgrade. Log and continue instead of letting the error propagate.
|
|
80
|
+
*/
|
|
81
|
+
export declare function safeRemoveStaleEntry(target: string, label: string): void;
|
|
82
|
+
export declare function cleanupStaleGlobalInstallDirs(pkgName: string, surface: CurrentGlobalInstallSurface): void;
|
|
43
83
|
export declare function spawnDetachedDaemonUpgradeHelper(payload: DaemonUpgradeHelperPayload): void;
|
|
44
84
|
export declare function maybeRunDaemonUpgradeHelperFromEnv(): Promise<boolean>;
|
|
@@ -110,12 +110,21 @@ export declare function readProviderChatHistory(agentType: string, options?: {
|
|
|
110
110
|
excludeRecentCount?: number;
|
|
111
111
|
historyBehavior?: ProviderHistoryBehavior;
|
|
112
112
|
scripts?: ProviderNativeHistoryScripts;
|
|
113
|
+
excludeInProgressTurn?: boolean;
|
|
114
|
+
sessionStartedAtMs?: number;
|
|
115
|
+
envOverrides?: Record<string, string>;
|
|
116
|
+
forceRefresh?: boolean;
|
|
113
117
|
}): {
|
|
114
118
|
messages: HistoryMessage[];
|
|
115
119
|
hasMore: boolean;
|
|
116
120
|
source: 'provider-native' | 'adhdev-mirror' | 'native-unavailable';
|
|
117
121
|
sourcePath?: string;
|
|
118
122
|
sourceMtimeMs?: number;
|
|
123
|
+
providerSessionId?: string;
|
|
124
|
+
workspace?: string;
|
|
125
|
+
nativeHistoryCoverage?: string;
|
|
126
|
+
partialReason?: string;
|
|
127
|
+
unavailableReason?: string;
|
|
119
128
|
};
|
|
120
129
|
export declare function listProviderHistorySessions(agentType: string, options?: {
|
|
121
130
|
canonicalHistory?: ProviderCanonicalHistoryConfig;
|
package/dist/config/config.d.ts
CHANGED
|
@@ -71,6 +71,20 @@ export interface ADHDevConfig {
|
|
|
71
71
|
disableUpstream?: boolean;
|
|
72
72
|
providerSourceMode?: ProviderSourceMode;
|
|
73
73
|
providerDir?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Optional provider registry base URL override (for example a self-hosted
|
|
76
|
+
* registry). Highest-priority source in the registry resolver, ahead of the
|
|
77
|
+
* `ADHDEV_REGISTRY_URL` env var and the vendor default. See
|
|
78
|
+
* `config/registry-resolver.ts`.
|
|
79
|
+
*/
|
|
80
|
+
registryUrl?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Optional provider tarball (archive) URL override so self-hosters can point
|
|
83
|
+
* the daemon at their own provider mirror instead of the vendor GitHub repo.
|
|
84
|
+
* Highest-priority source, ahead of `ADHDEV_PROVIDER_TARBALL_URL` and the
|
|
85
|
+
* vendor default. See `config/registry-resolver.ts`.
|
|
86
|
+
*/
|
|
87
|
+
providerTarballUrl?: string;
|
|
74
88
|
/** Preferred daemon update channel. Defaults to stable/latest. */
|
|
75
89
|
updateChannel?: ReleaseChannel;
|
|
76
90
|
/**
|
|
@@ -86,6 +100,11 @@ export declare function isStableMachineId(machineId?: string | null): boolean;
|
|
|
86
100
|
* Get the config directory path
|
|
87
101
|
*/
|
|
88
102
|
export declare function getConfigDir(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Get the daemon runtime data directory (~/.adhdev/daemon/).
|
|
105
|
+
* Distinct from the user-config dir so runtime state can be cleared independently.
|
|
106
|
+
*/
|
|
107
|
+
export declare function getDaemonDataDir(): string;
|
|
89
108
|
/**
|
|
90
109
|
* Load configuration from disk
|
|
91
110
|
*/
|