@gajae-code/coding-agent 0.13.3 → 0.14.0
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/CHANGELOG.md +184 -2
- package/README.md +2 -0
- package/bin/gajaessi.js +4 -0
- package/dist/types/async/job-manager.d.ts +55 -2
- package/dist/types/async/support.d.ts +14 -0
- package/dist/types/capability/mcp.d.ts +6 -0
- package/dist/types/capability/types.d.ts +6 -0
- package/dist/types/cli/accounts-cli.d.ts +19 -0
- package/dist/types/cli/args.d.ts +3 -0
- package/dist/types/cli/config-cli.d.ts +6 -0
- package/dist/types/cli/crash-cli.d.ts +10 -0
- package/dist/types/cli/customize-doctor.d.ts +145 -0
- package/dist/types/cli/daemon-cli.d.ts +3 -1
- package/dist/types/cli/mcp-cli.d.ts +11 -0
- package/dist/types/cli/notify-cli.d.ts +1 -1
- package/dist/types/cli/root-flags.d.ts +12 -0
- package/dist/types/cli/setup-cli.d.ts +3 -1
- package/dist/types/cli/skills-cli.d.ts +2 -1
- package/dist/types/cli/update-cli.d.ts +19 -1
- package/dist/types/cli.d.ts +6 -0
- package/dist/types/commands/accounts.d.ts +40 -0
- package/dist/types/commands/crash.d.ts +24 -0
- package/dist/types/commands/customize.d.ts +22 -0
- package/dist/types/commands/daemon.d.ts +1 -1
- package/dist/types/commands/launch.d.ts +6 -0
- package/dist/types/commands/setup.d.ts +6 -0
- package/dist/types/commands/skills.d.ts +6 -1
- package/dist/types/commands/update.d.ts +7 -0
- package/dist/types/config/atomic-yaml-patch-worker.d.ts +25 -0
- package/dist/types/config/atomic-yaml-patch.d.ts +62 -2
- package/dist/types/config/config-schema-version.d.ts +10 -0
- package/dist/types/config/file-lock.d.ts +18 -0
- package/dist/types/config/model-profile-activation.d.ts +3 -1
- package/dist/types/config/model-registry.d.ts +9 -1
- package/dist/types/config/models-config-schema.d.ts +2 -0
- package/dist/types/config/settings-schema.d.ts +70 -6
- package/dist/types/config/settings.d.ts +63 -0
- package/dist/types/config/skill-settings-defaults.d.ts +26 -0
- package/dist/types/config/task-delegation.d.ts +39 -0
- package/dist/types/config/update-channel.d.ts +10 -0
- package/dist/types/coordinator-mcp/server.d.ts +5 -1
- package/dist/types/crash/index-store.d.ts +87 -0
- package/dist/types/crash/nudge.d.ts +50 -0
- package/dist/types/crash/record-loader.d.ts +17 -0
- package/dist/types/crash/report.d.ts +134 -0
- package/dist/types/crash/sanitize.d.ts +25 -0
- package/dist/types/cursor.d.ts +13 -2
- package/dist/types/customization/import.d.ts +37 -0
- package/dist/types/customization/index.d.ts +4 -0
- package/dist/types/customization/inventory.d.ts +25 -0
- package/dist/types/customization/mutations.d.ts +32 -0
- package/dist/types/customization/types.d.ts +115 -0
- package/dist/types/daemon/control-types.d.ts +8 -1
- package/dist/types/daemon/operator-contract.d.ts +4 -4
- package/dist/types/discovery/claude.d.ts +39 -1
- package/dist/types/discovery/codex.d.ts +39 -1
- package/dist/types/discovery/index.d.ts +2 -0
- package/dist/types/discovery/mcp-compat.d.ts +30 -0
- package/dist/types/edit/renderer.d.ts +23 -0
- package/dist/types/extensibility/extensions/runner.d.ts +3 -0
- package/dist/types/extensibility/extensions/types.d.ts +21 -4
- package/dist/types/extensibility/gjc-plugins/observability.d.ts +6 -1
- package/dist/types/extensibility/gjc-plugins/registry.d.ts +8 -1
- package/dist/types/extensibility/hooks/loader.d.ts +19 -5
- package/dist/types/extensibility/runtime-skill-discovery.d.ts +22 -1
- package/dist/types/extensibility/skill-management.d.ts +107 -0
- package/dist/types/gjc-runtime/deep-interview-runtime.d.ts +3 -1
- package/dist/types/gjc-runtime/launch-worktree.d.ts +8 -0
- package/dist/types/gjc-runtime/linux-proc.d.ts +3 -0
- package/dist/types/gjc-runtime/ralplan-runtime.d.ts +10 -6
- package/dist/types/gjc-runtime/session-state-lock.d.ts +104 -0
- package/dist/types/gjc-runtime/session-state-sidecar.d.ts +120 -2
- package/dist/types/gjc-runtime/state-writer.d.ts +10 -1
- package/dist/types/gjc-runtime/ultragoal-guard.d.ts +4 -2
- package/dist/types/gjc-runtime/ultragoal-runtime.d.ts +8 -6
- package/dist/types/gjc-runtime/workflow-settings.d.ts +109 -0
- package/dist/types/hooks/events.d.ts +60 -0
- package/dist/types/hooks/normalize.d.ts +83 -0
- package/dist/types/hooks/skill-state.d.ts +9 -2
- package/dist/types/main.d.ts +1 -1
- package/dist/types/modes/acp/abort-scope.d.ts +13 -0
- package/dist/types/modes/acp/acp-agent.d.ts +7 -4
- package/dist/types/modes/components/customization/customization-dashboard.d.ts +44 -0
- package/dist/types/modes/components/customization/import-wizard.d.ts +21 -0
- package/dist/types/modes/components/customization/index.d.ts +1 -0
- package/dist/types/modes/components/gajae-pet-widget.d.ts +8 -30
- package/dist/types/modes/components/irc-sidebar.d.ts +1 -0
- package/dist/types/modes/components/iterm-pet-transport.d.ts +122 -0
- package/dist/types/modes/components/oauth-selector.d.ts +10 -4
- package/dist/types/modes/components/pet-capability.d.ts +11 -25
- package/dist/types/modes/components/status-line/gh.d.ts +6 -2
- package/dist/types/modes/controllers/extension-ui-controller.d.ts +1 -1
- package/dist/types/modes/controllers/selector-controller.d.ts +7 -8
- package/dist/types/modes/controllers/stt-controller.d.ts +1 -1
- package/dist/types/modes/interactive-mode.d.ts +1 -0
- package/dist/types/modes/types.d.ts +1 -0
- package/dist/types/modes/utils/injected-user-submission.d.ts +10 -0
- package/dist/types/runtime-mcp/config.d.ts +9 -0
- package/dist/types/runtime-mcp/manager.d.ts +26 -1
- package/dist/types/runtime-mcp/oauth-discovery.d.ts +4 -0
- package/dist/types/runtime-mcp/oauth-flow.d.ts +24 -1
- package/dist/types/runtime-mcp/pool-key.d.ts +2 -0
- package/dist/types/runtime-mcp/protocol.d.ts +278 -0
- package/dist/types/runtime-mcp/scope-config.d.ts +29 -0
- package/dist/types/runtime-mcp/tool-bridge.d.ts +15 -13
- package/dist/types/runtime-mcp/transports/http.d.ts +9 -0
- package/dist/types/runtime-mcp/types.d.ts +102 -10
- package/dist/types/sdk/acp/adapter.d.ts +26 -5
- package/dist/types/sdk/broker/broker.d.ts +3 -55
- package/dist/types/sdk/broker/lifecycle.d.ts +18 -12
- package/dist/types/sdk/broker/session-index.d.ts +14 -5
- package/dist/types/sdk/broker/startup-failure.d.ts +16 -1
- package/dist/types/sdk/bus/chat-daemon-control.d.ts +51 -1
- package/dist/types/sdk/bus/chat-daemon-runtime.d.ts +4 -41
- package/dist/types/sdk/bus/config.d.ts +11 -0
- package/dist/types/sdk/bus/conversation-store.d.ts +0 -1
- package/dist/types/sdk/bus/daemon-paths.d.ts +6 -0
- package/dist/types/sdk/bus/discord-conversation.d.ts +2 -0
- package/dist/types/sdk/bus/discord-daemon.d.ts +17 -12
- package/dist/types/sdk/bus/existing-thread-readiness.d.ts +4 -34
- package/dist/types/sdk/bus/inbound-reaction-ordering.d.ts +61 -0
- package/dist/types/sdk/bus/index.d.ts +85 -99
- package/dist/types/sdk/bus/kind-aware-reconciliation.d.ts +29 -7
- package/dist/types/sdk/bus/managed-daemon.d.ts +2 -32
- package/dist/types/sdk/bus/notification-service.d.ts +52 -0
- package/dist/types/sdk/bus/operator-runtime.d.ts +1 -1
- package/dist/types/sdk/bus/prompt-reconciliation.d.ts +16 -5
- package/dist/types/sdk/bus/reconciliation-store.d.ts +113 -5
- package/dist/types/sdk/bus/session-control.d.ts +25 -1
- package/dist/types/sdk/bus/slack-conversation.d.ts +4 -0
- package/dist/types/sdk/bus/slack-daemon.d.ts +9 -17
- package/dist/types/sdk/bus/slack-live-provider.d.ts +3 -1
- package/dist/types/sdk/bus/slack-provider.d.ts +4 -0
- package/dist/types/sdk/bus/slack-thread-binding.d.ts +6 -40
- package/dist/types/sdk/bus/telegram-adoption-intent.d.ts +30 -104
- package/dist/types/sdk/bus/telegram-daemon-cli.d.ts +10 -0
- package/dist/types/sdk/bus/telegram-daemon-contract.d.ts +262 -19
- package/dist/types/sdk/bus/telegram-daemon-orphan-reap.d.ts +125 -0
- package/dist/types/sdk/bus/telegram-daemon-owner-registry.d.ts +22 -0
- package/dist/types/sdk/bus/telegram-daemon.d.ts +119 -310
- package/dist/types/sdk/bus/telegram-reference.d.ts +1 -47
- package/dist/types/sdk/bus/threaded-render.d.ts +1 -0
- package/dist/types/sdk/bus/topic-registry.d.ts +33 -17
- package/dist/types/sdk/cli/rows.d.ts +2 -11
- package/dist/types/sdk/cli/session-cli.d.ts +15 -25
- package/dist/types/sdk/client/client.d.ts +97 -1
- package/dist/types/sdk/host/control/dispatch.d.ts +0 -7
- package/dist/types/sdk/host/control/index.d.ts +1 -1
- package/dist/types/sdk/host/control/operations.d.ts +18 -5
- package/dist/types/sdk/host/control/runtime-gate.d.ts +19 -0
- package/dist/types/sdk/host/host.d.ts +15 -1
- package/dist/types/sdk/host/query/handlers.d.ts +5 -0
- package/dist/types/sdk/host/reverse-leases.d.ts +1 -1
- package/dist/types/sdk/host/session-runtime.d.ts +127 -7
- package/dist/types/sdk/host/types.d.ts +1 -1
- package/dist/types/sdk/host/websocket-transport.d.ts +1 -1
- package/dist/types/sdk/index.d.ts +2 -1
- package/dist/types/sdk/lifecycle/broker-client.d.ts +8 -0
- package/dist/types/sdk/lifecycle/client.d.ts +59 -0
- package/dist/types/sdk/lifecycle/index.d.ts +3 -0
- package/dist/types/sdk/lifecycle/service.d.ts +232 -0
- package/dist/types/sdk/mcp/server.d.ts +9 -6
- package/dist/types/sdk/prompt-deadline-lease.d.ts +43 -0
- package/dist/types/sdk/prompt-deadline-manager.d.ts +28 -0
- package/dist/types/sdk/prompt-status.d.ts +10 -3
- package/dist/types/sdk/protocol/operation-registry.d.ts +5 -0
- package/dist/types/sdk/receipt-state.d.ts +17 -0
- package/dist/types/sdk/reconciliation-extensions.d.ts +2 -0
- package/dist/types/sdk/router/index.d.ts +1 -0
- package/dist/types/sdk/router/session-router.d.ts +152 -0
- package/dist/types/sdk/session-list.d.ts +22 -0
- package/dist/types/sdk/session-reconnect.d.ts +43 -1
- package/dist/types/sdk/session.d.ts +34 -1
- package/dist/types/sdk/transport/serve-cli.d.ts +1 -4
- package/dist/types/session/account-inventory.d.ts +86 -0
- package/dist/types/session/agent-session.d.ts +145 -6
- package/dist/types/session/agent-storage.d.ts +10 -0
- package/dist/types/session/coordinator-tool-label.d.ts +28 -0
- package/dist/types/session/internal/managed-session-storage.d.ts +23 -4
- package/dist/types/session/messages.d.ts +1 -1
- package/dist/types/session/secure-token-file.d.ts +3 -0
- package/dist/types/session/session-manager.d.ts +40 -1
- package/dist/types/session/startup-auth-config.d.ts +44 -0
- package/dist/types/session/terminal-abort.d.ts +378 -0
- package/dist/types/session/yield-queue.d.ts +7 -0
- package/dist/types/session-import/claude.d.ts +26 -0
- package/dist/types/session-import/codex.d.ts +88 -0
- package/dist/types/session-import/command.d.ts +35 -0
- package/dist/types/session-import/detect.d.ts +22 -0
- package/dist/types/session-import/index.d.ts +7 -0
- package/dist/types/session-import/provider-codex.d.ts +22 -0
- package/dist/types/session-import/provider-service.d.ts +38 -0
- package/dist/types/session-import/redact.d.ts +23 -0
- package/dist/types/session-import/service.d.ts +47 -0
- package/dist/types/session-import/types.d.ts +120 -0
- package/dist/types/setup/paseo/check.d.ts +16 -0
- package/dist/types/setup/paseo/install-saga.d.ts +115 -0
- package/dist/types/setup/paseo/json-publisher.d.ts +76 -0
- package/dist/types/setup/paseo/orchestration-preferences.d.ts +24 -0
- package/dist/types/setup/paseo/paseo-ownership.d.ts +87 -0
- package/dist/types/setup/paseo/paseo-setup.d.ts +29 -0
- package/dist/types/setup/paseo/provider-config.d.ts +35 -0
- package/dist/types/setup/paseo/remove.d.ts +14 -0
- package/dist/types/setup/paseo/result-types.d.ts +59 -0
- package/dist/types/setup/paseo/setup-deps.d.ts +73 -0
- package/dist/types/setup/paseo/skills-bridge.d.ts +44 -0
- package/dist/types/skill-state/active-state.d.ts +5 -1
- package/dist/types/slash-commands/acp-builtins.d.ts +5 -1
- package/dist/types/slash-commands/builtin-registry.d.ts +2 -0
- package/dist/types/slash-commands/helpers/credential-switch.d.ts +12 -0
- package/dist/types/slash-commands/helpers/usage-report.d.ts +5 -6
- package/dist/types/slash-commands/types.d.ts +7 -1
- package/dist/types/task/executor.d.ts +10 -0
- package/dist/types/task/index.d.ts +3 -1
- package/dist/types/tools/ask-answer-registry.d.ts +6 -3
- package/dist/types/tools/bash-sleep-advisory.d.ts +14 -0
- package/dist/types/tools/bash.d.ts +2 -6
- package/dist/types/tools/browser/attach.d.ts +11 -0
- package/dist/types/tools/browser/launch.d.ts +20 -0
- package/dist/types/tools/browser/profile-discovery.d.ts +6 -0
- package/dist/types/tools/browser/render.d.ts +1 -0
- package/dist/types/tools/browser.d.ts +3 -1
- package/dist/types/tools/image-gen.d.ts +9 -2
- package/dist/types/tools/index.d.ts +8 -0
- package/dist/types/tools/monitor.d.ts +1 -1
- package/dist/types/tools/skill-discovery.d.ts +8 -1
- package/dist/types/tools/subagent.d.ts +2 -0
- package/dist/types/tools/ultragoal-ask-guard.d.ts +2 -2
- package/dist/types/utils/herdr-pane.d.ts +76 -0
- package/package.json +19 -9
- package/scripts/build-binary.ts +2 -1
- package/scripts/build-sdk-package-smoke.ts +2 -13
- package/scripts/capture-sticky-viewport-showcase.ts +0 -1
- package/scripts/compile-args.ts +2 -0
- package/scripts/generate-sdk-adapter-parity-manifest.ts +31 -16
- package/scripts/generate-sdk-operation-inventory.ts +28 -0
- package/scripts/generate-telegram-baseline-manifest.ts +1 -0
- package/scripts/generate-tool-catalog.ts +6 -4
- package/scripts/verify-gjc-sdk-canonicalization.ts +5 -39
- package/src/async/job-manager.ts +352 -17
- package/src/async/support.ts +25 -0
- package/src/autoresearch/dashboard.ts +28 -13
- package/src/capability/index.ts +3 -1
- package/src/capability/mcp.ts +6 -0
- package/src/capability/types.ts +6 -0
- package/src/cli/accounts-cli.ts +395 -0
- package/src/cli/args.ts +23 -0
- package/src/cli/auth-broker-cli.ts +136 -66
- package/src/cli/auth-gateway-cli.ts +94 -70
- package/src/cli/config-cli.ts +27 -2
- package/src/cli/crash-cli.ts +78 -0
- package/src/cli/customize-doctor.ts +1605 -0
- package/src/cli/daemon-cli.ts +12 -3
- package/src/cli/fast-help.ts +1 -0
- package/src/cli/mcp-cli.ts +128 -60
- package/src/cli/notify-cli.ts +8 -14
- package/src/cli/root-flags.ts +8 -0
- package/src/cli/setup-cli.ts +145 -0
- package/src/cli/skills-cli.ts +38 -2
- package/src/cli/update-cli.ts +167 -12
- package/src/cli.ts +4 -0
- package/src/commands/accounts.ts +71 -0
- package/src/commands/crash.ts +35 -0
- package/src/commands/customize.ts +84 -0
- package/src/commands/daemon.ts +2 -2
- package/src/commands/deep-interview.ts +2 -0
- package/src/commands/launch.ts +1 -0
- package/src/commands/mcp.ts +12 -7
- package/src/commands/ralplan.ts +2 -0
- package/src/commands/sdk.ts +65 -32
- package/src/commands/setup.ts +5 -0
- package/src/commands/skills.ts +14 -4
- package/src/commands/ultragoal.ts +10 -1
- package/src/commands/update.ts +26 -15
- package/src/config/atomic-yaml-patch-worker.ts +57 -0
- package/src/config/atomic-yaml-patch.ts +769 -29
- package/src/config/config-schema-version.ts +10 -0
- package/src/config/file-lock.ts +70 -1
- package/src/config/mcp-schema.json +52 -14
- package/src/config/model-profile-activation.ts +20 -1
- package/src/config/model-profiles.ts +29 -19
- package/src/config/model-registry.ts +132 -21
- package/src/config/models-config-schema.ts +1 -1
- package/src/config/settings-schema.ts +76 -6
- package/src/config/settings.ts +4038 -199
- package/src/config/skill-settings-defaults.ts +41 -3
- package/src/config/task-delegation.ts +87 -0
- package/src/config/update-channel.ts +23 -0
- package/src/coordinator-mcp/server.ts +377 -308
- package/src/crash/index-store.ts +723 -0
- package/src/crash/nudge.ts +89 -0
- package/src/crash/record-loader.ts +149 -0
- package/src/crash/report.ts +551 -0
- package/src/crash/sanitize.ts +129 -0
- package/src/cursor.ts +36 -10
- package/src/customization/import.ts +946 -0
- package/src/customization/index.ts +4 -0
- package/src/customization/inventory.ts +335 -0
- package/src/customization/mutations.ts +141 -0
- package/src/customization/types.ts +223 -0
- package/src/daemon/control-types.ts +8 -1
- package/src/daemon/operator-contract.ts +6 -6
- package/src/defaults/gjc/skills/deep-interview/SKILL.md +11 -22
- package/src/defaults/gjc/skills/ralplan/SKILL.md +36 -23
- package/src/defaults/gjc/skills/ultragoal/SKILL.md +16 -0
- package/src/discovery/claude-hooks.ts +38 -0
- package/src/discovery/claude.ts +142 -209
- package/src/discovery/codex-hooks.ts +38 -0
- package/src/discovery/codex.ts +132 -198
- package/src/discovery/helpers.ts +8 -1
- package/src/discovery/index.ts +2 -0
- package/src/discovery/mcp-compat.ts +234 -0
- package/src/discovery/mcp-json.ts +6 -0
- package/src/edit/renderer.ts +40 -0
- package/src/edit/streaming.ts +4 -2
- package/src/exec/bash-executor.ts +24 -20
- package/src/export/html/index.ts +51 -2
- package/src/extensibility/extensions/loader.ts +9 -1
- package/src/extensibility/extensions/runner.ts +17 -4
- package/src/extensibility/extensions/types.ts +31 -6
- package/src/extensibility/gjc-plugins/constrained-hooks.ts +33 -0
- package/src/extensibility/gjc-plugins/installer.ts +9 -5
- package/src/extensibility/gjc-plugins/observability.ts +8 -2
- package/src/extensibility/gjc-plugins/registry.ts +13 -2
- package/src/extensibility/gjc-plugins/runtime-adapters.ts +3 -1
- package/src/extensibility/gjc-plugins/schema.ts +222 -39
- package/src/extensibility/hooks/loader.ts +154 -10
- package/src/extensibility/runtime-skill-discovery.ts +257 -60
- package/src/extensibility/skill-management.ts +368 -0
- package/src/extensibility/skills.ts +52 -16
- package/src/gjc-runtime/deep-interview-runtime.ts +45 -61
- package/src/gjc-runtime/launch-worktree.ts +56 -2
- package/src/gjc-runtime/linux-proc.ts +7 -1
- package/src/gjc-runtime/ralplan-runtime.ts +100 -164
- package/src/gjc-runtime/session-state-lock.ts +992 -0
- package/src/gjc-runtime/session-state-sidecar.ts +644 -142
- package/src/gjc-runtime/state-writer.ts +39 -14
- package/src/gjc-runtime/tmux-owner-isolation.ts +5 -4
- package/src/gjc-runtime/ultragoal-guard.ts +11 -4
- package/src/gjc-runtime/ultragoal-runtime.ts +44 -41
- package/src/gjc-runtime/workflow-settings.ts +596 -0
- package/src/goals/tools/goal-tool.ts +6 -1
- package/src/hooks/events.ts +291 -0
- package/src/hooks/native-skill-hook.ts +4 -0
- package/src/hooks/normalize.ts +369 -0
- package/src/hooks/skill-state.ts +165 -46
- package/src/internal-urls/docs-index.generated.ts +40 -32
- package/src/main.ts +32 -5
- package/src/migrate/mcp-mapper.ts +25 -2
- package/src/modes/acp/abort-scope.ts +29 -0
- package/src/modes/acp/acp-agent.ts +423 -98
- package/src/modes/components/assistant-message.ts +6 -1
- package/src/modes/components/customization/customization-dashboard.ts +443 -0
- package/src/modes/components/customization/import-wizard.ts +372 -0
- package/src/modes/components/customization/index.ts +1 -0
- package/src/modes/components/gajae-pet-widget.ts +539 -213
- package/src/modes/components/irc-sidebar.ts +11 -0
- package/src/modes/components/iterm-pet-transport.ts +585 -0
- package/src/modes/components/oauth-selector.ts +277 -86
- package/src/modes/components/pet-capability.ts +39 -40
- package/src/modes/components/settings-selector.ts +9 -0
- package/src/modes/components/status-line/gh.ts +45 -1
- package/src/modes/components/status-line/segments.ts +16 -1
- package/src/modes/components/tool-status-header.ts +13 -3
- package/src/modes/controllers/command-controller.ts +20 -8
- package/src/modes/controllers/extension-ui-controller.ts +56 -257
- package/src/modes/controllers/input-controller.ts +10 -0
- package/src/modes/controllers/runtime-mcp-command-controller.ts +16 -3
- package/src/modes/controllers/selector-controller.ts +177 -72
- package/src/modes/controllers/stt-controller.ts +3 -3
- package/src/modes/interactive-mode.ts +88 -16
- package/src/modes/print-mode.ts +35 -6
- package/src/modes/runtime-init.ts +21 -68
- package/src/modes/types.ts +1 -0
- package/src/modes/utils/injected-user-submission.ts +25 -0
- package/src/modes/utils/terminal-bell.ts +15 -1
- package/src/prompts/agent-fragments/ralplan-persistence.md +1 -1
- package/src/prompts/agent-fragments/restricted-bash.md +1 -1
- package/src/prompts/agents/critic.md +1 -1
- package/src/prompts/system/rlm-research.md +1 -1
- package/src/prompts/system/system-prompt.md +0 -2
- package/src/prompts/tools/bash.md +7 -1
- package/src/prompts/tools/browser.md +1 -1
- package/src/prompts/tools/cron.md +6 -6
- package/src/prompts/tools/read.md +0 -2
- package/src/prompts/tools/skill-discovery.md +4 -2
- package/src/runtime-mcp/client.ts +427 -23
- package/src/runtime-mcp/config.ts +37 -5
- package/src/runtime-mcp/manager-pool.test.ts +56 -0
- package/src/runtime-mcp/manager.ts +52 -2
- package/src/runtime-mcp/oauth-discovery.ts +13 -0
- package/src/runtime-mcp/oauth-flow.ts +46 -1
- package/src/runtime-mcp/pool-key.ts +5 -1
- package/src/runtime-mcp/pool.test.ts +9 -0
- package/src/runtime-mcp/protocol.test.ts +353 -0
- package/src/runtime-mcp/protocol.ts +624 -0
- package/src/runtime-mcp/scope-config.ts +78 -0
- package/src/runtime-mcp/tool-bridge.ts +44 -10
- package/src/runtime-mcp/transports/http.ts +84 -13
- package/src/runtime-mcp/types.ts +123 -12
- package/src/sdk/acp/adapter.ts +328 -97
- package/src/sdk/broker/broker.ts +160 -741
- package/src/sdk/broker/ensure.ts +9 -1
- package/src/sdk/broker/lifecycle.ts +510 -116
- package/src/sdk/broker/operation-receipt-ledger.ts +11 -2
- package/src/sdk/broker/process-incarnation.ts +19 -0
- package/src/sdk/broker/session-index.ts +516 -117
- package/src/sdk/broker/startup-failure.ts +28 -5
- package/src/sdk/broker/transport.ts +1 -13
- package/src/sdk/bus/chat-daemon-cli.ts +4 -2
- package/src/sdk/bus/chat-daemon-control.ts +67 -6
- package/src/sdk/bus/chat-daemon-runtime.ts +183 -859
- package/src/sdk/bus/config.ts +13 -0
- package/src/sdk/bus/conversation-store.ts +59 -171
- package/src/sdk/bus/daemon-paths.ts +20 -0
- package/src/sdk/bus/discord-conversation.ts +2 -0
- package/src/sdk/bus/discord-daemon.ts +524 -126
- package/src/sdk/bus/discord-live-provider.ts +206 -79
- package/src/sdk/bus/existing-thread-readiness.ts +4 -97
- package/src/sdk/bus/inbound-reaction-ordering.ts +122 -0
- package/src/sdk/bus/index.ts +2480 -456
- package/src/sdk/bus/kind-aware-reconciliation.ts +204 -34
- package/src/sdk/bus/lifecycle-commands.ts +2 -2
- package/src/sdk/bus/managed-daemon.ts +2 -145
- package/src/sdk/bus/notification-service.ts +196 -0
- package/src/sdk/bus/operator-runtime.ts +1 -1
- package/src/sdk/bus/prompt-reconciliation.ts +24 -15
- package/src/sdk/bus/reconciliation-store.ts +553 -24
- package/src/sdk/bus/session-control.ts +49 -3
- package/src/sdk/bus/slack-conversation.ts +4 -0
- package/src/sdk/bus/slack-daemon.ts +733 -134
- package/src/sdk/bus/slack-live-provider.ts +65 -15
- package/src/sdk/bus/slack-provider.ts +4 -0
- package/src/sdk/bus/slack-thread-binding.ts +9 -104
- package/src/sdk/bus/telegram-adoption-intent.ts +299 -209
- package/src/sdk/bus/telegram-daemon-cli.ts +194 -7
- package/src/sdk/bus/telegram-daemon-contract.ts +265 -19
- package/src/sdk/bus/telegram-daemon-control.ts +3 -13
- package/src/sdk/bus/telegram-daemon-orphan-reap.ts +498 -0
- package/src/sdk/bus/telegram-daemon-owner-registry.ts +176 -0
- package/src/sdk/bus/telegram-daemon.ts +2552 -2280
- package/src/sdk/bus/telegram-reference.ts +1 -226
- package/src/sdk/bus/telegram-setup.ts +2 -2
- package/src/sdk/bus/threaded-render.ts +1 -0
- package/src/sdk/bus/topic-registry.ts +279 -146
- package/src/sdk/cli/rows.ts +2 -35
- package/src/sdk/cli/session-cli.ts +776 -700
- package/src/sdk/client/client.ts +892 -1
- package/src/sdk/host/control/dispatch.ts +93 -58
- package/src/sdk/host/control/index.ts +1 -1
- package/src/sdk/host/control/operations.ts +18 -10
- package/src/sdk/host/control/runtime-gate.ts +40 -0
- package/src/sdk/host/host.ts +63 -12
- package/src/sdk/host/query/handlers.ts +66 -7
- package/src/sdk/host/reverse-leases.ts +2 -2
- package/src/sdk/host/sdk-surface-parity.test.ts +1 -1
- package/src/sdk/host/session-runtime.test.ts +2787 -34
- package/src/sdk/host/session-runtime.ts +1489 -101
- package/src/sdk/host/surface-policy.ts +12 -8
- package/src/sdk/host/types.ts +1 -1
- package/src/sdk/host/websocket-transport.lifecycle.test.ts +31 -59
- package/src/sdk/host/websocket-transport.ts +85 -50
- package/src/sdk/index.ts +2 -1
- package/src/sdk/lifecycle/broker-client.ts +53 -0
- package/src/sdk/lifecycle/client.ts +234 -0
- package/src/sdk/lifecycle/index.ts +3 -0
- package/src/sdk/{bus/recent-activity.ts → lifecycle/recent-sessions.ts} +5 -2
- package/src/sdk/lifecycle/service.ts +720 -0
- package/src/sdk/mcp/server.ts +226 -188
- package/src/sdk/prompt-deadline-lease.ts +55 -0
- package/src/sdk/prompt-deadline-manager.ts +148 -0
- package/src/sdk/prompt-status.ts +11 -3
- package/src/sdk/protocol/operation-inventory.generated.json +272 -129
- package/src/sdk/protocol/operation-registry.ts +71 -8
- package/src/sdk/receipt-state.ts +43 -0
- package/src/sdk/reconciliation-extensions.ts +14 -0
- package/src/sdk/router/index.ts +1 -0
- package/src/sdk/router/session-router.ts +1658 -0
- package/src/sdk/session-list.ts +93 -0
- package/src/sdk/session-reconnect.ts +45 -1
- package/src/sdk/session.ts +716 -120
- package/src/sdk/transport/serve-cli.ts +18 -34
- package/src/session/account-inventory.ts +603 -0
- package/src/session/agent-session.ts +2857 -582
- package/src/session/agent-storage.ts +35 -0
- package/src/session/blob-store.ts +32 -1
- package/src/session/coordinator-tool-label.ts +40 -0
- package/src/session/internal/managed-session-scope.ts +4 -0
- package/src/session/internal/managed-session-storage.ts +173 -12
- package/src/session/messages.ts +1 -1
- package/src/session/secure-token-file.ts +80 -0
- package/src/session/session-manager.ts +730 -58
- package/src/session/session-storage.ts +25 -16
- package/src/session/startup-auth-config.ts +297 -0
- package/src/session/terminal-abort.ts +1253 -0
- package/src/session/yield-queue.ts +57 -15
- package/src/session-import/claude.ts +334 -0
- package/src/session-import/codex.ts +1033 -0
- package/src/session-import/command.ts +77 -0
- package/src/session-import/detect.ts +133 -0
- package/src/session-import/index.ts +7 -0
- package/src/session-import/provider-codex.ts +327 -0
- package/src/session-import/provider-service.ts +457 -0
- package/src/session-import/redact.ts +128 -0
- package/src/session-import/service.ts +1264 -0
- package/src/session-import/types.ts +148 -0
- package/src/setup/paseo/check.ts +213 -0
- package/src/setup/paseo/install-saga.ts +293 -0
- package/src/setup/paseo/json-publisher.ts +263 -0
- package/src/setup/paseo/orchestration-preferences.ts +86 -0
- package/src/setup/paseo/paseo-ownership.ts +224 -0
- package/src/setup/paseo/paseo-setup.ts +253 -0
- package/src/setup/paseo/provider-config.ts +139 -0
- package/src/setup/paseo/remove.ts +183 -0
- package/src/setup/paseo/result-types.ts +79 -0
- package/src/setup/paseo/setup-deps.ts +175 -0
- package/src/setup/paseo/skills-bridge.ts +260 -0
- package/src/skill-state/active-state.ts +21 -11
- package/src/slash-commands/acp-builtins.ts +9 -1
- package/src/slash-commands/builtin-registry.ts +98 -16
- package/src/slash-commands/helpers/credential-switch.ts +143 -0
- package/src/slash-commands/helpers/mcp.ts +9 -3
- package/src/slash-commands/helpers/usage-report.ts +61 -56
- package/src/slash-commands/types.ts +7 -2
- package/src/task/executor.ts +30 -11
- package/src/task/index.ts +66 -7
- package/src/task/render.ts +23 -9
- package/src/tools/ask-answer-registry.ts +23 -7
- package/src/tools/ask.ts +8 -4
- package/src/tools/bash-sleep-advisory.ts +115 -0
- package/src/tools/bash.ts +98 -18
- package/src/tools/browser/attach.ts +71 -3
- package/src/tools/browser/launch.ts +86 -13
- package/src/tools/browser/profile-discovery.ts +57 -7
- package/src/tools/browser/render.ts +8 -1
- package/src/tools/browser.ts +130 -21
- package/src/tools/computer.enforcement.test.ts +1 -1
- package/src/tools/computer.ts +3 -2
- package/src/tools/cron.ts +12 -1
- package/src/tools/image-gen.ts +27 -16
- package/src/tools/index.ts +8 -0
- package/src/tools/job.ts +33 -6
- package/src/tools/monitor.ts +41 -2
- package/src/tools/skill-discovery.ts +21 -29
- package/src/tools/subagent.ts +142 -24
- package/src/tools/tool-catalog.generated.ts +6 -6
- package/src/tools/ultragoal-ask-guard.ts +10 -3
- package/src/utils/herdr-pane.ts +345 -0
- package/src/utils/title-generator.ts +2 -0
- package/src/web/scrapers/index.ts +6 -4
- package/dist/types/cli/malloc-env-guard.test.d.ts +0 -1
- package/dist/types/defaults/gjc-defaults.test.d.ts +0 -1
- package/dist/types/memory-backend/lazy-loading.test.d.ts +0 -1
- package/dist/types/runtime/boot-ordering.test.d.ts +0 -1
- package/dist/types/runtime/lazy-service.test.d.ts +0 -1
- package/dist/types/runtime/network-prewarm-service.test.d.ts +0 -1
- package/dist/types/runtime/workspace-tree-service.test.d.ts +0 -1
- package/dist/types/runtime-mcp/config.test.d.ts +0 -1
- package/dist/types/runtime-mcp/http.test.d.ts +0 -1
- package/dist/types/runtime-mcp/manager-pool.test.d.ts +0 -1
- package/dist/types/runtime-mcp/pool-key.test.d.ts +0 -1
- package/dist/types/runtime-mcp/pool.test.d.ts +0 -1
- package/dist/types/sdk/bus/lifecycle-control-runtime.d.ts +0 -117
- package/dist/types/sdk/bus/lifecycle-orchestrator.d.ts +0 -141
- package/dist/types/sdk/bus/telegram-cli.d.ts +0 -31
- package/dist/types/sdk/elevation/allowlist.d.ts +0 -20
- package/dist/types/sdk/elevation/audit.d.ts +0 -93
- package/dist/types/sdk/elevation/capability.d.ts +0 -3
- package/dist/types/sdk/elevation/digest.d.ts +0 -72
- package/dist/types/sdk/elevation/dispatch-receipt.d.ts +0 -85
- package/dist/types/sdk/elevation/grant-ledger.d.ts +0 -163
- package/dist/types/sdk/elevation/owner.d.ts +0 -48
- package/dist/types/sdk/host/import-graph.test.d.ts +0 -1
- package/dist/types/sdk/host/sdk-surface-parity.test.d.ts +0 -1
- package/dist/types/sdk/host/session-runtime.test.d.ts +0 -1
- package/dist/types/sdk/host/websocket-transport.lifecycle.test.d.ts +0 -1
- package/dist/types/session/auth-broker-config.d.ts +0 -13
- package/dist/types/session/heap-eviction-artifacts.test.d.ts +0 -1
- package/dist/types/skills/skills.test.d.ts +0 -1
- package/dist/types/slash-commands/notify-command.test.d.ts +0 -1
- package/dist/types/task/token-log.test.d.ts +0 -1
- package/dist/types/tools/computer.enforcement.test.d.ts +0 -1
- package/dist/types/tools/descriptors.test.d.ts +0 -1
- package/scripts/g005-daemon-smoke.ts +0 -180
- package/scripts/g011-daemon-path-smoke.ts +0 -153
- package/src/sdk/bus/lifecycle-control-runtime.ts +0 -1733
- package/src/sdk/bus/lifecycle-orchestrator.ts +0 -489
- package/src/sdk/bus/telegram-cli.ts +0 -212
- package/src/sdk/elevation/allowlist.ts +0 -54
- package/src/sdk/elevation/audit.ts +0 -208
- package/src/sdk/elevation/capability.ts +0 -41
- package/src/sdk/elevation/digest.ts +0 -129
- package/src/sdk/elevation/dispatch-receipt.ts +0 -184
- package/src/sdk/elevation/grant-ledger.ts +0 -1142
- package/src/sdk/elevation/owner.ts +0 -109
- package/src/session/auth-broker-config.ts +0 -109
- /package/dist/types/{ai-core-import-gate.test.d.ts → discovery/claude-hooks.d.ts} +0 -0
- /package/dist/types/{cli/fixture-report.test.d.ts → discovery/codex-hooks.d.ts} +0 -0
- /package/dist/types/sdk/{bus/recent-activity.d.ts → lifecycle/recent-sessions.d.ts} +0 -0
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP protocol generation model ("MCP v2", specification 2026-07-28).
|
|
3
|
+
*
|
|
4
|
+
* Canonical authority (verified against the primary sources, not secondary
|
|
5
|
+
* summaries):
|
|
6
|
+
* - https://modelcontextprotocol.io/specification/2026-07-28/basic
|
|
7
|
+
* - https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http
|
|
8
|
+
* - https://modelcontextprotocol.io/specification/2026-07-28/basic/versioning
|
|
9
|
+
* - https://modelcontextprotocol.io/specification/2026-07-28/basic/patterns/mrtr
|
|
10
|
+
* - https://modelcontextprotocol.io/specification/2026-07-28/server/discover
|
|
11
|
+
* - https://modelcontextprotocol.io/specification/2026-07-28/server/utilities/caching
|
|
12
|
+
* - schema source of truth: modelcontextprotocol/specification schema/2026-07-28/schema.ts
|
|
13
|
+
*
|
|
14
|
+
* 2026-07-28 ("modern" era) removes the initialize/initialized handshake,
|
|
15
|
+
* protocol sessions (`Mcp-Session-Id`), the standalone GET SSE stream, and
|
|
16
|
+
* `Last-Event-ID` replay from the core request path. Every request carries its
|
|
17
|
+
* protocol version, client identity, and client capabilities in `_meta`, and
|
|
18
|
+
* Streamable HTTP mirrors selected fields into `MCP-Protocol-Version`,
|
|
19
|
+
* `Mcp-Method`, and `Mcp-Name` headers.
|
|
20
|
+
*/
|
|
21
|
+
/** The modern (stateless) protocol revision implemented by this client. */
|
|
22
|
+
export declare const MCP_PROTOCOL_VERSION_2026_07_28 = "2026-07-28";
|
|
23
|
+
/** Legacy (initialize handshake) revision this client speaks for compatibility. */
|
|
24
|
+
export declare const MCP_PROTOCOL_VERSION_LEGACY = "2025-03-26";
|
|
25
|
+
/** Modern-era revisions this client can speak, most preferred first. */
|
|
26
|
+
export declare const MCP_MODERN_PROTOCOL_VERSIONS: readonly string[];
|
|
27
|
+
/** Protocol generation: modern = per-request metadata (2026-07-28+), legacy = initialize handshake. */
|
|
28
|
+
export type MCPProtocolEra = "modern" | "legacy";
|
|
29
|
+
/**
|
|
30
|
+
* Per-server protocol preference from configuration.
|
|
31
|
+
* - `auto`: attempt modern first; bounded, observable legacy fallback per the
|
|
32
|
+
* specification's era-detection rules. Default when unset.
|
|
33
|
+
* - `2026-07-28`: strict modern-only; never initializes a legacy session.
|
|
34
|
+
* - `legacy`: bounded compatibility mode; always uses the legacy handshake.
|
|
35
|
+
*/
|
|
36
|
+
export type MCPProtocolPreference = "auto" | "2026-07-28" | "legacy";
|
|
37
|
+
export declare const MCP_PROTOCOL_PREFERENCES: readonly MCPProtocolPreference[];
|
|
38
|
+
export declare function isMCPProtocolPreference(value: unknown): value is MCPProtocolPreference;
|
|
39
|
+
/** Resolve the effective preference; `auto` when unset. */
|
|
40
|
+
export declare function resolveMCPProtocolPreference(value: MCPProtocolPreference | undefined): MCPProtocolPreference;
|
|
41
|
+
/** True when a version string names a modern-era revision (date-based, >= 2026-07-28). */
|
|
42
|
+
export declare function isModernProtocolVersion(version: string): boolean;
|
|
43
|
+
/** Headers do not match the request body, or required headers are missing/malformed. */
|
|
44
|
+
export declare const MCP_ERROR_HEADER_MISMATCH = -32020;
|
|
45
|
+
/** The request requires a client capability the client did not declare. */
|
|
46
|
+
export declare const MCP_ERROR_MISSING_REQUIRED_CLIENT_CAPABILITY = -32021;
|
|
47
|
+
/** The server does not implement the requested protocol version. */
|
|
48
|
+
export declare const MCP_ERROR_UNSUPPORTED_PROTOCOL_VERSION = -32022;
|
|
49
|
+
/** Standard JSON-RPC method-not-found (modern servers pair it with HTTP 404). */
|
|
50
|
+
export declare const JSONRPC_ERROR_METHOD_NOT_FOUND = -32601;
|
|
51
|
+
/** Standard JSON-RPC invalid-params (modern servers reject missing `_meta` with it). */
|
|
52
|
+
export declare const JSONRPC_ERROR_INVALID_PARAMS = -32602;
|
|
53
|
+
export declare const MCP_META_PROTOCOL_VERSION = "io.modelcontextprotocol/protocolVersion";
|
|
54
|
+
export declare const MCP_META_CLIENT_INFO = "io.modelcontextprotocol/clientInfo";
|
|
55
|
+
export declare const MCP_META_CLIENT_CAPABILITIES = "io.modelcontextprotocol/clientCapabilities";
|
|
56
|
+
export declare const MCP_META_SERVER_INFO = "io.modelcontextprotocol/serverInfo";
|
|
57
|
+
/** Client identity advertised in modern per-request `_meta`. */
|
|
58
|
+
export interface MCPModernClientContext {
|
|
59
|
+
protocolVersion: string;
|
|
60
|
+
clientInfo: {
|
|
61
|
+
name: string;
|
|
62
|
+
version: string;
|
|
63
|
+
};
|
|
64
|
+
/** Capabilities relevant to requests, e.g. `{ roots: {...}, elicitation: {...} }`. */
|
|
65
|
+
capabilities: Record<string, unknown>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Build the `_meta` object every modern request MUST carry. Callers merge this
|
|
69
|
+
* into `params._meta`, preserving any pre-existing keys (e.g. `progressToken`).
|
|
70
|
+
*/
|
|
71
|
+
export declare function buildModernRequestMeta(context: MCPModernClientContext): Record<string, unknown>;
|
|
72
|
+
/** Merge modern `_meta` into request params without clobbering existing keys. */
|
|
73
|
+
export declare function withModernMeta(params: Record<string, unknown>, context: MCPModernClientContext): Record<string, unknown>;
|
|
74
|
+
/** RFC 9110 field-value safe set: visible ASCII, space, and horizontal tab. */
|
|
75
|
+
export declare function isPlainAsciiHeaderValue(value: string): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Encode a value for `Mcp-Name` / `Mcp-Param-{Name}` headers: plain ASCII when
|
|
78
|
+
* safe, otherwise the `=?base64?<base64-utf8>?=` sentinel. Values already
|
|
79
|
+
* matching the sentinel pattern MUST also be encoded to avoid ambiguity.
|
|
80
|
+
*/
|
|
81
|
+
export declare function encodeMcpHeaderValue(value: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* Build the mirrored headers a modern Streamable HTTP request MUST carry:
|
|
84
|
+
* `MCP-Protocol-Version` (must equal the `_meta` version), `Mcp-Method`, and —
|
|
85
|
+
* for `tools/call`, `resources/read`, `prompts/get` — `Mcp-Name`.
|
|
86
|
+
*/
|
|
87
|
+
export declare function buildModernMcpHeaders(input: {
|
|
88
|
+
protocolVersion: string;
|
|
89
|
+
method: string;
|
|
90
|
+
params?: Record<string, unknown>;
|
|
91
|
+
}): Record<string, string>;
|
|
92
|
+
/** A validated binding from a tool inputSchema property to an `Mcp-Param-*` header. */
|
|
93
|
+
export interface McpHeaderParamBinding {
|
|
94
|
+
/** Exact property path (chain of `properties` keys) in the call arguments. */
|
|
95
|
+
propertyPath: string[];
|
|
96
|
+
/** The `name` portion of the `Mcp-Param-{name}` header. */
|
|
97
|
+
headerName: string;
|
|
98
|
+
/** Primitive type of the annotated property. */
|
|
99
|
+
propertyType: "string" | "integer" | "boolean";
|
|
100
|
+
}
|
|
101
|
+
export interface XMcpHeaderBindingsResult {
|
|
102
|
+
bindings: McpHeaderParamBinding[];
|
|
103
|
+
/** Human-readable reasons the tool definition is invalid for HTTP mirroring. */
|
|
104
|
+
violations: string[];
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Collect `x-mcp-header` bindings from a tool `inputSchema`, enforcing the
|
|
108
|
+
* specification constraints: field-name token syntax, primitive (non-number)
|
|
109
|
+
* types, case-insensitive uniqueness, and static reachability via `properties`
|
|
110
|
+
* chains only. Any violation invalidates the tool definition for HTTP clients.
|
|
111
|
+
*/
|
|
112
|
+
export declare function collectXMcpHeaderBindings(inputSchema: unknown): XMcpHeaderBindingsResult;
|
|
113
|
+
/**
|
|
114
|
+
* Extract `Mcp-Param-{name}` headers from tool call arguments per validated
|
|
115
|
+
* bindings. Missing or null values omit the header, per the specification.
|
|
116
|
+
*/
|
|
117
|
+
export declare function buildXMcpParamHeaders(bindings: readonly McpHeaderParamBinding[], args: Record<string, unknown>): Record<string, string>;
|
|
118
|
+
/** Failure classes for a modern probe request. */
|
|
119
|
+
export type MCPProbeFailureClass =
|
|
120
|
+
/** Recognized modern JSON-RPC error: the server speaks a modern revision. */
|
|
121
|
+
"modern-error"
|
|
122
|
+
/** 4xx without a recognized modern error body: legacy-era server signal. */
|
|
123
|
+
| "legacy-signal"
|
|
124
|
+
/** 401/403 (and WWW-Authenticate challenges): never a downgrade signal. */
|
|
125
|
+
| "auth-failure"
|
|
126
|
+
/** Anything else (5xx, network, malformed payload): not a downgrade signal. */
|
|
127
|
+
| "other-failure";
|
|
128
|
+
export interface MCPProbeClassification {
|
|
129
|
+
class: MCPProbeFailureClass;
|
|
130
|
+
/** Protocol-defined modern error code when recognized. */
|
|
131
|
+
modernErrorCode?: number;
|
|
132
|
+
/** `data.supported` from an UnsupportedProtocolVersionError, when present. */
|
|
133
|
+
supportedVersions?: string[];
|
|
134
|
+
/** `data.requested` from an UnsupportedProtocolVersionError, when present. */
|
|
135
|
+
requestedVersion?: string;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Classify a failed modern probe per the specification's era-detection rules:
|
|
139
|
+
* recognized modern JSON-RPC errors identify a modern server; a 400/404/405
|
|
140
|
+
* without one identifies a legacy server; auth and security failures are never
|
|
141
|
+
* era signals and must never authorize a downgrade.
|
|
142
|
+
*/
|
|
143
|
+
export declare function classifyMcpProbeFailure(status: number, parsedBody: unknown): MCPProbeClassification;
|
|
144
|
+
/** Lifecycle state of a protocol feature, mirroring the specification's feature lifecycle. */
|
|
145
|
+
export type MCPFeatureLifecycle = "active" | "deprecated" | "removed";
|
|
146
|
+
export interface MCPProtocolFeatureState {
|
|
147
|
+
feature: string;
|
|
148
|
+
lifecycle: MCPFeatureLifecycle;
|
|
149
|
+
/** Secret-free explanation shown in diagnostics. */
|
|
150
|
+
note?: string;
|
|
151
|
+
}
|
|
152
|
+
/** How the effective era/version was reached. */
|
|
153
|
+
export type MCPNegotiationState =
|
|
154
|
+
/** No negotiation attempt has completed yet. */
|
|
155
|
+
"pending"
|
|
156
|
+
/** Modern era confirmed (probe or direct modern request succeeded). */
|
|
157
|
+
| "modern"
|
|
158
|
+
/** Modern era after selecting a mutually supported version from UnsupportedProtocolVersionError. */
|
|
159
|
+
| "modern-version-retry"
|
|
160
|
+
/** Legacy era via era detection (legacy server signal) under `auto`. */
|
|
161
|
+
| "legacy-fallback"
|
|
162
|
+
/** Legacy era because configuration forced it (`legacy`) or the transport is stdio. */
|
|
163
|
+
| "legacy-forced"
|
|
164
|
+
/** Negotiation failed; the connection could not be established. */
|
|
165
|
+
| "failed";
|
|
166
|
+
/** Machine-readable reasons a legacy fallback was engaged (never auth/security driven). */
|
|
167
|
+
export type MCPDowngradeReason =
|
|
168
|
+
/** `protocol: "legacy"` configured explicitly. */
|
|
169
|
+
"preference-legacy"
|
|
170
|
+
/** stdio transport has no per-request HTTP signals; legacy handshake retained. */
|
|
171
|
+
| "stdio-transport"
|
|
172
|
+
/** Probe returned 400/404/405 without a recognized modern error body. */
|
|
173
|
+
| "legacy-server-signal"
|
|
174
|
+
/** A modern server advertised only legacy-era versions in `supported`. */
|
|
175
|
+
| "server-advertised-legacy-only";
|
|
176
|
+
/**
|
|
177
|
+
* One authoritative, secret-free observation of a server's negotiated protocol
|
|
178
|
+
* state. Consumed by `/extensions` (#4291) and customization doctor (#4288);
|
|
179
|
+
* contains no credentials, tokens, metadata documents, or header values.
|
|
180
|
+
*/
|
|
181
|
+
export interface MCPProtocolObservation {
|
|
182
|
+
/** Configured preference (defaults to `auto`). */
|
|
183
|
+
preference: MCPProtocolPreference;
|
|
184
|
+
/** Effective protocol version in use, once negotiated. */
|
|
185
|
+
effectiveVersion: string | null;
|
|
186
|
+
/** Effective era, once negotiated. */
|
|
187
|
+
era: MCPProtocolEra | null;
|
|
188
|
+
/** How the effective state was reached. */
|
|
189
|
+
negotiation: MCPNegotiationState;
|
|
190
|
+
/** Why a legacy fallback engaged; null unless `negotiation` is a legacy state. */
|
|
191
|
+
downgradeReason: MCPDowngradeReason | null;
|
|
192
|
+
/** Versions the server advertised (via server/discover or version errors). */
|
|
193
|
+
supportedVersions: string[];
|
|
194
|
+
/** Self-reported server identity (display only; never security-relevant). */
|
|
195
|
+
serverInfo: {
|
|
196
|
+
name: string;
|
|
197
|
+
version: string;
|
|
198
|
+
} | null;
|
|
199
|
+
/** Lifecycle visibility for protocol features (legacy session behavior, etc). */
|
|
200
|
+
features: MCPProtocolFeatureState[];
|
|
201
|
+
/** v2 capability state observed for this connection. */
|
|
202
|
+
capabilities: {
|
|
203
|
+
/** server/discover answered (optional per spec; absence does not block calls). */
|
|
204
|
+
discover: "yes" | "no" | "unknown";
|
|
205
|
+
/** Server advertised tools capability. */
|
|
206
|
+
tools: boolean;
|
|
207
|
+
/** Server advertised resources capability. */
|
|
208
|
+
resources: boolean;
|
|
209
|
+
/** Server advertised prompts capability. */
|
|
210
|
+
prompts: boolean;
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
/** Initial observation before negotiation completes. */
|
|
214
|
+
export declare function createMCPProtocolObservation(preference: MCPProtocolPreference): MCPProtocolObservation;
|
|
215
|
+
/** Legacy session/transport features reported as deprecated under the feature lifecycle. */
|
|
216
|
+
export declare function legacyEraFeatureStates(): MCPProtocolFeatureState[];
|
|
217
|
+
/** Finalize an observation for a negotiated modern connection. */
|
|
218
|
+
export declare function modernEraObservation(input: {
|
|
219
|
+
preference: MCPProtocolPreference;
|
|
220
|
+
effectiveVersion: string;
|
|
221
|
+
negotiation: "modern" | "modern-version-retry";
|
|
222
|
+
supportedVersions?: string[];
|
|
223
|
+
serverInfo?: {
|
|
224
|
+
name: string;
|
|
225
|
+
version: string;
|
|
226
|
+
} | null;
|
|
227
|
+
capabilities?: {
|
|
228
|
+
tools?: boolean;
|
|
229
|
+
resources?: boolean;
|
|
230
|
+
prompts?: boolean;
|
|
231
|
+
};
|
|
232
|
+
discover: "yes" | "no" | "unknown";
|
|
233
|
+
}): MCPProtocolObservation;
|
|
234
|
+
/** Finalize an observation for a negotiated legacy connection. */
|
|
235
|
+
export declare function legacyEraObservation(input: {
|
|
236
|
+
preference: MCPProtocolPreference;
|
|
237
|
+
effectiveVersion: string;
|
|
238
|
+
negotiation: "legacy-fallback" | "legacy-forced";
|
|
239
|
+
downgradeReason: MCPDowngradeReason;
|
|
240
|
+
serverInfo?: {
|
|
241
|
+
name: string;
|
|
242
|
+
version: string;
|
|
243
|
+
} | null;
|
|
244
|
+
capabilities?: {
|
|
245
|
+
tools?: boolean;
|
|
246
|
+
resources?: boolean;
|
|
247
|
+
prompts?: boolean;
|
|
248
|
+
};
|
|
249
|
+
}): MCPProtocolObservation;
|
|
250
|
+
/** Cache scope hint: public results may cross authorization contexts; private must not. */
|
|
251
|
+
export type MCPCacheScope = "public" | "private";
|
|
252
|
+
/** Server-supplied caching hints carried on cacheable `complete` results. */
|
|
253
|
+
export interface MCPCacheHints {
|
|
254
|
+
/** Milliseconds the result may be considered fresh; absent/negative means 0. */
|
|
255
|
+
ttlMs?: number;
|
|
256
|
+
cacheScope?: MCPCacheScope;
|
|
257
|
+
}
|
|
258
|
+
/** Normalize raw hints: negative ttlMs is treated as 0 per the specification. */
|
|
259
|
+
export declare function normalizeMcpCacheHints(raw: unknown): MCPCacheHints | undefined;
|
|
260
|
+
/** Result type marker for interim input requests. */
|
|
261
|
+
export declare const MCP_RESULT_TYPE_INPUT_REQUIRED = "input_required";
|
|
262
|
+
export declare const MCP_RESULT_TYPE_COMPLETE = "complete";
|
|
263
|
+
/** Input request methods a server may embed in an InputRequiredResult. */
|
|
264
|
+
export declare const MCP_INPUT_REQUEST_METHODS: Set<string>;
|
|
265
|
+
export interface MCPInputRequiredData {
|
|
266
|
+
inputRequests: Record<string, {
|
|
267
|
+
method: string;
|
|
268
|
+
params?: Record<string, unknown>;
|
|
269
|
+
}>;
|
|
270
|
+
requestState?: string;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Extract MRTR input data from a JSON-RPC result. Returns null when the result
|
|
274
|
+
* is a normal `complete` result (including legacy results with no resultType,
|
|
275
|
+
* which the specification requires clients to treat as `"complete"`).
|
|
276
|
+
* Throws on a malformed `input_required` payload.
|
|
277
|
+
*/
|
|
278
|
+
export declare function extractMcpInputRequired(result: unknown): MCPInputRequiredData | null;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type UpsertMCPServerResult } from "./config-writer";
|
|
2
|
+
import type { MCPConfigFile, MCPServerConfig } from "./types";
|
|
3
|
+
export type MCPConfigScope = "user" | "project";
|
|
4
|
+
/** Resolved scope + path + parsed config (provenance for diagnostics). */
|
|
5
|
+
export interface ScopeMCPConfigSnapshot {
|
|
6
|
+
scope: MCPConfigScope;
|
|
7
|
+
path: string;
|
|
8
|
+
config: MCPConfigFile;
|
|
9
|
+
}
|
|
10
|
+
/** Resolve the canonical file path for a native MCP config scope. */
|
|
11
|
+
export declare function resolveScopeMCPConfigPath(scope: MCPConfigScope, cwd?: string): string;
|
|
12
|
+
/** Read a native MCP config for a scope. Returns an empty config when absent. */
|
|
13
|
+
export declare function readScopeMCPConfig(scope: MCPConfigScope, cwd?: string): Promise<ScopeMCPConfigSnapshot>;
|
|
14
|
+
/** Add a server, or overwrite an existing one only when `force` is set. */
|
|
15
|
+
export declare function upsertScopeMCPServer(scope: MCPConfigScope, name: string, config: MCPServerConfig, options?: {
|
|
16
|
+
force?: boolean;
|
|
17
|
+
}, cwd?: string): Promise<ScopeMCPConfigSnapshot & {
|
|
18
|
+
result: UpsertMCPServerResult;
|
|
19
|
+
}>;
|
|
20
|
+
/** Remove a server from a scope (throws when the name does not exist). */
|
|
21
|
+
export declare function removeScopeMCPServer(scope: MCPConfigScope, name: string, cwd?: string): Promise<ScopeMCPConfigSnapshot>;
|
|
22
|
+
/** Get a specific server config from a scope. */
|
|
23
|
+
export declare function getScopeMCPServer(scope: MCPConfigScope, name: string, cwd?: string): Promise<{
|
|
24
|
+
scope: MCPConfigScope;
|
|
25
|
+
path: string;
|
|
26
|
+
config: MCPServerConfig | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
/** Read the disabled-servers denylist for a scope. */
|
|
29
|
+
export declare function readScopeDisabledServers(scope: MCPConfigScope, cwd?: string): Promise<string[]>;
|
|
@@ -9,10 +9,20 @@ import type { SourceMeta } from "../capability/types";
|
|
|
9
9
|
import type { CustomTool, CustomToolContext, CustomToolResult, RenderResultOptions } from "../extensibility/custom-tools/types";
|
|
10
10
|
import type { Theme } from "../modes/theme/theme";
|
|
11
11
|
import type { MCPPoolLease } from "./pool";
|
|
12
|
-
import type { MCPContent, MCPServerConnection, MCPToolDefinition } from "./types";
|
|
12
|
+
import type { MCPContent, MCPInputRequestHandler, MCPServerConnection, MCPToolDefinition } from "./types";
|
|
13
13
|
/** Reconnect callback: tears down stale connection, returns new one or null. */
|
|
14
14
|
export type MCPReconnect = () => Promise<MCPServerConnection | null>;
|
|
15
15
|
type MCPToolTarget = MCPServerConnection | MCPPoolLease;
|
|
16
|
+
/** Options shared by MCPTool and DeferredMCPTool. */
|
|
17
|
+
export interface MCPToolOptions {
|
|
18
|
+
/** Shared lease policy: never retry the original request after transport/auth failure. */
|
|
19
|
+
noReplay?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Lazy resolver for the modern MRTR `input_required` handler, registered by the
|
|
22
|
+
* owning manager/runtime. Resolved per call so late registration still applies.
|
|
23
|
+
*/
|
|
24
|
+
inputHandler?: () => MCPInputRequestHandler | undefined;
|
|
25
|
+
}
|
|
16
26
|
export declare function isRetriableConnectionError(error: unknown): boolean;
|
|
17
27
|
/** Details included in MCP tool results for rendering */
|
|
18
28
|
export interface MCPToolDetails {
|
|
@@ -57,12 +67,8 @@ export declare class MCPTool implements CustomTool<TSchema, MCPToolDetails> {
|
|
|
57
67
|
readonly mcpServerName: string;
|
|
58
68
|
private connection;
|
|
59
69
|
/** Create MCPTool instances for all tools from an MCP server lease/connection. */
|
|
60
|
-
static fromTools(target: MCPToolTarget, tools: MCPToolDefinition[], reconnect?: MCPReconnect, options?:
|
|
61
|
-
|
|
62
|
-
}): MCPTool[];
|
|
63
|
-
constructor(target: MCPToolTarget, tool: MCPToolDefinition, reconnect?: MCPReconnect | undefined, options?: {
|
|
64
|
-
noReplay?: boolean;
|
|
65
|
-
});
|
|
70
|
+
static fromTools(target: MCPToolTarget, tools: MCPToolDefinition[], reconnect?: MCPReconnect, options?: MCPToolOptions): MCPTool[];
|
|
71
|
+
constructor(target: MCPToolTarget, tool: MCPToolDefinition, reconnect?: MCPReconnect | undefined, options?: MCPToolOptions);
|
|
66
72
|
renderCall(args: unknown, _options: RenderResultOptions, theme: Theme): import("@gajae-code/tui").Component;
|
|
67
73
|
renderResult(result: CustomToolResult<MCPToolDetails>, options: RenderResultOptions, theme: Theme, args?: unknown): import("@gajae-code/tui").Component;
|
|
68
74
|
execute(_toolCallId: string, params: unknown, _onUpdate: AgentToolUpdateCallback<MCPToolDetails> | undefined, _ctx: CustomToolContext, signal?: AbortSignal): Promise<CustomToolResult<MCPToolDetails>>;
|
|
@@ -85,12 +91,8 @@ export declare class DeferredMCPTool implements CustomTool<TSchema, MCPToolDetai
|
|
|
85
91
|
/** Server name */
|
|
86
92
|
readonly mcpServerName: string;
|
|
87
93
|
/** Create DeferredMCPTool instances for all tools from an MCP server */
|
|
88
|
-
static fromTools(serverName: string, tools: MCPToolDefinition[], getConnection: () => Promise<MCPServerConnection>, source?: SourceMeta, reconnect?: MCPReconnect, options?:
|
|
89
|
-
|
|
90
|
-
}): DeferredMCPTool[];
|
|
91
|
-
constructor(serverName: string, tool: MCPToolDefinition, getConnection: () => Promise<MCPServerConnection>, source?: SourceMeta, reconnect?: MCPReconnect | undefined, options?: {
|
|
92
|
-
noReplay?: boolean;
|
|
93
|
-
});
|
|
94
|
+
static fromTools(serverName: string, tools: MCPToolDefinition[], getConnection: () => Promise<MCPServerConnection>, source?: SourceMeta, reconnect?: MCPReconnect, options?: MCPToolOptions): DeferredMCPTool[];
|
|
95
|
+
constructor(serverName: string, tool: MCPToolDefinition, getConnection: () => Promise<MCPServerConnection>, source?: SourceMeta, reconnect?: MCPReconnect | undefined, options?: MCPToolOptions);
|
|
94
96
|
renderCall(args: unknown, _options: RenderResultOptions, theme: Theme): import("@gajae-code/tui").Component;
|
|
95
97
|
renderResult(result: CustomToolResult<MCPToolDetails>, options: RenderResultOptions, theme: Theme, args?: unknown): import("@gajae-code/tui").Component;
|
|
96
98
|
execute(_toolCallId: string, params: unknown, _onUpdate: AgentToolUpdateCallback<MCPToolDetails> | undefined, _ctx: CustomToolContext, signal?: AbortSignal): Promise<CustomToolResult<MCPToolDetails>>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { MCPHttpServerConfig, MCPRequestOptions, MCPSseServerConfig, MCPTransport } from "../../runtime-mcp/types";
|
|
2
|
+
import { type MCPModernClientContext, type MCPProtocolEra } from "../protocol";
|
|
2
3
|
/**
|
|
3
4
|
* HTTP transport for MCP servers.
|
|
4
5
|
* Uses POST for requests, supports SSE responses.
|
|
@@ -16,6 +17,14 @@ export declare class HttpTransport implements MCPTransport {
|
|
|
16
17
|
get connected(): boolean;
|
|
17
18
|
get closeBeforeReconnect(): false;
|
|
18
19
|
get url(): string;
|
|
20
|
+
/** Negotiated protocol era (defaults to legacy until the client negotiates). */
|
|
21
|
+
get era(): MCPProtocolEra;
|
|
22
|
+
/**
|
|
23
|
+
* Select the protocol era. Modern mode requires the per-request client
|
|
24
|
+
* context (protocol version, identity, capabilities) mirrored into `_meta`
|
|
25
|
+
* and HTTP headers on every request.
|
|
26
|
+
*/
|
|
27
|
+
setProtocolMode(era: MCPProtocolEra, modernContext?: MCPModernClientContext): void;
|
|
19
28
|
/**
|
|
20
29
|
* Mark transport as connected.
|
|
21
30
|
* HTTP doesn't need persistent connection, but we track state.
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MCP (Model Context Protocol) type definitions.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Legacy sessionful surface based on MCP specification 2025-03-26; the modern
|
|
5
|
+
* stateless generation (2026-07-28, "MCP v2") is modeled in ./protocol.ts.
|
|
6
|
+
* https://modelcontextprotocol.io/specification/2026-07-28/
|
|
6
7
|
*/
|
|
7
8
|
import type { SourceMeta } from "../capability/types";
|
|
9
|
+
import type { MCPCacheHints, MCPProtocolObservation, MCPProtocolPreference } from "./protocol";
|
|
8
10
|
export interface JsonRpcRequest {
|
|
9
11
|
jsonrpc: "2.0";
|
|
10
12
|
id: string | number;
|
|
@@ -47,15 +49,23 @@ export interface MCPServerConfigBase {
|
|
|
47
49
|
enabled?: boolean;
|
|
48
50
|
/**
|
|
49
51
|
* Whether an explicit runtime MCP consumer should connect this server
|
|
50
|
-
* automatically when that consumer starts (default: true).
|
|
51
|
-
* `gjc`, `gjc --tmux`, and print-mode sessions
|
|
52
|
-
* registrations
|
|
52
|
+
* automatically when that consumer starts (default: true). Ordinary
|
|
53
|
+
* standalone `gjc`, `gjc --tmux`, and print-mode sessions honor autoload for
|
|
54
|
+
* conventional registrations; `autoload: false` keeps a server configured
|
|
55
|
+
* for on-demand `/mcp` connection. `--no-mcp` opts a session out entirely.
|
|
53
56
|
*/
|
|
54
57
|
autoload?: boolean;
|
|
55
58
|
/** Connection timeout in milliseconds (default: 30000) */
|
|
56
59
|
timeout?: number;
|
|
57
60
|
/** Pool identity mode. W2 defaults to one physical connection per session. */
|
|
58
61
|
sharing?: "per-session" | "shared";
|
|
62
|
+
/**
|
|
63
|
+
* Protocol preference for remote (http/sse) servers: `auto` (default) negotiates
|
|
64
|
+
* the modern 2026-07-28 stateless protocol first with a bounded, observable
|
|
65
|
+
* legacy fallback; `2026-07-28` is strict modern-only; `legacy` forces the
|
|
66
|
+
* bounded compatibility handshake. Ignored by stdio servers (always legacy-era).
|
|
67
|
+
*/
|
|
68
|
+
protocol?: MCPProtocolPreference;
|
|
59
69
|
/** Authentication configuration (optional) */
|
|
60
70
|
auth?: MCPAuthConfig;
|
|
61
71
|
/** OAuth configuration for servers requiring explicit client credentials */
|
|
@@ -113,6 +123,10 @@ export interface MCPClientCapabilities {
|
|
|
113
123
|
listChanged?: boolean;
|
|
114
124
|
};
|
|
115
125
|
sampling?: Record<string, never>;
|
|
126
|
+
/** Form-mode elicitation support (modern MRTR `elicitation/create` input requests). */
|
|
127
|
+
elicitation?: {
|
|
128
|
+
form?: Record<string, never>;
|
|
129
|
+
};
|
|
116
130
|
experimental?: Record<string, unknown>;
|
|
117
131
|
}
|
|
118
132
|
/** MCP server capabilities */
|
|
@@ -155,7 +169,7 @@ export interface MCPToolDefinition {
|
|
|
155
169
|
};
|
|
156
170
|
}
|
|
157
171
|
/** tools/list response */
|
|
158
|
-
export interface MCPToolsListResult {
|
|
172
|
+
export interface MCPToolsListResult extends MCPCacheHints {
|
|
159
173
|
tools: MCPToolDefinition[];
|
|
160
174
|
nextCursor?: string;
|
|
161
175
|
}
|
|
@@ -195,12 +209,66 @@ export interface MCPToolCallResult {
|
|
|
195
209
|
export declare class MCPExpectedFailure extends Error {
|
|
196
210
|
constructor(cause?: unknown);
|
|
197
211
|
}
|
|
212
|
+
/** HTTP-level request failure carrying structured detail for era classification. */
|
|
213
|
+
export declare class MCPHttpRequestError extends Error {
|
|
214
|
+
/** HTTP status code. */
|
|
215
|
+
readonly status: number;
|
|
216
|
+
/** Parsed JSON body when the error payload was JSON; undefined otherwise. */
|
|
217
|
+
readonly body: unknown;
|
|
218
|
+
constructor(status: number, message: string, body?: unknown);
|
|
219
|
+
}
|
|
220
|
+
/** JSON-RPC error response failure carrying the protocol error code. */
|
|
221
|
+
export declare class MCPJsonRpcError extends Error {
|
|
222
|
+
readonly code: number;
|
|
223
|
+
readonly data?: unknown;
|
|
224
|
+
constructor(code: number, message: string, data?: unknown);
|
|
225
|
+
}
|
|
198
226
|
export interface MCPRequestOptions {
|
|
199
227
|
/** Abort signal (e.g. Escape-to-interrupt) */
|
|
200
228
|
signal?: AbortSignal;
|
|
201
229
|
/** Shared lease policy: never retry the original request after transport/auth failure. */
|
|
202
230
|
noReplay?: boolean;
|
|
231
|
+
/**
|
|
232
|
+
* Handler for modern MRTR `input_required` results (elicitation, roots, sampling).
|
|
233
|
+
* When absent, an `input_required` result fails explicitly instead of hanging.
|
|
234
|
+
*/
|
|
235
|
+
inputHandler?: MCPInputRequestHandler;
|
|
236
|
+
/** Extra mirrored headers for modern requests (`Mcp-Param-*` from x-mcp-header bindings). */
|
|
237
|
+
mcpParamHeaders?: Record<string, string>;
|
|
238
|
+
}
|
|
239
|
+
/** Context for one server input request gathered during a modern MRTR exchange. */
|
|
240
|
+
export interface MCPInputRequestContext {
|
|
241
|
+
/** Server being called. */
|
|
242
|
+
serverName: string;
|
|
243
|
+
/** Original client request method (`tools/call`, `prompts/get`, `resources/read`). */
|
|
244
|
+
originMethod: string;
|
|
245
|
+
/**
|
|
246
|
+
* Stable correlation id shared by the initial request and its exactly-once
|
|
247
|
+
* retry, fencing the accepted input to this exchange.
|
|
248
|
+
*/
|
|
249
|
+
correlationId: string;
|
|
250
|
+
/** Request-scoped abort signal (cancellation/timeout of the original call). */
|
|
251
|
+
signal?: AbortSignal;
|
|
203
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* Outcome of gathering one server input request. `result` values are placed in
|
|
255
|
+
* the retry's `inputResponses` under the request key. `failed` outcomes abort
|
|
256
|
+
* the MRTR exchange with an explicit error — except elicitation decline/cancel,
|
|
257
|
+
* which the handler expresses as an ElicitResult-shaped `result`.
|
|
258
|
+
*/
|
|
259
|
+
export type MCPInputRequestHandlerResult = {
|
|
260
|
+
kind: "result";
|
|
261
|
+
result: unknown;
|
|
262
|
+
} | {
|
|
263
|
+
kind: "failed";
|
|
264
|
+
reason: "declined" | "cancelled" | "timeout" | "unavailable" | "error";
|
|
265
|
+
message?: string;
|
|
266
|
+
};
|
|
267
|
+
/** Handler for one server input request inside an `input_required` result. */
|
|
268
|
+
export type MCPInputRequestHandler = (key: string, request: {
|
|
269
|
+
method: string;
|
|
270
|
+
params?: Record<string, unknown>;
|
|
271
|
+
}, context: MCPInputRequestContext) => Promise<MCPInputRequestHandlerResult>;
|
|
204
272
|
/** Transport interface - abstracts stdio/http */
|
|
205
273
|
export interface MCPTransport {
|
|
206
274
|
/** Send a request and wait for response */
|
|
@@ -246,6 +314,15 @@ export interface MCPServerConnection {
|
|
|
246
314
|
instructions?: string;
|
|
247
315
|
/** Cached prompts (populated on demand) */
|
|
248
316
|
prompts?: MCPPrompt[];
|
|
317
|
+
/**
|
|
318
|
+
* Authoritative protocol observation for this connection (preference,
|
|
319
|
+
* negotiated era/version, downgrade decision, deprecation state). Secret-free.
|
|
320
|
+
*/
|
|
321
|
+
protocol: MCPProtocolObservation;
|
|
322
|
+
/** Freshness deadline (ms epoch) for the cached tool catalog, from server ttlMs hints. */
|
|
323
|
+
toolsFreshUntil?: number;
|
|
324
|
+
/** Cache scope of the cached tool catalog; private entries never cross credential identities. */
|
|
325
|
+
toolsCacheScope?: "public" | "private";
|
|
249
326
|
}
|
|
250
327
|
/** MCP tool with server context */
|
|
251
328
|
export interface MCPToolWithServer {
|
|
@@ -278,12 +355,12 @@ export interface MCPResourceTemplate {
|
|
|
278
355
|
annotations?: MCPAnnotations;
|
|
279
356
|
}
|
|
280
357
|
/** Result of resources/list */
|
|
281
|
-
export interface MCPResourcesListResult {
|
|
358
|
+
export interface MCPResourcesListResult extends MCPCacheHints {
|
|
282
359
|
resources: MCPResource[];
|
|
283
360
|
nextCursor?: string;
|
|
284
361
|
}
|
|
285
362
|
/** Result of resources/templates/list */
|
|
286
|
-
export interface MCPResourceTemplatesListResult {
|
|
363
|
+
export interface MCPResourceTemplatesListResult extends MCPCacheHints {
|
|
287
364
|
resourceTemplates: MCPResourceTemplate[];
|
|
288
365
|
nextCursor?: string;
|
|
289
366
|
}
|
|
@@ -295,7 +372,7 @@ export interface MCPResourceContentItem {
|
|
|
295
372
|
blob?: string;
|
|
296
373
|
}
|
|
297
374
|
/** Result of resources/read */
|
|
298
|
-
export interface MCPResourceReadResult {
|
|
375
|
+
export interface MCPResourceReadResult extends MCPCacheHints {
|
|
299
376
|
contents: MCPResourceContentItem[];
|
|
300
377
|
}
|
|
301
378
|
/** Params for resources/read */
|
|
@@ -320,7 +397,7 @@ export interface MCPPrompt {
|
|
|
320
397
|
arguments?: MCPPromptArgument[];
|
|
321
398
|
}
|
|
322
399
|
/** Result of prompts/list */
|
|
323
|
-
export interface MCPPromptsListResult {
|
|
400
|
+
export interface MCPPromptsListResult extends MCPCacheHints {
|
|
324
401
|
prompts: MCPPrompt[];
|
|
325
402
|
nextCursor?: string;
|
|
326
403
|
}
|
|
@@ -347,6 +424,21 @@ export interface MCPGetPromptResult {
|
|
|
347
424
|
description?: string;
|
|
348
425
|
messages: MCPPromptMessage[];
|
|
349
426
|
}
|
|
427
|
+
/** Result of the optional modern `server/discover` request. */
|
|
428
|
+
export interface MCPDiscoverResult extends MCPCacheHints {
|
|
429
|
+
/** Protocol versions the server supports. */
|
|
430
|
+
supportedVersions: string[];
|
|
431
|
+
/** Capabilities the server supports. */
|
|
432
|
+
capabilities: MCPServerCapabilities;
|
|
433
|
+
/** Optional natural-language usage guidance. */
|
|
434
|
+
instructions?: string;
|
|
435
|
+
/** Result metadata; `io.modelcontextprotocol/serverInfo` carries the identity. */
|
|
436
|
+
_meta?: Record<string, unknown>;
|
|
437
|
+
}
|
|
438
|
+
/** Decoded `server/discover` payload with the extracted server identity. */
|
|
439
|
+
export interface MCPDiscoverResultLite extends MCPDiscoverResult {
|
|
440
|
+
serverInfo?: MCPImplementation;
|
|
441
|
+
}
|
|
350
442
|
/** MCP server notification method names */
|
|
351
443
|
export declare const MCPNotificationMethods: {
|
|
352
444
|
readonly TOOLS_LIST_CHANGED: "notifications/tools/list_changed";
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { SdkClient, SdkClientError
|
|
1
|
+
import { type SdkClient, SdkClientError } from "../client";
|
|
2
|
+
import type { AbortScope } from "../host/control/operations";
|
|
3
|
+
import { type SessionAttachment, type SessionRouter } from "../router";
|
|
2
4
|
import { ACP_SESSION_RECONNECT } from "../session-reconnect";
|
|
3
5
|
import type { SessionLifecycleMcpServer } from "./mcp";
|
|
4
6
|
type JsonObject = Record<string, unknown>;
|
|
@@ -14,9 +16,11 @@ export interface AcpProviderRegistration {
|
|
|
14
16
|
definitions: unknown;
|
|
15
17
|
}
|
|
16
18
|
export interface AcpSdkAdapterOptions {
|
|
17
|
-
|
|
18
|
-
token: string;
|
|
19
|
+
/** Broker lifecycle transport only. Live session work requires `router` plus an opaque attachment. */
|
|
19
20
|
client?: SdkClient;
|
|
21
|
+
router?: SessionRouter;
|
|
22
|
+
attachment?: SessionAttachment;
|
|
23
|
+
sessionId?: string;
|
|
20
24
|
connection?: AcpReverseConnection;
|
|
21
25
|
providers?: AcpProviderRegistration[];
|
|
22
26
|
/** Lease IDs persisted by the ACP host across a WebSocket reconnect. */
|
|
@@ -34,7 +38,7 @@ export declare class AcpSdkAdapterError extends Error {
|
|
|
34
38
|
*/
|
|
35
39
|
export declare function acpMcpLaunchFailure(error: unknown, mcpServers: SessionLifecycleMcpServer[]): unknown;
|
|
36
40
|
export type AcpReconnectFailedHandler = (error: SdkClientError) => void;
|
|
37
|
-
export type AcpFrameHandler = (frame:
|
|
41
|
+
export type AcpFrameHandler = (frame: Record<string, unknown>) => void;
|
|
38
42
|
export { ACP_SESSION_RECONNECT };
|
|
39
43
|
/**
|
|
40
44
|
* Pure ACP-to-SDK adapter. It deliberately owns neither an AgentSession nor an
|
|
@@ -44,6 +48,10 @@ export declare class AcpSdkAdapter {
|
|
|
44
48
|
#private;
|
|
45
49
|
constructor(options: AcpSdkAdapterOptions);
|
|
46
50
|
static connect(options: AcpSdkAdapterOptions): Promise<AcpSdkAdapter>;
|
|
51
|
+
acceptAttachment(attachment: SessionAttachment): void;
|
|
52
|
+
revokeAttachment(attachment: SessionAttachment): void;
|
|
53
|
+
attachmentReady(attachment: SessionAttachment): Promise<void>;
|
|
54
|
+
acceptFrame(frame: Record<string, unknown>): void;
|
|
47
55
|
get leaseIds(): ReadonlyMap<string, string>;
|
|
48
56
|
get connectionId(): string | undefined;
|
|
49
57
|
onReconnectFailed(handler: AcpReconnectFailedHandler): () => void;
|
|
@@ -51,11 +59,24 @@ export declare class AcpSdkAdapter {
|
|
|
51
59
|
start(): Promise<void>;
|
|
52
60
|
close(): Promise<void>;
|
|
53
61
|
prompt(params: JsonObject | string): Promise<unknown>;
|
|
54
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Ends the active turn with a C04 terminal abort. The default `scope:"turn"`
|
|
64
|
+
* only stops the current turn, matching the SDK `turn.abort` default and
|
|
65
|
+
* other ACP clients' cancel behavior; `scope:"owned"` additionally stops
|
|
66
|
+
* exact causal owned work (background Bash/task jobs, detached subagents) so
|
|
67
|
+
* an external client can terminate everything a turn spawned. Paseo keeps
|
|
68
|
+
* owned cancels through its provider config env
|
|
69
|
+
* (`GJC_ACP_ABORT_SCOPE=owned`) without source changes. A fresh bounded
|
|
70
|
+
* idempotency key per call keeps terminal-abort replay deterministic across
|
|
71
|
+
* retries.
|
|
72
|
+
*/
|
|
73
|
+
cancel(scope?: AbortScope): Promise<unknown>;
|
|
55
74
|
setModel(params: JsonObject | string): Promise<unknown>;
|
|
56
75
|
control(operation: string, input?: JsonObject): Promise<unknown>;
|
|
57
76
|
query(query: string, input?: JsonObject, cursor?: string): Promise<unknown>;
|
|
58
77
|
global(operation: string, input?: JsonObject, idempotencyKey?: string): Promise<unknown>;
|
|
78
|
+
/** Uses lifecycle endpoint credentials only inside the ACP session owner. */
|
|
79
|
+
lifecycle(operation: string, input?: JsonObject, idempotencyKey?: string): Promise<unknown>;
|
|
59
80
|
sdkControl(params: {
|
|
60
81
|
operation: string;
|
|
61
82
|
input?: JsonObject;
|