@adhdev/daemon-core 0.9.82-rc.37 → 0.9.82-rc.371
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 +55 -2
- package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
- package/dist/cli-adapters/cli-state-engine.d.ts +198 -0
- package/dist/cli-adapters/provider-cli-adapter.d.ts +116 -64
- package/dist/cli-adapters/provider-cli-parse.d.ts +4 -0
- package/dist/cli-adapters/provider-cli-runtime.d.ts +34 -0
- package/dist/cli-adapters/provider-cli-shared.d.ts +63 -0
- package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
- package/dist/cli-adapters/resolve-executable.d.ts +14 -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.d.ts +27 -0
- package/dist/commands/cli-manager.d.ts +15 -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 +60 -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 +2 -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 +116 -0
- package/dist/commands/mesh-coordinator.d.ts +85 -1
- package/dist/commands/router.d.ts +666 -2
- package/dist/commands/upgrade-helper.d.ts +41 -1
- package/dist/config/chat-history.d.ts +9 -0
- package/dist/config/config.d.ts +5 -0
- package/dist/config/mesh-config.d.ts +77 -1
- package/dist/daemon/dev-server.d.ts +0 -2
- 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 +11 -1
- 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 +23 -0
- package/dist/git/git-types.d.ts +2 -50
- package/dist/git/index.d.ts +2 -0
- package/dist/index.d.ts +55 -13
- package/dist/index.js +46565 -19737
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +43563 -16868
- 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/log-redactor.d.ts +24 -0
- package/dist/logging/log-tail-reader.d.ts +46 -0
- package/dist/logging/logger.d.ts +1 -1
- package/dist/mesh/contracts.d.ts +164 -0
- package/dist/mesh/coordinator-prompt.d.ts +36 -0
- package/dist/mesh/coordinator-registry.d.ts +59 -0
- package/dist/mesh/mesh-active-work.d.ts +174 -0
- package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
- package/dist/mesh/mesh-event-trace.d.ts +21 -0
- package/dist/mesh/mesh-events-coordinator.d.ts +91 -0
- package/dist/mesh/mesh-events-pending.d.ts +55 -0
- package/dist/mesh/mesh-events-stale.d.ts +40 -0
- package/dist/mesh/mesh-events-utils.d.ts +61 -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 +9 -0
- package/dist/mesh/mesh-init.d.ts +86 -0
- package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -3
- package/dist/mesh/mesh-ledger.d.ts +77 -1
- package/dist/mesh/mesh-missions.d.ts +164 -0
- package/dist/mesh/mesh-reconcile-loop.d.ts +7 -0
- package/dist/mesh/mesh-refine-batch.d.ts +68 -0
- package/dist/mesh/mesh-refine-status.d.ts +62 -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 +429 -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 +246 -5
- package/dist/mesh/preview-freshness.d.ts +18 -0
- package/dist/mesh/refine-config.d.ts +216 -0
- package/dist/mesh/worktree-bootstrap-config.d.ts +135 -0
- package/dist/providers/acp-provider-instance.d.ts +5 -0
- package/dist/providers/approval-utils.d.ts +20 -0
- package/dist/providers/chat-message-normalization.d.ts +12 -0
- package/dist/providers/cli-provider-instance.d.ts +108 -3
- package/dist/providers/contracts.d.ts +139 -6
- package/dist/providers/external-sources.d.ts +71 -0
- package/dist/providers/manual-attendance.d.ts +63 -0
- package/dist/providers/native-history/antigravity-cli-transcript.d.ts +100 -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/dispatcher.d.ts +27 -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 +14 -0
- package/dist/providers/provider-instance.d.ts +23 -1
- package/dist/providers/provider-loader.d.ts +26 -4
- 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 +91 -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 +395 -0
- package/dist/providers/spec/fsm-evaluator.d.ts +76 -0
- package/dist/providers/spec/fsm-loader.d.ts +14 -0
- package/dist/providers/spec/fsm-types.d.ts +174 -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 +222 -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 +295 -13
- package/dist/sessions/registry.d.ts +6 -0
- package/dist/shared-types-extra.d.ts +2 -4
- package/dist/shared-types.d.ts +59 -2
- 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 +7 -3
- package/src/agent-stream/poller.ts +2 -3
- package/src/agent-stream/provider-adapter.ts +1 -1
- package/src/boot/daemon-lifecycle.ts +63 -12
- 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 +1 -0
- package/src/cli-adapter-types.ts +56 -2
- package/src/cli-adapters/cli-script-runner.ts +421 -0
- package/src/cli-adapters/cli-state-engine.ts +1221 -0
- package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
- package/src/cli-adapters/provider-cli-adapter.ts +775 -1141
- package/src/cli-adapters/provider-cli-parse.d.ts +1 -0
- package/src/cli-adapters/provider-cli-parse.ts +13 -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 +110 -11
- package/src/cli-adapters/pty-transport.ts +2 -1
- package/src/cli-adapters/raw-terminal-io.ts +252 -0
- package/src/cli-adapters/resolve-executable.ts +90 -0
- package/src/cli-adapters/session-host-transport.ts +2 -1
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.ts +53 -29
- package/src/cli-adapters/terminal-backends/types.ts +10 -3
- package/src/cli-adapters/terminal-screen.ts +16 -81
- package/src/commands/WINDOWS-UPGRADE-LOCK-FAILURE.md +198 -0
- package/src/commands/chat-commands.ts +1917 -62
- package/src/commands/cli-manager.ts +502 -24
- package/src/commands/handler.ts +841 -2
- package/src/commands/high-family/index.ts +28 -0
- package/src/commands/high-family/mesh-coordinator-launch.ts +592 -0
- package/src/commands/high-family/mesh-events.ts +47 -0
- package/src/commands/high-family/mesh-status.ts +642 -0
- package/src/commands/high-family/types.ts +76 -0
- package/src/commands/low-family/coordinator-prompt.ts +72 -0
- package/src/commands/low-family/daemon-lifecycle.ts +107 -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 +81 -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 +218 -0
- package/src/commands/med-family/fast-forward.ts +198 -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 +788 -0
- package/src/commands/med-family/mesh-host-pairing.ts +234 -0
- package/src/commands/med-family/mesh-queue.ts +131 -0
- package/src/commands/med-family/mesh-restart.ts +92 -0
- package/src/commands/med-family/types.ts +120 -0
- package/src/commands/mesh-coordinator.ts +334 -124
- package/src/commands/router.ts +5121 -2369
- package/src/commands/stream-commands.ts +8 -0
- package/src/commands/upgrade-helper.ts +310 -45
- package/src/config/chat-history.ts +483 -24
- package/src/config/config.ts +12 -0
- package/src/config/mesh-config.ts +389 -6
- package/src/config/recent-activity.ts +8 -2
- 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 +28 -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 +55 -14
- package/src/git/git-diff.ts +81 -11
- package/src/git/git-executor.ts +12 -0
- package/src/git/git-status.ts +574 -43
- package/src/git/git-types.ts +14 -62
- package/src/git/git-worktree.ts +8 -1
- package/src/git/index.ts +16 -0
- package/src/index.ts +158 -12
- 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/log-redactor.ts +100 -0
- package/src/logging/log-tail-reader.ts +220 -0
- package/src/logging/logger.ts +14 -7
- package/src/mesh/contracts.ts +338 -0
- package/src/mesh/coordinator-prompt.ts +234 -31
- package/src/mesh/coordinator-registry.ts +121 -0
- package/src/mesh/mesh-active-work.ts +645 -0
- package/src/mesh/mesh-delivery-policy.ts +315 -0
- package/src/mesh/mesh-event-trace.ts +67 -0
- package/src/mesh/mesh-events-coordinator.ts +2866 -0
- package/src/mesh/mesh-events-pending.ts +599 -0
- package/src/mesh/mesh-events-stale.ts +309 -0
- package/src/mesh/mesh-events-utils.ts +387 -0
- package/src/mesh/mesh-events.ts +30 -1035
- package/src/mesh/mesh-fast-forward.ts +839 -0
- package/src/mesh/mesh-host-ownership.ts +73 -0
- package/src/mesh/mesh-init.ts +260 -0
- package/src/mesh/mesh-ledger-reconciliation.ts +12 -5
- package/src/mesh/mesh-ledger.ts +591 -102
- package/src/mesh/mesh-missions.ts +322 -0
- package/src/mesh/mesh-reconcile-loop.ts +1134 -0
- package/src/mesh/mesh-refine-batch.ts +197 -0
- package/src/mesh/mesh-refine-status.ts +231 -0
- package/src/mesh/mesh-review-inbox.ts +307 -0
- package/src/mesh/mesh-routing.ts +291 -0
- package/src/mesh/mesh-runtime-store.ts +1697 -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 +997 -141
- package/src/mesh/preview-freshness.ts +118 -0
- package/src/mesh/refine-config.ts +423 -0
- package/src/mesh/worktree-bootstrap-config.ts +331 -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 +57 -5
- package/src/providers/chat-message-normalization.ts +45 -5
- package/src/providers/cli-provider-instance.ts +1310 -101
- package/src/providers/contracts.d.ts +55 -0
- package/src/providers/contracts.ts +150 -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 +85 -0
- package/src/providers/native-history/antigravity-cli-transcript.ts +643 -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/dispatcher.ts +340 -0
- package/src/providers/native-history/hermes-cli-transcript.ts +230 -0
- package/src/providers/native-history/index.ts +30 -0
- package/src/providers/provider-instance-manager.ts +30 -0
- package/src/providers/provider-instance.ts +19 -1
- package/src/providers/provider-loader.ts +668 -50
- 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 +250 -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 +504 -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 +235 -0
- package/src/providers/spec/cli-adapter.ts +1051 -0
- package/src/providers/spec/evaluator.ts +407 -0
- package/src/providers/spec/fsm-driver.ts +1305 -0
- package/src/providers/spec/fsm-evaluator.ts +272 -0
- package/src/providers/spec/fsm-loader.ts +120 -0
- package/src/providers/spec/fsm-types.ts +273 -0
- package/src/providers/spec/native-history-executor.ts +1136 -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 +262 -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 +378 -14
- 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 +64 -1
- 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,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a launch command to an absolute executable path on Windows.
|
|
3
|
+
*
|
|
4
|
+
* node-pty's ConPTY backend resolves a bare/relative command against the
|
|
5
|
+
* *calling process's* `Path` env var and — critically — does NOT apply PATHEXT.
|
|
6
|
+
* So a provider command like `claude` never matches `claude.exe` and the native
|
|
7
|
+
* layer throws `File not found:` (empty), which crashes the daemon. We resolve
|
|
8
|
+
* it to an absolute `.exe` here (in the daemon process, which has the full PATH)
|
|
9
|
+
* before the command ever reaches node-pty.
|
|
10
|
+
*
|
|
11
|
+
* No-op on non-Windows and when the command is already an existing absolute path
|
|
12
|
+
* or cannot be resolved (caller keeps the original behaviour).
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveWin32Executable(command: string): string;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import type { TerminalViewportBackend, TerminalViewportBackendOptions
|
|
2
|
-
export declare function resolveTerminalBackendPreference(): TerminalViewportBackendPreference;
|
|
3
|
-
export declare function isGhosttyVtBackendAvailable(): boolean;
|
|
1
|
+
import type { TerminalViewportBackend, TerminalViewportBackendOptions } from './types.js';
|
|
4
2
|
export declare class GhosttyVtTerminalBackend implements TerminalViewportBackend {
|
|
5
3
|
readonly kind: "ghostty-vt";
|
|
6
4
|
private terminal;
|
|
5
|
+
private rows;
|
|
6
|
+
private disposed;
|
|
7
7
|
constructor(options: TerminalViewportBackendOptions);
|
|
8
8
|
resize(rows: number, cols: number): void;
|
|
9
9
|
write(data: string): void;
|
|
10
|
+
private formatLines;
|
|
11
|
+
private static trimBlankEnds;
|
|
10
12
|
getText(): string;
|
|
13
|
+
getTextWithScrollback(): string;
|
|
11
14
|
getCursorPosition(): {
|
|
12
15
|
col: number;
|
|
13
16
|
row: number;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export type TerminalViewportBackendKind = '
|
|
2
|
-
export type TerminalViewportBackendPreference = TerminalViewportBackendKind | 'auto';
|
|
1
|
+
export type TerminalViewportBackendKind = 'ghostty-vt';
|
|
3
2
|
export type TerminalViewportBackendOptions = {
|
|
4
3
|
rows: number;
|
|
5
4
|
cols: number;
|
|
@@ -10,6 +9,15 @@ export interface TerminalViewportBackend {
|
|
|
10
9
|
resize(rows: number, cols: number): void;
|
|
11
10
|
write(data: string): void;
|
|
12
11
|
getText(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Like getText() but includes scrollback history (the lines that have
|
|
14
|
+
* scrolled above the visible viewport). Used by content-pattern matching
|
|
15
|
+
* (e.g. approval/modal button extraction) that must stay correct when a
|
|
16
|
+
* tall prompt — a big diff or long explanation — pushes part of the
|
|
17
|
+
* prompt box above the viewport. NOT for cursor-relative / stable_ms
|
|
18
|
+
* conditions, whose row indices are viewport-relative.
|
|
19
|
+
*/
|
|
20
|
+
getTextWithScrollback(): string;
|
|
13
21
|
getCursorPosition(): {
|
|
14
22
|
col: number;
|
|
15
23
|
row: number;
|
|
@@ -1,29 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* PTY screen snapshot abstraction.
|
|
3
|
-
*
|
|
4
|
-
* Terminal viewport backend selection.
|
|
5
|
-
*
|
|
6
|
-
* Runtime preference is backend-agnostic:
|
|
7
|
-
* - prefer ghostty-vt when available (or when explicitly requested)
|
|
8
|
-
* - fall back to xterm when ghostty-vt is unavailable
|
|
2
|
+
* PTY screen snapshot abstraction — ghostty-vt backend.
|
|
9
3
|
*/
|
|
10
|
-
import type { TerminalViewportBackendKind
|
|
4
|
+
import type { TerminalViewportBackendKind } from './terminal-backends/types.js';
|
|
11
5
|
export declare function getTerminalBackendRuntimeStatus(): {
|
|
12
6
|
backend: TerminalViewportBackendKind;
|
|
13
|
-
preference: TerminalViewportBackendPreference;
|
|
14
|
-
ghosttyAvailable: boolean;
|
|
15
7
|
};
|
|
16
8
|
export declare class TerminalScreen {
|
|
17
9
|
readonly backendKind: TerminalViewportBackendKind;
|
|
18
10
|
private rows;
|
|
19
11
|
private cols;
|
|
20
|
-
private readonly preference;
|
|
21
12
|
private terminal;
|
|
22
13
|
constructor(rows?: number, cols?: number);
|
|
23
14
|
reset(rows?: number, cols?: number): void;
|
|
24
15
|
resize(rows: number, cols: number): void;
|
|
25
16
|
write(data: string): void;
|
|
26
17
|
getText(): string;
|
|
18
|
+
/** Full buffer including scrollback history (see backend doc). */
|
|
19
|
+
getTextWithScrollback(): string;
|
|
27
20
|
getCursorPosition(): {
|
|
28
21
|
col: number;
|
|
29
22
|
row: number;
|
|
@@ -6,6 +6,33 @@ import type { CommandResult, CommandHelpers } from './handler.js';
|
|
|
6
6
|
import { type InputEnvelope } from '../providers/contracts.js';
|
|
7
7
|
export declare const READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS = 25000;
|
|
8
8
|
export declare function buildSendInputSignature(input: InputEnvelope): string;
|
|
9
|
+
/**
|
|
10
|
+
* read_chat node scope verdict. One physical daemon hosts a base node plus several
|
|
11
|
+
* worktree nodes; mesh_read_chat always dispatches read_chat with the requested
|
|
12
|
+
* node's workspace (`args.workspace`). When the resolved target session actually
|
|
13
|
+
* lives in a DIFFERENT worktree, returning its transcript — or worse, letting the
|
|
14
|
+
* native-history-by-workspace fallback splice sibling worktree turns into the
|
|
15
|
+
* reply — makes the coordinator believe one session received every worktree's
|
|
16
|
+
* work. This guard refuses a CONFIRMED cross-workspace read instead of mixing.
|
|
17
|
+
*
|
|
18
|
+
* Conservative by design (mirrors the WTCLAIM fix-B "unknown → allow" rule): only
|
|
19
|
+
* a session id that resolves to a known workspace which is unequal to a known
|
|
20
|
+
* intended workspace blocks. When either side is unknown — no targetSessionId, no
|
|
21
|
+
* args.workspace, an unregistered session, the coordinator self-session, or a
|
|
22
|
+
* plain dashboard read that never passes a node workspace — the read proceeds
|
|
23
|
+
* untouched, so base-node and same-daemon coordinator reads never regress.
|
|
24
|
+
*/
|
|
25
|
+
export declare function evaluateReadChatNodeWorkspaceScope(args: {
|
|
26
|
+
targetSessionId?: string;
|
|
27
|
+
intendedWorkspace?: string;
|
|
28
|
+
sessionWorkspace?: string;
|
|
29
|
+
}): {
|
|
30
|
+
scoped: false;
|
|
31
|
+
} | {
|
|
32
|
+
scoped: true;
|
|
33
|
+
intended: string;
|
|
34
|
+
actual: string;
|
|
35
|
+
};
|
|
9
36
|
interface DebugSanitizeOptions {
|
|
10
37
|
maxDepth?: number;
|
|
11
38
|
maxArrayLength?: number;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { ProviderInstanceManager } from '../providers/provider-instance-manager.js';
|
|
8
8
|
import { ProviderLoader } from '../providers/provider-loader.js';
|
|
9
|
-
import { type ProviderModule, type ProviderResumeCapability } from '../providers/contracts.js';
|
|
9
|
+
import { type MeshCoordinatorDelegatedWorkerIsolation, type ProviderModule, type ProviderResumeCapability } from '../providers/contracts.js';
|
|
10
10
|
import type { CliAdapter } from '../cli-adapter-types.js';
|
|
11
11
|
import type { PtyTransportFactory } from '../cli-adapters/pty-transport.js';
|
|
12
12
|
import type { SessionRegistry } from '../sessions/registry.js';
|
|
@@ -68,6 +68,7 @@ export interface CoordinatorDelegatedCliLaunchOptionsInput {
|
|
|
68
68
|
workspace: string;
|
|
69
69
|
cliArgs?: string[];
|
|
70
70
|
env?: Record<string, string>;
|
|
71
|
+
isolation?: MeshCoordinatorDelegatedWorkerIsolation;
|
|
71
72
|
}
|
|
72
73
|
export interface CoordinatorDelegatedCliLaunchOptions {
|
|
73
74
|
cliArgs: string[];
|
|
@@ -112,6 +113,19 @@ export declare class DaemonCliManager {
|
|
|
112
113
|
key: string;
|
|
113
114
|
} | null;
|
|
114
115
|
private findAdapterBySessionId;
|
|
116
|
+
/**
|
|
117
|
+
* WTCLAIM (B): resolve the adapter for a mesh dispatch that named a node
|
|
118
|
+
* (meshContext.nodeId) but carried no explicit session. Matches by the
|
|
119
|
+
* instance's bound mesh node id (settings.meshNodeId, falling back to the
|
|
120
|
+
* sticky meshLastNodeId) first, then by the node workspace (workingDir).
|
|
121
|
+
*
|
|
122
|
+
* Unlike findAdapter's step-2 fuzzy fallback, this NEVER degrades to a
|
|
123
|
+
* provider-only first-match: on a daemon hosting BOTH a base node and a
|
|
124
|
+
* cloned worktree node (same daemonId), that fuzzy match could land a
|
|
125
|
+
* worktree-targeted task on the base session. Returns null when no session
|
|
126
|
+
* is bound to this node so the caller fails closed.
|
|
127
|
+
*/
|
|
128
|
+
private findMeshNodeAdapter;
|
|
115
129
|
handleCliCommand(cmd: string, args: any): Promise<CommandResult | null>;
|
|
116
130
|
}
|
|
117
131
|
export {};
|
|
@@ -102,9 +102,134 @@ export declare class DaemonCommandHandler implements CommandHelpers {
|
|
|
102
102
|
private logCommandStart;
|
|
103
103
|
private logCommandEnd;
|
|
104
104
|
setAgentStreamManager(manager: DaemonAgentStreamManager): void;
|
|
105
|
+
/**
|
|
106
|
+
* When a command in the manual-attendance set arrives for a session this
|
|
107
|
+
* daemon hosts, stamp the live instance so auto-approve holds while the user
|
|
108
|
+
* drives the session by hand. Provider-common: the signal is the command
|
|
109
|
+
* (foreground select_session / open_panel, controlbar invoke_provider_script
|
|
110
|
+
* / set_mode / change_model / set_thought_level, manual resolve_action,
|
|
111
|
+
* pty_input), never any CLI-specific modal text — so it works identically for
|
|
112
|
+
* every CLI/ACP provider. send_chat is deliberately excluded because a
|
|
113
|
+
* coordinator delegating a task to a worker also uses send_chat; counting it
|
|
114
|
+
* would wrongly suppress the worker's delegated auto-approve. For a remote
|
|
115
|
+
* mesh worker session the controlbar commands are forwarded to the owning
|
|
116
|
+
* worker daemon, which runs this same hook there, so attendance is recorded
|
|
117
|
+
* on the daemon that actually hosts the instance.
|
|
118
|
+
*/
|
|
119
|
+
private noteManualAttendanceIfApplicable;
|
|
105
120
|
handle(cmd: string, args: any): Promise<CommandResult>;
|
|
106
121
|
private dispatch;
|
|
122
|
+
/**
|
|
123
|
+
* Reload providers from disk. Does NOT pull from the registry — the user
|
|
124
|
+
* controls installs explicitly via install_provider_manifest. To upgrade
|
|
125
|
+
* an installed provider, call install_provider_manifest again with the
|
|
126
|
+
* desired version (or with no version to pick up the latest from
|
|
127
|
+
* registry), or use check_provider_updates to see what is out of date.
|
|
128
|
+
*/
|
|
107
129
|
private handleRefreshScripts;
|
|
130
|
+
/**
|
|
131
|
+
* Return per-provider availability so the dashboard's provider catalog
|
|
132
|
+
* can show "Installed" badges. Reuses the existing detection state from
|
|
133
|
+
* ProviderLoader.getMachineProviderStatus() — no probing is triggered.
|
|
134
|
+
*/
|
|
135
|
+
private handleListProviderAvailability;
|
|
136
|
+
/**
|
|
137
|
+
* Compute the *upstream cache root*. install_provider_manifest writes
|
|
138
|
+
* official-registry manifests here so the daemon's standard upstream
|
|
139
|
+
* layer picks them up — no special handling needed at load time, and
|
|
140
|
+
* the manifests inherit the official-trust badge instead of the
|
|
141
|
+
* untrusted-external one.
|
|
142
|
+
*
|
|
143
|
+
* Path matches ProviderLoader.upstreamDir but we recompute it from
|
|
144
|
+
* homedir() so this method stays usable in dev where userDir can
|
|
145
|
+
* point at a sibling git checkout.
|
|
146
|
+
*/
|
|
147
|
+
private getUpstreamInstallRoot;
|
|
148
|
+
/**
|
|
149
|
+
* Download a single provider manifest from the registry and write it to
|
|
150
|
+
* ~/.adhdev/providers/.upstream/{category}/{type}/provider.json.
|
|
151
|
+
*
|
|
152
|
+
* Used by standalone onboarding to seed the upstream cache with the
|
|
153
|
+
* default provider set on first launch. Verifies SHA-256 checksum
|
|
154
|
+
* against the registry meta before persisting. Refuses to write
|
|
155
|
+
* outside the upstream root.
|
|
156
|
+
*
|
|
157
|
+
* Args: { type: string, category?: string, version?: string }
|
|
158
|
+
* If category/version are omitted, looks up the latest from the registry.
|
|
159
|
+
*/
|
|
160
|
+
private handleInstallProviderManifest;
|
|
161
|
+
/**
|
|
162
|
+
* If `manifest.source = { type:'github', repo, ref, subdir? }` is set,
|
|
163
|
+
* walk each script directory the manifest references and download every
|
|
164
|
+
* file from the public GitHub raw endpoint. Returns a small summary so
|
|
165
|
+
* the caller can report what was fetched.
|
|
166
|
+
*
|
|
167
|
+
* Best-effort: failures don't reject the install — the manifest itself is
|
|
168
|
+
* usable for declarative-only providers, and the user still gets a clear
|
|
169
|
+
* error string back if a needed script is missing.
|
|
170
|
+
*/
|
|
171
|
+
private fetchProviderSources;
|
|
172
|
+
/**
|
|
173
|
+
* Remove a provider manifest from the upstream cache root
|
|
174
|
+
* (~/.adhdev/providers/.upstream/{category}/{type}/). Refuses to touch
|
|
175
|
+
* anything outside that root. Used by onboarding to opt out of a
|
|
176
|
+
* provider the user doesn't want; the dashboard no longer exposes a
|
|
177
|
+
* per-provider uninstall button (external sources are removed as a
|
|
178
|
+
* whole via remove_provider_source).
|
|
179
|
+
*/
|
|
180
|
+
private handleUninstallProviderManifest;
|
|
181
|
+
/**
|
|
182
|
+
* Return everything currently installed in the upstream cache with its
|
|
183
|
+
* version. This is the "what does this daemon have" answer used both by
|
|
184
|
+
* the UI and by the update checker.
|
|
185
|
+
*/
|
|
186
|
+
private handleListInstalledProviders;
|
|
187
|
+
/**
|
|
188
|
+
* For each installed provider, ask the registry for its current latest
|
|
189
|
+
* version and report whether an update is available. The user can then
|
|
190
|
+
* call install_provider_manifest to upgrade (it overwrites the file).
|
|
191
|
+
*
|
|
192
|
+
* Returns { providers: [{ type, category, installedVersion, latestVersion,
|
|
193
|
+
* updateAvailable, error? }] }
|
|
194
|
+
*/
|
|
195
|
+
private handleCheckProviderUpdates;
|
|
196
|
+
/**
|
|
197
|
+
* Register a new external provider source. The daemon clones the repo
|
|
198
|
+
* to ~/.adhdev/external/<name>/, walks it once to detect provided
|
|
199
|
+
* types, and surfaces any conflicts with already-installed types so
|
|
200
|
+
* the dashboard can ask the user how to resolve them.
|
|
201
|
+
*
|
|
202
|
+
* Args: { url: string, ref?: string, name?: string }
|
|
203
|
+
* - url: https://, git@, or any git-cloneable URL
|
|
204
|
+
* - ref: branch/tag/commit (default "main")
|
|
205
|
+
* - name: short identifier (default derived from URL)
|
|
206
|
+
*
|
|
207
|
+
* Returns: { source, providers, conflicts }
|
|
208
|
+
* - conflicts: list of types this new source provides that another
|
|
209
|
+
* source already exposes. UI uses this to prompt for active-source
|
|
210
|
+
* selection before the load takes effect.
|
|
211
|
+
*/
|
|
212
|
+
private handleAddProviderSource;
|
|
213
|
+
/**
|
|
214
|
+
* Remove a registered external source. Deletes the clone directory and
|
|
215
|
+
* any active-source entry pointing to it.
|
|
216
|
+
*
|
|
217
|
+
* Args: { name: string }
|
|
218
|
+
*/
|
|
219
|
+
private handleRemoveProviderSource;
|
|
220
|
+
/**
|
|
221
|
+
* List registered external sources + each source's currently installed
|
|
222
|
+
* providers + the active selection for any conflicting types. Used by
|
|
223
|
+
* the dashboard's "Sources" tab.
|
|
224
|
+
*/
|
|
225
|
+
private handleListProviderSources;
|
|
226
|
+
/**
|
|
227
|
+
* Pick which source's copy of a conflicting provider type is active.
|
|
228
|
+
* Other sources' copies stay on disk but the loader ignores them.
|
|
229
|
+
*
|
|
230
|
+
* Args: { type: string, sourceName: string }
|
|
231
|
+
*/
|
|
232
|
+
private handleSetActiveProviderSource;
|
|
108
233
|
private proxyDevServerPost;
|
|
109
234
|
private proxyDevServerGet;
|
|
110
235
|
private proxyDevServerScaffold;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RF-ROUTER HIGH family — shared types for the extracted high-coupling command
|
|
3
|
+
* handlers. Like the LOW and MED families, each handler is a function of
|
|
4
|
+
* (context, args) that returns the exact CommandRouterResult the original
|
|
5
|
+
* `executeDaemonCommand` switch case returned, so the router facade is unchanged.
|
|
6
|
+
*
|
|
7
|
+
* HIGH handlers are the most router-coupled of the three families: in addition to
|
|
8
|
+
* the MED collaborators (mesh resolution, owner gating, inline-cache), they reach
|
|
9
|
+
* the router's aggregate-status memory cache and running-refine-job table — state
|
|
10
|
+
* the router owns and the `mesh_status` aggregate render and `get_mesh_review_inbox`
|
|
11
|
+
* re-entry both depend on. The router binds those onto HighFamilyContext at
|
|
12
|
+
* dispatch; they are NOT reachable from `deps`.
|
|
13
|
+
*
|
|
14
|
+
* Registry dispatch: DaemonCommandRouter.executeDaemonCommand looks up the cmd in
|
|
15
|
+
* highFamilyRegistry AFTER the LOW and MED registries and BEFORE its remaining
|
|
16
|
+
* switch; a hit returns the handler result, a miss falls through to the switch
|
|
17
|
+
* (and ultimately CommandHandler delegation).
|
|
18
|
+
*/
|
|
19
|
+
import type { CommandRouterDeps, CommandRouterResult, MeshGitProbeCache, MeshRefineJobHandle } from '../router.js';
|
|
20
|
+
import type { ResolvedMeshForCommand } from '../med-family/types.js';
|
|
21
|
+
/**
|
|
22
|
+
* Router-private collaborators injected at dispatch. Each is a bound method or
|
|
23
|
+
* field of DaemonCommandRouter; handlers that don't need a given collaborator
|
|
24
|
+
* simply ignore it. The router owns this instance state (inline-mesh cache,
|
|
25
|
+
* aggregate-status memory cache, running-refine-job table, git-probe cache), so
|
|
26
|
+
* it cannot be read from `deps` — the registry receives bound references instead.
|
|
27
|
+
*/
|
|
28
|
+
export interface HighFamilyContext {
|
|
29
|
+
deps: CommandRouterDeps;
|
|
30
|
+
/** Bound `DaemonCommandRouter.getMeshForCommand`. */
|
|
31
|
+
getMeshForCommand: (meshId: string, inlineMesh?: unknown, options?: {
|
|
32
|
+
preferInline?: boolean;
|
|
33
|
+
}) => Promise<ResolvedMeshForCommand>;
|
|
34
|
+
/** Bound `DaemonCommandRouter.getCachedAggregateMeshStatus`. */
|
|
35
|
+
getCachedAggregateMeshStatus: (meshId: string, mesh?: any, options?: {
|
|
36
|
+
requireDirectPeerTruth?: boolean;
|
|
37
|
+
}) => any | null;
|
|
38
|
+
/** Bound `DaemonCommandRouter.rememberAggregateMeshStatus`. */
|
|
39
|
+
rememberAggregateMeshStatus: (meshId: string, snapshot: any, refreshReason: string) => any;
|
|
40
|
+
/**
|
|
41
|
+
* Bound `DaemonCommandRouter.execute`. `get_mesh_review_inbox` re-enters the
|
|
42
|
+
* router with a `mesh_status` refresh to obtain computed node fields; this is
|
|
43
|
+
* the same self-call the inlined case made.
|
|
44
|
+
*/
|
|
45
|
+
execute: (cmd: string, args: any, source?: string) => Promise<CommandRouterResult>;
|
|
46
|
+
/** Router's aggregate-status memory cache (`.has()` probe in mesh_status). */
|
|
47
|
+
aggregateMeshStatusCache: Map<string, {
|
|
48
|
+
builtAt: number;
|
|
49
|
+
snapshot: any;
|
|
50
|
+
queueRevision: string;
|
|
51
|
+
}>;
|
|
52
|
+
/** Router's running-refine-job table (surfaced as activeRefineJobs in mesh_status). */
|
|
53
|
+
runningRefineJobs: Map<string, MeshRefineJobHandle>;
|
|
54
|
+
/** Router's inline-mesh cache (launch_mesh_coordinator caches cloud inline mesh). */
|
|
55
|
+
inlineMeshCache: Map<string, any>;
|
|
56
|
+
/** Router's mesh git-probe cache (shared probe dedup for mesh_status). */
|
|
57
|
+
meshGitProbeCache: MeshGitProbeCache;
|
|
58
|
+
}
|
|
59
|
+
export type HighFamilyHandler = (ctx: HighFamilyContext, args: any) => Promise<CommandRouterResult | null>;
|
|
60
|
+
export type HighFamilyRegistry = Map<string, HighFamilyHandler>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RF-ROUTER LOW family — coordinator-prompt override/append file commands.
|
|
3
|
+
*
|
|
4
|
+
* Extracted verbatim from DaemonCommandRouter.executeDaemonCommand. Both handlers
|
|
5
|
+
* read/write only the on-disk ~/.adhdev/coordinator-prompts directory (no router
|
|
6
|
+
* instance state) and return the same CommandRouterResult the inlined cases did.
|
|
7
|
+
*/
|
|
8
|
+
import type { LowFamilyHandler } from './types.js';
|
|
9
|
+
export declare const coordinatorPromptHandlers: Record<string, LowFamilyHandler>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RF-ROUTER LOW family — mesh ledger read / slice / import commands.
|
|
3
|
+
*
|
|
4
|
+
* Extracted verbatim from DaemonCommandRouter.executeDaemonCommand. Each handler
|
|
5
|
+
* touches only the on-disk mesh ledger (dynamically imported mesh-ledger module)
|
|
6
|
+
* keyed by meshId — no router instance state — and returns the same
|
|
7
|
+
* CommandRouterResult the inlined cases did.
|
|
8
|
+
*/
|
|
9
|
+
import type { LowFamilyHandler } from './types.js';
|
|
10
|
+
export declare const meshLedgerHandlers: Record<string, LowFamilyHandler>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RF-ROUTER LOW family — provider-dev / spec debug commands.
|
|
3
|
+
*
|
|
4
|
+
* Powers the dev console's spec editor: read/write a session's spec.json, validate
|
|
5
|
+
* an in-progress spec, and preview condition/section resolution against a live
|
|
6
|
+
* session's screen. Extracted verbatim from executeDaemonCommand; reads only
|
|
7
|
+
* ctx.deps.sessionRegistry + ctx.deps.cliManager. resolveSpecPathInProviders (a
|
|
8
|
+
* `this`-free module helper) is relocated here unchanged.
|
|
9
|
+
*/
|
|
10
|
+
import type { LowFamilyHandler } from './types.js';
|
|
11
|
+
export declare const specProviderDevHandlers: Record<string, LowFamilyHandler>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RF-ROUTER LOW family — shared types for the extracted low-coupling command
|
|
3
|
+
* handlers. Each handler is a pure function of (context, args): it reads only the
|
|
4
|
+
* router deps it needs and returns the exact CommandRouterResult the original
|
|
5
|
+
* `executeDaemonCommand` switch case returned, so the router facade is unchanged.
|
|
6
|
+
*
|
|
7
|
+
* Registry dispatch: DaemonCommandRouter.executeDaemonCommand looks up the cmd in
|
|
8
|
+
* lowFamilyRegistry BEFORE its switch; a hit returns the handler result, a miss
|
|
9
|
+
* falls through to the remaining switch (and ultimately CommandHandler delegation).
|
|
10
|
+
*/
|
|
11
|
+
import type { CommandRouterDeps, CommandRouterResult } from '../router.js';
|
|
12
|
+
/** Mesh record resolved from the router's inline-mesh cache + local config. */
|
|
13
|
+
export type ResolvedMeshForCommand = {
|
|
14
|
+
mesh: any;
|
|
15
|
+
inline: boolean;
|
|
16
|
+
source: 'inline_cache' | 'inline_bootstrap' | 'local_config';
|
|
17
|
+
} | null;
|
|
18
|
+
export interface LowFamilyContext {
|
|
19
|
+
deps: CommandRouterDeps;
|
|
20
|
+
/**
|
|
21
|
+
* Bound `DaemonCommandRouter.getMeshForCommand`. A handful of LOW handlers
|
|
22
|
+
* (mesh-node-logs) must resolve a mesh node's owning daemonId from the
|
|
23
|
+
* router's inline-mesh cache, which is router instance state not present in
|
|
24
|
+
* `deps`. The router injects it at dispatch; handlers that don't need it
|
|
25
|
+
* ignore it. Optional so unit tests can omit it (and assert the guarded
|
|
26
|
+
* fallback) without constructing a full router.
|
|
27
|
+
*/
|
|
28
|
+
getMeshForCommand?: (meshId: string, inlineMesh?: unknown, options?: {
|
|
29
|
+
preferInline?: boolean;
|
|
30
|
+
}) => Promise<ResolvedMeshForCommand>;
|
|
31
|
+
}
|
|
32
|
+
export type LowFamilyHandler = (ctx: LowFamilyContext, args: any) => Promise<CommandRouterResult>;
|
|
33
|
+
export type LowFamilyRegistry = Map<string, LowFamilyHandler>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CommandRouterResult } from '../router.js';
|
|
2
|
+
import type { MedFamilyContext, MedFamilyHandler } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* IDE launch + CDP connect. Lifted verbatim from the original `launch_ide` switch
|
|
5
|
+
* case so restart_session / restart_ide can call it directly instead of recursing
|
|
6
|
+
* through executeDaemonCommand. Reads the router's CDP managers and detection
|
|
7
|
+
* caches via ctx.deps.
|
|
8
|
+
*/
|
|
9
|
+
export declare function launchIde(ctx: MedFamilyContext, args: any): Promise<CommandRouterResult>;
|
|
10
|
+
export declare const ideHandlers: Record<string, MedFamilyHandler>;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RF-ROUTER MED family — shared types for the extracted medium-coupling command
|
|
3
|
+
* handlers. Like the LOW family, each handler is a function of (context, args)
|
|
4
|
+
* that returns the exact CommandRouterResult the original `executeDaemonCommand`
|
|
5
|
+
* switch case returned, so the router facade is unchanged.
|
|
6
|
+
*
|
|
7
|
+
* Unlike the LOW family, MED handlers need a handful of router-private
|
|
8
|
+
* collaborators (mesh resolution, owner gating, inline-cache mutation, worktree /
|
|
9
|
+
* session cleanup, refine job starters, IDE launch). The router binds these onto
|
|
10
|
+
* MedFamilyContext at dispatch; they are NOT reachable from `deps`. The IDE family
|
|
11
|
+
* also needs `launchIde` to break the original `launch_ide`/`restart_*`
|
|
12
|
+
* self-recursion through executeDaemonCommand.
|
|
13
|
+
*
|
|
14
|
+
* Registry dispatch: DaemonCommandRouter.executeDaemonCommand looks up the cmd in
|
|
15
|
+
* medFamilyRegistry BEFORE its switch; a hit returns the handler result, a miss
|
|
16
|
+
* falls through to the remaining switch (and ultimately CommandHandler delegation).
|
|
17
|
+
*/
|
|
18
|
+
import type { CommandRouterDeps, CommandRouterResult, MeshGitProbeCache } from '../router.js';
|
|
19
|
+
import type { RepoMeshSessionCleanupMode } from '../../repo-mesh-types.js';
|
|
20
|
+
import type { WorktreeBootstrapState } from '../../mesh/worktree-bootstrap-config.js';
|
|
21
|
+
/** Mesh record resolved from the router's inline-mesh cache + local config. */
|
|
22
|
+
export type ResolvedMeshForCommand = {
|
|
23
|
+
mesh: any;
|
|
24
|
+
inline: boolean;
|
|
25
|
+
source: 'inline_cache' | 'inline_bootstrap' | 'local_config';
|
|
26
|
+
} | null;
|
|
27
|
+
/** Result of the router's local worktree-node cleanup. */
|
|
28
|
+
export type CleanupLocalWorktreeNodeResult = {
|
|
29
|
+
success: true;
|
|
30
|
+
skipped?: boolean;
|
|
31
|
+
removedPath?: string;
|
|
32
|
+
repoRoot?: string;
|
|
33
|
+
reason?: string;
|
|
34
|
+
fallback?: string;
|
|
35
|
+
forced?: boolean;
|
|
36
|
+
convergence?: Record<string, unknown>;
|
|
37
|
+
recovered?: boolean;
|
|
38
|
+
residue?: boolean;
|
|
39
|
+
residueWarning?: string;
|
|
40
|
+
residueError?: string;
|
|
41
|
+
} | {
|
|
42
|
+
success: false;
|
|
43
|
+
code: string;
|
|
44
|
+
error: string;
|
|
45
|
+
recoveryHint: string;
|
|
46
|
+
convergence?: Record<string, unknown>;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Router-private collaborators injected at dispatch. Each is a bound method or
|
|
50
|
+
* field of DaemonCommandRouter; handlers that don't need a given collaborator
|
|
51
|
+
* simply ignore it. The router owns this instance state (inline-mesh cache,
|
|
52
|
+
* aggregate-status cache, session/worktree cleanup, refine jobs), so it cannot be
|
|
53
|
+
* read from `deps` — the registry receives bound references instead.
|
|
54
|
+
*/
|
|
55
|
+
export interface MedFamilyContext {
|
|
56
|
+
deps: CommandRouterDeps;
|
|
57
|
+
/** Bound `DaemonCommandRouter.getMeshForCommand`. */
|
|
58
|
+
getMeshForCommand: (meshId: string, inlineMesh?: unknown, options?: {
|
|
59
|
+
preferInline?: boolean;
|
|
60
|
+
}) => Promise<ResolvedMeshForCommand>;
|
|
61
|
+
/** Bound `DaemonCommandRouter.getCachedInlineMesh`. */
|
|
62
|
+
getCachedInlineMesh: (meshId: string, inlineMesh?: unknown) => any | undefined;
|
|
63
|
+
/** Bound `DaemonCommandRouter.requireMeshHostMutationOwner` (owner gate). */
|
|
64
|
+
requireMeshHostMutationOwner: (meshId: string, inlineMesh: unknown, operation: string) => Promise<CommandRouterResult | null>;
|
|
65
|
+
/** Bound `DaemonCommandRouter.invalidateAggregateMeshStatus`. */
|
|
66
|
+
invalidateAggregateMeshStatus: (meshId: string) => void;
|
|
67
|
+
/** Bound `DaemonCommandRouter.updateInlineMeshNode`. */
|
|
68
|
+
updateInlineMeshNode: (meshId: string, mesh: any, node: any) => void;
|
|
69
|
+
/** Bound `DaemonCommandRouter.removeInlineMeshNode`. */
|
|
70
|
+
removeInlineMeshNode: (meshId: string, mesh: any, nodeId: string) => boolean;
|
|
71
|
+
/** Bound `DaemonCommandRouter.normalizeMeshSessionCleanupMode`. */
|
|
72
|
+
normalizeMeshSessionCleanupMode: (value: unknown) => RepoMeshSessionCleanupMode;
|
|
73
|
+
/** Bound `DaemonCommandRouter.cleanupMeshSessions`. */
|
|
74
|
+
cleanupMeshSessions: (args: {
|
|
75
|
+
meshId: string;
|
|
76
|
+
nodeId: string;
|
|
77
|
+
node: any;
|
|
78
|
+
mode: RepoMeshSessionCleanupMode;
|
|
79
|
+
sessionIds?: string[];
|
|
80
|
+
dryRun?: boolean;
|
|
81
|
+
source?: 'mesh_cleanup_sessions' | 'mesh_remove_node';
|
|
82
|
+
}) => Promise<{
|
|
83
|
+
success: boolean;
|
|
84
|
+
[key: string]: unknown;
|
|
85
|
+
}>;
|
|
86
|
+
/** Bound `DaemonCommandRouter.cleanupLocalWorktreeNode`. */
|
|
87
|
+
cleanupLocalWorktreeNode: (args: {
|
|
88
|
+
mesh: any;
|
|
89
|
+
node: any;
|
|
90
|
+
nodeId: string;
|
|
91
|
+
force?: boolean;
|
|
92
|
+
}) => Promise<CleanupLocalWorktreeNodeResult>;
|
|
93
|
+
/** Bound `DaemonCommandRouter.startMeshRefineJob` (async execute path). */
|
|
94
|
+
startMeshRefineJob: (meshId: string, nodeId: string, args: any) => Promise<CommandRouterResult>;
|
|
95
|
+
/** Bound `DaemonCommandRouter.batchRefineMeshNodes` (dry-run batch plan). */
|
|
96
|
+
batchRefineMeshNodes: (meshId: string, requestedNodeIds: string[] | undefined, args: any) => Promise<CommandRouterResult>;
|
|
97
|
+
/** Bound `DaemonCommandRouter.startMeshRefineBatchJob` (async batch execute). */
|
|
98
|
+
startMeshRefineBatchJob: (meshId: string, requestedNodeIds: string[] | undefined, args: any) => Promise<CommandRouterResult>;
|
|
99
|
+
/** Bound `DaemonCommandRouter.stopIde` (CDP disconnect + cleanup + optional kill). */
|
|
100
|
+
stopIde: (ideType: string, killProcess?: boolean) => Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Module-level `launchIde` helper bound to this context. The original
|
|
103
|
+
* `launch_ide` case body, lifted into a free function so `restart_session` /
|
|
104
|
+
* `restart_ide` can invoke the IDE launch directly instead of recursing
|
|
105
|
+
* through `executeDaemonCommand('launch_ide')` (which would re-enter the
|
|
106
|
+
* registry). Byte-identical to the original case body.
|
|
107
|
+
*/
|
|
108
|
+
launchIde: (args: any) => Promise<CommandRouterResult>;
|
|
109
|
+
/** Router's inline-mesh cache (read/write of resolved mesh records). */
|
|
110
|
+
inlineMeshCache: Map<string, any>;
|
|
111
|
+
/** Router's mesh git-probe cache (reused direct-truth probes for get_mesh). */
|
|
112
|
+
meshGitProbeCache: MeshGitProbeCache;
|
|
113
|
+
}
|
|
114
|
+
export type MedFamilyHandler = (ctx: MedFamilyContext, args: any) => Promise<CommandRouterResult | null>;
|
|
115
|
+
export type MedFamilyRegistry = Map<string, MedFamilyHandler>;
|
|
116
|
+
export type { WorktreeBootstrapState };
|