@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,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider script require() whitelist.
|
|
3
|
+
*
|
|
4
|
+
* Provider scripts (detect_status.js, parse_session.js, the override layer
|
|
5
|
+
* the v1 contract exposes, plus their _shared helpers) execute in the
|
|
6
|
+
* daemon process with full Node access — see sandbox/README-design.ts for
|
|
7
|
+
* the long story. Full isolation via isolated-vm has a real perf cost and
|
|
8
|
+
* a real marshalling-complexity cost, so we instead constrain the most
|
|
9
|
+
* dangerous attack surface: what a provider script can `require()`.
|
|
10
|
+
*
|
|
11
|
+
* The hook wraps Node's CJS `Module._load` and, when the calling file is
|
|
12
|
+
* inside a directory that this loader has registered as a provider script
|
|
13
|
+
* root, blocks every module that isn't on the allowlist below. Relative
|
|
14
|
+
* paths are allowed but only when they resolve back inside the same
|
|
15
|
+
* provider root — providers can require their sibling helpers but they
|
|
16
|
+
* can't reach `../../../../etc/passwd` through a clever segment.
|
|
17
|
+
*
|
|
18
|
+
* The hook installs exactly once per process; subsequent `register()` /
|
|
19
|
+
* `unregister()` calls just adjust the set of roots that are gated.
|
|
20
|
+
*
|
|
21
|
+
* Performance: the hook adds one `path.normalize` + one Set lookup to
|
|
22
|
+
* every require call coming from a registered root. At the measured
|
|
23
|
+
* baseline (~6 script invocations / second / session, each making
|
|
24
|
+
* ≤1 require during initial module evaluation, zero during steady-state
|
|
25
|
+
* calls), this is unmeasurable.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Wrap `globalThis.process` methods so calls from provider script stacks
|
|
29
|
+
* throw, while every other caller (daemon-core itself, npm deps, the test
|
|
30
|
+
* harness) goes through untouched.
|
|
31
|
+
*
|
|
32
|
+
* Trade-off: this is a stack-introspection check on every call to the
|
|
33
|
+
* affected methods. The methods in question (exit/kill/abort/binding/dlopen)
|
|
34
|
+
* are not hot paths — they're either never called or called once at
|
|
35
|
+
* shutdown. The cost is negligible.
|
|
36
|
+
*
|
|
37
|
+
* Alternative considered: wrap only the module-scope `process` binding via
|
|
38
|
+
* Module._extensions. Node's ESM/CJS semantics make this unreliable across
|
|
39
|
+
* dynamic-require paths. Stack introspection is uglier but correct.
|
|
40
|
+
*
|
|
41
|
+
* Caveat: a provider script that grabs `globalThis.process.exit` once and
|
|
42
|
+
* passes the reference to a non-provider callback can still escape — the
|
|
43
|
+
* stack at the actual call site no longer goes through provider code. We
|
|
44
|
+
* accept this gap; the threat model assumes scripts are not actively
|
|
45
|
+
* trying to launder calls through arbitrary daemon callbacks, just that
|
|
46
|
+
* a naive `process.exit(0)` should not silently terminate the daemon.
|
|
47
|
+
*/
|
|
48
|
+
export declare function installProviderProcessShim(): void;
|
|
49
|
+
/** For tests — restore the original process.* methods. */
|
|
50
|
+
export declare function _uninstallProviderProcessShimForTest(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Register a directory whose `.js` files should be subject to the
|
|
53
|
+
* whitelist when they call require(). Idempotent — repeated registration
|
|
54
|
+
* of the same root is a no-op. Pass the same string back to
|
|
55
|
+
* `unregisterProviderScriptRoot` to remove it.
|
|
56
|
+
*/
|
|
57
|
+
export declare function registerProviderScriptRoot(absRoot: string): void;
|
|
58
|
+
/** Inverse of registerProviderScriptRoot. */
|
|
59
|
+
export declare function unregisterProviderScriptRoot(absRoot: string): void;
|
|
60
|
+
/** For tests — drop every registration and reset internal state. */
|
|
61
|
+
export declare function _resetProviderScriptRoots(): void;
|
|
62
|
+
/** For tests — peek at the gated root list. */
|
|
63
|
+
export declare function _getRegisteredRoots(): readonly string[];
|
|
64
|
+
/**
|
|
65
|
+
* Public re-exports — registry consumers want to know what's on the
|
|
66
|
+
* allowlist without parsing this file.
|
|
67
|
+
*/
|
|
68
|
+
export declare const PROVIDER_REQUIRE_POLICY: Readonly<{
|
|
69
|
+
safeStdlib: string[];
|
|
70
|
+
shimmedStdlib: string[];
|
|
71
|
+
fsAllowedMembers: ("existsSync" | "statSync" | "lstatSync" | "realpathSync" | "readFileSync" | "readdirSync" | "readlinkSync" | "accessSync" | "constants" | "exists" | "stat" | "lstat" | "realpath" | "readFile" | "readdir" | "readlink" | "access" | "promises")[];
|
|
72
|
+
childProcessAllowedMembers: string[];
|
|
73
|
+
processDeniedMembers: string[];
|
|
74
|
+
}>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* script-runner.ts — SandboxedScriptRunner interface + DirectEvalRunner stub
|
|
3
|
+
*
|
|
4
|
+
* Phase 5 scaffold: defines the interface that the isolated-vm implementation
|
|
5
|
+
* will satisfy, and provides a DirectEvalRunner that keeps providers working
|
|
6
|
+
* without the native isolated-vm package.
|
|
7
|
+
*
|
|
8
|
+
* See README-design.ts for the full design rationale.
|
|
9
|
+
*/
|
|
10
|
+
/** Options controlling the resource limits applied to a sandboxed script call. */
|
|
11
|
+
export interface SandboxOptions {
|
|
12
|
+
/** Maximum CPU time (wall-clock) in milliseconds before the script is killed. Default: 50. */
|
|
13
|
+
cpuTimeLimitMs: number;
|
|
14
|
+
/** Maximum V8 heap size in megabytes for the Isolate. Default: 32. */
|
|
15
|
+
memoryLimitMb: number;
|
|
16
|
+
/**
|
|
17
|
+
* Whitelist of global names the script may access.
|
|
18
|
+
* The full allowed surface is documented in README-design.ts.
|
|
19
|
+
* Default: ['console', 'JSON', 'Math', 'Date', 'String', 'Number', 'Boolean',
|
|
20
|
+
* 'Array', 'Object', 'RegExp']
|
|
21
|
+
*/
|
|
22
|
+
allowedGlobals: string[];
|
|
23
|
+
}
|
|
24
|
+
/** Default resource limits applied when no options are supplied. */
|
|
25
|
+
export declare const DEFAULT_SANDBOX_OPTIONS: SandboxOptions;
|
|
26
|
+
/**
|
|
27
|
+
* Contract for sandboxed script execution.
|
|
28
|
+
*
|
|
29
|
+
* Implementations:
|
|
30
|
+
* - DirectEvalRunner — no-op stub; uses eval() with a try/catch (unsafe, no limits).
|
|
31
|
+
* - IsolatedVmRunner — Phase 5 full implementation using the `isolated-vm` package.
|
|
32
|
+
*
|
|
33
|
+
* Usage:
|
|
34
|
+
* const runner = createScriptRunner({ cpuTimeLimitMs: 50, memoryLimitMb: 32 });
|
|
35
|
+
* const result = await runner.run(scriptSource, { input, sdk });
|
|
36
|
+
* runner.dispose();
|
|
37
|
+
*/
|
|
38
|
+
export interface SandboxedScriptRunner {
|
|
39
|
+
/**
|
|
40
|
+
* Execute `script` synchronously inside a sandboxed context.
|
|
41
|
+
*
|
|
42
|
+
* @param script JavaScript source string. The script body should
|
|
43
|
+
* evaluate to the desired return value (the last expression
|
|
44
|
+
* is returned, module.exports is NOT consulted).
|
|
45
|
+
* Example: `"input.tail.includes('✓') ? 'idle' : 'generating'"`
|
|
46
|
+
*
|
|
47
|
+
* @param context Plain key/value pairs injected as globals inside the
|
|
48
|
+
* sandbox. All values must be JSON-serializable.
|
|
49
|
+
* Typically: `{ input: <CliStatusInput>, sdk: <sdk facade> }`
|
|
50
|
+
*
|
|
51
|
+
* @param options Optional per-call overrides for resource limits.
|
|
52
|
+
* Merged with the options supplied to createScriptRunner().
|
|
53
|
+
*
|
|
54
|
+
* @returns The value produced by the script (JSON-deserialized from
|
|
55
|
+
* the sandbox). May be `unknown` — callers must validate.
|
|
56
|
+
*
|
|
57
|
+
* @throws Re-throws if the script contains a syntax error.
|
|
58
|
+
* Returns `undefined` (via rejection) on timeout or OOM.
|
|
59
|
+
*/
|
|
60
|
+
run(script: string, context: Record<string, unknown>, options?: Partial<SandboxOptions>): Promise<unknown>;
|
|
61
|
+
/**
|
|
62
|
+
* Release all resources held by this runner (Isolate, Contexts, etc.).
|
|
63
|
+
* After dispose(), calling run() has undefined behavior.
|
|
64
|
+
*/
|
|
65
|
+
dispose(): void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* No-op stub used when isolated-vm is not available (graceful degradation).
|
|
69
|
+
*
|
|
70
|
+
* Falls back to direct `eval()` inside a try/catch — there are no CPU or
|
|
71
|
+
* memory limits. A warning is logged on the first run() call to make the
|
|
72
|
+
* fallback visible in daemon logs.
|
|
73
|
+
*
|
|
74
|
+
* This implementation is suitable for:
|
|
75
|
+
* - Development environments where isolated-vm is not installed.
|
|
76
|
+
* - Unit tests (no native dependency required).
|
|
77
|
+
* - Graceful fallback for existing extended-legacy providers while Phase 5
|
|
78
|
+
* is being rolled out.
|
|
79
|
+
*
|
|
80
|
+
* NOT suitable for production use with untrusted script sources.
|
|
81
|
+
*/
|
|
82
|
+
export declare class DirectEvalRunner implements SandboxedScriptRunner {
|
|
83
|
+
private warned;
|
|
84
|
+
private readonly defaultOptions;
|
|
85
|
+
constructor(options?: Partial<SandboxOptions>);
|
|
86
|
+
run(script: string, context: Record<string, unknown>, _options?: Partial<SandboxOptions>): Promise<unknown>;
|
|
87
|
+
dispose(): void;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Factory: returns IsolatedVmRunner if isolated-vm is installed, else DirectEvalRunner.
|
|
91
|
+
*
|
|
92
|
+
* Logs a warning when falling back to DirectEvalRunner so the operator is aware
|
|
93
|
+
* that sandboxing is inactive.
|
|
94
|
+
*
|
|
95
|
+
* @param options Resource limit defaults applied to every run() call unless
|
|
96
|
+
* overridden at the call site. Merged with DEFAULT_SANDBOX_OPTIONS.
|
|
97
|
+
*/
|
|
98
|
+
export declare function createScriptRunner(options?: Partial<SandboxOptions>): SandboxedScriptRunner;
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI provider types — v1.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors the contract documented in
|
|
5
|
+
* adhdev-providers/docs/provider-contract/cli/v1.md.
|
|
6
|
+
*
|
|
7
|
+
* Extracted at build time into the Apache 2.0 npm package
|
|
8
|
+
* `@adhdev/provider-types`.
|
|
9
|
+
*/
|
|
10
|
+
import type { SettingsDef, CapabilitiesDef, SpawnDef, TimeoutsDef, ResumeDef, MeshCoordinatorDef, CompatibilityEntryDef, ControlDef, ProviderLifecycleStatus } from '../common/index.js';
|
|
11
|
+
export interface CliScreenLine {
|
|
12
|
+
text: string;
|
|
13
|
+
/** Number of visible columns the line occupies. */
|
|
14
|
+
width: number;
|
|
15
|
+
}
|
|
16
|
+
export interface CliScreenSnapshot {
|
|
17
|
+
text: string;
|
|
18
|
+
lineCount: number;
|
|
19
|
+
lines: CliScreenLine[];
|
|
20
|
+
nonEmptyLines: CliScreenLine[];
|
|
21
|
+
firstNonEmptyLineIndex: number;
|
|
22
|
+
lastNonEmptyLineIndex: number;
|
|
23
|
+
firstNonEmptyLine: CliScreenLine | null;
|
|
24
|
+
lastNonEmptyLine: CliScreenLine | null;
|
|
25
|
+
promptLineIndex: number;
|
|
26
|
+
promptLine: CliScreenLine | null;
|
|
27
|
+
linesAbovePrompt: CliScreenLine[];
|
|
28
|
+
linesBelowPrompt: CliScreenLine[];
|
|
29
|
+
}
|
|
30
|
+
export type CliChatRole = 'user' | 'assistant' | 'system' | 'tool';
|
|
31
|
+
export type CliChatKind = 'standard' | 'tool' | 'thinking' | 'system';
|
|
32
|
+
export type CliBubbleState = 'visible' | 'collapsed' | 'hidden';
|
|
33
|
+
export interface CliChatMessage {
|
|
34
|
+
role: CliChatRole;
|
|
35
|
+
/** Plain string is the common case; rich content (arrays / objects) is permitted but parsing differs by category. */
|
|
36
|
+
content: string | unknown;
|
|
37
|
+
timestamp?: number;
|
|
38
|
+
receivedAt?: number;
|
|
39
|
+
kind?: CliChatKind | string;
|
|
40
|
+
/** Stable id from the agent's native history when available. */
|
|
41
|
+
id?: string;
|
|
42
|
+
/** Display index, can drift. Prefer `providerUnitKey` for stable identity. */
|
|
43
|
+
index?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Stable per-message identity used by ChatSourceMachine to compare native
|
|
46
|
+
* vs PTY transcripts. When the provider supports native history, this
|
|
47
|
+
* should be derivable from the on-disk session-id + turn-number.
|
|
48
|
+
*/
|
|
49
|
+
providerUnitKey?: string;
|
|
50
|
+
bubbleId?: string;
|
|
51
|
+
bubbleState?: CliBubbleState;
|
|
52
|
+
senderName?: string;
|
|
53
|
+
meta?: Record<string, unknown>;
|
|
54
|
+
/** Provider-specific extensions are permitted; daemon ignores unknown keys. */
|
|
55
|
+
[extra: string]: unknown;
|
|
56
|
+
}
|
|
57
|
+
export interface CliApprovalModal {
|
|
58
|
+
message: string;
|
|
59
|
+
/** Raw button labels as the user sees them. Do not rewrite. */
|
|
60
|
+
buttons: string[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Provided to `parseSession` and `parseOutput`. The richest input shape.
|
|
64
|
+
*/
|
|
65
|
+
export interface CliScriptInput {
|
|
66
|
+
/** Accumulated PTY output, ANSI cleaned. */
|
|
67
|
+
buffer: string;
|
|
68
|
+
/** Raw PTY bytes including ANSI sequences. */
|
|
69
|
+
rawBuffer: string;
|
|
70
|
+
/** Last ~1000 chars of buffer. */
|
|
71
|
+
recentBuffer: string;
|
|
72
|
+
/** The terminal screen as rendered by ghostty/xterm. */
|
|
73
|
+
screenText: string;
|
|
74
|
+
workspace?: string;
|
|
75
|
+
/** Same as workspace; legacy alias. */
|
|
76
|
+
workingDir?: string;
|
|
77
|
+
/** Last known provider session id. May be empty. */
|
|
78
|
+
providerSessionId?: string;
|
|
79
|
+
/** Alias used for some native-history flows. */
|
|
80
|
+
historySessionId?: string;
|
|
81
|
+
screen: CliScreenSnapshot;
|
|
82
|
+
bufferScreen: CliScreenSnapshot;
|
|
83
|
+
recentScreen: CliScreenSnapshot;
|
|
84
|
+
/** Accumulated from previous parse calls. */
|
|
85
|
+
messages: CliChatMessage[];
|
|
86
|
+
/** Current in-flight assistant text. */
|
|
87
|
+
partialResponse: string;
|
|
88
|
+
isWaitingForResponse?: boolean;
|
|
89
|
+
/** The user's prompt for the active turn. */
|
|
90
|
+
promptText?: string;
|
|
91
|
+
/** Provider settings from ~/.adhdev/config.json. */
|
|
92
|
+
settings?: Record<string, unknown>;
|
|
93
|
+
/** Command-specific args (e.g. handler invocation parameters). */
|
|
94
|
+
args?: Record<string, unknown>;
|
|
95
|
+
/** ms timestamp of process spawn. Useful for native rollover guards. */
|
|
96
|
+
spawnAt?: number;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Provided to `detectStatus`. Trimmed for hot-path performance.
|
|
100
|
+
*/
|
|
101
|
+
export interface CliStatusInput {
|
|
102
|
+
tail: string;
|
|
103
|
+
screenText?: string;
|
|
104
|
+
rawBuffer?: string;
|
|
105
|
+
isWaitingForResponse?: boolean;
|
|
106
|
+
screen: CliScreenSnapshot;
|
|
107
|
+
tailScreen: CliScreenSnapshot;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Provided to `parseApproval`.
|
|
111
|
+
*/
|
|
112
|
+
export interface CliApprovalInput {
|
|
113
|
+
buffer: string;
|
|
114
|
+
screenText?: string;
|
|
115
|
+
rawBuffer?: string;
|
|
116
|
+
tail: string;
|
|
117
|
+
screen: CliScreenSnapshot;
|
|
118
|
+
bufferScreen: CliScreenSnapshot;
|
|
119
|
+
tailScreen: CliScreenSnapshot;
|
|
120
|
+
}
|
|
121
|
+
export type CliStatus = 'idle' | 'generating' | 'waiting_approval' | 'starting' | 'error';
|
|
122
|
+
export type CliTranscriptAuthority = 'provider' | 'daemon';
|
|
123
|
+
export type CliTranscriptCoverage = 'full' | 'tail' | 'current-turn';
|
|
124
|
+
export interface CliParsedSession {
|
|
125
|
+
status: CliStatus;
|
|
126
|
+
messages: CliChatMessage[];
|
|
127
|
+
modal: CliApprovalModal | null;
|
|
128
|
+
parsedStatus?: string | null;
|
|
129
|
+
errorMessage?: string;
|
|
130
|
+
errorReason?: string;
|
|
131
|
+
providerSessionId?: string;
|
|
132
|
+
transcriptAuthority?: CliTranscriptAuthority;
|
|
133
|
+
coverage?: CliTranscriptCoverage;
|
|
134
|
+
}
|
|
135
|
+
export interface CliReadChatPayload {
|
|
136
|
+
id: 'cli_session' | string;
|
|
137
|
+
status: CliStatus;
|
|
138
|
+
title: string;
|
|
139
|
+
messages: CliChatMessage[];
|
|
140
|
+
activeModal: CliApprovalModal | null;
|
|
141
|
+
providerSessionId?: string;
|
|
142
|
+
transcriptAuthority?: CliTranscriptAuthority;
|
|
143
|
+
coverage?: CliTranscriptCoverage;
|
|
144
|
+
controlValues?: Record<string, unknown>;
|
|
145
|
+
}
|
|
146
|
+
export type CliCreateStateFn<S = Record<string, unknown>> = () => S;
|
|
147
|
+
export type CliParseSessionFn<S = unknown> = (state: S | undefined, input: CliScriptInput) => CliParsedSession;
|
|
148
|
+
export type CliDetectStatusFn = (input: CliStatusInput) => CliStatus | null;
|
|
149
|
+
export type CliParseApprovalFn = (input: CliApprovalInput) => CliApprovalModal | null;
|
|
150
|
+
export type CliParseOutputFn<S = unknown> = (state: S | undefined, input: CliScriptInput) => CliReadChatPayload;
|
|
151
|
+
export interface CliCapabilityHandlerResult {
|
|
152
|
+
ok?: boolean;
|
|
153
|
+
writeRaw?: string;
|
|
154
|
+
sendMessage?: string;
|
|
155
|
+
result?: unknown;
|
|
156
|
+
}
|
|
157
|
+
export type CliCapabilityHandlerFn<S = unknown> = (state: S | undefined, input: CliScriptInput) => CliCapabilityHandlerResult;
|
|
158
|
+
export interface CliNativeHistoryReadInput {
|
|
159
|
+
historySessionId?: string;
|
|
160
|
+
workspace?: string;
|
|
161
|
+
/** ms timestamp of provider spawn. Use to reject pre-spawn rollovers. */
|
|
162
|
+
spawnAt?: number;
|
|
163
|
+
}
|
|
164
|
+
export interface CliNativeHistoryMessage {
|
|
165
|
+
role: CliChatRole;
|
|
166
|
+
content: unknown;
|
|
167
|
+
kind?: CliChatKind | string;
|
|
168
|
+
providerUnitKey?: string;
|
|
169
|
+
receivedAt?: number;
|
|
170
|
+
workspace?: string;
|
|
171
|
+
historySessionId?: string;
|
|
172
|
+
}
|
|
173
|
+
export interface CliNativeHistoryReadResult {
|
|
174
|
+
source: 'provider-native';
|
|
175
|
+
providerSessionId: string;
|
|
176
|
+
messages: CliNativeHistoryMessage[];
|
|
177
|
+
sourcePath: string;
|
|
178
|
+
sourceMtimeMs: number;
|
|
179
|
+
nativeHistoryCoverage: CliTranscriptCoverage;
|
|
180
|
+
workspace?: string;
|
|
181
|
+
unavailableReason?: string;
|
|
182
|
+
}
|
|
183
|
+
export type CliReadNativeHistoryFn = (input: CliNativeHistoryReadInput) => CliNativeHistoryReadResult | null;
|
|
184
|
+
export interface CliListNativeHistoryEntry {
|
|
185
|
+
providerSessionId: string;
|
|
186
|
+
title?: string;
|
|
187
|
+
workspace?: string;
|
|
188
|
+
receivedAt?: number;
|
|
189
|
+
messageCount?: number;
|
|
190
|
+
}
|
|
191
|
+
export type CliListNativeHistoryFn = () => {
|
|
192
|
+
sessions: CliListNativeHistoryEntry[];
|
|
193
|
+
};
|
|
194
|
+
export interface CliNativeHistoryDef {
|
|
195
|
+
/** Built-in adapter $schema (e.g. "adhdev:native-history/claude-jsonl@1"). */
|
|
196
|
+
$schema?: string;
|
|
197
|
+
format: string;
|
|
198
|
+
watchPath: string;
|
|
199
|
+
mode: 'native-source' | 'daemon-mirror';
|
|
200
|
+
contractVersion?: string;
|
|
201
|
+
scripts?: {
|
|
202
|
+
readSession?: string;
|
|
203
|
+
listSessions?: string;
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* @deprecated Use {@link CliNativeHistoryDef}. Retained as an alias for one
|
|
208
|
+
* release so SDK consumers that referenced the v0 name keep compiling.
|
|
209
|
+
*/
|
|
210
|
+
export type CliCanonicalHistoryDef = CliNativeHistoryDef;
|
|
211
|
+
export interface CliPatternEntry {
|
|
212
|
+
source: string;
|
|
213
|
+
flags?: string;
|
|
214
|
+
}
|
|
215
|
+
export interface CliPatternsDef {
|
|
216
|
+
prompt?: CliPatternEntry[];
|
|
217
|
+
generating?: CliPatternEntry[];
|
|
218
|
+
approval?: CliPatternEntry[];
|
|
219
|
+
ready?: CliPatternEntry[];
|
|
220
|
+
dialog?: CliPatternEntry[];
|
|
221
|
+
}
|
|
222
|
+
export interface CliProviderManifest {
|
|
223
|
+
/** Identity */
|
|
224
|
+
type: string;
|
|
225
|
+
name: string;
|
|
226
|
+
displayName?: string;
|
|
227
|
+
category: 'cli';
|
|
228
|
+
icon?: string;
|
|
229
|
+
aliases?: ReadonlyArray<string>;
|
|
230
|
+
/** Versioning */
|
|
231
|
+
engines?: {
|
|
232
|
+
adhdev?: string;
|
|
233
|
+
};
|
|
234
|
+
providerVersion?: string;
|
|
235
|
+
contractVersion?: number | string;
|
|
236
|
+
status?: ProviderLifecycleStatus;
|
|
237
|
+
details?: string;
|
|
238
|
+
disableUpstream?: boolean;
|
|
239
|
+
/** Process spawn */
|
|
240
|
+
binary: string;
|
|
241
|
+
versionCommand?: string;
|
|
242
|
+
spawn: SpawnDef;
|
|
243
|
+
/** Input/output behavior */
|
|
244
|
+
sendDelayMs?: number;
|
|
245
|
+
sendKey?: string;
|
|
246
|
+
submitStrategy?: 'wait_for_echo' | 'immediate';
|
|
247
|
+
requirePromptEchoBeforeSubmit?: boolean;
|
|
248
|
+
allowInputDuringGeneration?: boolean;
|
|
249
|
+
requiresFinalAssistantBeforeIdle?: boolean;
|
|
250
|
+
augmentStaleSnapshot?: boolean;
|
|
251
|
+
transcriptAuthority?: CliTranscriptAuthority;
|
|
252
|
+
transcriptContext?: 'full' | 'tail';
|
|
253
|
+
/** Patterns (legacy fallback) */
|
|
254
|
+
patterns?: CliPatternsDef;
|
|
255
|
+
/** Approval */
|
|
256
|
+
approvalKeys?: Readonly<Record<string, string>>;
|
|
257
|
+
approvalPositiveHints?: ReadonlyArray<string>;
|
|
258
|
+
/** Timeouts */
|
|
259
|
+
timeouts?: TimeoutsDef;
|
|
260
|
+
/** Resume */
|
|
261
|
+
resume?: ResumeDef;
|
|
262
|
+
/** Compatibility */
|
|
263
|
+
compatibility: ReadonlyArray<CompatibilityEntryDef>;
|
|
264
|
+
defaultScriptDir?: string;
|
|
265
|
+
/** Capabilities advertised to the dashboard */
|
|
266
|
+
capabilities?: CapabilitiesDef;
|
|
267
|
+
/** Mesh coordinator setup */
|
|
268
|
+
meshCoordinator?: MeshCoordinatorDef;
|
|
269
|
+
/** Native history (v1 canonical field name) */
|
|
270
|
+
nativeHistory?: CliNativeHistoryDef;
|
|
271
|
+
/** @deprecated v0 alias for `nativeHistory`. */
|
|
272
|
+
canonicalHistory?: CliCanonicalHistoryDef;
|
|
273
|
+
/** Settings (UI toggles persisted to ~/.adhdev/config.json) */
|
|
274
|
+
settings?: SettingsDef;
|
|
275
|
+
/** Controls (dashboard chips/buttons) */
|
|
276
|
+
controls?: ReadonlyArray<ControlDef>;
|
|
277
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types across provider categories.
|
|
3
|
+
*
|
|
4
|
+
* Extracted at build time into the Apache 2.0 npm package
|
|
5
|
+
* `@adhdev/provider-types`. External provider authors import from there;
|
|
6
|
+
* daemon-core imports from this file directly.
|
|
7
|
+
*/
|
|
8
|
+
export interface BooleanSettingDef {
|
|
9
|
+
type: 'boolean';
|
|
10
|
+
default: boolean;
|
|
11
|
+
public?: boolean;
|
|
12
|
+
label?: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface NumberSettingDef {
|
|
16
|
+
type: 'number';
|
|
17
|
+
default: number;
|
|
18
|
+
public?: boolean;
|
|
19
|
+
label?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
min?: number;
|
|
22
|
+
max?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface StringSettingDef {
|
|
25
|
+
type: 'string';
|
|
26
|
+
default: string;
|
|
27
|
+
public?: boolean;
|
|
28
|
+
label?: string;
|
|
29
|
+
description?: string;
|
|
30
|
+
}
|
|
31
|
+
export interface SelectSettingDef {
|
|
32
|
+
type: 'select';
|
|
33
|
+
default: string;
|
|
34
|
+
options: ReadonlyArray<string | {
|
|
35
|
+
value: string;
|
|
36
|
+
label?: string;
|
|
37
|
+
}>;
|
|
38
|
+
public?: boolean;
|
|
39
|
+
label?: string;
|
|
40
|
+
description?: string;
|
|
41
|
+
}
|
|
42
|
+
export type SettingDef = BooleanSettingDef | NumberSettingDef | StringSettingDef | SelectSettingDef;
|
|
43
|
+
export type SettingsDef = Readonly<Record<string, SettingDef>>;
|
|
44
|
+
export interface CapabilityInputDef {
|
|
45
|
+
multipart?: boolean;
|
|
46
|
+
mediaTypes?: ReadonlyArray<'text' | 'image' | 'audio' | string>;
|
|
47
|
+
strategies?: ReadonlyArray<{
|
|
48
|
+
mediaType: string;
|
|
49
|
+
strategies: ReadonlyArray<string>;
|
|
50
|
+
native?: boolean;
|
|
51
|
+
degradation?: ReadonlyArray<string>;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
export interface CapabilityOutputDef {
|
|
55
|
+
richContent?: boolean;
|
|
56
|
+
mediaTypes?: ReadonlyArray<string>;
|
|
57
|
+
}
|
|
58
|
+
export interface CapabilityControlsDef {
|
|
59
|
+
typedResults?: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface CapabilitiesDef {
|
|
62
|
+
input?: CapabilityInputDef;
|
|
63
|
+
output?: CapabilityOutputDef;
|
|
64
|
+
controls?: CapabilityControlsDef;
|
|
65
|
+
}
|
|
66
|
+
export interface EnvVarAuthDef {
|
|
67
|
+
type: 'env_var';
|
|
68
|
+
id: string;
|
|
69
|
+
name: string;
|
|
70
|
+
vars: ReadonlyArray<{
|
|
71
|
+
name: string;
|
|
72
|
+
description?: string;
|
|
73
|
+
}>;
|
|
74
|
+
link?: string;
|
|
75
|
+
}
|
|
76
|
+
export interface CliCommandAuthDef {
|
|
77
|
+
type: 'cli_command';
|
|
78
|
+
id: string;
|
|
79
|
+
name: string;
|
|
80
|
+
command: string;
|
|
81
|
+
link?: string;
|
|
82
|
+
}
|
|
83
|
+
export type AuthDef = EnvVarAuthDef | CliCommandAuthDef;
|
|
84
|
+
export interface SpawnDef {
|
|
85
|
+
command: string;
|
|
86
|
+
args?: ReadonlyArray<string>;
|
|
87
|
+
shell?: boolean;
|
|
88
|
+
env?: Readonly<Record<string, string>>;
|
|
89
|
+
}
|
|
90
|
+
export interface TimeoutsDef {
|
|
91
|
+
/** Gap between writes before considering a chunk settled (ms). */
|
|
92
|
+
ptyFlush?: number;
|
|
93
|
+
/** Delay before sending an approval key (ms). */
|
|
94
|
+
dialogAccept?: number;
|
|
95
|
+
/** Window during which a freshly resolved modal is suppressed (ms). */
|
|
96
|
+
approvalCooldown?: number;
|
|
97
|
+
/** Fallback "still generating" assumption window (ms). */
|
|
98
|
+
generatingIdle?: number;
|
|
99
|
+
/** Grace before declaring generating→idle final (ms). */
|
|
100
|
+
idleFinish?: number;
|
|
101
|
+
/** Second-pass confirmation window (ms). */
|
|
102
|
+
idleFinishConfirm?: number;
|
|
103
|
+
/** PTY-quiet threshold before marking activity ended (ms). */
|
|
104
|
+
statusActivityHold?: number;
|
|
105
|
+
/** Hard upper bound on a single generation (ms). */
|
|
106
|
+
maxResponse?: number;
|
|
107
|
+
/** SIGTERM→SIGKILL window (ms). */
|
|
108
|
+
shutdownGrace?: number;
|
|
109
|
+
/** Post-write debounce (ms). */
|
|
110
|
+
outputSettle?: number;
|
|
111
|
+
}
|
|
112
|
+
export type StopStrategy = 'command' | 'ctrl_c' | 'signal';
|
|
113
|
+
export type SessionIdFormat = 'uuid' | 'free' | 'string';
|
|
114
|
+
export interface ResumeDef {
|
|
115
|
+
supported: boolean;
|
|
116
|
+
stopStrategy?: StopStrategy;
|
|
117
|
+
stopCommand?: string;
|
|
118
|
+
shutdownGraceMs?: number;
|
|
119
|
+
sessionIdFormat?: SessionIdFormat;
|
|
120
|
+
/** Args appended to spawn.args when starting a session under a daemon-issued id. `{{id}}` is replaced at launch. */
|
|
121
|
+
newSessionArgs?: ReadonlyArray<string>;
|
|
122
|
+
/** Args appended when resuming a specific session id. */
|
|
123
|
+
resumeSessionArgs?: ReadonlyArray<string>;
|
|
124
|
+
/** Args appended when "continue most recent" semantics are wanted. */
|
|
125
|
+
resumeArgs?: ReadonlyArray<string>;
|
|
126
|
+
}
|
|
127
|
+
export interface McpConfigDef {
|
|
128
|
+
mode: 'manual' | 'auto_import';
|
|
129
|
+
format?: string;
|
|
130
|
+
path?: string;
|
|
131
|
+
configPathCommand?: string;
|
|
132
|
+
serverName?: string;
|
|
133
|
+
requiresRestart?: boolean;
|
|
134
|
+
instructions?: string;
|
|
135
|
+
/** Template string used by daemon to render the actual config snippet at install time. */
|
|
136
|
+
template?: string;
|
|
137
|
+
}
|
|
138
|
+
export interface MeshCoordinatorDef {
|
|
139
|
+
supported: boolean;
|
|
140
|
+
mcpConfig?: McpConfigDef;
|
|
141
|
+
systemPromptInjection?: MeshCoordinatorSystemPromptInjectionDef;
|
|
142
|
+
delegatedWorkerIsolation?: MeshCoordinatorDelegatedWorkerIsolationDef;
|
|
143
|
+
}
|
|
144
|
+
export type MeshCoordinatorSystemPromptInjectionDef = {
|
|
145
|
+
mode: 'cli_arg';
|
|
146
|
+
flag: string;
|
|
147
|
+
} | {
|
|
148
|
+
mode: 'config_override';
|
|
149
|
+
flag: string;
|
|
150
|
+
template: string;
|
|
151
|
+
} | {
|
|
152
|
+
mode: 'context_file';
|
|
153
|
+
path: string;
|
|
154
|
+
wrapper?: string;
|
|
155
|
+
} | {
|
|
156
|
+
mode: 'env_var';
|
|
157
|
+
name: string;
|
|
158
|
+
};
|
|
159
|
+
export interface MeshCoordinatorDelegatedWorkerIsolationDef {
|
|
160
|
+
env?: {
|
|
161
|
+
unset?: ReadonlyArray<string>;
|
|
162
|
+
};
|
|
163
|
+
args?: ReadonlyArray<MeshCoordinatorDelegatedWorkerArgRuleDef>;
|
|
164
|
+
}
|
|
165
|
+
export type MeshCoordinatorDelegatedWorkerArgRuleDef = {
|
|
166
|
+
mode: 'empty_mcp_config';
|
|
167
|
+
flag: string;
|
|
168
|
+
strictFlag?: string;
|
|
169
|
+
} | {
|
|
170
|
+
mode: 'config_override';
|
|
171
|
+
flag: string;
|
|
172
|
+
key: string;
|
|
173
|
+
value: string;
|
|
174
|
+
dedupeKey?: string;
|
|
175
|
+
};
|
|
176
|
+
export interface CompatibilityEntryDef {
|
|
177
|
+
/** SemVer range against the agent's own version. Optional. */
|
|
178
|
+
ideVersion?: string;
|
|
179
|
+
/** Script subdirectory to load when this entry matches. e.g. "scripts/1.0". */
|
|
180
|
+
scriptDir: string;
|
|
181
|
+
}
|
|
182
|
+
export type ControlType = 'select' | 'action' | 'toggle';
|
|
183
|
+
export interface ControlDef {
|
|
184
|
+
id: string;
|
|
185
|
+
type: ControlType;
|
|
186
|
+
label: string;
|
|
187
|
+
icon?: string;
|
|
188
|
+
placement?: string;
|
|
189
|
+
order?: number;
|
|
190
|
+
dynamic?: boolean;
|
|
191
|
+
hidden?: boolean;
|
|
192
|
+
options?: ReadonlyArray<unknown>;
|
|
193
|
+
listScript?: string;
|
|
194
|
+
setScript?: string;
|
|
195
|
+
invokeScript?: string;
|
|
196
|
+
readFrom?: string;
|
|
197
|
+
resultDisplay?: string;
|
|
198
|
+
defaultValue?: unknown;
|
|
199
|
+
confirmTitle?: string;
|
|
200
|
+
confirmMessage?: string;
|
|
201
|
+
confirmLabel?: string;
|
|
202
|
+
}
|
|
203
|
+
export type ProviderLifecycleStatus = 'Stable' | 'Beta' | 'Experimental' | 'Deprecated';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validators — public surface.
|
|
3
|
+
*/
|
|
4
|
+
export { analyzeOverrideTaint, formatTaintResult, type TaintLevel, type TaintCategory, type TaintFinding, type TaintResult, } from './taint.js';
|
|
5
|
+
export { validateCliProviderManifest, formatManifestValidationIssues, type ManifestValidationIssue, type ManifestValidationResult, } from './manifest.js';
|