@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
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MeshCoordinatorRegistry — Persisted record of active mesh coordinator sessions.
|
|
3
|
+
*
|
|
4
|
+
* Survives daemon restarts: when a CLI coordinator session is re-attached after
|
|
5
|
+
* a daemon restart the in-memory `settings.meshCoordinatorFor` on the provider
|
|
6
|
+
* instance is gone, so the registry file fills the gap.
|
|
7
|
+
*
|
|
8
|
+
* Keyed by sessionId (the CLI instance key / runtimeKey).
|
|
9
|
+
*/
|
|
10
|
+
export interface CoordinatorRegistryEntry {
|
|
11
|
+
meshId: string;
|
|
12
|
+
sessionId: string;
|
|
13
|
+
workspace?: string;
|
|
14
|
+
startedAt: number;
|
|
15
|
+
/** CLI type used to launch the coordinator (claude-cli / codex-cli / …). */
|
|
16
|
+
cliType?: string;
|
|
17
|
+
/** Final system prompt sent to the coordinator after all overrides, appends,
|
|
18
|
+
* and extraSystemPrompt have been applied. Surfaced via the session-info
|
|
19
|
+
* endpoint so users can audit exactly what prompt the agent saw. */
|
|
20
|
+
systemPrompt?: string;
|
|
21
|
+
/** Per-launch extraSystemPrompt the caller passed in, if any. Stored
|
|
22
|
+
* separately from `systemPrompt` so the UI can show what the user
|
|
23
|
+
* added vs. what the daemon's default template produced. */
|
|
24
|
+
extraSystemPrompt?: string;
|
|
25
|
+
/** How the prompt was actually injected (cli_arg / context_file / …). */
|
|
26
|
+
injection?: {
|
|
27
|
+
mode: string;
|
|
28
|
+
target?: string;
|
|
29
|
+
};
|
|
30
|
+
/** Path of the MCP config file the daemon wrote for this session. */
|
|
31
|
+
mcpConfigPath?: string;
|
|
32
|
+
}
|
|
33
|
+
/** Load persisted coordinator registry from disk into in-memory map. Called once on daemon boot. */
|
|
34
|
+
export declare function loadMeshCoordinatorRegistry(): void;
|
|
35
|
+
/** Register a coordinator session. Persists to disk immediately. */
|
|
36
|
+
export declare function registerMeshCoordinator(entry: CoordinatorRegistryEntry): void;
|
|
37
|
+
/** Remove a coordinator session by sessionId. Persists to disk.
|
|
38
|
+
*
|
|
39
|
+
* Also best-effort strips any context_file wrapper block we wrote into
|
|
40
|
+
* the workspace at launch time (AGENTS.md / GEMINI.md), because those
|
|
41
|
+
* files are auto-loaded by their CLIs on every subsequent launch — and
|
|
42
|
+
* a wrapper block surviving the coordinator session would silently
|
|
43
|
+
* inject the coordinator system prompt into ordinary non-coordinator
|
|
44
|
+
* sessions in the same workspace, which is exactly the bug we're
|
|
45
|
+
* fixing here.
|
|
46
|
+
*
|
|
47
|
+
* Stripping rules:
|
|
48
|
+
* - Look for the start sentinel anywhere in the file; if absent,
|
|
49
|
+
* leave the file alone (user-authored content).
|
|
50
|
+
* - If the wrapper block was the only thing in the file, delete the
|
|
51
|
+
* file outright so we don't leave behind an empty AGENTS.md.
|
|
52
|
+
* - Otherwise drop only the block between the sentinels and trim a
|
|
53
|
+
* leading/trailing blank line so we don't leave dangling separators.
|
|
54
|
+
*/
|
|
55
|
+
export declare function unregisterMeshCoordinator(sessionId: string): void;
|
|
56
|
+
/** Look up a coordinator entry by session ID. Returns undefined if not registered. */
|
|
57
|
+
export declare function getCoordinatorForSession(sessionId: string): CoordinatorRegistryEntry | undefined;
|
|
58
|
+
/** List all coordinator entries for a given workspace path. */
|
|
59
|
+
export declare function listCoordinatorsForWorkspace(workspace: string): CoordinatorRegistryEntry[];
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import type { MeshLedgerEntry } from './mesh-ledger.js';
|
|
2
|
+
import type { MeshWorkQueueEntry, DirectDispatchRecord } from './mesh-work-queue.js';
|
|
3
|
+
export type MeshActiveWorkSource = 'queue' | 'direct';
|
|
4
|
+
export type MeshActiveWorkStatus = 'pending' | 'assigned' | 'generating' | 'idle' | 'failed' | 'awaiting_approval';
|
|
5
|
+
export interface MeshActiveWorkRecord {
|
|
6
|
+
taskId: string;
|
|
7
|
+
source: MeshActiveWorkSource;
|
|
8
|
+
status: MeshActiveWorkStatus;
|
|
9
|
+
nodeId?: string;
|
|
10
|
+
sessionId?: string;
|
|
11
|
+
providerType?: string;
|
|
12
|
+
taskTitle: string;
|
|
13
|
+
taskSummary: string;
|
|
14
|
+
message?: string;
|
|
15
|
+
taskMode?: string;
|
|
16
|
+
createdAt: string;
|
|
17
|
+
updatedAt: string;
|
|
18
|
+
dispatchedAt?: string;
|
|
19
|
+
elapsedMs: number;
|
|
20
|
+
terminal?: boolean;
|
|
21
|
+
terminalKind?: string;
|
|
22
|
+
terminalAt?: string;
|
|
23
|
+
staleReason?: string;
|
|
24
|
+
/**
|
|
25
|
+
* When true, the session targeted by this direct dispatch still exists in the live mesh
|
|
26
|
+
* but did not transition to generating — the dispatch was not acknowledged by the provider.
|
|
27
|
+
* Distinct from historical/orphaned stale entries where the node/session is gone.
|
|
28
|
+
*/
|
|
29
|
+
staleDispatchUnacknowledged?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface MeshActiveWorkSummary {
|
|
32
|
+
totalActiveCount: number;
|
|
33
|
+
queueActiveCount: number;
|
|
34
|
+
directActiveCount: number;
|
|
35
|
+
awaitingApprovalCount: number;
|
|
36
|
+
generatingCount: number;
|
|
37
|
+
failedCount: number;
|
|
38
|
+
idleCount: number;
|
|
39
|
+
sourceCounts: Record<MeshActiveWorkSource, number>;
|
|
40
|
+
statusCounts: Record<MeshActiveWorkStatus, number>;
|
|
41
|
+
staleDirectCount: number;
|
|
42
|
+
/**
|
|
43
|
+
* Count of stale direct entries where the target session still exists in the live mesh
|
|
44
|
+
* but never transitioned to generating — these are fresh dispatch failures, not historical orphans.
|
|
45
|
+
* Requires immediate recovery: launch a fresh session and retry the task.
|
|
46
|
+
*/
|
|
47
|
+
staleDirectUnacknowledgedCount?: number;
|
|
48
|
+
/**
|
|
49
|
+
* When staleDirectCount > 0, this note clarifies what kind of stale records exist.
|
|
50
|
+
* Fresh unacknowledged dispatches carry an actionable recovery note; orphaned historical
|
|
51
|
+
* entries carry the "historical evidence only" note. Both may coexist.
|
|
52
|
+
*/
|
|
53
|
+
staleDirectNote?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface MeshStaleDirectWorkSummary {
|
|
56
|
+
count: number;
|
|
57
|
+
sampleLimit: number;
|
|
58
|
+
sample: Array<Pick<MeshActiveWorkRecord, 'taskId' | 'status' | 'nodeId' | 'sessionId' | 'taskTitle' | 'createdAt' | 'staleReason'>>;
|
|
59
|
+
reasonCounts: Record<string, number>;
|
|
60
|
+
detailHint: string;
|
|
61
|
+
note?: string;
|
|
62
|
+
}
|
|
63
|
+
export interface BuildMeshActiveWorkOptions {
|
|
64
|
+
meshId: string;
|
|
65
|
+
queue?: MeshWorkQueueEntry[];
|
|
66
|
+
ledgerEntries?: MeshLedgerEntry[];
|
|
67
|
+
/**
|
|
68
|
+
* Active direct dispatches from MeshRuntimeStore. When provided, these are used instead of
|
|
69
|
+
* scanning ledger entries for direct dispatches — eliminates the O(n_ledger) scan.
|
|
70
|
+
* Falls back to ledger scanning when not provided.
|
|
71
|
+
*/
|
|
72
|
+
directDispatches?: DirectDispatchRecord[];
|
|
73
|
+
nodes?: any[];
|
|
74
|
+
now?: number;
|
|
75
|
+
/** Include terminal direct rows (idle/failed) for handoff/recent-work surfaces. Defaults false. */
|
|
76
|
+
includeTerminalDirect?: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* One session awaiting an approval decision — the derived row `mesh_list_pending_approvals`
|
|
80
|
+
* returns and the UI approvals inbox renders. A thin projection of the `awaiting_approval`
|
|
81
|
+
* MeshActiveWorkRecord: it carries exactly what a coordinator needs to route a follow-up
|
|
82
|
+
* mesh_approve(node_id, session_id) and what the inbox needs to label the item. No new
|
|
83
|
+
* store or data source — derived from the same buildMeshActiveWork records.
|
|
84
|
+
*/
|
|
85
|
+
export interface MeshPendingApproval {
|
|
86
|
+
nodeId?: string;
|
|
87
|
+
sessionId?: string;
|
|
88
|
+
providerType?: string;
|
|
89
|
+
taskId: string;
|
|
90
|
+
taskTitle: string;
|
|
91
|
+
/** Always 'awaiting_approval' — kept explicit so consumers can render/assert on it. */
|
|
92
|
+
status: 'awaiting_approval';
|
|
93
|
+
/** ISO timestamp the underlying task was created/dispatched — the "waiting since" anchor. */
|
|
94
|
+
waitingSince: string;
|
|
95
|
+
/** Milliseconds the record has been outstanding (elapsed from dispatch/create). */
|
|
96
|
+
waitingMs: number;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Derive the mesh-wide pending-approval inbox from already-built active-work records.
|
|
100
|
+
* Pure filter+projection over `status === 'awaiting_approval'` — no new store, no probe;
|
|
101
|
+
* the caller supplies the records (typically buildMeshActiveWork(...).activeWork so the
|
|
102
|
+
* enumeration reuses the exact classification `mesh_status` already computes). Records
|
|
103
|
+
* without a node/session are skipped: an approval that cannot be routed to a live
|
|
104
|
+
* node+session via mesh_approve is not actionable inbox content.
|
|
105
|
+
*/
|
|
106
|
+
export declare function collectPendingApprovals(activeWork: MeshActiveWorkRecord[]): MeshPendingApproval[];
|
|
107
|
+
export declare function buildMeshActiveWorkSummary(activeWork: MeshActiveWorkRecord[]): MeshActiveWorkSummary;
|
|
108
|
+
export declare function buildMeshActiveWork(opts: BuildMeshActiveWorkOptions): {
|
|
109
|
+
activeWork: MeshActiveWorkRecord[];
|
|
110
|
+
staleDirectWork: MeshActiveWorkRecord[];
|
|
111
|
+
staleDirectWorkNote?: string;
|
|
112
|
+
terminalDirectWork: MeshActiveWorkRecord[];
|
|
113
|
+
summary: MeshActiveWorkSummary;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* staleReason strings (produced by sessionStatusFromNodes above) that indicate the original
|
|
117
|
+
* node/session is GONE from the live mesh — i.e. the staleDirect record is an orphaned ledger
|
|
118
|
+
* artifact, not active or recoverable work. These are the only reasons safe to prune from the
|
|
119
|
+
* active staleDirect surface. The "no provider acknowledgement" reason is deliberately excluded:
|
|
120
|
+
* those entries have a still-live node/session (staleDispatchUnacknowledged) and represent
|
|
121
|
+
* recoverable dispatch failures, never orphans.
|
|
122
|
+
*/
|
|
123
|
+
export declare const PRUNABLE_ORPHAN_STALE_REASONS: ReadonlySet<string>;
|
|
124
|
+
export type StaleDirectPruneClassification = 'prunable_orphan' | 'prunable_terminal' | 'preserve_unacknowledged' | 'preserve_active';
|
|
125
|
+
/**
|
|
126
|
+
* Classify a direct-work record for the staleDirect prune path. Pure function — the prune tool
|
|
127
|
+
* uses this so the safety rules (never touch active work or recoverable unacknowledged dispatches)
|
|
128
|
+
* live next to the staleReason producers and are independently testable.
|
|
129
|
+
*/
|
|
130
|
+
export declare function classifyStaleDirectForPrune(record: Pick<MeshActiveWorkRecord, 'staleReason' | 'staleDispatchUnacknowledged' | 'terminal'>, opts?: {
|
|
131
|
+
includeTerminal?: boolean;
|
|
132
|
+
}): StaleDirectPruneClassification;
|
|
133
|
+
/**
|
|
134
|
+
* Outcome of one staleDirect prune pass. Pure data — callers (the MCP tool, the
|
|
135
|
+
* daemon reconcile loop) format/log this however they need. The MCP tool wraps it in
|
|
136
|
+
* its JSON response; the reconcile loop logs prunedCount when > 0.
|
|
137
|
+
*/
|
|
138
|
+
export interface StaleDirectPruneResult {
|
|
139
|
+
mode: 'execute' | 'dry_run';
|
|
140
|
+
includeTerminal: boolean;
|
|
141
|
+
/** Total staleDirect (+terminal when included) candidates surfaced this pass. */
|
|
142
|
+
candidateCount: number;
|
|
143
|
+
/** Records classified prunable AND (when minAgeMs > 0) old enough to auto-prune. */
|
|
144
|
+
prunable: MeshActiveWorkRecord[];
|
|
145
|
+
prunedCount: number;
|
|
146
|
+
/** Prunable by classification but younger than the age gate — only populated when minAgeMs > 0. */
|
|
147
|
+
skippedTooYoung: MeshActiveWorkRecord[];
|
|
148
|
+
preservedUnacknowledged: MeshActiveWorkRecord[];
|
|
149
|
+
/** Prunable orphans/terminals with no store-backed row to delete (ledger-only audit). */
|
|
150
|
+
preservedLedgerOnly: MeshActiveWorkRecord[];
|
|
151
|
+
preservedNotOrphan: MeshActiveWorkRecord[];
|
|
152
|
+
}
|
|
153
|
+
export interface PruneStaleDirectDispatchesOptions {
|
|
154
|
+
meshId: string;
|
|
155
|
+
/** Active direct dispatches from MeshRuntimeStore (getActiveDirectDispatches). */
|
|
156
|
+
directDispatches: DirectDispatchRecord[];
|
|
157
|
+
/** Ledger tail used to attribute remote/terminal dispatches (readLedgerEntries). */
|
|
158
|
+
ledgerEntries?: MeshLedgerEntry[];
|
|
159
|
+
queue?: MeshWorkQueueEntry[];
|
|
160
|
+
/** Live mesh nodes (decorated with live session details) — drives orphan detection. */
|
|
161
|
+
nodes?: any[];
|
|
162
|
+
/** When true, actually delete + append the audit ledger entry. Default false (dry run). */
|
|
163
|
+
execute?: boolean;
|
|
164
|
+
/** Include terminal (idle/failed) direct rows as prune candidates. Default false. */
|
|
165
|
+
includeTerminal?: boolean;
|
|
166
|
+
/**
|
|
167
|
+
* Minimum age (ms, measured from createdAt/dispatchedAt) before a prunable orphan is
|
|
168
|
+
* eligible. 0 (default) prunes immediately regardless of age — the manual prune behavior.
|
|
169
|
+
* The daemon auto-prune passes a conservative threshold so a node/session that is only
|
|
170
|
+
* transiently invisible is never pruned on the spot.
|
|
171
|
+
*/
|
|
172
|
+
minAgeMs?: number;
|
|
173
|
+
/** Audit source string written into the direct_dispatch_pruned ledger payload. */
|
|
174
|
+
source?: string;
|
|
175
|
+
now?: number;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Shared staleDirect prune core. Single source of truth for the prune decision + the
|
|
179
|
+
* mutation (store-row delete + audit-ledger append) used by BOTH the manual MCP tool
|
|
180
|
+
* (mesh_prune_stale_direct, minAgeMs=0) and the daemon reconcile loop's auto-prune
|
|
181
|
+
* PHASE (minAgeMs > 0). Pure decision logic via buildMeshActiveWork + classifyStaleDirectForPrune;
|
|
182
|
+
* the only side effects (on execute) are deleteDirectDispatchesByTaskId and a single
|
|
183
|
+
* direct_dispatch_pruned ledger entry — never touching the append-only audit history of the
|
|
184
|
+
* pruned dispatches themselves.
|
|
185
|
+
*
|
|
186
|
+
* Safety rules (identical for manual + auto):
|
|
187
|
+
* - Only records classified as staleDirectWork against the CURRENT live mesh are eligible.
|
|
188
|
+
* - Of those, only orphans (node/session gone) — and terminals when includeTerminal — are prunable.
|
|
189
|
+
* Fresh unacknowledged dispatch failures (node/session still live) are always preserved.
|
|
190
|
+
* - Only store-backed rows (taskId present in MeshRuntimeStore) are deleted; ledger-only remote
|
|
191
|
+
* entries are preserved.
|
|
192
|
+
* - When minAgeMs > 0, a prunable orphan younger than the gate is held back (skippedTooYoung).
|
|
193
|
+
* This applies ONLY to the auto path; the manual path passes minAgeMs=0 (immediate).
|
|
194
|
+
*
|
|
195
|
+
* Idempotent: a deleted row no longer appears in getActiveDirectDispatches, so a second pass
|
|
196
|
+
* over the same orphan finds nothing to prune.
|
|
197
|
+
*/
|
|
198
|
+
export declare function pruneStaleDirectDispatches(opts: PruneStaleDirectDispatchesOptions): StaleDirectPruneResult;
|
|
199
|
+
export declare function buildCompactStaleDirectWorkSummary(staleDirectWork: MeshActiveWorkRecord[], opts?: {
|
|
200
|
+
sampleLimit?: number;
|
|
201
|
+
detailHint?: string;
|
|
202
|
+
note?: string;
|
|
203
|
+
}): MeshStaleDirectWorkSummary;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const CLONE_BOOTSTRAP_GRACE_MS: number;
|
|
2
|
+
/** Record that a worktree node id was just cloned, opening its transient grace window. */
|
|
3
|
+
export declare function noteRecentlyClonedNode(nodeId: string | undefined | null, nowMs?: number): void;
|
|
4
|
+
/** True when nodeId was cloned within the grace window (and the entry has not expired). */
|
|
5
|
+
export declare function isWithinCloneBootstrapGrace(nodeId: string | undefined | null, nowMs?: number): boolean;
|
|
6
|
+
/** Drop a node's grace entry (e.g. once it has fully resolved into the mesh view). */
|
|
7
|
+
export declare function clearCloneBootstrapGrace(nodeId: string | undefined | null): void;
|
|
8
|
+
export declare function __resetCloneBootstrapGraceForTests(): void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DaemonComponents } from '../boot/daemon-lifecycle.js';
|
|
2
|
+
import type { LocalMeshEntry } from '../repo-mesh-types.js';
|
|
3
|
+
export declare function reconcileUnterminatedDirectDispatches(components: DaemonComponents, mesh: LocalMeshEntry, selfIds: string[], localDaemonId: string | undefined): Promise<void>;
|
|
4
|
+
export declare function autoPruneStaleDirectDispatches(components: DaemonComponents, mesh: LocalMeshEntry, selfIds: string[], localDaemonId: string | undefined, minAgeMs: number): Promise<void>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hermes / MCP coordinator config helpers
|
|
3
|
+
*
|
|
4
|
+
* Extracted from commands/router.ts (behavior-preserving move). Contains the
|
|
5
|
+
* MCP-server config parse/serialize helpers and the Hermes coordinator base
|
|
6
|
+
* config loading / temp-override stripping / credential-copy helpers.
|
|
7
|
+
*
|
|
8
|
+
* router.ts re-exports every public symbol from here so existing import paths
|
|
9
|
+
* keep working.
|
|
10
|
+
*/
|
|
11
|
+
import type { MeshCoordinatorConfigFormat } from './mesh-refine-gates.js';
|
|
12
|
+
export declare function getMcpServersKey(format: MeshCoordinatorConfigFormat): 'mcpServers' | 'mcp_servers';
|
|
13
|
+
export declare function parseMeshCoordinatorMcpConfig(text: string, format: MeshCoordinatorConfigFormat): Record<string, any>;
|
|
14
|
+
export declare function serializeMeshCoordinatorMcpConfig(config: Record<string, any>, format: MeshCoordinatorConfigFormat): string;
|
|
15
|
+
export declare function loadHermesCoordinatorBaseConfig(targetConfigPath: string): {
|
|
16
|
+
config: Record<string, any>;
|
|
17
|
+
sourceHome: string;
|
|
18
|
+
sourceConfigPath: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function stripHermesCoordinatorTempModelProviderOverrides(config: Record<string, any>): Record<string, any>;
|
|
21
|
+
export declare function copyHermesCoordinatorCredentialFiles(sourceHome: string, targetHome: string): void;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Possible delivery statuses for a session delivery record.
|
|
3
|
+
*/
|
|
4
|
+
export type MeshSessionDeliveryStatus = 'queued' | 'delivering' | 'delivered' | 'acked' | 'completed' | 'failed' | 'expired' | 'cancelled';
|
|
5
|
+
/**
|
|
6
|
+
* Kind of delivery — controls priority and policy handling.
|
|
7
|
+
*/
|
|
8
|
+
export type MeshSessionDeliveryKind = 'task' | 'followup' | 'approval' | 'recovery' | 'system_notice';
|
|
9
|
+
/**
|
|
10
|
+
* A session delivery decision — what to do when a task arrives for a session.
|
|
11
|
+
*/
|
|
12
|
+
export type MeshDeliveryDecision = 'immediate' | 'queued' | 'rejected';
|
|
13
|
+
export interface MeshDeliveryPolicyResult {
|
|
14
|
+
decision: MeshDeliveryDecision;
|
|
15
|
+
reason: string;
|
|
16
|
+
/** When decision='queued', estimated deliver-after ISO timestamp if known. */
|
|
17
|
+
deliverAfter?: string;
|
|
18
|
+
/** Human-readable explanation for coordinator/operator. */
|
|
19
|
+
message: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Determine whether to deliver immediately, queue, or reject based on session status.
|
|
23
|
+
*
|
|
24
|
+
* This is a pure function — it does not write to any store.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveDeliveryDecision(sessionStatus: string | undefined, opts?: {
|
|
27
|
+
kind?: MeshSessionDeliveryKind;
|
|
28
|
+
/** When true, busy session immediate injection is allowed (provider-specific capability). */
|
|
29
|
+
allowBusyInjection?: boolean;
|
|
30
|
+
}): MeshDeliveryPolicyResult;
|
|
31
|
+
export interface SessionDeliveryRecord {
|
|
32
|
+
id: string;
|
|
33
|
+
meshId: string;
|
|
34
|
+
nodeId?: string;
|
|
35
|
+
sessionId?: string;
|
|
36
|
+
providerType?: string;
|
|
37
|
+
taskId?: string;
|
|
38
|
+
kind: MeshSessionDeliveryKind;
|
|
39
|
+
priority: number;
|
|
40
|
+
message: string;
|
|
41
|
+
status: MeshSessionDeliveryStatus;
|
|
42
|
+
deliverAfter?: string;
|
|
43
|
+
expiresAt?: string;
|
|
44
|
+
attemptCount: number;
|
|
45
|
+
sourceCoordinatorSessionId?: string;
|
|
46
|
+
sourceCoordinatorDaemonId?: string;
|
|
47
|
+
lastError?: string;
|
|
48
|
+
createdAt: string;
|
|
49
|
+
updatedAt: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a delivery record in the store.
|
|
53
|
+
*/
|
|
54
|
+
export declare function createSessionDelivery(opts: {
|
|
55
|
+
meshId: string;
|
|
56
|
+
nodeId?: string;
|
|
57
|
+
sessionId?: string;
|
|
58
|
+
providerType?: string;
|
|
59
|
+
taskId?: string;
|
|
60
|
+
kind: MeshSessionDeliveryKind;
|
|
61
|
+
message: string;
|
|
62
|
+
status: MeshSessionDeliveryStatus;
|
|
63
|
+
priority?: number;
|
|
64
|
+
deliverAfter?: string;
|
|
65
|
+
expiresAt?: string;
|
|
66
|
+
sourceCoordinatorSessionId?: string;
|
|
67
|
+
sourceCoordinatorDaemonId?: string;
|
|
68
|
+
}): SessionDeliveryRecord;
|
|
69
|
+
/**
|
|
70
|
+
* Update the status of a delivery record.
|
|
71
|
+
*/
|
|
72
|
+
export declare function updateSessionDeliveryStatus(id: string, status: MeshSessionDeliveryStatus, opts?: {
|
|
73
|
+
lastError?: string;
|
|
74
|
+
incrementAttempt?: boolean;
|
|
75
|
+
}): void;
|
|
76
|
+
/**
|
|
77
|
+
* Get active (non-terminal) deliveries for a mesh, optionally filtered by session.
|
|
78
|
+
*/
|
|
79
|
+
export declare function getActiveSessionDeliveries(meshId: string, sessionId?: string): {
|
|
80
|
+
id: string;
|
|
81
|
+
meshId: string;
|
|
82
|
+
nodeId: string | null;
|
|
83
|
+
sessionId: string | null;
|
|
84
|
+
providerType: string | null;
|
|
85
|
+
taskId: string | null;
|
|
86
|
+
kind: string;
|
|
87
|
+
priority: number;
|
|
88
|
+
message: string;
|
|
89
|
+
status: string;
|
|
90
|
+
deliverAfter: string | null;
|
|
91
|
+
expiresAt: string | null;
|
|
92
|
+
attemptCount: number;
|
|
93
|
+
sourceCoordinatorSessionId: string | null;
|
|
94
|
+
sourceCoordinatorDaemonId: string | null;
|
|
95
|
+
lastError: string | null;
|
|
96
|
+
createdAt: string;
|
|
97
|
+
updatedAt: string;
|
|
98
|
+
}[];
|
|
99
|
+
export declare function __clearSessionDeliveriesForTests(meshId: string): void;
|
|
100
|
+
/**
|
|
101
|
+
* Mark all active (queued/delivering/delivered/acked) deliveries for a session as completed or failed.
|
|
102
|
+
* Called when a task's terminal status is confirmed so delivery records stay in sync.
|
|
103
|
+
*/
|
|
104
|
+
export declare function markSessionDeliveriesTerminal(meshId: string, sessionId: string, terminalStatus: 'completed' | 'failed'): void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { MeshLedgerKind } from './mesh-ledger.js';
|
|
2
|
+
export declare const EVENT_TO_LEDGER_KIND: Record<string, MeshLedgerKind>;
|
|
3
|
+
export declare function isMeshCoordinatorEvent(eventName: unknown): eventName is string;
|
|
4
|
+
export declare const MESH_FORCE_INJECT_EVENTS: ReadonlySet<string>;
|
|
5
|
+
export declare function shouldForceInjectMeshEvent(eventName: unknown): boolean;
|
|
6
|
+
export declare const MESH_APPROVAL_EVENTS: ReadonlySet<string>;
|
|
7
|
+
export declare function isMeshApprovalEvent(eventName: unknown): boolean;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { DaemonComponents } from '../boot/daemon-lifecycle.js';
|
|
2
|
+
export declare function recoverMeshIdByCoordinatorAndNode(coordinatorDaemonId: string, nodeId: string): string;
|
|
3
|
+
export declare function resolveForwardEventMeshId(components: DaemonComponents, payload: Record<string, unknown>): string;
|
|
4
|
+
export declare function __resetMeshWorkspaceCacheForTests(): void;
|
|
5
|
+
export declare function buildRelayMetadataEvent(payload: Record<string, unknown>): Record<string, unknown>;
|
|
6
|
+
export declare function handleMeshForwardEvent(components: DaemonComponents, payload: Record<string, unknown>): {
|
|
7
|
+
[extra: string]: unknown;
|
|
8
|
+
success: true;
|
|
9
|
+
forwarded: 0;
|
|
10
|
+
suppressed: true;
|
|
11
|
+
} | {
|
|
12
|
+
success: boolean;
|
|
13
|
+
forwarded: number;
|
|
14
|
+
suppressed: boolean;
|
|
15
|
+
autoApprovingWorkerApproval: boolean;
|
|
16
|
+
staleDispatchRejected?: undefined;
|
|
17
|
+
error?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
success: boolean;
|
|
20
|
+
forwarded: number;
|
|
21
|
+
suppressed: boolean;
|
|
22
|
+
staleDispatchRejected: boolean;
|
|
23
|
+
autoApprovingWorkerApproval?: undefined;
|
|
24
|
+
error?: undefined;
|
|
25
|
+
} | {
|
|
26
|
+
success: boolean;
|
|
27
|
+
forwarded: number;
|
|
28
|
+
suppressed?: undefined;
|
|
29
|
+
autoApprovingWorkerApproval?: undefined;
|
|
30
|
+
staleDispatchRejected?: undefined;
|
|
31
|
+
error?: undefined;
|
|
32
|
+
} | {
|
|
33
|
+
success: boolean;
|
|
34
|
+
error: string;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* NOTIF-HELD-DRAIN (Fix 2): event-driven coordinator drain. The reconcile loop delivers a
|
|
38
|
+
* worker's queued completion to an IDLE local coordinator only on its periodic poll. When a
|
|
39
|
+
* coordinator is sitting idle awaiting exactly that completion, waiting up to a full poll
|
|
40
|
+
* interval is the avoidable delivery latency the RCA flags — and combined with the (now-fixed)
|
|
41
|
+
* modal-park false-positive it stretched into the multi-minute notification stall. So the
|
|
42
|
+
* MOMENT a worker delegate event is persisted for a mesh, attempt the same idle-coordinator
|
|
43
|
+
* drain immediately, mirroring the event-driven worker-claim path (agent:ready /
|
|
44
|
+
* agent:generating_completed → triggerMeshQueue).
|
|
45
|
+
*
|
|
46
|
+
* Safety:
|
|
47
|
+
* - drainPendingMeshCoordinatorEvents marks rows drained=1 atomically, so this races the
|
|
48
|
+
* reconcile poll and the coordinator's own idle auto-flush harmlessly — exactly one consumes
|
|
49
|
+
* each row.
|
|
50
|
+
* - Only IDLE, non-modal-parked coordinators are delivery targets (never a generating /
|
|
51
|
+
* consent-modal PTY).
|
|
52
|
+
* - Strict session routing is honoured: an event naming an originating coordinator session is
|
|
53
|
+
* delivered only to that live idle session; anything not currently deliverable here
|
|
54
|
+
* (wrong/absent session, or a message-less lifecycle event) is RE-QUEUED — never dropped —
|
|
55
|
+
* so the reconcile loop's strict hold/expire path remains the single authority for it.
|
|
56
|
+
*/
|
|
57
|
+
export declare function flushPendingForMeshIdleCoordinators(components: DaemonComponents, meshId: string): void;
|
|
58
|
+
export declare function setupMeshEventForwarding(components: DaemonComponents): void;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface MeshEventTraceCtx {
|
|
2
|
+
/** Primary correlation anchor — the mesh task id (meshActiveTaskId / metadataEvent.taskId). */
|
|
3
|
+
taskId?: unknown;
|
|
4
|
+
/** Optional per-event id when the producer assigns one. */
|
|
5
|
+
eventId?: unknown;
|
|
6
|
+
/** Worker session id — the fallback anchor when no task is attached. */
|
|
7
|
+
sessionId?: unknown;
|
|
8
|
+
nodeId?: unknown;
|
|
9
|
+
meshId?: unknown;
|
|
10
|
+
event?: unknown;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Stable, greppable correlation key. `task=` and `sess=` are ALWAYS rendered (as `-`
|
|
14
|
+
* when absent) so the key shape is uniform across stages and a single grep alternation
|
|
15
|
+
* (`task=<id>\|sess=<id>`) follows the event end-to-end.
|
|
16
|
+
*/
|
|
17
|
+
export declare function meshEventTraceKey(ctx: MeshEventTraceCtx): string;
|
|
18
|
+
/** Lifecycle progress (INFO). One line per stage the event clears. */
|
|
19
|
+
export declare function traceMeshEventStage(stage: string, ctx: MeshEventTraceCtx, detail?: string): void;
|
|
20
|
+
/** Event did not advance — rejected / held / skipped / deduped (WARN). */
|
|
21
|
+
export declare function traceMeshEventDrop(reason: string, ctx: MeshEventTraceCtx, detail?: string): void;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { isMeshCoordinatorEvent, MESH_FORCE_INJECT_EVENTS, shouldForceInjectMeshEvent, } from './mesh-event-classify.js';
|
|
2
|
+
export { __orderEligibleNodesForTests, __resolveSchedulingStrategyForTests, __resetIdleAutoFastForwardForTests, activeReadonlyAssignedCount, activeWriteAssignedCount, isSessionActivelyGenerating, triggerMeshQueue, tryAssignQueueTask, } from './mesh-queue-assignment.js';
|
|
3
|
+
export type { MeshQueueTriggerResult } from './mesh-queue-assignment.js';
|
|
4
|
+
export { __resetMeshWorkspaceCacheForTests, buildRelayMetadataEvent, handleMeshForwardEvent, resolveForwardEventMeshId, setupMeshEventForwarding, } from './mesh-event-forwarding.js';
|