@adhdev/daemon-core 0.9.82-rc.41 → 0.9.82-rc.410
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/boot/daemon-lifecycle.d.ts +9 -0
- package/dist/boot/process-hardening.d.ts +50 -0
- package/dist/build-info.d.ts +37 -0
- package/dist/chat/source-machine.d.ts +166 -0
- package/dist/chat/source-resolver.d.ts +104 -0
- package/dist/chat/subscription-updates.d.ts +1 -0
- package/dist/cli-adapter-types.d.ts +68 -2
- package/dist/cli-adapters/cli-script-runner.d.ts +117 -0
- package/dist/cli-adapters/cli-state-engine.d.ts +200 -0
- package/dist/cli-adapters/provider-cli-adapter.d.ts +126 -64
- package/dist/cli-adapters/provider-cli-parse.d.ts +5 -0
- package/dist/cli-adapters/provider-cli-runtime.d.ts +34 -0
- package/dist/cli-adapters/provider-cli-shared.d.ts +74 -0
- package/dist/cli-adapters/pty-write-chunking.d.ts +34 -0
- package/dist/cli-adapters/raw-terminal-io.d.ts +37 -0
- package/dist/cli-adapters/resolve-executable.d.ts +14 -0
- package/dist/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +6 -3
- package/dist/cli-adapters/terminal-backends/types.d.ts +10 -2
- package/dist/cli-adapters/terminal-screen.d.ts +4 -11
- package/dist/commands/chat-commands-debug-bundle.d.ts +14 -0
- package/dist/commands/chat-commands-read.d.ts +7 -0
- package/dist/commands/chat-commands-scope.d.ts +39 -0
- package/dist/commands/chat-commands-shared.d.ts +33 -0
- package/dist/commands/chat-commands-write.d.ts +14 -0
- package/dist/commands/chat-commands.d.ts +10 -23
- package/dist/commands/cli-manager.d.ts +15 -1
- package/dist/commands/handler.d.ts +125 -0
- package/dist/commands/high-family/index.d.ts +3 -0
- package/dist/commands/high-family/mesh-coordinator-launch.d.ts +2 -0
- package/dist/commands/high-family/mesh-events.d.ts +2 -0
- package/dist/commands/high-family/mesh-status.d.ts +2 -0
- package/dist/commands/high-family/types.d.ts +60 -0
- package/dist/commands/low-family/coordinator-prompt.d.ts +9 -0
- package/dist/commands/low-family/daemon-lifecycle.d.ts +2 -0
- package/dist/commands/low-family/diagnostics.d.ts +2 -0
- package/dist/commands/low-family/index.d.ts +3 -0
- package/dist/commands/low-family/mesh-ledger.d.ts +10 -0
- package/dist/commands/low-family/mesh-node-logs.d.ts +2 -0
- package/dist/commands/low-family/notification.d.ts +2 -0
- package/dist/commands/low-family/refine-config.d.ts +2 -0
- package/dist/commands/low-family/session-host.d.ts +2 -0
- package/dist/commands/low-family/spec-providerdev.d.ts +11 -0
- package/dist/commands/low-family/status-meta.d.ts +2 -0
- package/dist/commands/low-family/types.d.ts +33 -0
- package/dist/commands/med-family/cli-agent.d.ts +2 -0
- package/dist/commands/med-family/fast-forward.d.ts +2 -0
- package/dist/commands/med-family/ide.d.ts +10 -0
- package/dist/commands/med-family/index.d.ts +3 -0
- package/dist/commands/med-family/mesh-crud.d.ts +2 -0
- package/dist/commands/med-family/mesh-host-pairing.d.ts +2 -0
- package/dist/commands/med-family/mesh-queue.d.ts +2 -0
- package/dist/commands/med-family/mesh-restart.d.ts +2 -0
- package/dist/commands/med-family/types.d.ts +116 -0
- package/dist/commands/mesh-coordinator.d.ts +85 -1
- package/dist/commands/router.d.ts +256 -2
- package/dist/commands/upgrade-helper.d.ts +41 -1
- package/dist/config/chat-history.d.ts +9 -0
- package/dist/config/config.d.ts +5 -0
- package/dist/config/mesh-config.d.ts +77 -1
- package/dist/config/mesh-json-config.d.ts +299 -0
- package/dist/daemon/dev-server.d.ts +0 -2
- package/dist/detection/ide-detector.d.ts +13 -0
- package/dist/detection/win32-ide-version.d.ts +37 -0
- package/dist/git/change-impact-config.d.ts +159 -0
- package/dist/git/git-commands.d.ts +11 -1
- package/dist/git/git-diff.d.ts +6 -0
- package/dist/git/git-executor.d.ts +11 -0
- package/dist/git/git-status.d.ts +57 -0
- package/dist/git/git-types.d.ts +2 -50
- package/dist/git/git-worktree.d.ts +71 -1
- package/dist/git/index.d.ts +3 -1
- package/dist/index.d.ts +57 -13
- package/dist/index.js +46445 -17229
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +46052 -16978
- package/dist/index.mjs.map +1 -1
- package/dist/installer.d.ts +1 -4
- package/dist/ipc/local-ipc-server.d.ts +91 -0
- package/dist/launch.d.ts +1 -1
- package/dist/logging/async-batch-writer.d.ts +10 -0
- package/dist/logging/log-redactor.d.ts +24 -0
- package/dist/logging/log-tail-reader.d.ts +81 -0
- package/dist/logging/logger.d.ts +1 -1
- package/dist/mesh/contracts.d.ts +164 -0
- package/dist/mesh/coordinator-prompt.d.ts +89 -0
- package/dist/mesh/coordinator-registry.d.ts +59 -0
- package/dist/mesh/mesh-active-work.d.ts +174 -0
- package/dist/mesh/mesh-coordinator-config.d.ts +21 -0
- package/dist/mesh/mesh-delivery-policy.d.ts +131 -0
- package/dist/mesh/mesh-event-classify.d.ts +5 -0
- package/dist/mesh/mesh-event-forwarding.d.ts +19 -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 +55 -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 +9 -0
- package/dist/mesh/mesh-init.d.ts +86 -0
- package/dist/mesh/mesh-ledger-reconciliation.d.ts +23 -4
- package/dist/mesh/mesh-ledger.d.ts +77 -1
- package/dist/mesh/mesh-missions.d.ts +164 -0
- package/dist/mesh/mesh-node-identity.d.ts +289 -0
- package/dist/mesh/mesh-queue-assignment.d.ts +95 -0
- package/dist/mesh/mesh-reconcile-loop.d.ts +65 -0
- package/dist/mesh/mesh-refine-batch.d.ts +68 -0
- package/dist/mesh/mesh-refine-gates.d.ts +428 -0
- package/dist/mesh/mesh-refine-status.d.ts +62 -0
- package/dist/mesh/mesh-review-inbox.d.ts +90 -0
- package/dist/mesh/mesh-routing.d.ts +70 -0
- package/dist/mesh/mesh-runtime-store.d.ts +447 -0
- package/dist/mesh/mesh-scheduling-runtime.d.ts +78 -0
- package/dist/mesh/mesh-task-stats.d.ts +49 -0
- package/dist/mesh/mesh-unresolved-forward-outbox.d.ts +30 -0
- package/dist/mesh/mesh-warmup-deadline.d.ts +68 -0
- package/dist/mesh/mesh-work-queue.d.ts +281 -5
- package/dist/mesh/preview-freshness.d.ts +18 -0
- package/dist/mesh/refine-config.d.ts +216 -0
- package/dist/mesh/worktree-bootstrap-config.d.ts +145 -0
- package/dist/providers/acp-provider-instance.d.ts +5 -0
- package/dist/providers/approval-utils.d.ts +20 -0
- package/dist/providers/chat-message-normalization.d.ts +31 -1
- package/dist/providers/cli-provider-instance.d.ts +197 -3
- package/dist/providers/contracts.d.ts +139 -6
- package/dist/providers/external-sources.d.ts +71 -0
- package/dist/providers/manual-attendance.d.ts +63 -0
- package/dist/providers/native-history/antigravity-cli-transcript.d.ts +100 -0
- package/dist/providers/native-history/claude-cli-transcript.d.ts +70 -0
- package/dist/providers/native-history/codex-cli-transcript.d.ts +73 -0
- package/dist/providers/native-history/constants.d.ts +12 -0
- package/dist/providers/native-history/dispatcher.d.ts +27 -0
- package/dist/providers/native-history/hermes-cli-transcript.d.ts +30 -0
- package/dist/providers/native-history/index.d.ts +13 -0
- package/dist/providers/provider-instance-manager.d.ts +14 -0
- package/dist/providers/provider-instance.d.ts +23 -1
- package/dist/providers/provider-loader.d.ts +26 -4
- package/dist/providers/provider-trust.d.ts +31 -0
- package/dist/providers/read-chat-contract.d.ts +29 -0
- package/dist/providers/sdk/v1/builders/acp/detect-status.d.ts +68 -0
- package/dist/providers/sdk/v1/builders/cli/detect-status.d.ts +86 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval-squash.d.ts +59 -0
- package/dist/providers/sdk/v1/builders/cli/parse-approval.d.ts +65 -0
- package/dist/providers/sdk/v1/builders/cli/parse-session.d.ts +91 -0
- package/dist/providers/sdk/v1/builders/cli/visible-region.d.ts +42 -0
- package/dist/providers/sdk/v1/fixture-tooling/format.d.ts +126 -0
- package/dist/providers/sdk/v1/fixture-tooling/index.d.ts +8 -0
- package/dist/providers/sdk/v1/fixture-tooling/replay.d.ts +38 -0
- package/dist/providers/sdk/v1/index.d.ts +30 -0
- package/dist/providers/sdk/v1/sandbox/README-design.d.ts +193 -0
- package/dist/providers/sdk/v1/sandbox/require-whitelist.d.ts +74 -0
- package/dist/providers/sdk/v1/sandbox/script-runner.d.ts +98 -0
- package/dist/providers/sdk/v1/types/cli/index.d.ts +277 -0
- package/dist/providers/sdk/v1/types/common/index.d.ts +203 -0
- package/dist/providers/sdk/v1/validators/index.d.ts +5 -0
- package/dist/providers/sdk/v1/validators/manifest.d.ts +40 -0
- package/dist/providers/sdk/v1/validators/taint.d.ts +52 -0
- package/dist/providers/spec/adapter.d.ts +91 -0
- package/dist/providers/spec/cli-adapter.d.ts +223 -0
- package/dist/providers/spec/evaluator.d.ts +45 -0
- package/dist/providers/spec/fsm-driver.d.ts +407 -0
- package/dist/providers/spec/fsm-evaluator.d.ts +76 -0
- package/dist/providers/spec/fsm-loader.d.ts +14 -0
- package/dist/providers/spec/fsm-types.d.ts +174 -0
- package/dist/providers/spec/native-history-executor.d.ts +41 -0
- package/dist/providers/spec/pre-launch-trust.d.ts +16 -0
- package/dist/providers/spec/route.d.ts +4 -0
- package/dist/providers/spec/types.d.ts +222 -0
- package/dist/providers/status-monitor.d.ts +7 -7
- package/dist/providers/transcript-v2.d.ts +176 -0
- package/dist/providers/types/interactive-prompt.d.ts +84 -0
- package/dist/providers/working-dir.d.ts +17 -0
- package/dist/repo-mesh-types.d.ts +420 -13
- package/dist/runtime-defaults.d.ts +2 -0
- package/dist/sessions/registry.d.ts +6 -0
- package/dist/shared-types-extra.d.ts +2 -4
- package/dist/shared-types.d.ts +59 -2
- package/dist/status/normalize.d.ts +1 -1
- package/dist/status/normalize.js +1 -0
- package/dist/status/normalize.js.map +1 -1
- package/dist/status/normalize.mjs +1 -0
- package/dist/status/normalize.mjs.map +1 -1
- package/dist/status/reporter.d.ts +2 -0
- package/dist/status/snapshot.d.ts +26 -0
- package/dist/system/hash.d.ts +8 -0
- package/dist/system/load-better-sqlite3.d.ts +21 -0
- package/dist/types.d.ts +5 -0
- package/package.json +7 -3
- package/src/agent-stream/poller.ts +2 -3
- package/src/agent-stream/provider-adapter.ts +1 -1
- package/src/boot/daemon-lifecycle.ts +63 -12
- package/src/boot/process-hardening.ts +89 -0
- package/src/build-info.ts +73 -0
- package/src/chat/source-machine.ts +534 -0
- package/src/chat/source-resolver.ts +0 -0
- package/src/chat/subscription-updates.ts +20 -1
- package/src/cli-adapter-types.d.ts +3 -1
- package/src/cli-adapter-types.ts +68 -2
- package/src/cli-adapters/cli-script-runner.ts +421 -0
- package/src/cli-adapters/cli-state-engine.ts +1246 -0
- package/src/cli-adapters/provider-cli-adapter.d.ts +1 -1
- package/src/cli-adapters/provider-cli-adapter.ts +914 -1144
- package/src/cli-adapters/provider-cli-parse.d.ts +2 -0
- package/src/cli-adapters/provider-cli-parse.ts +19 -0
- package/src/cli-adapters/provider-cli-runtime.ts +56 -7
- package/src/cli-adapters/provider-cli-shared.d.ts +4 -0
- package/src/cli-adapters/provider-cli-shared.ts +121 -11
- package/src/cli-adapters/pty-transport.ts +2 -1
- package/src/cli-adapters/pty-write-chunking.ts +106 -0
- package/src/cli-adapters/raw-terminal-io.ts +252 -0
- package/src/cli-adapters/resolve-executable.ts +90 -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/WINDOWS-UPGRADE-LOCK-FAILURE.md +198 -0
- package/src/commands/chat-commands-debug-bundle.ts +398 -0
- package/src/commands/chat-commands-read.ts +2327 -0
- package/src/commands/chat-commands-scope.ts +54 -0
- package/src/commands/chat-commands-shared.ts +114 -0
- package/src/commands/chat-commands-write.ts +891 -0
- package/src/commands/chat-commands.ts +19 -1841
- package/src/commands/cli-manager.ts +527 -26
- package/src/commands/handler.ts +841 -2
- package/src/commands/high-family/index.ts +28 -0
- package/src/commands/high-family/mesh-coordinator-launch.ts +673 -0
- package/src/commands/high-family/mesh-events.ts +80 -0
- package/src/commands/high-family/mesh-status.ts +678 -0
- package/src/commands/high-family/types.ts +76 -0
- package/src/commands/low-family/coordinator-prompt.ts +72 -0
- package/src/commands/low-family/daemon-lifecycle.ts +107 -0
- package/src/commands/low-family/diagnostics.ts +57 -0
- package/src/commands/low-family/index.ts +37 -0
- package/src/commands/low-family/mesh-ledger.ts +62 -0
- package/src/commands/low-family/mesh-node-logs.ts +87 -0
- package/src/commands/low-family/notification.ts +116 -0
- package/src/commands/low-family/refine-config.ts +106 -0
- package/src/commands/low-family/session-host.ts +274 -0
- package/src/commands/low-family/spec-providerdev.ts +217 -0
- package/src/commands/low-family/status-meta.ts +112 -0
- package/src/commands/low-family/types.ts +39 -0
- package/src/commands/med-family/cli-agent.ts +238 -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 +874 -0
- package/src/commands/med-family/mesh-host-pairing.ts +234 -0
- package/src/commands/med-family/mesh-queue.ts +131 -0
- package/src/commands/med-family/mesh-restart.ts +92 -0
- package/src/commands/med-family/types.ts +120 -0
- package/src/commands/mesh-coordinator.ts +334 -124
- package/src/commands/router.ts +2516 -3221
- package/src/commands/stream-commands.ts +8 -0
- package/src/commands/upgrade-helper.ts +310 -45
- package/src/config/chat-history.ts +483 -24
- package/src/config/config.ts +12 -0
- package/src/config/mesh-config.ts +353 -22
- package/src/config/mesh-json-config.ts +617 -0
- package/src/config/recent-activity.ts +8 -2
- package/src/daemon/dev-auto-implement.ts +3 -2
- package/src/daemon/dev-cli-debug.ts +10 -1
- package/src/daemon/dev-server.ts +0 -541
- package/src/detection/cli-detector.ts +28 -9
- package/src/detection/ide-detector.ts +55 -16
- package/src/detection/win32-ide-version.ts +106 -0
- package/src/git/change-impact-config.ts +354 -0
- package/src/git/git-commands.ts +59 -15
- package/src/git/git-diff.ts +81 -11
- package/src/git/git-executor.ts +12 -0
- package/src/git/git-status.ts +767 -48
- package/src/git/git-types.ts +14 -62
- package/src/git/git-worktree.ts +261 -4
- package/src/git/index.ts +17 -0
- package/src/index.ts +171 -12
- package/src/installer.d.ts +1 -1
- package/src/installer.ts +8 -6
- package/src/ipc/local-ipc-server.ts +278 -0
- package/src/launch.d.ts +1 -1
- package/src/launch.ts +37 -28
- package/src/logging/async-batch-writer.ts +55 -0
- package/src/logging/command-log.ts +7 -5
- package/src/logging/log-redactor.ts +100 -0
- package/src/logging/log-tail-reader.ts +341 -0
- package/src/logging/logger.ts +14 -7
- package/src/mesh/contracts.ts +338 -0
- package/src/mesh/coordinator-prompt.ts +381 -33
- package/src/mesh/coordinator-registry.ts +121 -0
- package/src/mesh/mesh-active-work.ts +645 -0
- package/src/mesh/mesh-coordinator-config.ts +97 -0
- package/src/mesh/mesh-delivery-policy.ts +315 -0
- package/src/mesh/mesh-event-classify.ts +51 -0
- package/src/mesh/mesh-event-forwarding.ts +1773 -0
- package/src/mesh/mesh-event-trace.ts +67 -0
- package/src/mesh/mesh-events-coordinator.ts +31 -0
- package/src/mesh/mesh-events-pending.ts +590 -0
- package/src/mesh/mesh-events-stale.ts +389 -0
- package/src/mesh/mesh-events-utils.ts +443 -0
- package/src/mesh/mesh-events.ts +32 -1035
- package/src/mesh/mesh-fast-forward.ts +843 -0
- package/src/mesh/mesh-host-ownership.ts +73 -0
- package/src/mesh/mesh-init.ts +260 -0
- package/src/mesh/mesh-ledger-reconciliation.ts +12 -7
- package/src/mesh/mesh-ledger.ts +596 -102
- package/src/mesh/mesh-missions.ts +322 -0
- package/src/mesh/mesh-node-identity.ts +1887 -0
- package/src/mesh/mesh-queue-assignment.ts +1738 -0
- package/src/mesh/mesh-reconcile-loop.ts +1726 -0
- package/src/mesh/mesh-refine-batch.ts +205 -0
- package/src/mesh/mesh-refine-gates.ts +1666 -0
- package/src/mesh/mesh-refine-status.ts +231 -0
- package/src/mesh/mesh-review-inbox.ts +307 -0
- package/src/mesh/mesh-routing.ts +291 -0
- package/src/mesh/mesh-runtime-store.ts +1836 -0
- package/src/mesh/mesh-scheduling-runtime.ts +198 -0
- package/src/mesh/mesh-task-stats.ts +161 -0
- package/src/mesh/mesh-unresolved-forward-outbox.ts +185 -0
- package/src/mesh/mesh-warmup-deadline.ts +152 -0
- package/src/mesh/mesh-work-queue.ts +1205 -141
- package/src/mesh/preview-freshness.ts +118 -0
- package/src/mesh/refine-config.ts +423 -0
- package/src/mesh/worktree-bootstrap-config.ts +369 -0
- package/src/providers/acp-provider-instance.ts +43 -10
- package/src/providers/approval-utils.d.ts +5 -0
- package/src/providers/approval-utils.ts +57 -5
- package/src/providers/chat-message-normalization.ts +92 -4
- package/src/providers/cli-provider-instance.ts +1865 -104
- package/src/providers/contracts.d.ts +55 -0
- package/src/providers/contracts.ts +150 -6
- package/src/providers/extension-provider-instance.ts +12 -7
- package/src/providers/external-sources.ts +218 -0
- package/src/providers/ide-provider-instance.ts +35 -12
- package/src/providers/manual-attendance.ts +85 -0
- package/src/providers/native-history/antigravity-cli-transcript.ts +643 -0
- package/src/providers/native-history/claude-cli-transcript.ts +396 -0
- package/src/providers/native-history/codex-cli-transcript.ts +479 -0
- package/src/providers/native-history/constants.ts +19 -0
- package/src/providers/native-history/dispatcher.ts +339 -0
- package/src/providers/native-history/hermes-cli-transcript.ts +230 -0
- package/src/providers/native-history/index.ts +30 -0
- package/src/providers/provider-instance-manager.ts +30 -0
- package/src/providers/provider-instance.ts +19 -1
- package/src/providers/provider-loader.ts +668 -50
- package/src/providers/provider-schema.ts +87 -14
- package/src/providers/provider-trust.ts +114 -0
- package/src/providers/read-chat-contract.ts +76 -16
- package/src/providers/sdk/README.md +49 -0
- package/src/providers/sdk/v1/builders/acp/detect-status.ts +144 -0
- package/src/providers/sdk/v1/builders/cli/detect-status.ts +313 -0
- package/src/providers/sdk/v1/builders/cli/parse-approval-squash.ts +158 -0
- package/src/providers/sdk/v1/builders/cli/parse-approval.ts +250 -0
- package/src/providers/sdk/v1/builders/cli/parse-session.ts +276 -0
- package/src/providers/sdk/v1/builders/cli/visible-region.ts +143 -0
- package/src/providers/sdk/v1/fixture-tooling/format.ts +130 -0
- package/src/providers/sdk/v1/fixture-tooling/index.ts +22 -0
- package/src/providers/sdk/v1/fixture-tooling/replay.ts +352 -0
- package/src/providers/sdk/v1/index.ts +152 -0
- package/src/providers/sdk/v1/sandbox/README-design.ts +195 -0
- package/src/providers/sdk/v1/sandbox/require-whitelist.ts +472 -0
- package/src/providers/sdk/v1/sandbox/script-runner.ts +150 -0
- package/src/providers/sdk/v1/schemas/cli/provider.schema.json +504 -0
- package/src/providers/sdk/v1/schemas/primitives/acp-session-protocol-v1.json +131 -0
- package/src/providers/sdk/v1/schemas/primitives/native-history-codex-rollout-v1.json +66 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-approval-squash-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-assistant-block-v1.json +91 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-cue-ordering-v1.json +47 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-dispatch-order-v1.json +32 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-footer-chrome-v1.json +42 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-index-finder-v1.json +27 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-modal-v1.json +125 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-prompt-marker-v1.json +45 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-session-id-extraction-v1.json +46 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-settled-prompt-v1.json +71 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-spinner-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-transcript-pty-v1.json +83 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-visible-region-v1.json +57 -0
- package/src/providers/sdk/v1/schemas/primitives/tui-welcome-screen-v1.json +35 -0
- package/src/providers/sdk/v1/types/cli/index.ts +365 -0
- package/src/providers/sdk/v1/types/common/index.ts +229 -0
- package/src/providers/sdk/v1/validators/index.ts +19 -0
- package/src/providers/sdk/v1/validators/manifest.ts +110 -0
- package/src/providers/sdk/v1/validators/taint.ts +309 -0
- package/src/providers/spec/adapter.ts +235 -0
- package/src/providers/spec/cli-adapter.ts +1056 -0
- package/src/providers/spec/evaluator.ts +407 -0
- package/src/providers/spec/fsm-driver.ts +1304 -0
- package/src/providers/spec/fsm-evaluator.ts +272 -0
- package/src/providers/spec/fsm-loader.ts +120 -0
- package/src/providers/spec/fsm-types.ts +273 -0
- package/src/providers/spec/native-history-executor.ts +1128 -0
- package/src/providers/spec/pre-launch-trust.ts +104 -0
- package/src/providers/spec/route.ts +51 -0
- package/src/providers/spec/types.ts +262 -0
- package/src/providers/status-monitor.d.ts +7 -7
- package/src/providers/status-monitor.ts +37 -22
- package/src/providers/transcript-v2.ts +567 -0
- package/src/providers/types/interactive-prompt.ts +536 -0
- package/src/providers/version-archive.ts +64 -24
- package/src/providers/working-dir.ts +23 -0
- package/src/repo-mesh-types.ts +629 -14
- package/src/runtime-defaults.ts +39 -0
- package/src/sessions/registry.ts +6 -0
- package/src/shared-types-extra.ts +2 -4
- package/src/shared-types.d.ts +8 -0
- package/src/shared-types.ts +64 -1
- package/src/status/builders.ts +26 -6
- package/src/status/normalize.ts +2 -0
- package/src/status/reporter.ts +19 -1
- package/src/status/snapshot.ts +95 -26
- package/src/system/hash.ts +23 -0
- package/src/system/host-memory.ts +29 -12
- package/src/system/load-better-sqlite3.ts +68 -0
- package/src/types.ts +5 -0
- package/dist/cli-adapters/terminal-backends/xterm-backend.d.ts +0 -17
- package/dist/mesh/mesh-sync.d.ts +0 -53
- package/src/cli-adapters/terminal-backends/ghostty-vt-backend.d.ts +0 -16
- package/src/cli-adapters/terminal-backends/xterm-backend.ts +0 -97
- package/src/mesh/mesh-sync.ts +0 -111
|
@@ -0,0 +1,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';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manifest validators — runtime JSON Schema check for v1 provider manifests.
|
|
3
|
+
*
|
|
4
|
+
* The schemas live under `schemas/{category}/provider.schema.json` and are
|
|
5
|
+
* the authoritative contract for what a v1 manifest may contain. Daemon
|
|
6
|
+
* code that loads a manifest at install or boot time runs it through
|
|
7
|
+
* `validateCliProviderManifest()` first; failures are reported back to
|
|
8
|
+
* the caller with structured paths so manifest authors can locate the
|
|
9
|
+
* offending field without guessing.
|
|
10
|
+
*
|
|
11
|
+
* Validation lives in the SDK layer (not in provider-loader) so dashboards,
|
|
12
|
+
* registry workers, and the provider publish flow can all reuse the
|
|
13
|
+
* same code path and produce identical error messages.
|
|
14
|
+
*/
|
|
15
|
+
export interface ManifestValidationIssue {
|
|
16
|
+
/** JSON Pointer-style path into the manifest. Empty string for the root. */
|
|
17
|
+
path: string;
|
|
18
|
+
/** Schema-keyword that failed. */
|
|
19
|
+
keyword: string;
|
|
20
|
+
/** Human-readable explanation. */
|
|
21
|
+
message: string;
|
|
22
|
+
/** Allowed values when the failure is an `enum` / `const` / `additionalProperties`. */
|
|
23
|
+
allowed?: unknown;
|
|
24
|
+
}
|
|
25
|
+
export interface ManifestValidationResult {
|
|
26
|
+
ok: boolean;
|
|
27
|
+
issues: ManifestValidationIssue[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate a CLI provider.v1.json manifest. Returns `{ ok: true, issues: [] }`
|
|
31
|
+
* on success and `{ ok: false, issues: [...] }` on failure with each issue
|
|
32
|
+
* pointing at the offending field. Never throws — manifest parse errors
|
|
33
|
+
* should be caught by the caller before this is called.
|
|
34
|
+
*/
|
|
35
|
+
export declare function validateCliProviderManifest(manifest: unknown): ManifestValidationResult;
|
|
36
|
+
/**
|
|
37
|
+
* Render a list of validation issues as a single multi-line string,
|
|
38
|
+
* suitable for log lines or daemon command error fields.
|
|
39
|
+
*/
|
|
40
|
+
export declare function formatManifestValidationIssues(issues: ManifestValidationIssue[]): string;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static taint analyzer for extended-tier override JS.
|
|
3
|
+
*
|
|
4
|
+
* Goal: classify the override JS shipped with an extended-tier provider into
|
|
5
|
+
* one of three risk tiers, so the dashboard + daemon trust prompt can
|
|
6
|
+
* surface accurate language to the operator instead of a single generic
|
|
7
|
+
* "this provider contains JS" warning.
|
|
8
|
+
*
|
|
9
|
+
* - clean : no flagged APIs at all. The override looks like pure string
|
|
10
|
+
* manipulation. Still extended-tier, but the warning copy is
|
|
11
|
+
* "this provider contains JS; nothing dangerous was detected".
|
|
12
|
+
* - elevated : touches process / dynamic codegen / dynamic require / eval
|
|
13
|
+
* / Function constructor / child_process. The warning copy is
|
|
14
|
+
* explicit ("this provider can run shell commands / dynamically
|
|
15
|
+
* load code").
|
|
16
|
+
* - hostile : combines elevated APIs with network egress, AND uses obvious
|
|
17
|
+
* obfuscation (base64-decoded strings fed into Function / eval).
|
|
18
|
+
* The publish endpoint should reject these.
|
|
19
|
+
*
|
|
20
|
+
* Implementation note: this is a *static* analyzer — string + light AST scan
|
|
21
|
+
* via Node's built-in parser. It is intentionally fail-loud: anything that
|
|
22
|
+
* looks suspicious is flagged. False positives are fine; this exists to gate
|
|
23
|
+
* the trust prompt, not to be a real sandbox. The real sandbox lives in
|
|
24
|
+
* Phase 5 (isolated-vm).
|
|
25
|
+
*
|
|
26
|
+
* Used by:
|
|
27
|
+
* - `adhdev provider validate` (CLI tier classification)
|
|
28
|
+
* - registry publish endpoint static-check
|
|
29
|
+
* - daemon at provider-load time, to size the warning
|
|
30
|
+
*/
|
|
31
|
+
export type TaintLevel = 'clean' | 'elevated' | 'hostile';
|
|
32
|
+
export interface TaintFinding {
|
|
33
|
+
/** What was found, e.g. "child_process.exec". */
|
|
34
|
+
api: string;
|
|
35
|
+
/** Coarse category. */
|
|
36
|
+
category: TaintCategory;
|
|
37
|
+
/** File the finding came from. */
|
|
38
|
+
file: string;
|
|
39
|
+
/** Line number (1-indexed) of the first character of the matched token. */
|
|
40
|
+
line: number;
|
|
41
|
+
/** The surrounding source excerpt, trimmed. */
|
|
42
|
+
excerpt: string;
|
|
43
|
+
}
|
|
44
|
+
export type TaintCategory = 'process-control' | 'shell-exec' | 'fs-write' | 'fs-read' | 'network' | 'dynamic-codegen' | 'dynamic-require' | 'obfuscation' | 'global-mutation';
|
|
45
|
+
export interface TaintResult {
|
|
46
|
+
level: TaintLevel;
|
|
47
|
+
findings: TaintFinding[];
|
|
48
|
+
files: string[];
|
|
49
|
+
}
|
|
50
|
+
export declare function analyzeOverrideTaint(manifestPath: string): TaintResult;
|
|
51
|
+
/** Format a result as a single CLI-friendly block. */
|
|
52
|
+
export declare function formatTaintResult(result: TaintResult): string;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { PtyTransportFactory } from '../../cli-adapters/pty-transport.js';
|
|
2
|
+
export type { PtyTransportFactory };
|
|
3
|
+
export interface TerminalAdapterOpts {
|
|
4
|
+
binary: string;
|
|
5
|
+
args?: string[];
|
|
6
|
+
cwd?: string;
|
|
7
|
+
env?: Record<string, string>;
|
|
8
|
+
/**
|
|
9
|
+
* When true, `env` is already a COMPLETE, sanitized environment (the spawn
|
|
10
|
+
* planner merged + stripped process.env already) and must be passed to the
|
|
11
|
+
* PTY verbatim — NOT overlaid on top of process.env. Overlaying would
|
|
12
|
+
* re-introduce the npm_/PNPM_/parent-session keys the planner explicitly
|
|
13
|
+
* stripped, so the spec path's spawn env would diverge from the legacy
|
|
14
|
+
* path's. Defaults to false (legacy overlay behaviour) for any caller that
|
|
15
|
+
* still passes a partial env.
|
|
16
|
+
*/
|
|
17
|
+
envIsComplete?: boolean;
|
|
18
|
+
cols?: number;
|
|
19
|
+
rows?: number;
|
|
20
|
+
/** Coalesce screen snapshots: emit on_screen_changed at most this often. */
|
|
21
|
+
screenChangeDebounceMs?: number;
|
|
22
|
+
tickIntervalMs?: number;
|
|
23
|
+
transportFactory?: PtyTransportFactory;
|
|
24
|
+
}
|
|
25
|
+
export interface TerminalAdapterHandlers {
|
|
26
|
+
init?(info: {
|
|
27
|
+
pid: number;
|
|
28
|
+
}): void;
|
|
29
|
+
on_pty_data?(chunk: string): void;
|
|
30
|
+
on_screen_changed?(snapshot: string): void;
|
|
31
|
+
on_exit?(info: {
|
|
32
|
+
exitCode: number;
|
|
33
|
+
}): void;
|
|
34
|
+
tick?(): void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* One entry in the PTY input/output event timeline (debug-only). Captured at
|
|
38
|
+
* the single common point every spec@4 provider funnels through — this adapter
|
|
39
|
+
* — so the Spec Debug Snapshot can answer "what input / output preceded a status
|
|
40
|
+
* transition?". Observation only; nothing here feeds the FSM decision.
|
|
41
|
+
*/
|
|
42
|
+
export interface SpecPtyEvent {
|
|
43
|
+
/** Wall-clock ms. */
|
|
44
|
+
ts: number;
|
|
45
|
+
kind: 'spawn' | 'input' | 'output' | 'resize' | 'cursor' | 'exit';
|
|
46
|
+
/** Human-readable, control-char-escaped, length-capped preview. */
|
|
47
|
+
content: string;
|
|
48
|
+
/** Raw byte length before truncation (output/input only). */
|
|
49
|
+
bytes?: number;
|
|
50
|
+
}
|
|
51
|
+
export declare class TerminalAdapter {
|
|
52
|
+
private readonly opts;
|
|
53
|
+
private readonly handlers;
|
|
54
|
+
private rows;
|
|
55
|
+
private cols;
|
|
56
|
+
private readonly screenDebounceMs;
|
|
57
|
+
private readonly tickIntervalMs;
|
|
58
|
+
private readonly factory;
|
|
59
|
+
private screen;
|
|
60
|
+
private pty;
|
|
61
|
+
private screenTimer;
|
|
62
|
+
private tickTimer;
|
|
63
|
+
private lastScreen;
|
|
64
|
+
/** Debug-only ring buffer of PTY input/output/resize/cursor events. */
|
|
65
|
+
private events;
|
|
66
|
+
private lastCursorKey;
|
|
67
|
+
constructor(opts: TerminalAdapterOpts, handlers: TerminalAdapterHandlers);
|
|
68
|
+
start(): void;
|
|
69
|
+
resize(cols: number, rows: number): void;
|
|
70
|
+
snapshot(): string;
|
|
71
|
+
/**
|
|
72
|
+
* Full-buffer snapshot including scrollback history. Unlike snapshot()
|
|
73
|
+
* (visible viewport only), this survives a tall prompt whose top has
|
|
74
|
+
* scrolled off-screen — used for content-pattern extraction (modal
|
|
75
|
+
* buttons / approval anchors), NOT for cursor-relative conditions.
|
|
76
|
+
*/
|
|
77
|
+
snapshotWithScrollback(): string;
|
|
78
|
+
getCursorPosition(): {
|
|
79
|
+
row: number;
|
|
80
|
+
col: number;
|
|
81
|
+
};
|
|
82
|
+
send_keys(text: string): void;
|
|
83
|
+
/** Debug-only: most-recent PTY input/output/resize/cursor events, oldest
|
|
84
|
+
* first. Pure observation — never consulted by the FSM. */
|
|
85
|
+
getEventTimeline(limit?: number): SpecPtyEvent[];
|
|
86
|
+
private recordEvent;
|
|
87
|
+
kill(): void;
|
|
88
|
+
private onChunk;
|
|
89
|
+
private computeScreen;
|
|
90
|
+
private stopTimers;
|
|
91
|
+
}
|