@adhdev/daemon-core 0.9.82-rc.46 → 0.9.82-rc.461
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-refine.d.ts +137 -0
- package/dist/commands/router-worktree-cleanup.d.ts +133 -0
- package/dist/commands/router.d.ts +241 -12
- 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 +67 -15
- package/dist/index.js +58583 -25541
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +58207 -25332
- 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 +174 -0
- package/dist/mesh/mesh-clone-grace.d.ts +8 -0
- package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
- package/dist/mesh/mesh-delivery-policy.d.ts +131 -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 +155 -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 +133 -1
- package/dist/mesh/mesh-magi-status.d.ts +63 -0
- package/dist/mesh/mesh-missions.d.ts +189 -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-loop.d.ts +80 -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-review-inbox.d.ts +90 -0
- package/dist/mesh/mesh-routing.d.ts +70 -0
- package/dist/mesh/mesh-runtime-store.d.ts +493 -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 +318 -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 +45 -0
- package/dist/providers/chat-message-normalization.d.ts +58 -1
- package/dist/providers/cli-provider-instance.d.ts +290 -3
- 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 +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 +598 -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 +89 -0
- package/src/commands/high-family/mesh-status.ts +832 -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-refine.ts +1711 -0
- package/src/commands/router-worktree-cleanup.ts +870 -0
- package/src/commands/router.ts +1025 -4070
- 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 +200 -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/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 +554 -34
- package/src/mesh/coordinator-registry.ts +121 -0
- package/src/mesh/mesh-active-work.ts +656 -0
- package/src/mesh/mesh-clone-grace.ts +68 -0
- package/src/mesh/mesh-coordinator-config.ts +97 -0
- package/src/mesh/mesh-delivery-policy.ts +315 -0
- package/src/mesh/mesh-event-classify.ts +73 -0
- package/src/mesh/mesh-event-forwarding.ts +1950 -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 +1132 -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 +35 -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 +873 -102
- package/src/mesh/mesh-magi-status.ts +223 -0
- package/src/mesh/mesh-missions.ts +449 -0
- package/src/mesh/mesh-node-identity.ts +2065 -0
- package/src/mesh/mesh-queue-assignment.ts +2233 -0
- package/src/mesh/mesh-reconcile-loop.ts +2397 -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-review-inbox.ts +308 -0
- package/src/mesh/mesh-routing.ts +291 -0
- package/src/mesh/mesh-runtime-store.ts +2056 -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 +1281 -141
- 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 +99 -5
- package/src/providers/chat-message-normalization.ts +126 -4
- package/src/providers/cli-provider-instance.ts +2456 -107
- 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 +260 -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 +1174 -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 +836 -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,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,48 @@
|
|
|
1
|
+
import type { GitRepoIdentity } from '../../git/git-types.js';
|
|
2
|
+
import type { MedFamilyHandler } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Decision for syncing a freshly-cloned worktree's `oss` submodule to its clone
|
|
5
|
+
* source node, applying resolveWorktreeBaseStartPoint's origin-tip-priority
|
|
6
|
+
* policy to the submodule.
|
|
7
|
+
*
|
|
8
|
+
* On clone, `submodule update --init` checks the worktree's `oss` out at the
|
|
9
|
+
* gitlink recorded in the FRESH root base — which the root base-stale fix
|
|
10
|
+
* branches from origin/main, so it is the up-to-date origin tip. The clone
|
|
11
|
+
* source node's *working* `oss` SHA can lag that tip. The original sync blindly
|
|
12
|
+
* checked out the source SHA whenever it merely differed, which REWINDS the
|
|
13
|
+
* submodule back onto the stale source and re-introduces staleness.
|
|
14
|
+
*
|
|
15
|
+
* Guard policy (never rewind, mirror the base-start-point resolver):
|
|
16
|
+
* - source SHA == worktree SHA → `noop`
|
|
17
|
+
* - source SHA is an ancestor of worktree → `skip_rewind` (source is behind; keep fresh tip)
|
|
18
|
+
* - worktree SHA is an ancestor of source → `advance` (source strictly newer; safe fast-forward)
|
|
19
|
+
* - neither is an ancestor (diverged) → `skip_diverged` (keep fresh tip; coordinator reconciles)
|
|
20
|
+
*
|
|
21
|
+
* Both SHAs must already be resolvable in `ossCtx` (the caller fetches the
|
|
22
|
+
* source SHA first). A non-1 git exit (unresolvable SHA / real failure) is
|
|
23
|
+
* rethrown so the caller can fall back to keeping the fresh worktree HEAD.
|
|
24
|
+
*/
|
|
25
|
+
export type OssCloneSyncAction = 'noop' | 'advance' | 'skip_rewind' | 'skip_diverged';
|
|
26
|
+
export declare function decideOssCloneSync(ossCtx: GitRepoIdentity, worktreeOssSha: string, sourceSha: string, rg: (ctx: GitRepoIdentity, argv: string[], opts?: {
|
|
27
|
+
timeoutMs?: number;
|
|
28
|
+
}) => Promise<unknown>): Promise<OssCloneSyncAction>;
|
|
29
|
+
/**
|
|
30
|
+
* Sync every registered submodule of a freshly-cloned worktree to its clone source
|
|
31
|
+
* node's working submodule HEAD, applying decideOssCloneSync's origin-tip-priority
|
|
32
|
+
* rewind guard per submodule.
|
|
33
|
+
*
|
|
34
|
+
* Generic over the submodule set: the paths come from `.gitmodules` via
|
|
35
|
+
* getRegisteredSubmodulePaths, so this operates identically over EVERY registered
|
|
36
|
+
* submodule (oss, adhdev-providers, …) instead of a hardcoded 'oss' literal. In a
|
|
37
|
+
* repo whose only synced submodule is `oss` the emitted git commands are byte-identical
|
|
38
|
+
* to the original oss-only path.
|
|
39
|
+
*
|
|
40
|
+
* Best-effort by design: a failure on one submodule is logged and skipped; it never
|
|
41
|
+
* blocks the other submodules or the clone. A submodule is only ever advanced to a
|
|
42
|
+
* STRICTLY-NEWER source SHA — the fresh (origin/main-derived) worktree tip is never
|
|
43
|
+
* rewound onto a behind/diverged source.
|
|
44
|
+
*/
|
|
45
|
+
export declare function syncClonedWorktreeSubmodules(worktreePath: string, sourceWorkspace: string, rg: (ctx: GitRepoIdentity, argv: string[], opts?: {
|
|
46
|
+
timeoutMs?: number;
|
|
47
|
+
}) => Promise<unknown>): Promise<void>;
|
|
48
|
+
export declare const meshCrudHandlers: Record<string, MedFamilyHandler>;
|
|
@@ -0,0 +1,152 @@
|
|
|
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
|
+
* Result of the non-destructive local-worktree removability precheck. `ok:false`
|
|
50
|
+
* carries the same refusal `code`/`error`/`recoveryHint` that the destructive
|
|
51
|
+
* cleanup would have returned, so callers can refuse a removal BEFORE performing
|
|
52
|
+
* any irreversible step (e.g. stopping/deleting delegated sessions).
|
|
53
|
+
*/
|
|
54
|
+
export type WorktreeRemovalPrecheckResult = {
|
|
55
|
+
ok: true;
|
|
56
|
+
} | {
|
|
57
|
+
ok: false;
|
|
58
|
+
code: string;
|
|
59
|
+
error: string;
|
|
60
|
+
recoveryHint: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Router-private collaborators injected at dispatch. Each is a bound method or
|
|
64
|
+
* field of DaemonCommandRouter; handlers that don't need a given collaborator
|
|
65
|
+
* simply ignore it. The router owns this instance state (inline-mesh cache,
|
|
66
|
+
* aggregate-status cache, session/worktree cleanup, refine jobs), so it cannot be
|
|
67
|
+
* read from `deps` — the registry receives bound references instead.
|
|
68
|
+
*/
|
|
69
|
+
export interface MedFamilyContext {
|
|
70
|
+
deps: CommandRouterDeps;
|
|
71
|
+
/** Bound `DaemonCommandRouter.getMeshForCommand`. */
|
|
72
|
+
getMeshForCommand: (meshId: string, inlineMesh?: unknown, options?: {
|
|
73
|
+
preferInline?: boolean;
|
|
74
|
+
}) => Promise<ResolvedMeshForCommand>;
|
|
75
|
+
/** Bound `DaemonCommandRouter.getCachedInlineMesh`. */
|
|
76
|
+
getCachedInlineMesh: (meshId: string, inlineMesh?: unknown) => any | undefined;
|
|
77
|
+
/** Bound `DaemonCommandRouter.requireMeshHostMutationOwner` (owner gate). */
|
|
78
|
+
requireMeshHostMutationOwner: (meshId: string, inlineMesh: unknown, operation: string) => Promise<CommandRouterResult | null>;
|
|
79
|
+
/** Bound `DaemonCommandRouter.invalidateAggregateMeshStatus`. */
|
|
80
|
+
invalidateAggregateMeshStatus: (meshId: string) => void;
|
|
81
|
+
/** Bound `DaemonCommandRouter.updateInlineMeshNode`. */
|
|
82
|
+
updateInlineMeshNode: (meshId: string, mesh: any, node: any) => void;
|
|
83
|
+
/** Bound `DaemonCommandRouter.removeInlineMeshNode`. */
|
|
84
|
+
removeInlineMeshNode: (meshId: string, mesh: any, nodeId: string) => boolean;
|
|
85
|
+
/** Bound `DaemonCommandRouter.normalizeMeshSessionCleanupMode`. */
|
|
86
|
+
normalizeMeshSessionCleanupMode: (value: unknown) => RepoMeshSessionCleanupMode;
|
|
87
|
+
/** Bound `DaemonCommandRouter.cleanupMeshSessions`. */
|
|
88
|
+
cleanupMeshSessions: (args: {
|
|
89
|
+
meshId: string;
|
|
90
|
+
nodeId: string;
|
|
91
|
+
node: any;
|
|
92
|
+
mode: RepoMeshSessionCleanupMode;
|
|
93
|
+
sessionIds?: string[];
|
|
94
|
+
dryRun?: boolean;
|
|
95
|
+
source?: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
|
|
96
|
+
requireAutoLaunchedForTaskIds?: Record<string, string>;
|
|
97
|
+
/**
|
|
98
|
+
* Opt-in orphan reclaim (default false). When true, a workspace-only live
|
|
99
|
+
* session (no node binding) OR a session bound to a node that no longer
|
|
100
|
+
* exists in `liveMeshNodeIds` is stopped instead of skipped — reclaims the
|
|
101
|
+
* SESSION-ACCUMULATION-LEAK orphans. `liveMeshNodeIds` is the current mesh's
|
|
102
|
+
* node id set; a session whose meshNodeId is still present is treated as an
|
|
103
|
+
* active sibling and left alone.
|
|
104
|
+
*/
|
|
105
|
+
reclaimOrphans?: boolean;
|
|
106
|
+
liveMeshNodeIds?: string[];
|
|
107
|
+
}) => Promise<{
|
|
108
|
+
success: boolean;
|
|
109
|
+
[key: string]: unknown;
|
|
110
|
+
}>;
|
|
111
|
+
/** Bound `DaemonCommandRouter.cleanupLocalWorktreeNode`. */
|
|
112
|
+
cleanupLocalWorktreeNode: (args: {
|
|
113
|
+
mesh: any;
|
|
114
|
+
node: any;
|
|
115
|
+
nodeId: string;
|
|
116
|
+
force?: boolean;
|
|
117
|
+
}) => Promise<CleanupLocalWorktreeNodeResult>;
|
|
118
|
+
/**
|
|
119
|
+
* Bound `DaemonCommandRouter.precheckLocalWorktreeRemovable` — purely
|
|
120
|
+
* non-destructive validation of whether a local worktree node can be removed.
|
|
121
|
+
* Called BEFORE session cleanup so a refusal does not orphan the session.
|
|
122
|
+
*/
|
|
123
|
+
precheckLocalWorktreeRemovable: (args: {
|
|
124
|
+
mesh: any;
|
|
125
|
+
node: any;
|
|
126
|
+
nodeId: string;
|
|
127
|
+
force?: boolean;
|
|
128
|
+
}) => Promise<WorktreeRemovalPrecheckResult>;
|
|
129
|
+
/** Bound `DaemonCommandRouter.startMeshRefineJob` (async execute path). */
|
|
130
|
+
startMeshRefineJob: (meshId: string, nodeId: string, args: any) => Promise<CommandRouterResult>;
|
|
131
|
+
/** Bound `DaemonCommandRouter.batchRefineMeshNodes` (dry-run batch plan). */
|
|
132
|
+
batchRefineMeshNodes: (meshId: string, requestedNodeIds: string[] | undefined, args: any) => Promise<CommandRouterResult>;
|
|
133
|
+
/** Bound `DaemonCommandRouter.startMeshRefineBatchJob` (async batch execute). */
|
|
134
|
+
startMeshRefineBatchJob: (meshId: string, requestedNodeIds: string[] | undefined, args: any) => Promise<CommandRouterResult>;
|
|
135
|
+
/** Bound `DaemonCommandRouter.stopIde` (CDP disconnect + cleanup + optional kill). */
|
|
136
|
+
stopIde: (ideType: string, killProcess?: boolean) => Promise<void>;
|
|
137
|
+
/**
|
|
138
|
+
* Module-level `launchIde` helper bound to this context. The original
|
|
139
|
+
* `launch_ide` case body, lifted into a free function so `restart_session` /
|
|
140
|
+
* `restart_ide` can invoke the IDE launch directly instead of recursing
|
|
141
|
+
* through `executeDaemonCommand('launch_ide')` (which would re-enter the
|
|
142
|
+
* registry). Byte-identical to the original case body.
|
|
143
|
+
*/
|
|
144
|
+
launchIde: (args: any) => Promise<CommandRouterResult>;
|
|
145
|
+
/** Router's inline-mesh cache (read/write of resolved mesh records). */
|
|
146
|
+
inlineMeshCache: Map<string, any>;
|
|
147
|
+
/** Router's mesh git-probe cache (reused direct-truth probes for get_mesh). */
|
|
148
|
+
meshGitProbeCache: MeshGitProbeCache;
|
|
149
|
+
}
|
|
150
|
+
export type MedFamilyHandler = (ctx: MedFamilyContext, args: any) => Promise<CommandRouterResult | null>;
|
|
151
|
+
export type MedFamilyRegistry = Map<string, MedFamilyHandler>;
|
|
152
|
+
export type { WorktreeBootstrapState };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MeshCoordinatorMcpConfigFormat, MeshCoordinatorSystemPromptInjection, ProviderModule } from '../providers/contracts.js';
|
|
2
2
|
export interface MeshCoordinatorMcpServerLaunch {
|
|
3
3
|
command: string;
|
|
4
4
|
args: string[];
|
|
@@ -25,6 +25,7 @@ export type MeshCoordinatorSetup = {
|
|
|
25
25
|
command: string;
|
|
26
26
|
requiresRestart: boolean;
|
|
27
27
|
instructions: string;
|
|
28
|
+
mcpServer: MeshCoordinatorMcpServerLaunch;
|
|
28
29
|
} | {
|
|
29
30
|
kind: 'unsupported';
|
|
30
31
|
reason: string;
|
|
@@ -42,3 +43,86 @@ export interface ResolveMeshCoordinatorSetupOptions {
|
|
|
42
43
|
}
|
|
43
44
|
export declare function createHermesManualMeshCoordinatorSetup(meshId: string, workspace: string): MeshCoordinatorSetup;
|
|
44
45
|
export declare function resolveMeshCoordinatorSetup(options: ResolveMeshCoordinatorSetupOptions): MeshCoordinatorSetup;
|
|
46
|
+
/**
|
|
47
|
+
* Apply a provider's declared system-prompt injection rule, mutating `cliArgs`
|
|
48
|
+
* and `launchEnv` in place and writing any required workspace context file.
|
|
49
|
+
*
|
|
50
|
+
* Replaces the previous hard-coded `if (cliType === 'claude-cli') ... else if
|
|
51
|
+
* (cliType === 'hermes-cli') ...` branches in router.ts. Adding a new CLI is
|
|
52
|
+
* now provider.v1.json data, not a router edit.
|
|
53
|
+
*
|
|
54
|
+
* Failures are non-fatal: log and continue with whatever was applied so the
|
|
55
|
+
* coordinator session still launches, just without the prompt for that
|
|
56
|
+
* provider. A missing/unknown rule means "skip injection" — safe by default
|
|
57
|
+
* (the previous fallback unconditionally pushed --append-system-prompt onto
|
|
58
|
+
* every non-Claude CLI, which crashed agy on launch).
|
|
59
|
+
*/
|
|
60
|
+
export interface CoordinatorInjectionEffect {
|
|
61
|
+
/** Absolute path the daemon wrote a wrapper-blocked file to. Only set for
|
|
62
|
+
* context_file injection. R48 schedules a strip after launch so workers
|
|
63
|
+
* don't see the wrapper on disk; R47's unregister cleanup uses it as a
|
|
64
|
+
* fallback if the timer never fires (process crash, etc). */
|
|
65
|
+
contextFilePath?: string;
|
|
66
|
+
}
|
|
67
|
+
export declare function applyMeshCoordinatorSystemPromptInjection(systemPrompt: string, injection: MeshCoordinatorSystemPromptInjection | undefined, ctx: {
|
|
68
|
+
cliArgs: string[];
|
|
69
|
+
launchEnv: Record<string, string>;
|
|
70
|
+
workspace: string;
|
|
71
|
+
cliType: string;
|
|
72
|
+
}): CoordinatorInjectionEffect;
|
|
73
|
+
/**
|
|
74
|
+
* Strip the daemon's wrapper block from a context_file we previously wrote.
|
|
75
|
+
*
|
|
76
|
+
* Used in two places:
|
|
77
|
+
* 1. R48 inject-then-remove: ~5s after spawn, after agy/gemini have read
|
|
78
|
+
* the file into their in-memory system-prompt cache. Removing it from
|
|
79
|
+
* disk at that point doesn't affect the running coordinator but keeps
|
|
80
|
+
* worker sessions (or fresh non-coordinator launches) in the same
|
|
81
|
+
* workspace from picking up our wrapper.
|
|
82
|
+
* 2. R47 unregister fallback: if the timer never fires (process crash,
|
|
83
|
+
* kill -9), coordinator-registry.unregisterMeshCoordinator runs the
|
|
84
|
+
* same logic when its entry is dropped.
|
|
85
|
+
*
|
|
86
|
+
* Idempotent: missing file is fine, missing sentinels are fine, returns
|
|
87
|
+
* silently. Leaves user-authored content outside the sentinels intact.
|
|
88
|
+
* Deletes the file outright if our wrapper was the only content.
|
|
89
|
+
*/
|
|
90
|
+
export declare function stripCoordinatorWrapperFile(filePath: string): void;
|
|
91
|
+
export interface PtyExecResult {
|
|
92
|
+
exitCode: number | null;
|
|
93
|
+
signal: number | null;
|
|
94
|
+
output: string;
|
|
95
|
+
timedOut: boolean;
|
|
96
|
+
}
|
|
97
|
+
export interface MeshCoordinatorRegistrationStep {
|
|
98
|
+
command: string;
|
|
99
|
+
args: string[];
|
|
100
|
+
required: boolean;
|
|
101
|
+
label: 'remove_existing' | 'register';
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Codex rejects `mcp add` when a server with the same name already exists.
|
|
105
|
+
* Replace that entry before registering so transport/mesh changes do not leave
|
|
106
|
+
* a fresh coordinator attached to stale MCP launch arguments.
|
|
107
|
+
*/
|
|
108
|
+
export declare function buildMeshCoordinatorRegistrationPlan(cliType: string, serverName: string, registrationCommand: string): MeshCoordinatorRegistrationStep[];
|
|
109
|
+
/**
|
|
110
|
+
* Run a one-shot CLI command under a real PTY and collect its output.
|
|
111
|
+
*
|
|
112
|
+
* Some provider mcp-registration commands (`agy mcp add`, future bubbletea
|
|
113
|
+
* TUIs) refuse to run without `/dev/tty`. Daemon-side `execFileSync` runs
|
|
114
|
+
* pipe-only, so those commands fail with errors like
|
|
115
|
+
* `bubbletea: error opening TTY: open /dev/tty: device not configured`
|
|
116
|
+
* and silently skip the registration, leaving the launched session
|
|
117
|
+
* without the adhdev-mesh MCP tools — which is exactly what we saw with
|
|
118
|
+
* agy coordinators.
|
|
119
|
+
*
|
|
120
|
+
* Wrapping the registration through node-pty gives the child a real PTY,
|
|
121
|
+
* so the bubbletea check passes. We close stdin immediately and just
|
|
122
|
+
* collect stdout until the process exits or the timeout fires.
|
|
123
|
+
*/
|
|
124
|
+
export declare function execUnderPty(command: string, args: string[], options?: {
|
|
125
|
+
cwd?: string;
|
|
126
|
+
env?: Record<string, string>;
|
|
127
|
+
timeoutMs?: number;
|
|
128
|
+
}): Promise<PtyExecResult>;
|
|
@@ -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>;
|