@adhdev/daemon-core 0.9.82-rc.49 → 0.9.82-rc.490
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 +220 -0
- package/dist/cli-adapters/provider-cli-adapter.d.ts +137 -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 +23 -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 +71 -1
- package/dist/commands/handler.d.ts +125 -0
- package/dist/commands/high-family/index.d.ts +3 -0
- package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
- package/dist/commands/high-family/mesh-events.d.ts +2 -0
- package/dist/commands/high-family/mesh-status.d.ts +2 -0
- package/dist/commands/high-family/types.d.ts +64 -0
- package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
- package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
- package/dist/commands/low-family/diagnostics.d.ts +2 -0
- package/dist/commands/low-family/index.d.ts +3 -0
- package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
- package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
- package/dist/commands/low-family/notification.d.ts +2 -0
- package/dist/commands/low-family/refine-config.d.ts +2 -0
- package/dist/commands/low-family/session-host.d.ts +2 -0
- package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
- package/dist/commands/low-family/status-meta.d.ts +2 -0
- package/dist/commands/low-family/types.d.ts +33 -0
- package/dist/commands/med-family/cli-agent.d.ts +2 -0
- package/dist/commands/med-family/fast-forward.d.ts +2 -0
- package/dist/commands/med-family/ide.d.ts +10 -0
- package/dist/commands/med-family/index.d.ts +3 -0
- package/dist/commands/med-family/mesh-crud.d.ts +48 -0
- package/dist/commands/med-family/mesh-host-pairing.d.ts +2 -0
- package/dist/commands/med-family/mesh-queue.d.ts +2 -0
- package/dist/commands/med-family/mesh-restart.d.ts +2 -0
- package/dist/commands/med-family/types.d.ts +152 -0
- package/dist/commands/mesh-coordinator.d.ts +85 -1
- package/dist/commands/router-aggregate-status.d.ts +24 -0
- package/dist/commands/router-mesh-session-owner.d.ts +59 -0
- package/dist/commands/router-refine.d.ts +151 -0
- package/dist/commands/router-worktree-cleanup.d.ts +133 -0
- package/dist/commands/router.d.ts +203 -15
- package/dist/commands/upgrade-helper.d.ts +41 -1
- package/dist/config/chat-history.d.ts +11 -0
- package/dist/config/config.d.ts +19 -0
- package/dist/config/mesh-config.d.ts +65 -0
- 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/config/state-store.d.ts +30 -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 +80 -0
- package/dist/git/git-types.d.ts +2 -50
- package/dist/git/git-worktree.d.ts +71 -1
- package/dist/git/index.d.ts +3 -1
- package/dist/index.d.ts +70 -17
- package/dist/index.js +53532 -19073
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +53283 -18989
- 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 +256 -0
- package/dist/mesh/coordinator-prompt.d.ts +76 -0
- package/dist/mesh/coordinator-registry.d.ts +59 -0
- package/dist/mesh/mesh-active-work.d.ts +203 -0
- package/dist/mesh/mesh-clone-grace.d.ts +8 -0
- package/dist/mesh/mesh-completion-synthesis.d.ts +4 -0
- package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
- package/dist/mesh/mesh-delivery-policy.d.ts +104 -0
- package/dist/mesh/mesh-event-classify.d.ts +7 -0
- package/dist/mesh/mesh-event-forwarding.d.ts +58 -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 +258 -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 +21 -1
- package/dist/mesh/mesh-init.d.ts +128 -0
- package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
- package/dist/mesh/mesh-ledger.d.ts +139 -1
- package/dist/mesh/mesh-magi-status.d.ts +63 -0
- package/dist/mesh/mesh-missions.d.ts +281 -0
- package/dist/mesh/mesh-node-identity.d.ts +310 -0
- package/dist/mesh/mesh-queue-assignment.d.ts +162 -0
- package/dist/mesh/mesh-reconcile-acked-hold.d.ts +17 -0
- package/dist/mesh/mesh-reconcile-config.d.ts +6 -0
- package/dist/mesh/mesh-reconcile-identity.d.ts +6 -0
- package/dist/mesh/mesh-reconcile-loop.d.ts +84 -0
- package/dist/mesh/mesh-reconcile-v2-backstop.d.ts +16 -0
- package/dist/mesh/mesh-refine-batch.d.ts +68 -0
- package/dist/mesh/mesh-refine-gates.d.ts +457 -0
- package/dist/mesh/mesh-refine-status.d.ts +62 -0
- package/dist/mesh/mesh-remote-event-pull.d.ts +15 -0
- package/dist/mesh/mesh-review-inbox.d.ts +90 -0
- package/dist/mesh/mesh-routing.d.ts +70 -0
- package/dist/mesh/mesh-runtime-store.d.ts +567 -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 +34 -0
- package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
- package/dist/mesh/mesh-work-queue.d.ts +392 -1
- package/dist/mesh/preview-freshness.d.ts +28 -0
- package/dist/mesh/refine-config.d.ts +97 -0
- package/dist/mesh/worktree-bootstrap-config.d.ts +219 -0
- package/dist/providers/acp-provider-instance.d.ts +5 -0
- package/dist/providers/approval-utils.d.ts +46 -0
- package/dist/providers/chat-message-normalization.d.ts +58 -1
- package/dist/providers/cli-provider-effect-format.d.ts +30 -0
- package/dist/providers/cli-provider-history-dedup.d.ts +17 -0
- package/dist/providers/cli-provider-input-prompt.d.ts +12 -0
- package/dist/providers/cli-provider-instance-types.d.ts +45 -0
- package/dist/providers/cli-provider-instance.d.ts +426 -30
- package/dist/providers/cli-provider-status-helpers.d.ts +46 -0
- package/dist/providers/cli-provider-transcript-merge.d.ts +7 -0
- package/dist/providers/contracts.d.ts +196 -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 +39 -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 +44 -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 +30 -0
- package/dist/providers/provider-instance.d.ts +31 -1
- package/dist/providers/provider-loader.d.ts +42 -5
- package/dist/providers/provider-trust.d.ts +31 -0
- package/dist/providers/read-chat-contract.d.ts +29 -0
- package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
- package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
- package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
- package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
- package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
- package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
- package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
- package/dist/providers/sdk/v1/index.d.ts +30 -0
- package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
- package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
- package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
- package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
- package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
- package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
- package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
- package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
- package/dist/providers/spec/adapter.d.ts +98 -0
- package/dist/providers/spec/cli-adapter.d.ts +223 -0
- package/dist/providers/spec/evaluator.d.ts +45 -0
- package/dist/providers/spec/fsm-driver.d.ts +449 -0
- package/dist/providers/spec/fsm-evaluator.d.ts +93 -0
- package/dist/providers/spec/fsm-loader.d.ts +14 -0
- package/dist/providers/spec/fsm-types.d.ts +202 -0
- package/dist/providers/spec/native-history-executor.d.ts +41 -0
- package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
- package/dist/providers/spec/route.d.ts +4 -0
- package/dist/providers/spec/types.d.ts +244 -0
- package/dist/providers/status-monitor.d.ts +7 -7
- package/dist/providers/transcript-v2.d.ts +176 -0
- package/dist/providers/types/interactive-prompt.d.ts +84 -0
- package/dist/providers/working-dir.d.ts +17 -0
- package/dist/repo-mesh-types.d.ts +616 -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 +26 -0
- package/dist/shared-types-extra.d.ts +2 -4
- package/dist/shared-types.d.ts +110 -55
- package/dist/status/chat-tail-hot-sessions.d.ts +40 -0
- 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 +27 -0
- package/dist/system/hash.d.ts +8 -0
- package/dist/system/load-better-sqlite3.d.ts +21 -0
- package/dist/types.d.ts +20 -6
- 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 +1282 -0
- package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
- package/src/cli-adapters/provider-cli-adapter.ts +1048 -1143
- 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 +2788 -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.d.ts +2 -0
- package/src/commands/cli-manager.ts +724 -27
- package/src/commands/handler.ts +865 -2
- package/src/commands/high-family/index.ts +28 -0
- package/src/commands/high-family/mesh-coordinator-launch.ts +696 -0
- package/src/commands/high-family/mesh-events.ts +102 -0
- package/src/commands/high-family/mesh-status.ts +857 -0
- package/src/commands/high-family/types.ts +80 -0
- package/src/commands/low-family/coordinator-prompt.ts +125 -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 +282 -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 +270 -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 +1268 -0
- package/src/commands/med-family/mesh-host-pairing.ts +234 -0
- package/src/commands/med-family/mesh-queue.ts +167 -0
- package/src/commands/med-family/mesh-restart.ts +92 -0
- package/src/commands/med-family/types.ts +153 -0
- package/src/commands/mesh-coordinator.ts +334 -124
- package/src/commands/router-aggregate-status.ts +209 -0
- package/src/commands/router-mesh-session-owner.ts +114 -0
- package/src/commands/router-refine.ts +1794 -0
- package/src/commands/router-worktree-cleanup.ts +870 -0
- package/src/commands/router.ts +567 -4149
- package/src/commands/stream-commands.ts +8 -0
- package/src/commands/upgrade-helper.ts +310 -45
- package/src/config/chat-history.ts +517 -24
- package/src/config/config.ts +30 -0
- package/src/config/mesh-config.ts +300 -24
- 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/config/state-store.ts +55 -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 +822 -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 +190 -13
- package/src/installer.d.ts +1 -1
- package/src/installer.ts +8 -6
- package/src/ipc/local-ipc-server.ts +278 -0
- package/src/launch.d.ts +1 -1
- package/src/launch.ts +37 -28
- package/src/logging/async-batch-writer.ts +55 -0
- package/src/logging/command-log.ts +7 -5
- package/src/logging/debug-config.ts +25 -0
- package/src/logging/debug-trace.ts +7 -2
- package/src/logging/log-redactor.ts +100 -0
- package/src/logging/log-tail-reader.ts +341 -0
- package/src/logging/logger.ts +14 -7
- package/src/mesh/contracts.ts +510 -0
- package/src/mesh/coordinator-prompt.ts +627 -34
- package/src/mesh/coordinator-registry.ts +121 -0
- package/src/mesh/mesh-active-work.ts +706 -0
- package/src/mesh/mesh-clone-grace.ts +68 -0
- package/src/mesh/mesh-completion-synthesis.ts +416 -0
- package/src/mesh/mesh-coordinator-config.ts +97 -0
- package/src/mesh/mesh-delivery-policy.ts +284 -0
- package/src/mesh/mesh-event-classify.ts +78 -0
- package/src/mesh/mesh-event-forwarding.ts +2030 -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 +1548 -0
- package/src/mesh/mesh-events-stale.ts +452 -0
- package/src/mesh/mesh-events-utils.ts +443 -0
- package/src/mesh/mesh-events.ts +43 -1035
- package/src/mesh/mesh-fast-forward.ts +856 -0
- package/src/mesh/mesh-host-ownership.ts +41 -3
- package/src/mesh/mesh-init.ts +350 -0
- package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
- package/src/mesh/mesh-ledger.ts +897 -102
- package/src/mesh/mesh-magi-status.ts +223 -0
- package/src/mesh/mesh-missions.ts +695 -0
- package/src/mesh/mesh-node-identity.ts +2065 -0
- package/src/mesh/mesh-queue-assignment.ts +2498 -0
- package/src/mesh/mesh-reconcile-acked-hold.ts +230 -0
- package/src/mesh/mesh-reconcile-config.ts +66 -0
- package/src/mesh/mesh-reconcile-identity.ts +103 -0
- package/src/mesh/mesh-reconcile-loop.ts +1696 -0
- package/src/mesh/mesh-reconcile-v2-backstop.ts +62 -0
- package/src/mesh/mesh-refine-batch.ts +205 -0
- package/src/mesh/mesh-refine-gates.ts +1792 -0
- package/src/mesh/mesh-refine-status.ts +231 -0
- package/src/mesh/mesh-remote-event-pull.ts +279 -0
- package/src/mesh/mesh-review-inbox.ts +308 -0
- package/src/mesh/mesh-routing.ts +291 -0
- package/src/mesh/mesh-runtime-store.ts +2292 -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 +215 -0
- package/src/mesh/mesh-warmup-deadline.ts +152 -0
- package/src/mesh/mesh-work-queue.ts +1489 -145
- package/src/mesh/preview-freshness.ts +163 -0
- package/src/mesh/refine-config.ts +129 -12
- package/src/mesh/worktree-bootstrap-config.ts +599 -0
- package/src/providers/acp-provider-instance.ts +43 -10
- package/src/providers/approval-utils.d.ts +5 -0
- package/src/providers/approval-utils.ts +100 -6
- package/src/providers/chat-message-normalization.ts +126 -4
- package/src/providers/cli-provider-effect-format.ts +53 -0
- package/src/providers/cli-provider-history-dedup.ts +75 -0
- package/src/providers/cli-provider-input-prompt.ts +133 -0
- package/src/providers/cli-provider-instance-types.ts +131 -0
- package/src/providers/cli-provider-instance.ts +2771 -499
- package/src/providers/cli-provider-status-helpers.ts +123 -0
- package/src/providers/cli-provider-transcript-merge.ts +114 -0
- package/src/providers/contracts.d.ts +55 -0
- package/src/providers/contracts.ts +207 -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 +138 -0
- package/src/providers/native-history/antigravity-cli-transcript.ts +1275 -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 +617 -0
- package/src/providers/native-history/hermes-cli-transcript.ts +312 -0
- package/src/providers/native-history/index.ts +30 -0
- package/src/providers/provider-instance-manager.ts +71 -0
- package/src/providers/provider-instance.ts +24 -1
- package/src/providers/provider-loader.ts +700 -55
- package/src/providers/provider-schema.ts +93 -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 +538 -0
- package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
- package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
- package/src/providers/sdk/v1/types/cli/index.ts +365 -0
- package/src/providers/sdk/v1/types/common/index.ts +229 -0
- package/src/providers/sdk/v1/validators/index.ts +19 -0
- package/src/providers/sdk/v1/validators/manifest.ts +110 -0
- package/src/providers/sdk/v1/validators/taint.ts +309 -0
- package/src/providers/spec/adapter.ts +246 -0
- package/src/providers/spec/cli-adapter.ts +1064 -0
- package/src/providers/spec/evaluator.ts +407 -0
- package/src/providers/spec/fsm-driver.ts +1528 -0
- package/src/providers/spec/fsm-evaluator.ts +290 -0
- package/src/providers/spec/fsm-loader.ts +128 -0
- package/src/providers/spec/fsm-types.ts +301 -0
- package/src/providers/spec/native-history-executor.ts +1241 -0
- package/src/providers/spec/pre-launch-trust.ts +104 -0
- package/src/providers/spec/route.ts +51 -0
- package/src/providers/spec/types.ts +284 -0
- package/src/providers/status-monitor.d.ts +7 -7
- package/src/providers/status-monitor.ts +37 -22
- package/src/providers/transcript-v2.ts +567 -0
- package/src/providers/types/interactive-prompt.ts +536 -0
- package/src/providers/version-archive.ts +64 -24
- package/src/providers/working-dir.ts +23 -0
- package/src/repo-mesh-types.ts +861 -14
- 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 +44 -0
- package/src/shared-types-extra.ts +2 -4
- package/src/shared-types.d.ts +8 -0
- package/src/shared-types.ts +148 -55
- package/src/status/builders.ts +69 -6
- package/src/status/chat-tail-hot-sessions.ts +117 -2
- package/src/status/normalize.ts +2 -0
- package/src/status/reporter.ts +19 -1
- package/src/status/snapshot.ts +100 -27
- 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 +26 -6
- 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
|
@@ -14,6 +14,11 @@ import { DaemonCliManager } from './cli-manager.js';
|
|
|
14
14
|
import type { ProviderLoader } from '../providers/provider-loader.js';
|
|
15
15
|
import type { ProviderInstanceManager } from '../providers/provider-instance-manager.js';
|
|
16
16
|
import { SessionRegistry } from '../sessions/registry.js';
|
|
17
|
+
import type { RepoMeshSessionCleanupMode } from '../repo-mesh-types.js';
|
|
18
|
+
import { MeshRefineBatchJobHandle, MeshRefineBatchTerminalJob, MeshRefineJobHandle, MeshRefineTerminalJob } from '../mesh/mesh-refine-gates.js';
|
|
19
|
+
export * from '../mesh/mesh-node-identity.js';
|
|
20
|
+
export * from '../mesh/mesh-refine-gates.js';
|
|
21
|
+
export * from '../mesh/mesh-coordinator-config.js';
|
|
17
22
|
export interface SessionHostControlPlane {
|
|
18
23
|
getDiagnostics(payload?: {
|
|
19
24
|
includeSessions?: boolean;
|
|
@@ -55,12 +60,14 @@ export interface CommandRouterDeps {
|
|
|
55
60
|
value: any[];
|
|
56
61
|
};
|
|
57
62
|
sessionRegistry: SessionRegistry;
|
|
58
|
-
/** Callback
|
|
63
|
+
/** Callback after CDP manager created (transport-specific extras) */
|
|
59
64
|
onCdpManagerCreated?: (ideType: string, manager: DaemonCdpManager) => void;
|
|
60
65
|
/** Callback after IDE connected (e.g., startAgentStreamPolling) */
|
|
61
66
|
onIdeConnected?: () => void;
|
|
62
67
|
/** Callback after status change (stop_ide, restart) */
|
|
63
68
|
onStatusChange?: () => void;
|
|
69
|
+
/** Callback when a mesh state is invalidated */
|
|
70
|
+
onMeshStateChange?: (meshId: string) => void;
|
|
64
71
|
/** Callback after chat-related commands */
|
|
65
72
|
onPostChatCommand?: () => void;
|
|
66
73
|
/** Get a connected CDP manager (for agent stream reset check) */
|
|
@@ -81,34 +88,211 @@ export interface CommandRouterResult {
|
|
|
81
88
|
success: boolean;
|
|
82
89
|
[key: string]: unknown;
|
|
83
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Confine a spec path to ~/.adhdev/providers, defeating both prefix-bypass
|
|
93
|
+
* (e.g. ".../providers-evil") and symlink escape. Resolves the real path of
|
|
94
|
+
* the *parent* directory (the file may not exist yet for writes), requires the
|
|
95
|
+
* basename to be a literal `*.json`, and re-joins under the verified parent so
|
|
96
|
+
* the returned path can't point outside the tree. Used by get/write_spec_source.
|
|
97
|
+
*/
|
|
98
|
+
export declare function normalizeStandaloneHostCommandUrl(hostAddress: string): string;
|
|
99
|
+
export declare function buildMemberJoinNode(mesh: any, args: any, fallbackDaemonId?: string): Record<string, unknown> | null;
|
|
84
100
|
export declare class DaemonCommandRouter {
|
|
85
|
-
private
|
|
101
|
+
/** Public (not private) so the extracted ./router-refine.ts orchestration can reach it via `self`. */
|
|
102
|
+
deps: CommandRouterDeps;
|
|
86
103
|
/** In-memory cache for cloud-originating meshes passed via inlineMesh.
|
|
87
104
|
* Allows the MCP server to query mesh data via get_mesh even when
|
|
88
105
|
* the mesh doesn't exist in the local meshes.json file. */
|
|
89
106
|
private inlineMeshCache;
|
|
90
|
-
/**
|
|
91
|
-
|
|
107
|
+
/** Tombstones for inline mesh nodes removed via remove_mesh_node, keyed by
|
|
108
|
+
* meshId → set of removed nodeIds. The dashboard keeps echoing the removed
|
|
109
|
+
* node in the inlineMesh it attaches to every command; without a tombstone,
|
|
110
|
+
* reconcileInlineMeshCache MERGEs it straight back (resurrection). A
|
|
111
|
+
* tombstoned node is skipped during reconcile only while its workspace is
|
|
112
|
+
* absent from disk — a genuine re-registration (same nodeId, workspace back
|
|
113
|
+
* on disk) clears the tombstone and merges normally, preserving clone
|
|
114
|
+
* worktree visibility and legitimate node re-creation. */
|
|
115
|
+
private removedInlineMeshNodeIds;
|
|
116
|
+
/** Coordinator-owned whole-mesh aggregate status snapshots. Browser callers read this by default.
|
|
117
|
+
* Public (not private) so the extracted ./router-aggregate-status.ts orchestration can reach it via `self`. */
|
|
118
|
+
aggregateMeshStatusCache: Map<string, {
|
|
119
|
+
builtAt: number;
|
|
120
|
+
snapshot: any;
|
|
121
|
+
queueRevision: string;
|
|
122
|
+
}>;
|
|
123
|
+
/** Shared per-peer git_status probe dedup + recently-probed reuse gate.
|
|
124
|
+
* Spans separate mesh_status/get_mesh calls so the dashboard auto-retry
|
|
125
|
+
* loop cannot storm a slow peer with back-to-back refreshUpstream probes. */
|
|
126
|
+
private meshGitProbeCache;
|
|
127
|
+
/** Meshes with a background SWR freshen (async mesh_status refresh) already in
|
|
128
|
+
* flight — so a burst of interactive detail-opens serves the cached snapshot
|
|
129
|
+
* and coalesces onto ONE background refresh instead of storming the peers. */
|
|
130
|
+
private swrRefreshInFlight;
|
|
131
|
+
/** In-memory async Refinery jobs keyed by meshId:nodeId to reject/return duplicate in-flight requests.
|
|
132
|
+
* Public (not private) so the extracted ./router-refine.ts orchestration can reach it via `self`. */
|
|
133
|
+
runningRefineJobs: Map<string, MeshRefineJobHandle>;
|
|
134
|
+
/** Terminal async Refinery jobs preserve a clear answer after the worktree node has been removed. */
|
|
135
|
+
terminalRefineJobs: Map<string, MeshRefineTerminalJob>;
|
|
136
|
+
/** In-memory async batch Refinery jobs keyed by meshId (one batch convergence per mesh at a time). */
|
|
137
|
+
runningRefineBatchJobs: Map<string, MeshRefineBatchJobHandle>;
|
|
138
|
+
/** Terminal async batch Refinery jobs preserve the last batch outcome for late readers. */
|
|
139
|
+
terminalRefineBatchJobs: Map<string, MeshRefineBatchTerminalJob>;
|
|
92
140
|
constructor(deps: CommandRouterDeps);
|
|
93
|
-
private cloneJsonValue;
|
|
94
141
|
private hydrateCachedAggregateMeshStatusFromInline;
|
|
95
142
|
private getCachedAggregateMeshStatus;
|
|
96
143
|
private rememberAggregateMeshStatus;
|
|
144
|
+
getCachedInlineMeshNodes(): any[];
|
|
145
|
+
resolveRemoteMeshSessionOwnerDaemonId(sessionId: string, ownerNodeIdHint?: string): string | undefined;
|
|
97
146
|
getCachedInlineMesh(meshId: string, inlineMesh?: unknown): any | undefined;
|
|
98
147
|
private warmInlineMeshCache;
|
|
99
|
-
|
|
100
|
-
|
|
148
|
+
getMeshForCommand(meshId: string, inlineMesh?: unknown, options?: {
|
|
149
|
+
preferInline?: boolean;
|
|
150
|
+
}): Promise<{
|
|
151
|
+
mesh: any;
|
|
152
|
+
inline: boolean;
|
|
153
|
+
source: 'inline_cache' | 'inline_bootstrap' | 'local_config';
|
|
154
|
+
} | null>;
|
|
155
|
+
invalidateAggregateMeshStatus(meshId: string): void;
|
|
156
|
+
/**
|
|
157
|
+
* Build the MedFamilyContext handed to RF-ROUTER MED family handlers. Binds the
|
|
158
|
+
* router-private collaborators those handlers need (mesh resolution, owner
|
|
159
|
+
* gating, inline-cache mutation, worktree / session cleanup, refine job
|
|
160
|
+
* starters, IDE stop/launch) plus the inline-mesh and git-probe caches. The
|
|
161
|
+
* `launchIde` field closes over the freshly-built context so restart_session /
|
|
162
|
+
* restart_ide invoke the IDE launch directly instead of recursing through
|
|
163
|
+
* executeDaemonCommand('launch_ide').
|
|
164
|
+
*/
|
|
165
|
+
private buildMedFamilyContext;
|
|
166
|
+
/**
|
|
167
|
+
* Build the HighFamilyContext handed to RF-ROUTER HIGH family handlers. Binds
|
|
168
|
+
* the router-private collaborators those handlers need (mesh resolution, the
|
|
169
|
+
* aggregate-status memory cache + its bound read/write helpers, the
|
|
170
|
+
* running-refine-job table, inline-mesh + git-probe caches, and the router's
|
|
171
|
+
* own `execute` for the get_mesh_review_inbox mesh_status re-entry). HIGH
|
|
172
|
+
* handlers reach more router-owned state than MED, but the binding shape is
|
|
173
|
+
* the same: bound methods + direct field references, none reachable from
|
|
174
|
+
* `deps`.
|
|
175
|
+
*/
|
|
176
|
+
private buildHighFamilyContext;
|
|
101
177
|
private requireMeshHostMutationOwner;
|
|
102
178
|
private updateInlineMeshNode;
|
|
103
179
|
private removeInlineMeshNode;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
180
|
+
/**
|
|
181
|
+
* WORKTREE-BOOTSTRAP-COORD-STATE: mark a worktree node's bootstrap as reaching a
|
|
182
|
+
* terminal state (complete / failed) in THIS daemon's mesh view.
|
|
183
|
+
*
|
|
184
|
+
* Root cause this fixes: clone_mesh_node forwards the clone+bootstrap to the
|
|
185
|
+
* source node's daemon (the worktree's machine). persistWorktreeSetupState
|
|
186
|
+
* therefore flips worktreeBootstrap.status to 'complete' on the WORKER daemon's
|
|
187
|
+
* mesh object — never on the coordinator's. The coordinator only ever holds the
|
|
188
|
+
* 'running' state it stamped from the forwarded clone reply. The claim path's
|
|
189
|
+
* bootstrap gate (mesh-event-forwarding agent:ready / mesh-queue-assignment)
|
|
190
|
+
* reads the coordinator's mesh via getMeshWithCache, sees status==='running'
|
|
191
|
+
* forever, and DEFERS every claim — so the worktree_bootstrap_complete re-fire
|
|
192
|
+
* (triggerMeshQueue) loops against a gate that never opens: claim never lands,
|
|
193
|
+
* the idle session is re-registered each tick, and auto-launch keeps spawning
|
|
194
|
+
* fresh sessions (runaway worktree-session multiplication).
|
|
195
|
+
*
|
|
196
|
+
* Called from the worktree_bootstrap_complete/_failed event handler BEFORE the
|
|
197
|
+
* queue re-fire so the gate sees the terminal state and the deferred claim can
|
|
198
|
+
* finally land. Updates the inline cache (clone worktree nodes are inline-only)
|
|
199
|
+
* and, when the node also exists in local config, persists there too; both paths
|
|
200
|
+
* invalidate the aggregate status cache. Best-effort and idempotent.
|
|
201
|
+
*/
|
|
202
|
+
markWorktreeBootstrapTerminalState(meshId: string, nodeId: string, status: 'complete' | 'failed', opts?: {
|
|
203
|
+
workspace?: string;
|
|
204
|
+
}): void;
|
|
205
|
+
private tombstoneRemovedInlineMeshNode;
|
|
206
|
+
/** Filter an incoming inline mesh against this mesh's tombstones before it is
|
|
207
|
+
* reconciled into the cache. A tombstoned node is dropped only while its
|
|
208
|
+
* workspace is still absent from disk; if the workspace is back (genuine
|
|
209
|
+
* re-registration), the tombstone is cleared and the node merges normally. */
|
|
210
|
+
private applyInlineMeshNodeTombstones;
|
|
211
|
+
normalizeMeshSessionCleanupMode(value: unknown): RepoMeshSessionCleanupMode;
|
|
212
|
+
sessionMatchesMeshNode(record: any, node: any, nodeId: string, sessionIds?: Set<string>): boolean;
|
|
213
|
+
bestEffortRemoveWorktreeDir(dir: string): Promise<{
|
|
214
|
+
removed: boolean;
|
|
215
|
+
residue: boolean;
|
|
216
|
+
error?: string;
|
|
217
|
+
}>;
|
|
218
|
+
precheckLocalWorktreeRemovable(args: {
|
|
219
|
+
mesh: any;
|
|
220
|
+
node: any;
|
|
221
|
+
nodeId: string;
|
|
222
|
+
force?: boolean;
|
|
223
|
+
}): Promise<{
|
|
224
|
+
ok: true;
|
|
225
|
+
} | {
|
|
226
|
+
ok: false;
|
|
227
|
+
code: string;
|
|
228
|
+
error: string;
|
|
229
|
+
recoveryHint: string;
|
|
230
|
+
}>;
|
|
231
|
+
cleanupLocalWorktreeNode(args: {
|
|
232
|
+
mesh: any;
|
|
233
|
+
node: any;
|
|
234
|
+
nodeId: string;
|
|
235
|
+
force?: boolean;
|
|
236
|
+
}): Promise<{
|
|
237
|
+
success: true;
|
|
238
|
+
skipped?: boolean;
|
|
239
|
+
removedPath?: string;
|
|
240
|
+
repoRoot?: string;
|
|
241
|
+
reason?: string;
|
|
242
|
+
fallback?: string;
|
|
243
|
+
forced?: boolean;
|
|
244
|
+
convergence?: Record<string, unknown>;
|
|
245
|
+
recovered?: boolean;
|
|
246
|
+
residue?: boolean;
|
|
247
|
+
residueWarning?: string;
|
|
248
|
+
residueError?: string;
|
|
249
|
+
branchRefDeleted?: boolean;
|
|
250
|
+
branchRefReason?: string;
|
|
251
|
+
branchRefForced?: boolean;
|
|
252
|
+
branchRefWarning?: string;
|
|
253
|
+
} | {
|
|
254
|
+
success: false;
|
|
255
|
+
code: string;
|
|
256
|
+
error: string;
|
|
257
|
+
recoveryHint: string;
|
|
258
|
+
convergence?: Record<string, unknown>;
|
|
259
|
+
}>;
|
|
260
|
+
getWorktreeForceCleanupConvergence(args: {
|
|
261
|
+
repoRoot: string;
|
|
262
|
+
workspace: string;
|
|
263
|
+
node: any;
|
|
264
|
+
}): Promise<{
|
|
265
|
+
allow: boolean;
|
|
266
|
+
status?: string;
|
|
267
|
+
source?: string;
|
|
268
|
+
ref?: string;
|
|
269
|
+
error?: string;
|
|
270
|
+
}>;
|
|
271
|
+
isCompletedHostedSession(record: any): boolean;
|
|
272
|
+
recordIntentionalMeshSessionStop(args: {
|
|
273
|
+
meshId: string;
|
|
274
|
+
nodeId: string;
|
|
275
|
+
node: any;
|
|
276
|
+
sessionId: string;
|
|
277
|
+
mode: RepoMeshSessionCleanupMode;
|
|
278
|
+
source: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
|
|
279
|
+
action: 'stop_session' | 'delete_session_force';
|
|
280
|
+
}): Promise<void>;
|
|
281
|
+
cleanupMeshSessions(args: {
|
|
282
|
+
meshId: string;
|
|
283
|
+
nodeId: string;
|
|
284
|
+
node: any;
|
|
285
|
+
mode: RepoMeshSessionCleanupMode;
|
|
286
|
+
sessionIds?: string[];
|
|
287
|
+
dryRun?: boolean;
|
|
288
|
+
source?: 'mesh_cleanup_sessions' | 'mesh_remove_node' | 'magi_session_cleanup';
|
|
289
|
+
requireAutoLaunchedForTaskIds?: Record<string, string>;
|
|
290
|
+
reclaimOrphans?: boolean;
|
|
291
|
+
liveMeshNodeIds?: string[];
|
|
292
|
+
}): Promise<{
|
|
293
|
+
success: boolean;
|
|
294
|
+
[key: string]: unknown;
|
|
295
|
+
}>;
|
|
112
296
|
/**
|
|
113
297
|
* Unified command routing.
|
|
114
298
|
* Returns result for all commands:
|
|
@@ -121,6 +305,10 @@ export declare class DaemonCommandRouter {
|
|
|
121
305
|
* @param source Log source ('ws' | 'p2p' | 'standalone' | etc.)
|
|
122
306
|
*/
|
|
123
307
|
execute(cmd: string, args: any, source?: string): Promise<CommandRouterResult>;
|
|
308
|
+
resumePendingRefineJobsOnStartup(): Promise<void>;
|
|
309
|
+
private batchRefineMeshNodes;
|
|
310
|
+
private startMeshRefineBatchJob;
|
|
311
|
+
private startMeshRefineJob;
|
|
124
312
|
/**
|
|
125
313
|
* Daemon-level command execution (IDE start/stop/restart, CLI, detect, logs).
|
|
126
314
|
* Returns null if not handled at this level → caller delegates to CommandHandler.
|
|
@@ -39,6 +39,46 @@ export declare function buildPinnedGlobalInstallCommand(options: {
|
|
|
39
39
|
}): PinnedGlobalInstallCommand;
|
|
40
40
|
export declare function getNpmExecOptions(platform?: NodeJS.Platform): NpmExecOptions;
|
|
41
41
|
export declare function execNpmCommandSync(args: string[], options?: ExecFileSyncOptions, surface?: Pick<CurrentGlobalInstallSurface, 'npmExecutable' | 'npmArgsPrefix' | 'execOptions'>): Buffer | string;
|
|
42
|
-
export declare function stopSessionHostProcesses(appName: string): void
|
|
42
|
+
export declare function stopSessionHostProcesses(appName: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Enumerate processes that have a locked native addon (conpty.node /
|
|
45
|
+
* ghostty-vt.dll) of *this* install memory-mapped.
|
|
46
|
+
*
|
|
47
|
+
* `stopSessionHostProcesses()` only knows the single managed session-host pid, so
|
|
48
|
+
* any *foreign* holder — e.g. an orphaned `pty_*probe*.cjs` left in `%TEMP%` — is
|
|
49
|
+
* invisible to it and keeps the addon locked through every install retry, dooming
|
|
50
|
+
* the upgrade with EBUSY. This scans by the module's full path so we only ever
|
|
51
|
+
* target a holder of the exact `packageRoot` being replaced (never an unrelated
|
|
52
|
+
* install's copy). Windows-only — these locks don't exist on POSIX.
|
|
53
|
+
*/
|
|
54
|
+
export declare function listForeignNativeAddonHolders(packageRoot: string | null | undefined): Array<{
|
|
55
|
+
pid: number;
|
|
56
|
+
commandLine: string | null;
|
|
57
|
+
}>;
|
|
58
|
+
/**
|
|
59
|
+
* Terminate every foreign process holding this install's native addon mapped,
|
|
60
|
+
* then wait for each to actually exit so the mapping is released before npm
|
|
61
|
+
* copies the file into its staging dir. Returns what it found/killed so the
|
|
62
|
+
* caller can surface an actionable recovery message on failure.
|
|
63
|
+
*/
|
|
64
|
+
export declare function stopForeignNativeAddonHolders(packageRoot: string | null | undefined, options?: {
|
|
65
|
+
parentPid?: number;
|
|
66
|
+
}): Promise<Array<{
|
|
67
|
+
pid: number;
|
|
68
|
+
commandLine: string | null;
|
|
69
|
+
killed: boolean;
|
|
70
|
+
}>>;
|
|
71
|
+
/**
|
|
72
|
+
* Best-effort removal of a leftover npm staging entry.
|
|
73
|
+
*
|
|
74
|
+
* A stale staging dir can hold a locked native binary — e.g. `ghostty-vt.dll`
|
|
75
|
+
* from `@adhdev/ghostty-vt-node` still mapped by a lingering session-host
|
|
76
|
+
* process — which makes `rmSync` throw `EPERM` on Windows. Staging cleanup is
|
|
77
|
+
* only housekeeping: the leftover is inert and npm creates its own fresh
|
|
78
|
+
* staging dir for the real install, so a lock on an old leftover must NOT abort
|
|
79
|
+
* the upgrade. Log and continue instead of letting the error propagate.
|
|
80
|
+
*/
|
|
81
|
+
export declare function safeRemoveStaleEntry(target: string, label: string): void;
|
|
82
|
+
export declare function cleanupStaleGlobalInstallDirs(pkgName: string, surface: CurrentGlobalInstallSurface): void;
|
|
43
83
|
export declare function spawnDetachedDaemonUpgradeHelper(payload: DaemonUpgradeHelperPayload): void;
|
|
44
84
|
export declare function maybeRunDaemonUpgradeHelperFromEnv(): Promise<boolean>;
|
|
@@ -110,12 +110,23 @@ export declare function readProviderChatHistory(agentType: string, options?: {
|
|
|
110
110
|
excludeRecentCount?: number;
|
|
111
111
|
historyBehavior?: ProviderHistoryBehavior;
|
|
112
112
|
scripts?: ProviderNativeHistoryScripts;
|
|
113
|
+
excludeInProgressTurn?: boolean;
|
|
114
|
+
sessionStartedAtMs?: number;
|
|
115
|
+
envOverrides?: Record<string, string>;
|
|
116
|
+
forceRefresh?: boolean;
|
|
117
|
+
instanceId?: string;
|
|
113
118
|
}): {
|
|
114
119
|
messages: HistoryMessage[];
|
|
115
120
|
hasMore: boolean;
|
|
116
121
|
source: 'provider-native' | 'adhdev-mirror' | 'native-unavailable';
|
|
117
122
|
sourcePath?: string;
|
|
118
123
|
sourceMtimeMs?: number;
|
|
124
|
+
providerSessionId?: string;
|
|
125
|
+
workspace?: string;
|
|
126
|
+
nativeHistoryCoverage?: string;
|
|
127
|
+
partialReason?: string;
|
|
128
|
+
unavailableReason?: string;
|
|
129
|
+
ownerConfirmed?: boolean;
|
|
119
130
|
};
|
|
120
131
|
export declare function listProviderHistorySessions(agentType: string, options?: {
|
|
121
132
|
canonicalHistory?: ProviderCanonicalHistoryConfig;
|
package/dist/config/config.d.ts
CHANGED
|
@@ -71,6 +71,20 @@ export interface ADHDevConfig {
|
|
|
71
71
|
disableUpstream?: boolean;
|
|
72
72
|
providerSourceMode?: ProviderSourceMode;
|
|
73
73
|
providerDir?: string;
|
|
74
|
+
/**
|
|
75
|
+
* Optional provider registry base URL override (for example a self-hosted
|
|
76
|
+
* registry). Highest-priority source in the registry resolver, ahead of the
|
|
77
|
+
* `ADHDEV_REGISTRY_URL` env var and the vendor default. See
|
|
78
|
+
* `config/registry-resolver.ts`.
|
|
79
|
+
*/
|
|
80
|
+
registryUrl?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Optional provider tarball (archive) URL override so self-hosters can point
|
|
83
|
+
* the daemon at their own provider mirror instead of the vendor GitHub repo.
|
|
84
|
+
* Highest-priority source, ahead of `ADHDEV_PROVIDER_TARBALL_URL` and the
|
|
85
|
+
* vendor default. See `config/registry-resolver.ts`.
|
|
86
|
+
*/
|
|
87
|
+
providerTarballUrl?: string;
|
|
74
88
|
/** Preferred daemon update channel. Defaults to stable/latest. */
|
|
75
89
|
updateChannel?: ReleaseChannel;
|
|
76
90
|
/**
|
|
@@ -86,6 +100,11 @@ export declare function isStableMachineId(machineId?: string | null): boolean;
|
|
|
86
100
|
* Get the config directory path
|
|
87
101
|
*/
|
|
88
102
|
export declare function getConfigDir(): string;
|
|
103
|
+
/**
|
|
104
|
+
* Get the daemon runtime data directory (~/.adhdev/daemon/).
|
|
105
|
+
* Distinct from the user-config dir so runtime state can be cleared independently.
|
|
106
|
+
*/
|
|
107
|
+
export declare function getDaemonDataDir(): string;
|
|
89
108
|
/**
|
|
90
109
|
* Load configuration from disk
|
|
91
110
|
*/
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* uses this file as the single source of truth.
|
|
7
7
|
*/
|
|
8
8
|
import type { LocalMeshEntry, LocalMeshNodeEntry, RepoMeshPolicy, RepoMeshNodePolicy, RepoMeshNodeCapabilities, RepoMeshCoordinatorConfig, RepoMeshHostMetadata, RepoMeshDaemonRole } from '../repo-mesh-types.js';
|
|
9
|
+
import type { MagiKindPanelMap, MagiSlot, DifficultyBrainMap } from '@adhdev/mesh-shared';
|
|
9
10
|
/**
|
|
10
11
|
* Normalize a Git remote URL into a stable identity string.
|
|
11
12
|
* e.g. "git@github.com:user/repo.git" → "github.com/user/repo"
|
|
@@ -101,16 +102,80 @@ export interface AddNodeOptions {
|
|
|
101
102
|
repoRoot?: string;
|
|
102
103
|
daemonId?: string;
|
|
103
104
|
machineId?: string;
|
|
105
|
+
capabilities?: string[];
|
|
104
106
|
userOverrides?: Partial<RepoMeshNodeCapabilities>;
|
|
105
107
|
policy?: RepoMeshNodePolicy;
|
|
106
108
|
isLocalWorktree?: boolean;
|
|
107
109
|
worktreeBranch?: string;
|
|
108
110
|
clonedFromNodeId?: string;
|
|
111
|
+
worktreeBootstrap?: LocalMeshNodeEntry['worktreeBootstrap'];
|
|
109
112
|
role?: RepoMeshDaemonRole;
|
|
113
|
+
/** Owning daemon's machine nickname. Defaults to this daemon's local
|
|
114
|
+
* config.machineNickname when omitted — a node is always added by (and on)
|
|
115
|
+
* the daemon that owns its workspace (self/base node or a local worktree
|
|
116
|
+
* clone), so the local config is the correct source. */
|
|
117
|
+
machineNickname?: string;
|
|
110
118
|
}
|
|
111
119
|
export declare function addNode(meshId: string, opts: AddNodeOptions): LocalMeshNodeEntry | undefined;
|
|
112
120
|
export declare function removeNode(meshId: string, nodeId: string): boolean;
|
|
113
121
|
export declare function updateNode(meshId: string, nodeId: string, opts: {
|
|
114
122
|
userOverrides?: Partial<RepoMeshNodeCapabilities>;
|
|
115
123
|
policy?: RepoMeshNodePolicy;
|
|
124
|
+
/** Operator-defined custom capability tags used by mesh queue matching.
|
|
125
|
+
* Passing an array replaces the node's custom tags (empty/whitespace
|
|
126
|
+
* entries dropped, deduped); an empty result clears them. Omit to leave
|
|
127
|
+
* the existing tags untouched. */
|
|
128
|
+
capabilities?: string[];
|
|
129
|
+
worktreeBootstrap?: LocalMeshNodeEntry['worktreeBootstrap'];
|
|
130
|
+
/** Per-node instruction surfaced in the coordinator prompt. Pass an
|
|
131
|
+
* empty string or undefined to clear it. */
|
|
132
|
+
systemPrompt?: string;
|
|
133
|
+
/** Live self-reported platform/arch from the owning daemon's git_status
|
|
134
|
+
* envelope. Persisted distinctly from userOverrides (auto-detected, not
|
|
135
|
+
* operator intent) so capability-tag os=/arch= self-heals across loads. */
|
|
136
|
+
reportedPlatform?: string;
|
|
137
|
+
reportedArch?: string;
|
|
138
|
+
/** Owning daemon's self-reported machine nickname, carried on the
|
|
139
|
+
* git_status envelope. Persisted so the friendly label survives across
|
|
140
|
+
* coordinator restarts (mirrors reportedPlatform/reportedArch). */
|
|
141
|
+
reportedMachineNickname?: string;
|
|
142
|
+
/** Owning daemon's self-reported provider CLI/ACP versions + build version,
|
|
143
|
+
* carried on the git_status envelope. Persisted distinctly from userOverrides
|
|
144
|
+
* (auto-detected observability, not operator intent), mirroring the
|
|
145
|
+
* reportedPlatform/reportedArch self-heal so the value survives restarts and
|
|
146
|
+
* is overwritten by the next report. */
|
|
147
|
+
reportedProviderVersions?: Record<string, string>;
|
|
148
|
+
reportedDaemonBuildVersion?: string;
|
|
116
149
|
}): LocalMeshNodeEntry | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Validate + normalize a kind-panel's slots (the SOLE MAGI slot normalizer): provider
|
|
152
|
+
* required per slot, trims strings, drops empties, clamps replica counts, and carries
|
|
153
|
+
* an optional per-slot `model`. Throws on structurally invalid input (empty list / no
|
|
154
|
+
* provider) so the write returns a clear error. Returns the normalized slot array.
|
|
155
|
+
*/
|
|
156
|
+
export declare function normalizeMagiSlots(slots: unknown): MagiSlot[];
|
|
157
|
+
/** All configured kind-panels (machine-local), keyed by task_kind. Empty when none. */
|
|
158
|
+
export declare function listMagiKindPanels(): MagiKindPanelMap;
|
|
159
|
+
/** The slot list for one task_kind, or undefined when the kind is not configured. */
|
|
160
|
+
export declare function getMagiKindPanel(kind: string): MagiSlot[] | undefined;
|
|
161
|
+
/**
|
|
162
|
+
* Upsert the slot list for one task_kind. Unlike named panels this ALWAYS overwrites
|
|
163
|
+
* (a kind has exactly one binding) — the editor pushes the full desired slot set.
|
|
164
|
+
* Returns the normalized, persisted slots.
|
|
165
|
+
*/
|
|
166
|
+
export declare function setMagiKindPanel(kind: string, slots: unknown): MagiSlot[];
|
|
167
|
+
/** Remove the binding for one task_kind. Returns true when a binding was removed. */
|
|
168
|
+
export declare function removeMagiKindPanel(kind: string): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* The difficulty→brain presets, machine-local. When nothing is configured yet,
|
|
171
|
+
* returns the sensible DEFAULT_DIFFICULTY_BRAINS so the coordinator always has a
|
|
172
|
+
* usable mapping (the operator can override via setDifficultyBrains). Returns a
|
|
173
|
+
* normalized copy — never the stored reference.
|
|
174
|
+
*/
|
|
175
|
+
export declare function getDifficultyBrains(): DifficultyBrainMap;
|
|
176
|
+
/**
|
|
177
|
+
* Replace the difficulty→brain presets wholesale (the editor pushes the full map).
|
|
178
|
+
* Passing an empty/normalized-empty map clears the override, so getDifficultyBrains
|
|
179
|
+
* falls back to the defaults again. Returns the normalized, persisted map.
|
|
180
|
+
*/
|
|
181
|
+
export declare function setDifficultyBrains(map: unknown): DifficultyBrainMap;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Repo-shared declarative mesh config — `.adhdev/mesh.json`
|
|
3
|
+
*
|
|
4
|
+
* A repo-committed, machine-independent file carrying ONLY the repo-shared
|
|
5
|
+
* coordinator-prompt config and operating notes:
|
|
6
|
+
*
|
|
7
|
+
* - coordinator — systemPromptOverride (local wins, else repo) and
|
|
8
|
+
* systemPromptAppend (repo append + local append BOTH
|
|
9
|
+
* stack, repo first).
|
|
10
|
+
* - operatingNotes — repo-declared baseline notes merged with the runtime
|
|
11
|
+
* ledger notes; on duplicate text the ledger note wins.
|
|
12
|
+
* - limits — advisory-only (`maxNoteChars`, `maxNotes`,
|
|
13
|
+
* `coordinator.maxPromptChars`); recorded, never enforced in v1.
|
|
14
|
+
*
|
|
15
|
+
* POLICY IS NOT HERE. RepoMeshPolicy (the 15 scheduling/approval fields) is
|
|
16
|
+
* MACHINE-LOCAL only — it lives in meshes.json and is never sourced from, merged
|
|
17
|
+
* with, or overlaid by a repo file. There is no `policy` zone and no
|
|
18
|
+
* `policy.scheduling` overlay in mesh.json; the scheduler reads the stored
|
|
19
|
+
* machine-local policy directly. The repo file shapes the coordinator prompt and
|
|
20
|
+
* operating notes, nothing else.
|
|
21
|
+
*
|
|
22
|
+
* The coordinator/operatingNotes merge is **in-memory only**: the on-disk
|
|
23
|
+
* machine-local `meshes.json` is never mutated by this module.
|
|
24
|
+
*
|
|
25
|
+
* FILE SEPARATION: refine / worktree-bootstrap / change-impact configs live in
|
|
26
|
+
* their OWN `.adhdev/*` files with their own loaders — they are NOT inlined into
|
|
27
|
+
* mesh.json. `loadRepoSettings` (config/repo-settings.ts) assembles all of them
|
|
28
|
+
* into one object for consumers.
|
|
29
|
+
*
|
|
30
|
+
* SECURITY: declarative only. JSON/YAML is parsed; arbitrary JS (.js) is NOT
|
|
31
|
+
* supported, so loading a config can never execute code.
|
|
32
|
+
*/
|
|
33
|
+
import type { RepoMeshCoordinatorConfig, LocalMeshEntry } from '../repo-mesh-types.js';
|
|
34
|
+
import type { CoordinatorOperatingNote } from '../mesh/coordinator-prompt.js';
|
|
35
|
+
export interface RepoMeshDeclarativeCoordinatorConfig {
|
|
36
|
+
/** Full mesh-level system prompt override. Same semantics as
|
|
37
|
+
* RepoMeshCoordinatorConfig.systemPromptOverride; LOCAL-WINS. */
|
|
38
|
+
systemPromptOverride?: string;
|
|
39
|
+
/** Mesh-level append stacked after the base prompt. Both the repo append
|
|
40
|
+
* and the machine-local append apply; the repo append comes first. */
|
|
41
|
+
systemPromptAppend?: string;
|
|
42
|
+
/** Advisory only in v1 — recorded but never enforced. */
|
|
43
|
+
maxPromptChars?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface RepoMeshDeclarativeLimits {
|
|
46
|
+
/** Advisory only in v1 — recorded but never enforced. */
|
|
47
|
+
maxNoteChars?: number;
|
|
48
|
+
/** Advisory only in v1 — recorded but never enforced. */
|
|
49
|
+
maxNotes?: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parsed + normalized `.adhdev/mesh.json` shape. Every field is optional except
|
|
53
|
+
* version so a repo can declare only the zone(s) it cares about. Policy is NOT a
|
|
54
|
+
* zone here — it is machine-local (meshes.json) only.
|
|
55
|
+
*/
|
|
56
|
+
export interface RepoMeshDeclarativeConfig {
|
|
57
|
+
version: 1;
|
|
58
|
+
coordinator?: RepoMeshDeclarativeCoordinatorConfig;
|
|
59
|
+
operatingNotes?: CoordinatorOperatingNote[];
|
|
60
|
+
limits?: RepoMeshDeclarativeLimits;
|
|
61
|
+
}
|
|
62
|
+
export interface RepoMeshJsonConfigLoadResult {
|
|
63
|
+
config?: RepoMeshDeclarativeConfig;
|
|
64
|
+
/** Relative location matched, or 'unavailable'/'invalid' marker. */
|
|
65
|
+
source: string;
|
|
66
|
+
sourceType: 'repo_file' | 'unavailable' | 'invalid';
|
|
67
|
+
/** Absolute path of the matched file, when one was read. */
|
|
68
|
+
path?: string;
|
|
69
|
+
error?: string;
|
|
70
|
+
}
|
|
71
|
+
export declare const MESH_JSON_CONFIG_LOCATIONS: string[];
|
|
72
|
+
export declare const MESH_JSON_CONFIG_SCHEMA: {
|
|
73
|
+
readonly $schema: "https://json-schema.org/draft/2020-12/schema";
|
|
74
|
+
readonly title: "ADHDev Repo Mesh Declarative Config";
|
|
75
|
+
readonly type: "object";
|
|
76
|
+
readonly additionalProperties: false;
|
|
77
|
+
readonly required: readonly ["version"];
|
|
78
|
+
readonly properties: {
|
|
79
|
+
readonly version: {
|
|
80
|
+
readonly const: 1;
|
|
81
|
+
};
|
|
82
|
+
readonly coordinator: {
|
|
83
|
+
readonly type: "object";
|
|
84
|
+
readonly additionalProperties: false;
|
|
85
|
+
readonly properties: {
|
|
86
|
+
readonly systemPromptOverride: {
|
|
87
|
+
readonly type: "string";
|
|
88
|
+
};
|
|
89
|
+
readonly systemPromptAppend: {
|
|
90
|
+
readonly type: "string";
|
|
91
|
+
};
|
|
92
|
+
readonly maxPromptChars: {
|
|
93
|
+
readonly type: "number";
|
|
94
|
+
readonly minimum: 1;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
readonly operatingNotes: {
|
|
99
|
+
readonly type: "array";
|
|
100
|
+
readonly maxItems: 200;
|
|
101
|
+
readonly items: {
|
|
102
|
+
readonly type: "object";
|
|
103
|
+
readonly additionalProperties: false;
|
|
104
|
+
readonly required: readonly ["text"];
|
|
105
|
+
readonly properties: {
|
|
106
|
+
readonly text: {
|
|
107
|
+
readonly type: "string";
|
|
108
|
+
readonly minLength: 1;
|
|
109
|
+
};
|
|
110
|
+
readonly category: {
|
|
111
|
+
readonly enum: readonly ["provider_quirk", "pattern_to_avoid", "recovery_lesson"];
|
|
112
|
+
};
|
|
113
|
+
readonly createdAt: {
|
|
114
|
+
readonly type: "string";
|
|
115
|
+
};
|
|
116
|
+
readonly sourceCoordinator: {
|
|
117
|
+
readonly type: "string";
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
readonly limits: {
|
|
123
|
+
readonly type: "object";
|
|
124
|
+
readonly additionalProperties: false;
|
|
125
|
+
readonly properties: {
|
|
126
|
+
readonly maxNoteChars: {
|
|
127
|
+
readonly type: "number";
|
|
128
|
+
readonly minimum: 1;
|
|
129
|
+
};
|
|
130
|
+
readonly maxNotes: {
|
|
131
|
+
readonly type: "number";
|
|
132
|
+
readonly minimum: 1;
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Validate + normalize a parsed `.adhdev/mesh.json` object into a typed
|
|
140
|
+
* RepoMeshDeclarativeConfig. Returns the config plus any non-fatal warnings;
|
|
141
|
+
* `valid` is false only when the document is structurally unusable (not an
|
|
142
|
+
* object / wrong version). Unknown top-level keys are tolerated (dropped) so a
|
|
143
|
+
* newer repo file authored against a future schema still loads its known zones.
|
|
144
|
+
*/
|
|
145
|
+
export declare function normalizeRepoMeshDeclarativeConfig(parsed: unknown): {
|
|
146
|
+
valid: boolean;
|
|
147
|
+
config?: RepoMeshDeclarativeConfig;
|
|
148
|
+
errors: string[];
|
|
149
|
+
};
|
|
150
|
+
/**
|
|
151
|
+
* Load the repo-shared declarative mesh config for a coordinator workspace.
|
|
152
|
+
*
|
|
153
|
+
* Resolution: the coordinator node workspace is checked first; if it carries no
|
|
154
|
+
* `.adhdev/mesh.json`, the calling process cwd is tried as a fallback (per the
|
|
155
|
+
* design: "workspace path = coordinator node workspace's .adhdev/mesh.json,
|
|
156
|
+
* else calling cwd"). The first existing file across both bases (and the
|
|
157
|
+
* json/yaml/yml variants) wins.
|
|
158
|
+
*
|
|
159
|
+
* Read/parse errors never throw — they resolve to a sourceType:'invalid'
|
|
160
|
+
* result so a broken repo file degrades to "no repo base" instead of blocking
|
|
161
|
+
* coordinator launch.
|
|
162
|
+
*/
|
|
163
|
+
export declare function loadRepoMeshJsonConfig(workspace?: string): RepoMeshJsonConfigLoadResult;
|
|
164
|
+
/**
|
|
165
|
+
* Effective coordinator config. systemPromptOverride: local wins, else repo.
|
|
166
|
+
* systemPromptAppend: repo append + local append BOTH stack (repo first). Other
|
|
167
|
+
* coordinator fields (providerType, preferredNodeId, …) are carried from the
|
|
168
|
+
* machine-local config unchanged.
|
|
169
|
+
*/
|
|
170
|
+
export declare function mergeEffectiveCoordinatorConfig(repoCoord: RepoMeshDeclarativeCoordinatorConfig | undefined, localCoord: RepoMeshCoordinatorConfig | undefined): RepoMeshCoordinatorConfig;
|
|
171
|
+
/**
|
|
172
|
+
* Effective operating notes = repo-declared baseline ⊕ runtime ledger notes.
|
|
173
|
+
* Dedup by trimmed text with the LEDGER note winning (repo duplicates dropped),
|
|
174
|
+
* so a runtime note's freshest wording/category survives. Order: repo baseline
|
|
175
|
+
* first, then ledger notes. Returns undefined when nothing usable remains so the
|
|
176
|
+
* prompt's "## Operating Notes" section is omitted exactly as before.
|
|
177
|
+
*/
|
|
178
|
+
export declare function mergeEffectiveOperatingNotes(repoNotes: CoordinatorOperatingNote[] | undefined, ledgerNotes: CoordinatorOperatingNote[] | undefined): CoordinatorOperatingNote[] | undefined;
|
|
179
|
+
/**
|
|
180
|
+
* Produce an in-memory effective mesh by layering the repo declarative config
|
|
181
|
+
* UNDER the machine-local mesh entry — coordinator zone ONLY. Policy is
|
|
182
|
+
* machine-local and is left exactly as the stored mesh carries it (never sourced
|
|
183
|
+
* from the repo file). Returns a new object; the input mesh and on-disk
|
|
184
|
+
* meshes.json are never mutated. operatingNotes are merged separately at launch
|
|
185
|
+
* (they ride the prompt context, not the mesh).
|
|
186
|
+
*/
|
|
187
|
+
export declare function applyRepoMeshConfig<T extends Pick<LocalMeshEntry, 'coordinator'>>(mesh: T, repoConfig: RepoMeshDeclarativeConfig | null | undefined): T;
|
|
188
|
+
/**
|
|
189
|
+
* Build a `.adhdev/mesh.json` DRAFT from a machine-local mesh entry. This is a
|
|
190
|
+
* scaffold for the operator to review and commit — NOT an automatic migration.
|
|
191
|
+
* It captures the coordinator prompt override/append so a repo can adopt the
|
|
192
|
+
* current machine's prompt customization as the shared base. Policy is NOT
|
|
193
|
+
* exported — it is machine-local only and has no place in mesh.json. Operating
|
|
194
|
+
* notes are intentionally NOT exported either: those are runtime ledger lessons,
|
|
195
|
+
* and a repo should declare baseline notes deliberately.
|
|
196
|
+
*/
|
|
197
|
+
export declare function buildMeshJsonConfigScaffold(mesh: Pick<LocalMeshEntry, 'coordinator'>): RepoMeshDeclarativeConfig;
|
|
198
|
+
/** Serialize a scaffold to the canonical 2-space JSON draft text. */
|
|
199
|
+
export declare function serializeMeshJsonConfigScaffold(config: RepoMeshDeclarativeConfig): string;
|