@dexto/core 1.1.10 → 1.2.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/README.md +24 -4
- package/dist/Dexto.cjs +251 -0
- package/dist/Dexto.d.ts +191 -0
- package/dist/Dexto.d.ts.map +1 -0
- package/dist/Dexto.js +228 -0
- package/dist/agent/DextoAgent.cjs +520 -126
- package/dist/agent/DextoAgent.d.ts +182 -106
- package/dist/agent/DextoAgent.d.ts.map +1 -0
- package/dist/agent/DextoAgent.js +480 -126
- package/dist/agent/agentCard.d.ts +4 -7
- package/dist/agent/agentCard.d.ts.map +1 -0
- package/dist/agent/agentCard.js +1 -0
- package/dist/agent/error-codes.cjs +3 -0
- package/dist/agent/error-codes.d.ts +5 -3
- package/dist/agent/error-codes.d.ts.map +1 -0
- package/dist/agent/error-codes.js +4 -0
- package/dist/agent/errors.cjs +26 -0
- package/dist/agent/errors.d.ts +10 -17
- package/dist/agent/errors.d.ts.map +1 -0
- package/dist/agent/errors.js +27 -0
- package/dist/agent/index.cjs +3 -0
- package/dist/agent/index.d.ts +6 -57
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +3 -0
- package/dist/agent/registry/error-codes.cjs +2 -0
- package/dist/agent/registry/error-codes.d.ts +4 -3
- package/dist/agent/registry/error-codes.d.ts.map +1 -0
- package/dist/agent/registry/error-codes.js +3 -0
- package/dist/agent/registry/errors.cjs +58 -28
- package/dist/agent/registry/errors.d.ts +32 -36
- package/dist/agent/registry/errors.d.ts.map +1 -0
- package/dist/agent/registry/errors.js +59 -28
- package/dist/agent/registry/registry.cjs +242 -54
- package/dist/agent/registry/registry.d.ts +84 -21
- package/dist/agent/registry/registry.d.ts.map +1 -0
- package/dist/agent/registry/registry.js +252 -55
- package/dist/agent/registry/types.cjs +36 -3
- package/dist/agent/registry/types.d.ts +66 -24
- package/dist/agent/registry/types.d.ts.map +1 -0
- package/dist/agent/registry/types.js +34 -2
- package/dist/agent/registry/user-registry.cjs +140 -0
- package/dist/agent/registry/user-registry.d.ts +34 -0
- package/dist/agent/registry/user-registry.d.ts.map +1 -0
- package/dist/agent/registry/user-registry.js +105 -0
- package/dist/agent/schemas.cjs +22 -3
- package/dist/agent/schemas.d.ts +811 -479
- package/dist/agent/schemas.d.ts.map +1 -0
- package/dist/agent/schemas.js +23 -3
- package/dist/agent/state-manager.d.ts +7 -12
- package/dist/agent/state-manager.d.ts.map +1 -0
- package/dist/agent/state-manager.js +1 -0
- package/dist/approval/error-codes.cjs +44 -0
- package/dist/approval/error-codes.d.ts +21 -0
- package/dist/approval/error-codes.d.ts.map +1 -0
- package/dist/approval/error-codes.js +21 -0
- package/dist/approval/errors.cjs +251 -0
- package/dist/approval/errors.d.ts +110 -0
- package/dist/approval/errors.d.ts.map +1 -0
- package/dist/approval/errors.js +228 -0
- package/dist/approval/index.cjs +84 -0
- package/dist/approval/index.d.ts +12 -0
- package/dist/approval/index.d.ts.map +1 -0
- package/dist/approval/index.js +56 -0
- package/dist/approval/manager.cjs +189 -0
- package/dist/approval/manager.d.ts +131 -0
- package/dist/approval/manager.d.ts.map +1 -0
- package/dist/approval/manager.js +166 -0
- package/dist/approval/providers/event-based-approval-provider.cjs +156 -0
- package/dist/approval/providers/event-based-approval-provider.d.ts +39 -0
- package/dist/approval/providers/event-based-approval-provider.d.ts.map +1 -0
- package/dist/approval/providers/event-based-approval-provider.js +133 -0
- package/dist/approval/providers/factory.cjs +38 -0
- package/dist/approval/providers/factory.d.ts +12 -0
- package/dist/approval/providers/factory.d.ts.map +1 -0
- package/dist/approval/providers/factory.js +15 -0
- package/dist/approval/providers/noop-approval-provider.cjs +54 -0
- package/dist/approval/providers/noop-approval-provider.d.ts +18 -0
- package/dist/approval/providers/noop-approval-provider.d.ts.map +1 -0
- package/dist/approval/providers/noop-approval-provider.js +31 -0
- package/dist/approval/schemas.cjs +204 -0
- package/dist/approval/schemas.d.ts +775 -0
- package/dist/approval/schemas.d.ts.map +1 -0
- package/dist/approval/schemas.js +159 -0
- package/dist/approval/types.cjs +42 -0
- package/dist/approval/types.d.ts +166 -0
- package/dist/approval/types.d.ts.map +1 -0
- package/dist/approval/types.js +18 -0
- package/dist/chunk-C6A6W6XS.js +53 -0
- package/dist/config/agent-resolver.d.ts +3 -4
- package/dist/config/agent-resolver.d.ts.map +1 -0
- package/dist/config/agent-resolver.js +1 -0
- package/dist/config/error-codes.d.ts +2 -3
- package/dist/config/error-codes.d.ts.map +1 -0
- package/dist/config/error-codes.js +1 -0
- package/dist/config/errors.d.ts +3 -18
- package/dist/config/errors.d.ts.map +1 -0
- package/dist/config/errors.js +1 -0
- package/dist/config/index.d.ts +4 -7
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/loader.d.ts +2 -5
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +1 -0
- package/dist/config/writer.d.ts +8 -11
- package/dist/config/writer.d.ts.map +1 -0
- package/dist/config/writer.js +1 -0
- package/dist/context/compression/middle-removal.d.ts +3 -6
- package/dist/context/compression/middle-removal.d.ts.map +1 -0
- package/dist/context/compression/middle-removal.js +1 -0
- package/dist/context/compression/oldest-removal.d.ts +3 -6
- package/dist/context/compression/oldest-removal.d.ts.map +1 -0
- package/dist/context/compression/oldest-removal.js +1 -0
- package/dist/context/compression/types.d.ts +2 -5
- package/dist/context/compression/types.d.ts.map +1 -0
- package/dist/context/error-codes.d.ts +2 -3
- package/dist/context/error-codes.d.ts.map +1 -0
- package/dist/context/error-codes.js +1 -0
- package/dist/context/errors.d.ts +3 -18
- package/dist/context/errors.d.ts.map +1 -0
- package/dist/context/errors.js +1 -0
- package/dist/context/index.cjs +11 -0
- package/dist/context/index.d.ts +4 -19
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +6 -0
- package/dist/context/manager.cjs +156 -24
- package/dist/context/manager.d.ts +28 -20
- package/dist/context/manager.d.ts.map +1 -0
- package/dist/context/manager.js +153 -25
- package/dist/context/media-helpers.cjs +40 -0
- package/dist/context/media-helpers.d.ts +15 -0
- package/dist/context/media-helpers.d.ts.map +1 -0
- package/dist/context/media-helpers.js +16 -0
- package/dist/context/types.d.ts +27 -10
- package/dist/context/types.d.ts.map +1 -0
- package/dist/context/utils.cjs +907 -71
- package/dist/context/utils.d.ts +111 -15
- package/dist/context/utils.d.ts.map +1 -0
- package/dist/context/utils.js +896 -70
- package/dist/errors/DextoBaseError.d.ts +2 -3
- package/dist/errors/DextoBaseError.d.ts.map +1 -0
- package/dist/errors/DextoBaseError.js +1 -0
- package/dist/errors/DextoRuntimeError.d.ts +5 -16
- package/dist/errors/DextoRuntimeError.d.ts.map +1 -0
- package/dist/errors/DextoRuntimeError.js +1 -0
- package/dist/errors/DextoValidationError.d.ts +3 -16
- package/dist/errors/DextoValidationError.d.ts.map +1 -0
- package/dist/errors/DextoValidationError.js +1 -0
- package/dist/errors/index.d.ts +7 -14
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/errors/result-bridge.d.ts +3 -18
- package/dist/errors/result-bridge.d.ts.map +1 -0
- package/dist/errors/result-bridge.js +1 -0
- package/dist/errors/types.cjs +7 -0
- package/dist/errors/types.d.ts +32 -20
- package/dist/errors/types.d.ts.map +1 -0
- package/dist/errors/types.js +8 -0
- package/dist/events/index.cjs +9 -3
- package/dist/events/index.d.ts +67 -35
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +10 -3
- package/dist/filesystem/error-codes.cjs +53 -0
- package/dist/filesystem/error-codes.d.ts +31 -0
- package/dist/filesystem/error-codes.d.ts.map +1 -0
- package/dist/filesystem/error-codes.js +30 -0
- package/dist/filesystem/errors.cjs +303 -0
- package/dist/filesystem/errors.d.ts +109 -0
- package/dist/filesystem/errors.d.ts.map +1 -0
- package/dist/filesystem/errors.js +280 -0
- package/dist/filesystem/filesystem-service.cjs +482 -0
- package/dist/filesystem/filesystem-service.d.ts +57 -0
- package/dist/filesystem/filesystem-service.d.ts.map +1 -0
- package/dist/filesystem/filesystem-service.js +449 -0
- package/dist/filesystem/index.cjs +37 -0
- package/dist/filesystem/index.d.ts +11 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/dist/filesystem/index.js +11 -0
- package/dist/filesystem/path-validator.cjs +172 -0
- package/dist/filesystem/path-validator.d.ts +53 -0
- package/dist/filesystem/path-validator.d.ts.map +1 -0
- package/dist/filesystem/path-validator.js +139 -0
- package/dist/filesystem/types.d.ts +171 -0
- package/dist/filesystem/types.d.ts.map +1 -0
- package/dist/index.browser.cjs +36 -0
- package/dist/index.browser.d.ts +24 -51
- package/dist/index.browser.d.ts.map +1 -0
- package/dist/index.browser.js +35 -1
- package/dist/index.cjs +29 -1
- package/dist/index.d.ts +34 -89
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/llm/error-codes.d.ts +2 -3
- package/dist/llm/error-codes.d.ts.map +1 -0
- package/dist/llm/error-codes.js +1 -0
- package/dist/llm/errors.d.ts +3 -18
- package/dist/llm/errors.d.ts.map +1 -0
- package/dist/llm/errors.js +1 -0
- package/dist/llm/formatters/anthropic.d.ts +2 -4
- package/dist/llm/formatters/anthropic.d.ts.map +1 -0
- package/dist/llm/formatters/anthropic.js +1 -0
- package/dist/llm/formatters/factory.d.ts +3 -6
- package/dist/llm/formatters/factory.d.ts.map +1 -0
- package/dist/llm/formatters/factory.js +1 -0
- package/dist/llm/formatters/openai.d.ts +2 -4
- package/dist/llm/formatters/openai.d.ts.map +1 -0
- package/dist/llm/formatters/openai.js +1 -0
- package/dist/llm/formatters/types.d.ts +2 -4
- package/dist/llm/formatters/types.d.ts.map +1 -0
- package/dist/llm/formatters/vercel.d.ts +6 -7
- package/dist/llm/formatters/vercel.d.ts.map +1 -0
- package/dist/llm/formatters/vercel.js +1 -0
- package/dist/llm/index.d.ts +8 -39
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/registry.cjs +30 -16
- package/dist/llm/registry.d.ts +27 -30
- package/dist/llm/registry.d.ts.map +1 -0
- package/dist/llm/registry.js +31 -16
- package/dist/llm/resolver.d.ts +6 -20
- package/dist/llm/resolver.d.ts.map +1 -0
- package/dist/llm/resolver.js +1 -0
- package/dist/llm/schemas.cjs +6 -2
- package/dist/llm/schemas.d.ts +25 -17
- package/dist/llm/schemas.d.ts.map +1 -0
- package/dist/llm/schemas.js +7 -2
- package/dist/llm/services/anthropic.cjs +91 -11
- package/dist/llm/services/anthropic.d.ts +13 -32
- package/dist/llm/services/anthropic.d.ts.map +1 -0
- package/dist/llm/services/anthropic.js +51 -11
- package/dist/llm/services/factory.cjs +21 -15
- package/dist/llm/services/factory.d.ts +5 -32
- package/dist/llm/services/factory.d.ts.map +1 -0
- package/dist/llm/services/factory.js +22 -15
- package/dist/llm/services/index.d.ts +2 -21
- package/dist/llm/services/index.d.ts.map +1 -0
- package/dist/llm/services/openai.cjs +120 -16
- package/dist/llm/services/openai.d.ts +13 -32
- package/dist/llm/services/openai.d.ts.map +1 -0
- package/dist/llm/services/openai.js +80 -16
- package/dist/llm/services/test-utils.integration.cjs +3 -3
- package/dist/llm/services/test-utils.integration.d.ts +8 -49
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -0
- package/dist/llm/services/test-utils.integration.js +4 -3
- package/dist/llm/services/types.d.ts +5 -22
- package/dist/llm/services/types.d.ts.map +1 -0
- package/dist/llm/services/vercel.cjs +152 -74
- package/dist/llm/services/vercel.d.ts +18 -36
- package/dist/llm/services/vercel.d.ts.map +1 -0
- package/dist/llm/services/vercel.js +113 -75
- package/dist/llm/tokenizer/anthropic.d.ts +2 -4
- package/dist/llm/tokenizer/anthropic.d.ts.map +1 -0
- package/dist/llm/tokenizer/anthropic.js +1 -0
- package/dist/llm/tokenizer/default.d.ts +2 -4
- package/dist/llm/tokenizer/default.d.ts.map +1 -0
- package/dist/llm/tokenizer/default.js +1 -0
- package/dist/llm/tokenizer/factory.d.ts +3 -5
- package/dist/llm/tokenizer/factory.d.ts.map +1 -0
- package/dist/llm/tokenizer/factory.js +1 -0
- package/dist/llm/tokenizer/google.d.ts +2 -4
- package/dist/llm/tokenizer/google.d.ts.map +1 -0
- package/dist/llm/tokenizer/google.js +1 -0
- package/dist/llm/tokenizer/openai.cjs +1 -1
- package/dist/llm/tokenizer/openai.d.ts +3 -5
- package/dist/llm/tokenizer/openai.d.ts.map +1 -0
- package/dist/llm/tokenizer/openai.js +2 -1
- package/dist/llm/tokenizer/types.d.ts +3 -4
- package/dist/llm/tokenizer/types.d.ts.map +1 -0
- package/dist/llm/tokenizer/types.js +1 -0
- package/dist/llm/types.d.ts +11 -12
- package/dist/llm/types.d.ts.map +1 -0
- package/dist/llm/types.js +1 -0
- package/dist/llm/validation.d.ts +8 -23
- package/dist/llm/validation.d.ts.map +1 -0
- package/dist/llm/validation.js +1 -0
- package/dist/logger/browser.d.ts +4 -5
- package/dist/logger/browser.d.ts.map +1 -0
- package/dist/logger/browser.js +1 -0
- package/dist/logger/index.d.ts +2 -1
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/logger.cjs +35 -7
- package/dist/logger/logger.d.ts +47 -5
- package/dist/logger/logger.d.ts.map +1 -0
- package/dist/logger/logger.js +36 -7
- package/dist/mcp/error-codes.cjs +1 -0
- package/dist/mcp/error-codes.d.ts +3 -3
- package/dist/mcp/error-codes.d.ts.map +1 -0
- package/dist/mcp/error-codes.js +2 -0
- package/dist/mcp/errors.cjs +12 -0
- package/dist/mcp/errors.d.ts +9 -17
- package/dist/mcp/errors.d.ts.map +1 -0
- package/dist/mcp/errors.js +13 -0
- package/dist/mcp/index.d.ts +8 -26
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/manager.cjs +528 -130
- package/dist/mcp/manager.d.ts +124 -58
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +529 -130
- package/dist/mcp/mcp-client.cjs +172 -10
- package/dist/mcp/mcp-client.d.ts +36 -14
- package/dist/mcp/mcp-client.d.ts.map +1 -0
- package/dist/mcp/mcp-client.js +177 -10
- package/dist/mcp/resolver.d.ts +5 -20
- package/dist/mcp/resolver.d.ts.map +1 -0
- package/dist/mcp/resolver.js +1 -0
- package/dist/mcp/schemas.cjs +13 -5
- package/dist/mcp/schemas.d.ts +31 -28
- package/dist/mcp/schemas.d.ts.map +1 -0
- package/dist/mcp/schemas.js +11 -5
- package/dist/mcp/types.d.ts +19 -11
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/memory/error-codes.cjs +39 -0
- package/dist/memory/error-codes.d.ts +15 -0
- package/dist/memory/error-codes.d.ts.map +1 -0
- package/dist/memory/error-codes.js +16 -0
- package/dist/memory/errors.cjs +112 -0
- package/dist/memory/errors.d.ts +16 -0
- package/dist/memory/errors.d.ts.map +1 -0
- package/dist/memory/errors.js +89 -0
- package/dist/memory/index.cjs +43 -0
- package/dist/memory/index.d.ts +6 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +19 -0
- package/dist/memory/manager.cjs +214 -0
- package/dist/memory/manager.d.ts +56 -0
- package/dist/memory/manager.d.ts.map +1 -0
- package/dist/memory/manager.js +196 -0
- package/dist/memory/schemas.cjs +82 -0
- package/dist/memory/schemas.d.ts +129 -0
- package/dist/memory/schemas.d.ts.map +1 -0
- package/dist/memory/schemas.js +54 -0
- package/dist/memory/types.d.ts +76 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/plugins/builtins/content-policy.cjs +112 -0
- package/dist/plugins/builtins/content-policy.d.ts +26 -0
- package/dist/plugins/builtins/content-policy.d.ts.map +1 -0
- package/dist/plugins/builtins/content-policy.js +89 -0
- package/dist/plugins/builtins/response-sanitizer.cjs +102 -0
- package/dist/plugins/builtins/response-sanitizer.d.ts +25 -0
- package/dist/plugins/builtins/response-sanitizer.d.ts.map +1 -0
- package/dist/plugins/builtins/response-sanitizer.js +79 -0
- package/dist/plugins/error-codes.cjs +39 -0
- package/dist/plugins/error-codes.d.ts +26 -0
- package/dist/plugins/error-codes.d.ts.map +1 -0
- package/dist/plugins/error-codes.js +16 -0
- package/dist/plugins/index.cjs +54 -0
- package/dist/plugins/index.d.ts +19 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +25 -0
- package/dist/plugins/loader.cjs +151 -0
- package/dist/plugins/loader.d.ts +30 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +125 -0
- package/dist/plugins/manager.cjs +386 -0
- package/dist/plugins/manager.d.ts +97 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +363 -0
- package/dist/plugins/registrations/builtins.cjs +51 -0
- package/dist/plugins/registrations/builtins.d.ts +17 -0
- package/dist/plugins/registrations/builtins.d.ts.map +1 -0
- package/dist/plugins/registrations/builtins.js +28 -0
- package/dist/plugins/schemas.cjs +61 -0
- package/dist/plugins/schemas.d.ts +138 -0
- package/dist/plugins/schemas.d.ts.map +1 -0
- package/dist/plugins/schemas.js +36 -0
- package/dist/{storage/backend/cache-backend.cjs → plugins/types.cjs} +2 -2
- package/dist/plugins/types.d.ts +152 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/preferences/constants.d.ts +2 -3
- package/dist/preferences/constants.d.ts.map +1 -0
- package/dist/preferences/constants.js +1 -0
- package/dist/preferences/error-codes.d.ts +2 -3
- package/dist/preferences/error-codes.d.ts.map +1 -0
- package/dist/preferences/error-codes.js +1 -0
- package/dist/preferences/errors.d.ts +4 -19
- package/dist/preferences/errors.d.ts.map +1 -0
- package/dist/preferences/errors.js +1 -0
- package/dist/preferences/index.d.ts +5 -20
- package/dist/preferences/index.d.ts.map +1 -0
- package/dist/preferences/index.js +1 -0
- package/dist/preferences/loader.cjs +3 -1
- package/dist/preferences/loader.d.ts +18 -12
- package/dist/preferences/loader.d.ts.map +1 -0
- package/dist/preferences/loader.js +4 -1
- package/dist/preferences/schemas.cjs +2 -1
- package/dist/preferences/schemas.d.ts +27 -21
- package/dist/preferences/schemas.d.ts.map +1 -0
- package/dist/preferences/schemas.js +3 -1
- package/dist/process/command-validator.cjs +544 -0
- package/dist/process/command-validator.d.ts +46 -0
- package/dist/process/command-validator.d.ts.map +1 -0
- package/dist/process/command-validator.js +521 -0
- package/dist/process/error-codes.cjs +47 -0
- package/dist/process/error-codes.d.ts +25 -0
- package/dist/process/error-codes.d.ts.map +1 -0
- package/dist/process/error-codes.js +24 -0
- package/dist/process/errors.cjs +244 -0
- package/dist/process/errors.d.ts +87 -0
- package/dist/process/errors.d.ts.map +1 -0
- package/dist/process/errors.js +221 -0
- package/dist/process/index.cjs +37 -0
- package/dist/process/index.d.ts +11 -0
- package/dist/process/index.d.ts.map +1 -0
- package/dist/process/index.js +11 -0
- package/dist/process/process-service.cjs +443 -0
- package/dist/process/process-service.d.ts +62 -0
- package/dist/process/process-service.d.ts.map +1 -0
- package/dist/process/process-service.js +410 -0
- package/dist/{storage/backend/database-backend.cjs → process/types.cjs} +2 -2
- package/dist/process/types.d.ts +107 -0
- package/dist/process/types.d.ts.map +1 -0
- package/dist/prompts/error-codes.cjs +38 -0
- package/dist/prompts/error-codes.d.ts +15 -0
- package/dist/prompts/error-codes.d.ts.map +1 -0
- package/dist/prompts/error-codes.js +15 -0
- package/dist/prompts/errors.cjs +144 -0
- package/dist/prompts/errors.d.ts +45 -0
- package/dist/prompts/errors.d.ts.map +1 -0
- package/dist/prompts/errors.js +121 -0
- package/dist/prompts/index.cjs +53 -0
- package/dist/prompts/index.d.ts +13 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +21 -0
- package/dist/prompts/name-validation.cjs +45 -0
- package/dist/prompts/name-validation.d.ts +9 -0
- package/dist/prompts/name-validation.d.ts.map +1 -0
- package/dist/prompts/name-validation.js +19 -0
- package/dist/prompts/prompt-manager.cjs +374 -0
- package/dist/prompts/prompt-manager.d.ts +74 -0
- package/dist/prompts/prompt-manager.d.ts.map +1 -0
- package/dist/prompts/prompt-manager.js +353 -0
- package/dist/prompts/providers/custom-prompt-provider.cjs +283 -0
- package/dist/prompts/providers/custom-prompt-provider.d.ts +36 -0
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/custom-prompt-provider.js +260 -0
- package/dist/prompts/providers/file-prompt-provider.cjs +399 -0
- package/dist/prompts/providers/file-prompt-provider.d.ts +47 -0
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/file-prompt-provider.js +376 -0
- package/dist/prompts/providers/mcp-prompt-provider.cjs +102 -0
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +35 -0
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/mcp-prompt-provider.js +79 -0
- package/dist/prompts/providers/starter-prompt-provider.cjs +170 -0
- package/dist/prompts/providers/starter-prompt-provider.d.ts +45 -0
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/starter-prompt-provider.js +147 -0
- package/dist/prompts/schemas.cjs +54 -0
- package/dist/prompts/schemas.d.ts +65 -0
- package/dist/prompts/schemas.d.ts.map +1 -0
- package/dist/prompts/schemas.js +31 -0
- package/dist/prompts/types.cjs +16 -0
- package/dist/prompts/types.d.ts +64 -0
- package/dist/prompts/types.d.ts.map +1 -0
- package/dist/prompts/types.js +0 -0
- package/dist/prompts/utils.cjs +176 -0
- package/dist/prompts/utils.d.ts +32 -0
- package/dist/prompts/utils.d.ts.map +1 -0
- package/dist/prompts/utils.js +150 -0
- package/dist/resources/error-codes.cjs +38 -0
- package/dist/resources/error-codes.d.ts +13 -0
- package/dist/resources/error-codes.d.ts.map +1 -0
- package/dist/resources/error-codes.js +15 -0
- package/dist/resources/errors.cjs +155 -0
- package/dist/resources/errors.d.ts +48 -0
- package/dist/resources/errors.d.ts.map +1 -0
- package/dist/resources/errors.js +132 -0
- package/dist/resources/handlers/blob-handler.cjs +230 -0
- package/dist/resources/handlers/blob-handler.d.ts +38 -0
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -0
- package/dist/resources/handlers/blob-handler.js +207 -0
- package/dist/resources/handlers/factory.cjs +50 -0
- package/dist/resources/handlers/factory.d.ts +11 -0
- package/dist/resources/handlers/factory.d.ts.map +1 -0
- package/dist/resources/handlers/factory.js +26 -0
- package/dist/resources/handlers/filesystem-handler.cjs +385 -0
- package/dist/resources/handlers/filesystem-handler.d.ts +35 -0
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -0
- package/dist/resources/handlers/filesystem-handler.js +352 -0
- package/dist/resources/handlers/types.cjs +16 -0
- package/dist/resources/handlers/types.d.ts +15 -0
- package/dist/resources/handlers/types.d.ts.map +1 -0
- package/dist/resources/handlers/types.js +0 -0
- package/dist/resources/index.cjs +58 -0
- package/dist/resources/index.d.ts +39 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +35 -0
- package/dist/resources/internal-provider.cjs +141 -0
- package/dist/resources/internal-provider.d.ts +19 -0
- package/dist/resources/internal-provider.d.ts.map +1 -0
- package/dist/resources/internal-provider.js +118 -0
- package/dist/resources/manager.cjs +221 -0
- package/dist/resources/manager.d.ts +29 -0
- package/dist/resources/manager.d.ts.map +1 -0
- package/dist/resources/manager.js +198 -0
- package/dist/resources/reference-parser.cjs +217 -0
- package/dist/resources/reference-parser.d.ts +33 -0
- package/dist/resources/reference-parser.d.ts.map +1 -0
- package/dist/resources/reference-parser.js +191 -0
- package/dist/resources/schemas.cjs +98 -0
- package/dist/resources/schemas.d.ts +212 -0
- package/dist/resources/schemas.d.ts.map +1 -0
- package/dist/resources/schemas.js +73 -0
- package/dist/resources/types.cjs +16 -0
- package/dist/resources/types.d.ts +57 -0
- package/dist/resources/types.d.ts.map +1 -0
- package/dist/resources/types.js +0 -0
- package/dist/search/index.d.ts +2 -4
- package/dist/search/index.d.ts.map +1 -0
- package/dist/search/index.js +1 -0
- package/dist/search/search-service.d.ts +5 -9
- package/dist/search/search-service.d.ts.map +1 -0
- package/dist/search/search-service.js +1 -0
- package/dist/search/types.d.ts +7 -10
- package/dist/search/types.d.ts.map +1 -0
- package/dist/session/chat-session.cjs +105 -12
- package/dist/session/chat-session.d.ts +32 -43
- package/dist/session/chat-session.d.ts.map +1 -0
- package/dist/session/chat-session.js +106 -12
- package/dist/session/error-codes.d.ts +2 -3
- package/dist/session/error-codes.d.ts.map +1 -0
- package/dist/session/error-codes.js +1 -0
- package/dist/session/errors.d.ts +2 -17
- package/dist/session/errors.d.ts.map +1 -0
- package/dist/session/errors.js +1 -0
- package/dist/session/history/database.d.ts +6 -9
- package/dist/session/history/database.d.ts.map +1 -0
- package/dist/session/history/database.js +1 -0
- package/dist/session/history/factory.d.ts +4 -8
- package/dist/session/history/factory.d.ts.map +1 -0
- package/dist/session/history/factory.js +1 -0
- package/dist/session/history/memory.cjs +39 -0
- package/dist/session/history/memory.d.ts +14 -0
- package/dist/session/history/memory.d.ts.map +1 -0
- package/dist/session/history/memory.js +16 -0
- package/dist/session/history/types.d.ts +3 -6
- package/dist/session/history/types.d.ts.map +1 -0
- package/dist/session/index.d.ts +3 -50
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +1 -0
- package/dist/session/schemas.d.ts +4 -6
- package/dist/session/schemas.d.ts.map +1 -0
- package/dist/session/schemas.js +1 -0
- package/dist/session/session-manager.cjs +63 -29
- package/dist/session/session-manager.d.ts +33 -43
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +64 -29
- package/dist/session/title-generator.cjs +140 -0
- package/dist/session/title-generator.d.ts +22 -0
- package/dist/session/title-generator.d.ts.map +1 -0
- package/dist/session/title-generator.js +116 -0
- package/dist/storage/blob/factory.cjs +50 -0
- package/dist/storage/blob/factory.d.ts +10 -0
- package/dist/storage/blob/factory.d.ts.map +1 -0
- package/dist/storage/blob/factory.js +27 -0
- package/dist/storage/blob/local-blob-store.cjs +503 -0
- package/dist/storage/blob/local-blob-store.d.ts +57 -0
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -0
- package/dist/storage/blob/local-blob-store.js +470 -0
- package/dist/storage/blob/schemas.cjs +53 -0
- package/dist/storage/blob/schemas.d.ts +80 -0
- package/dist/storage/blob/schemas.d.ts.map +1 -0
- package/dist/storage/blob/schemas.js +29 -0
- package/dist/storage/blob/types.cjs +16 -0
- package/dist/storage/blob/types.d.ts +154 -0
- package/dist/storage/blob/types.d.ts.map +1 -0
- package/dist/storage/blob/types.js +0 -0
- package/dist/storage/cache/factory.cjs +63 -0
- package/dist/storage/cache/factory.d.ts +8 -0
- package/dist/storage/cache/factory.d.ts.map +1 -0
- package/dist/storage/cache/factory.js +30 -0
- package/dist/storage/cache/memory-cache-store.cjs +107 -0
- package/dist/storage/cache/memory-cache-store.d.ts +26 -0
- package/dist/storage/cache/memory-cache-store.d.ts.map +1 -0
- package/dist/storage/cache/memory-cache-store.js +84 -0
- package/dist/storage/{backend/redis-backend.cjs → cache/redis-store.cjs} +8 -22
- package/dist/storage/{backend/redis-backend.d.ts → cache/redis-store.d.ts} +8 -14
- package/dist/storage/cache/redis-store.d.ts.map +1 -0
- package/dist/storage/{backend/redis-backend.js → cache/redis-store.js} +5 -18
- package/dist/storage/cache/schemas.cjs +77 -0
- package/dist/storage/cache/schemas.d.ts +151 -0
- package/dist/storage/cache/schemas.d.ts.map +1 -0
- package/dist/storage/cache/schemas.js +53 -0
- package/dist/storage/cache/types.cjs +16 -0
- package/dist/storage/{backend/cache-backend.d.cts → cache/types.d.ts} +3 -4
- package/dist/storage/cache/types.d.ts.map +1 -0
- package/dist/storage/cache/types.js +0 -0
- package/dist/storage/database/factory.cjs +86 -0
- package/dist/storage/database/factory.d.ts +10 -0
- package/dist/storage/database/factory.d.ts.map +1 -0
- package/dist/storage/database/factory.js +53 -0
- package/dist/storage/{backend/memory-backend.cjs → database/memory-database-store.cjs} +10 -28
- package/dist/storage/{backend/memory-backend.d.ts → database/memory-database-store.d.ts} +7 -12
- package/dist/storage/database/memory-database-store.d.ts.map +1 -0
- package/dist/storage/{backend/memory-backend.js → database/memory-database-store.js} +7 -24
- package/dist/storage/{backend/postgres-backend.cjs → database/postgres-store.cjs} +11 -11
- package/dist/storage/{backend/postgres-backend.d.ts → database/postgres-store.d.ts} +8 -11
- package/dist/storage/database/postgres-store.d.ts.map +1 -0
- package/dist/storage/{backend/postgres-backend.js → database/postgres-store.js} +8 -7
- package/dist/storage/database/schemas.cjs +89 -0
- package/dist/storage/database/schemas.d.ts +227 -0
- package/dist/storage/database/schemas.d.ts.map +1 -0
- package/dist/storage/database/schemas.js +65 -0
- package/dist/storage/{backend/sqlite-backend.cjs → database/sqlite-store.cjs} +35 -16
- package/dist/storage/{backend/sqlite-backend.d.cts → database/sqlite-store.d.ts} +9 -11
- package/dist/storage/database/sqlite-store.d.ts.map +1 -0
- package/dist/storage/{backend/sqlite-backend.js → database/sqlite-store.js} +32 -12
- package/dist/storage/database/types.cjs +16 -0
- package/dist/storage/{backend/database-backend.d.cts → database/types.d.ts} +3 -4
- package/dist/storage/database/types.d.ts.map +1 -0
- package/dist/storage/database/types.js +0 -0
- package/dist/storage/error-codes.cjs +16 -0
- package/dist/storage/error-codes.d.ts +20 -5
- package/dist/storage/error-codes.d.ts.map +1 -0
- package/dist/storage/error-codes.js +17 -0
- package/dist/storage/errors.cjs +210 -7
- package/dist/storage/errors.d.ts +75 -19
- package/dist/storage/errors.d.ts.map +1 -0
- package/dist/storage/errors.js +205 -1
- package/dist/storage/index.cjs +24 -5
- package/dist/storage/index.d.ts +48 -7
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +21 -4
- package/dist/storage/schemas.cjs +22 -84
- package/dist/storage/schemas.d.ts +98 -574
- package/dist/storage/schemas.d.ts.map +1 -0
- package/dist/storage/schemas.js +26 -84
- package/dist/storage/storage-manager.cjs +135 -118
- package/dist/storage/storage-manager.d.ts +55 -26
- package/dist/storage/storage-manager.d.ts.map +1 -0
- package/dist/storage/storage-manager.js +135 -107
- package/dist/storage/types.d.ts +7 -5
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/systemPrompt/contributors.cjs +54 -0
- package/dist/systemPrompt/contributors.d.ts +30 -15
- package/dist/systemPrompt/contributors.d.ts.map +1 -0
- package/dist/systemPrompt/contributors.js +54 -0
- package/dist/systemPrompt/error-codes.d.ts +2 -3
- package/dist/systemPrompt/error-codes.d.ts.map +1 -0
- package/dist/systemPrompt/error-codes.js +1 -0
- package/dist/systemPrompt/errors.d.ts +2 -17
- package/dist/systemPrompt/errors.d.ts.map +1 -0
- package/dist/systemPrompt/errors.js +1 -0
- package/dist/systemPrompt/in-built-prompts.cjs +13 -15
- package/dist/systemPrompt/in-built-prompts.d.ts +4 -14
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -0
- package/dist/systemPrompt/in-built-prompts.js +14 -15
- package/dist/systemPrompt/index.cjs +11 -0
- package/dist/systemPrompt/index.d.ts +7 -14
- package/dist/systemPrompt/index.d.ts.map +1 -0
- package/dist/systemPrompt/index.js +9 -0
- package/dist/systemPrompt/manager.cjs +24 -6
- package/dist/systemPrompt/manager.d.ts +8 -16
- package/dist/systemPrompt/manager.d.ts.map +1 -0
- package/dist/systemPrompt/manager.js +25 -6
- package/dist/systemPrompt/registry.d.ts +6 -16
- package/dist/systemPrompt/registry.d.ts.map +1 -0
- package/dist/systemPrompt/registry.js +1 -0
- package/dist/systemPrompt/schemas.cjs +17 -3
- package/dist/systemPrompt/schemas.d.ts +204 -30
- package/dist/systemPrompt/schemas.d.ts.map +1 -0
- package/dist/systemPrompt/schemas.js +18 -3
- package/dist/systemPrompt/types.d.ts +3 -12
- package/dist/systemPrompt/types.d.ts.map +1 -0
- package/dist/telemetry/decorators.cjs +175 -0
- package/dist/telemetry/decorators.d.ts +17 -0
- package/dist/telemetry/decorators.d.ts.map +1 -0
- package/dist/telemetry/decorators.js +157 -0
- package/dist/telemetry/exporters.cjs +108 -0
- package/dist/telemetry/exporters.d.ts +29 -0
- package/dist/telemetry/exporters.d.ts.map +1 -0
- package/dist/telemetry/exporters.js +85 -0
- package/dist/telemetry/index.cjs +28 -0
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +5 -0
- package/dist/telemetry/schemas.cjs +71 -0
- package/dist/telemetry/schemas.d.ts +54 -0
- package/dist/telemetry/schemas.d.ts.map +1 -0
- package/dist/telemetry/schemas.js +48 -0
- package/dist/telemetry/telemetry.cjs +228 -0
- package/dist/telemetry/telemetry.d.ts +74 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -0
- package/dist/telemetry/telemetry.js +205 -0
- package/dist/telemetry/types.cjs +16 -0
- package/dist/telemetry/types.d.ts +22 -0
- package/dist/telemetry/types.d.ts.map +1 -0
- package/dist/telemetry/types.js +0 -0
- package/dist/telemetry/utils.cjs +87 -0
- package/dist/telemetry/utils.d.ts +21 -0
- package/dist/telemetry/utils.d.ts.map +1 -0
- package/dist/telemetry/utils.js +62 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +6 -12
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +3 -5
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts.map +1 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +9 -9
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +7 -13
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +10 -9
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +2 -3
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts.map +1 -0
- package/dist/tools/error-codes.d.ts +2 -3
- package/dist/tools/error-codes.d.ts.map +1 -0
- package/dist/tools/error-codes.js +1 -0
- package/dist/tools/errors.d.ts +2 -17
- package/dist/tools/errors.d.ts.map +1 -0
- package/dist/tools/errors.js +1 -0
- package/dist/tools/index.cjs +0 -2
- package/dist/tools/index.d.ts +11 -19
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +1 -1
- package/dist/tools/internal-tools/constants.cjs +39 -0
- package/dist/tools/internal-tools/constants.d.ts +12 -0
- package/dist/tools/internal-tools/constants.d.ts.map +1 -0
- package/dist/tools/internal-tools/constants.js +16 -0
- package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +57 -0
- package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts +18 -0
- package/dist/tools/internal-tools/implementations/ask-user-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +34 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +106 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +13 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +73 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +49 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +26 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +62 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +39 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +57 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +34 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +71 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +48 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +47 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +24 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +55 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/read-file-tool.js +32 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +3 -11
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +56 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +12 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/write-file-tool.js +33 -0
- package/dist/tools/internal-tools/index.cjs +3 -1
- package/dist/tools/internal-tools/index.d.ts +4 -13
- package/dist/tools/internal-tools/index.d.ts.map +1 -0
- package/dist/tools/internal-tools/index.js +1 -0
- package/dist/tools/internal-tools/provider.cjs +9 -11
- package/dist/tools/internal-tools/provider.d.ts +6 -20
- package/dist/tools/internal-tools/provider.d.ts.map +1 -0
- package/dist/tools/internal-tools/provider.js +10 -11
- package/dist/tools/internal-tools/registry.cjs +45 -4
- package/dist/tools/internal-tools/registry.d.ts +13 -22
- package/dist/tools/internal-tools/registry.d.ts.map +1 -0
- package/dist/tools/internal-tools/registry.js +46 -3
- package/dist/tools/schemas.cjs +32 -7
- package/dist/tools/schemas.d.ts +41 -8
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +25 -4
- package/dist/tools/tool-manager.cjs +329 -30
- package/dist/tools/tool-manager.d.ts +94 -22
- package/dist/tools/tool-manager.d.ts.map +1 -0
- package/dist/tools/tool-manager.js +289 -30
- package/dist/tools/types.d.ts +9 -11
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/utils/api-key-resolver.d.ts +5 -7
- package/dist/utils/api-key-resolver.d.ts.map +1 -0
- package/dist/utils/api-key-resolver.js +1 -0
- package/dist/utils/api-key-store.d.ts +5 -7
- package/dist/utils/api-key-store.d.ts.map +1 -0
- package/dist/utils/api-key-store.js +1 -0
- package/dist/utils/async-context.cjs +51 -0
- package/dist/utils/async-context.d.ts +68 -0
- package/dist/utils/async-context.d.ts.map +1 -0
- package/dist/utils/async-context.js +25 -0
- package/dist/utils/debug.cjs +40 -0
- package/dist/utils/debug.d.ts +2 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +17 -0
- package/dist/utils/env.d.ts +4 -5
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +1 -0
- package/dist/utils/error-conversion.d.ts +2 -3
- package/dist/utils/error-conversion.d.ts.map +1 -0
- package/dist/utils/error-conversion.js +1 -0
- package/dist/utils/execution-context.d.ts +5 -6
- package/dist/utils/execution-context.d.ts.map +1 -0
- package/dist/utils/execution-context.js +1 -0
- package/dist/utils/fs-walk.d.ts +2 -3
- package/dist/utils/fs-walk.d.ts.map +1 -0
- package/dist/utils/fs-walk.js +1 -0
- package/dist/utils/index.cjs +3 -1
- package/dist/utils/index.d.ts +14 -63
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/path.d.ts +9 -10
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +1 -0
- package/dist/utils/port-utils.d.ts +2 -3
- package/dist/utils/port-utils.d.ts.map +1 -0
- package/dist/utils/port-utils.js +1 -0
- package/dist/utils/redactor.d.ts +2 -3
- package/dist/utils/redactor.d.ts.map +1 -0
- package/dist/utils/redactor.js +1 -0
- package/dist/utils/result.d.ts +14 -27
- package/dist/utils/result.d.ts.map +1 -0
- package/dist/utils/result.js +1 -0
- package/dist/utils/safe-stringify.d.ts +2 -3
- package/dist/utils/safe-stringify.d.ts.map +1 -0
- package/dist/utils/safe-stringify.js +1 -0
- package/dist/utils/schema-metadata.cjs +235 -0
- package/dist/utils/schema-metadata.d.ts +82 -0
- package/dist/utils/schema-metadata.d.ts.map +1 -0
- package/dist/utils/schema-metadata.js +208 -0
- package/dist/utils/schema.d.ts +2 -3
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +1 -0
- package/dist/utils/service-initializer.cjs +110 -35
- package/dist/utils/service-initializer.d.ts +19 -43
- package/dist/utils/service-initializer.d.ts.map +1 -0
- package/dist/utils/service-initializer.js +101 -35
- package/dist/utils/user-info.d.ts +2 -3
- package/dist/utils/user-info.d.ts.map +1 -0
- package/dist/utils/user-info.js +1 -0
- package/dist/utils/zod-schema-converter.d.ts +3 -5
- package/dist/utils/zod-schema-converter.d.ts.map +1 -0
- package/dist/utils/zod-schema-converter.js +1 -0
- package/package.json +16 -4
- package/dist/agent/DextoAgent.d.cts +0 -541
- package/dist/agent/agentCard.d.cts +0 -20
- package/dist/agent/error-codes.d.cts +0 -14
- package/dist/agent/errors.d.cts +0 -44
- package/dist/agent/index.d.cts +0 -60
- package/dist/agent/registry/error-codes.d.cts +0 -20
- package/dist/agent/registry/errors.d.cts +0 -67
- package/dist/agent/registry/registry.d.cts +0 -67
- package/dist/agent/registry/types.d.cts +0 -100
- package/dist/agent/schemas.d.cts +0 -1502
- package/dist/agent/state-manager.d.cts +0 -97
- package/dist/config/agent-resolver.d.cts +0 -15
- package/dist/config/error-codes.d.cts +0 -17
- package/dist/config/errors.d.cts +0 -49
- package/dist/config/index.d.cts +0 -7
- package/dist/config/loader.d.cts +0 -19
- package/dist/config/writer.d.cts +0 -38
- package/dist/context/compression/middle-removal.d.cts +0 -48
- package/dist/context/compression/oldest-removal.d.cts +0 -43
- package/dist/context/compression/types.d.cts +0 -21
- package/dist/context/error-codes.d.cts +0 -19
- package/dist/context/errors.d.cts +0 -36
- package/dist/context/index.d.cts +0 -19
- package/dist/context/manager.d.cts +0 -254
- package/dist/context/types.d.cts +0 -113
- package/dist/context/utils.d.cts +0 -79
- package/dist/errors/DextoBaseError.d.cts +0 -15
- package/dist/errors/DextoRuntimeError.d.cts +0 -37
- package/dist/errors/DextoValidationError.d.cts +0 -65
- package/dist/errors/index.d.cts +0 -18
- package/dist/errors/result-bridge.d.cts +0 -39
- package/dist/errors/types.d.cts +0 -62
- package/dist/events/index.d.cts +0 -272
- package/dist/index.browser.d.cts +0 -53
- package/dist/index.d.cts +0 -89
- package/dist/llm/error-codes.d.cts +0 -26
- package/dist/llm/errors.d.cts +0 -58
- package/dist/llm/formatters/anthropic.d.cts +0 -45
- package/dist/llm/formatters/factory.d.cts +0 -12
- package/dist/llm/formatters/openai.d.cts +0 -38
- package/dist/llm/formatters/types.d.cts +0 -43
- package/dist/llm/formatters/vercel.d.cts +0 -48
- package/dist/llm/index.d.cts +0 -39
- package/dist/llm/registry.d.cts +0 -176
- package/dist/llm/resolver.d.cts +0 -34
- package/dist/llm/schemas.d.cts +0 -111
- package/dist/llm/services/anthropic.d.cts +0 -65
- package/dist/llm/services/factory.d.cts +0 -39
- package/dist/llm/services/index.d.cts +0 -21
- package/dist/llm/services/openai.d.cts +0 -65
- package/dist/llm/services/test-utils.integration.d.cts +0 -83
- package/dist/llm/services/types.d.cts +0 -56
- package/dist/llm/services/vercel.d.cts +0 -72
- package/dist/llm/tokenizer/anthropic.d.cts +0 -21
- package/dist/llm/tokenizer/default.d.cts +0 -16
- package/dist/llm/tokenizer/factory.d.cts +0 -12
- package/dist/llm/tokenizer/google.d.cts +0 -31
- package/dist/llm/tokenizer/openai.d.cts +0 -32
- package/dist/llm/tokenizer/types.d.cts +0 -19
- package/dist/llm/types.d.cts +0 -29
- package/dist/llm/validation.d.cts +0 -60
- package/dist/logger/browser.d.cts +0 -29
- package/dist/logger/index.d.cts +0 -1
- package/dist/logger/logger.d.cts +0 -52
- package/dist/mcp/error-codes.d.cts +0 -16
- package/dist/mcp/errors.d.cts +0 -72
- package/dist/mcp/index.d.cts +0 -26
- package/dist/mcp/manager.d.cts +0 -163
- package/dist/mcp/mcp-client.d.cts +0 -108
- package/dist/mcp/resolver.d.cts +0 -22
- package/dist/mcp/schemas.d.cts +0 -266
- package/dist/mcp/types.d.cts +0 -21
- package/dist/preferences/constants.d.cts +0 -3
- package/dist/preferences/error-codes.d.cts +0 -9
- package/dist/preferences/errors.d.cts +0 -33
- package/dist/preferences/index.d.cts +0 -21
- package/dist/preferences/loader.d.cts +0 -45
- package/dist/preferences/schemas.d.cts +0 -104
- package/dist/search/index.d.cts +0 -5
- package/dist/search/search-service.d.cts +0 -47
- package/dist/search/types.d.cts +0 -78
- package/dist/session/chat-session.d.cts +0 -284
- package/dist/session/error-codes.d.cts +0 -13
- package/dist/session/errors.d.cts +0 -58
- package/dist/session/history/database.d.cts +0 -28
- package/dist/session/history/factory.d.cts +0 -11
- package/dist/session/history/types.d.cts +0 -17
- package/dist/session/index.d.cts +0 -53
- package/dist/session/schemas.d.cts +0 -16
- package/dist/session/session-manager.d.cts +0 -219
- package/dist/storage/backend/cache-backend.d.ts +0 -15
- package/dist/storage/backend/database-backend.d.ts +0 -19
- package/dist/storage/backend/memory-backend.d.cts +0 -34
- package/dist/storage/backend/postgres-backend.d.cts +0 -37
- package/dist/storage/backend/redis-backend.d.cts +0 -36
- package/dist/storage/backend/sqlite-backend.d.ts +0 -35
- package/dist/storage/backend/types.d.cts +0 -14
- package/dist/storage/backend/types.d.ts +0 -14
- package/dist/storage/error-codes.d.cts +0 -14
- package/dist/storage/errors.d.cts +0 -63
- package/dist/storage/index.d.cts +0 -7
- package/dist/storage/schemas.d.cts +0 -856
- package/dist/storage/storage-manager.d.cts +0 -52
- package/dist/storage/types.d.cts +0 -5
- package/dist/systemPrompt/contributors.d.cts +0 -44
- package/dist/systemPrompt/error-codes.d.cts +0 -13
- package/dist/systemPrompt/errors.d.cts +0 -55
- package/dist/systemPrompt/in-built-prompts.d.cts +0 -28
- package/dist/systemPrompt/index.d.cts +0 -14
- package/dist/systemPrompt/manager.d.cts +0 -31
- package/dist/systemPrompt/registry.d.cts +0 -20
- package/dist/systemPrompt/schemas.d.cts +0 -401
- package/dist/systemPrompt/types.d.cts +0 -19
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +0 -19
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +0 -17
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +0 -26
- package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +0 -35
- package/dist/tools/confirmation/event-based-confirmation-provider.cjs +0 -158
- package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +0 -41
- package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +0 -41
- package/dist/tools/confirmation/event-based-confirmation-provider.js +0 -134
- package/dist/tools/confirmation/factory.cjs +0 -52
- package/dist/tools/confirmation/factory.d.cts +0 -37
- package/dist/tools/confirmation/factory.d.ts +0 -37
- package/dist/tools/confirmation/factory.js +0 -28
- package/dist/tools/confirmation/noop-confirmation-provider.cjs +0 -49
- package/dist/tools/confirmation/noop-confirmation-provider.d.cts +0 -22
- package/dist/tools/confirmation/noop-confirmation-provider.d.ts +0 -22
- package/dist/tools/confirmation/noop-confirmation-provider.js +0 -25
- package/dist/tools/confirmation/types.d.cts +0 -46
- package/dist/tools/confirmation/types.d.ts +0 -46
- package/dist/tools/error-codes.d.cts +0 -18
- package/dist/tools/errors.d.cts +0 -97
- package/dist/tools/index.d.cts +0 -19
- package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +0 -15
- package/dist/tools/internal-tools/index.d.cts +0 -13
- package/dist/tools/internal-tools/provider.d.cts +0 -66
- package/dist/tools/internal-tools/registry.d.cts +0 -45
- package/dist/tools/schemas.d.cts +0 -21
- package/dist/tools/tool-manager.d.cts +0 -106
- package/dist/tools/types.d.cts +0 -66
- package/dist/utils/api-key-resolver.d.cts +0 -23
- package/dist/utils/api-key-store.d.cts +0 -26
- package/dist/utils/env.d.cts +0 -29
- package/dist/utils/error-conversion.d.cts +0 -13
- package/dist/utils/execution-context.d.cts +0 -21
- package/dist/utils/fs-walk.d.cts +0 -9
- package/dist/utils/index.d.cts +0 -63
- package/dist/utils/path.d.cts +0 -54
- package/dist/utils/port-utils.d.cts +0 -11
- package/dist/utils/port-utils.spec.d.cts +0 -2
- package/dist/utils/port-utils.spec.d.ts +0 -2
- package/dist/utils/redactor.d.cts +0 -18
- package/dist/utils/result.d.cts +0 -180
- package/dist/utils/safe-stringify.d.cts +0 -7
- package/dist/utils/schema.d.cts +0 -6
- package/dist/utils/service-initializer.d.cts +0 -63
- package/dist/utils/user-info.d.cts +0 -3
- package/dist/utils/zod-schema-converter.d.cts +0 -13
- /package/dist/{storage/backend → filesystem}/types.cjs +0 -0
- /package/dist/{storage/backend → filesystem}/types.js +0 -0
- /package/dist/{tools/confirmation → memory}/types.cjs +0 -0
- /package/dist/{tools/confirmation → memory}/types.js +0 -0
- /package/dist/{storage/backend/cache-backend.js → plugins/types.js} +0 -0
- /package/dist/{storage/backend/database-backend.js → process/types.js} +0 -0
package/dist/mcp/manager.cjs
CHANGED
|
@@ -24,20 +24,73 @@ module.exports = __toCommonJS(manager_exports);
|
|
|
24
24
|
var import_mcp_client = require("./mcp-client.js");
|
|
25
25
|
var import_logger = require("../logger/index.js");
|
|
26
26
|
var import_errors = require("./errors.js");
|
|
27
|
+
var import_events = require("../events/index.js");
|
|
27
28
|
class MCPManager {
|
|
28
29
|
clients = /* @__PURE__ */ new Map();
|
|
29
30
|
connectionErrors = {};
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
configCache = /* @__PURE__ */ new Map();
|
|
32
|
+
// Store original configs for restart
|
|
33
|
+
toolCache = /* @__PURE__ */ new Map();
|
|
32
34
|
toolConflicts = /* @__PURE__ */ new Set();
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
// Track which tool names have conflicts
|
|
36
|
+
promptCache = /* @__PURE__ */ new Map();
|
|
37
|
+
resourceCache = /* @__PURE__ */ new Map();
|
|
35
38
|
sanitizedNameToServerMap = /* @__PURE__ */ new Map();
|
|
39
|
+
approvalManager = null;
|
|
40
|
+
// Will be set by service initializer
|
|
36
41
|
// Use a distinctive delimiter that won't appear in normal server/tool names
|
|
37
42
|
// Using double hyphen as it's allowed in LLM tool name patterns (^[a-zA-Z0-9_-]+$)
|
|
38
43
|
static SERVER_DELIMITER = "--";
|
|
39
44
|
constructor() {
|
|
40
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Set the approval manager for handling elicitation requests from MCP servers
|
|
48
|
+
*
|
|
49
|
+
* TODO: Consider making ApprovalManager a required constructor parameter instead of using a setter.
|
|
50
|
+
* This would make the dependency explicit and remove the need for defensive `if (!approvalManager)` checks.
|
|
51
|
+
* Current setter pattern is useful if we want to expose MCPManager as a standalone service to end-users
|
|
52
|
+
* without requiring them to know about ApprovalManager.
|
|
53
|
+
*/
|
|
54
|
+
setApprovalManager(approvalManager) {
|
|
55
|
+
this.approvalManager = approvalManager;
|
|
56
|
+
for (const [_name, client] of this.clients.entries()) {
|
|
57
|
+
if (client instanceof import_mcp_client.MCPClient) {
|
|
58
|
+
client.setApprovalManager(approvalManager);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
buildQualifiedResourceKey(serverName, resourceUri) {
|
|
63
|
+
return `mcp:${serverName}:${resourceUri}`;
|
|
64
|
+
}
|
|
65
|
+
parseQualifiedResourceKey(key) {
|
|
66
|
+
if (!key.startsWith("mcp:")) {
|
|
67
|
+
throw import_errors.MCPError.resourceNotFound(key);
|
|
68
|
+
}
|
|
69
|
+
const [, serverName, ...rest] = key.split(":");
|
|
70
|
+
if (!serverName || rest.length === 0) {
|
|
71
|
+
throw import_errors.MCPError.resourceNotFound(key);
|
|
72
|
+
}
|
|
73
|
+
return { serverName, resourceUri: rest.join(":") };
|
|
74
|
+
}
|
|
75
|
+
removeServerResources(serverName) {
|
|
76
|
+
for (const [key, entry] of Array.from(this.resourceCache.entries())) {
|
|
77
|
+
if (entry.serverName === serverName) {
|
|
78
|
+
this.resourceCache.delete(key);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
getResourceCacheEntry(resourceKey) {
|
|
83
|
+
if (this.resourceCache.has(resourceKey)) {
|
|
84
|
+
return this.resourceCache.get(resourceKey);
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const { serverName, resourceUri } = this.parseQualifiedResourceKey(resourceKey);
|
|
88
|
+
const canonicalKey = this.buildQualifiedResourceKey(serverName, resourceUri);
|
|
89
|
+
return this.resourceCache.get(canonicalKey);
|
|
90
|
+
} catch {
|
|
91
|
+
return void 0;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
41
94
|
/**
|
|
42
95
|
* Register a client that provides tools (and potentially more)
|
|
43
96
|
* @param name Unique name for the client
|
|
@@ -55,53 +108,66 @@ class MCPManager {
|
|
|
55
108
|
}
|
|
56
109
|
this.clients.set(name, client);
|
|
57
110
|
this.sanitizedNameToServerMap.set(sanitizedName, name);
|
|
111
|
+
this.setupClientNotifications(name, client);
|
|
58
112
|
import_logger.logger.info(`Registered client: ${name}`);
|
|
59
113
|
delete this.connectionErrors[name];
|
|
60
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Clears all cached data for a disconnected MCP client
|
|
117
|
+
*
|
|
118
|
+
* Performs comprehensive cleanup of tool, prompt, and resource caches.
|
|
119
|
+
* Uses two-pass algorithm to detect and resolve tool name conflicts:
|
|
120
|
+
* if a conflicted tool now has only one provider, restores simple name.
|
|
121
|
+
*
|
|
122
|
+
* @param clientName - The name/identifier of the MCP server being removed
|
|
123
|
+
* @private
|
|
124
|
+
*/
|
|
61
125
|
clearClientCache(clientName) {
|
|
62
126
|
const client = this.clients.get(clientName);
|
|
63
127
|
if (!client) return;
|
|
64
|
-
const hadServerTools = this.serverToolsMap.has(clientName);
|
|
65
|
-
this.serverToolsMap.delete(clientName);
|
|
66
128
|
const sanitizedName = this.sanitizeServerName(clientName);
|
|
67
129
|
if (this.sanitizedNameToServerMap.get(sanitizedName) === clientName) {
|
|
68
130
|
this.sanitizedNameToServerMap.delete(sanitizedName);
|
|
69
131
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
132
|
+
const removedToolBaseNames = /* @__PURE__ */ new Set();
|
|
133
|
+
for (const [toolKey, entry] of Array.from(this.toolCache.entries())) {
|
|
134
|
+
if (entry.serverName === clientName) {
|
|
135
|
+
const delimiterIndex = toolKey.lastIndexOf(MCPManager.SERVER_DELIMITER);
|
|
136
|
+
const baseName = delimiterIndex === -1 ? toolKey : toolKey.substring(delimiterIndex + MCPManager.SERVER_DELIMITER.length);
|
|
137
|
+
removedToolBaseNames.add(baseName);
|
|
138
|
+
this.toolCache.delete(toolKey);
|
|
77
139
|
}
|
|
78
|
-
);
|
|
79
|
-
if (hadServerTools) {
|
|
80
|
-
this.rebuildToolConflicts();
|
|
81
140
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
141
|
+
for (const baseName of removedToolBaseNames) {
|
|
142
|
+
const remainingTools = Array.from(this.toolCache.entries()).filter(([key, _]) => {
|
|
143
|
+
const delimiterIndex = key.lastIndexOf(MCPManager.SERVER_DELIMITER);
|
|
144
|
+
const bn = delimiterIndex === -1 ? key : key.substring(delimiterIndex + MCPManager.SERVER_DELIMITER.length);
|
|
145
|
+
return bn === baseName;
|
|
146
|
+
});
|
|
147
|
+
if (remainingTools.length === 0) {
|
|
148
|
+
this.toolConflicts.delete(baseName);
|
|
149
|
+
} else if (remainingTools.length === 1 && this.toolConflicts.has(baseName)) {
|
|
150
|
+
const singleTool = remainingTools[0];
|
|
151
|
+
if (singleTool) {
|
|
152
|
+
const [qualifiedKey, entry] = singleTool;
|
|
153
|
+
this.toolCache.delete(qualifiedKey);
|
|
154
|
+
this.toolCache.set(baseName, entry);
|
|
155
|
+
this.toolConflicts.delete(baseName);
|
|
156
|
+
import_logger.logger.debug(`Restored tool '${baseName}' to simple name (conflict resolved)`);
|
|
157
|
+
}
|
|
90
158
|
}
|
|
91
159
|
}
|
|
92
|
-
for (const [
|
|
93
|
-
if (
|
|
94
|
-
this.
|
|
95
|
-
this.toolToClientMap.delete(toolName);
|
|
160
|
+
for (const [promptName, entry] of Array.from(this.promptCache.entries())) {
|
|
161
|
+
if (entry.serverName === clientName) {
|
|
162
|
+
this.promptCache.delete(promptName);
|
|
96
163
|
}
|
|
97
164
|
}
|
|
98
|
-
for (const [
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
this.toolToClientMap.set(toolName, client);
|
|
102
|
-
}
|
|
165
|
+
for (const [key, entry] of Array.from(this.resourceCache.entries())) {
|
|
166
|
+
if (entry.client === client || entry.serverName === clientName) {
|
|
167
|
+
this.resourceCache.delete(key);
|
|
103
168
|
}
|
|
104
169
|
}
|
|
170
|
+
import_logger.logger.debug(`Cleared cache for client: ${clientName}`);
|
|
105
171
|
}
|
|
106
172
|
/**
|
|
107
173
|
* Sanitize server name for use in tool prefixing.
|
|
@@ -110,25 +176,80 @@ class MCPManager {
|
|
|
110
176
|
sanitizeServerName(serverName) {
|
|
111
177
|
return serverName.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
112
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Updates internal caches for a connected MCP client
|
|
181
|
+
*
|
|
182
|
+
* This method performs initial cache population after a client connects.
|
|
183
|
+
* It fetches and caches tools, prompts, and resources from the MCP server,
|
|
184
|
+
* implementing conflict detection and resolution for tool names.
|
|
185
|
+
*
|
|
186
|
+
* @param clientName - The name/identifier of the MCP server
|
|
187
|
+
* @param client - The connected MCP client instance
|
|
188
|
+
*
|
|
189
|
+
* @remarks
|
|
190
|
+
* **Tool Caching:**
|
|
191
|
+
* - Fetches all tools and caches them with full definitions
|
|
192
|
+
* - Detects naming conflicts when multiple servers provide same tool name
|
|
193
|
+
* - On conflict: uses qualified names (`server--toolname`) for all conflicting tools
|
|
194
|
+
* - Updates toolConflicts set to track which base names have conflicts
|
|
195
|
+
*
|
|
196
|
+
* **Prompt Caching:**
|
|
197
|
+
* - Fetches all prompts and their metadata (description, arguments)
|
|
198
|
+
* - Stores full prompt definitions in promptCache for efficient access
|
|
199
|
+
* - Falls back to minimal metadata if full definition fetch fails
|
|
200
|
+
*
|
|
201
|
+
* **Resource Caching:**
|
|
202
|
+
* - Fetches all resource summaries (uri, name, mimeType)
|
|
203
|
+
* - Stores resource metadata in resourceCache for quick lookups
|
|
204
|
+
*
|
|
205
|
+
* **Error Handling:**
|
|
206
|
+
* - Tool fetch errors abort caching entirely (early return)
|
|
207
|
+
* - Prompt/resource errors log warnings but don't block other caching
|
|
208
|
+
* - Individual prompt metadata errors are caught and logged
|
|
209
|
+
*
|
|
210
|
+
* @private
|
|
211
|
+
*/
|
|
113
212
|
async updateClientCache(clientName, client) {
|
|
114
|
-
const serverTools = /* @__PURE__ */ new Map();
|
|
115
|
-
this.serverToolsMap.set(clientName, serverTools);
|
|
116
213
|
try {
|
|
117
214
|
const tools = await client.getTools();
|
|
118
215
|
import_logger.logger.debug(
|
|
119
216
|
`\u{1F527} Discovered ${Object.keys(tools).length} tools from server '${clientName}': [${Object.keys(tools).join(", ")}]`
|
|
120
217
|
);
|
|
121
218
|
for (const toolName in tools) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
219
|
+
const toolDef = tools[toolName];
|
|
220
|
+
if (!toolDef) continue;
|
|
221
|
+
const existingEntry = this.toolCache.get(toolName);
|
|
222
|
+
if (existingEntry && existingEntry.serverName !== clientName) {
|
|
125
223
|
this.toolConflicts.add(toolName);
|
|
126
|
-
this.
|
|
224
|
+
this.toolCache.delete(toolName);
|
|
225
|
+
const existingSanitized = this.sanitizeServerName(existingEntry.serverName);
|
|
226
|
+
const existingQualified = `${existingSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
|
|
227
|
+
this.toolCache.set(existingQualified, existingEntry);
|
|
228
|
+
const newSanitized = this.sanitizeServerName(clientName);
|
|
229
|
+
const newQualified = `${newSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
|
|
230
|
+
this.toolCache.set(newQualified, {
|
|
231
|
+
serverName: clientName,
|
|
232
|
+
client,
|
|
233
|
+
definition: toolDef
|
|
234
|
+
});
|
|
127
235
|
import_logger.logger.warn(
|
|
128
|
-
`\u26A0\uFE0F Tool conflict detected for '${toolName}' -
|
|
236
|
+
`\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
|
|
129
237
|
);
|
|
130
|
-
} else if (
|
|
131
|
-
this.
|
|
238
|
+
} else if (this.toolConflicts.has(toolName)) {
|
|
239
|
+
const sanitizedName = this.sanitizeServerName(clientName);
|
|
240
|
+
const qualifiedName = `${sanitizedName}${MCPManager.SERVER_DELIMITER}${toolName}`;
|
|
241
|
+
this.toolCache.set(qualifiedName, {
|
|
242
|
+
serverName: clientName,
|
|
243
|
+
client,
|
|
244
|
+
definition: toolDef
|
|
245
|
+
});
|
|
246
|
+
import_logger.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
|
|
247
|
+
} else {
|
|
248
|
+
this.toolCache.set(toolName, {
|
|
249
|
+
serverName: clientName,
|
|
250
|
+
client,
|
|
251
|
+
definition: toolDef
|
|
252
|
+
});
|
|
132
253
|
import_logger.logger.debug(`\u2705 Tool '${toolName}' mapped to ${clientName}`);
|
|
133
254
|
}
|
|
134
255
|
}
|
|
@@ -143,17 +264,33 @@ class MCPManager {
|
|
|
143
264
|
}
|
|
144
265
|
try {
|
|
145
266
|
const prompts = await client.listPrompts();
|
|
146
|
-
prompts
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
267
|
+
for (const prompt of prompts) {
|
|
268
|
+
const definition = {
|
|
269
|
+
name: prompt.name,
|
|
270
|
+
...prompt.title && { title: prompt.title },
|
|
271
|
+
...prompt.description && { description: prompt.description },
|
|
272
|
+
...prompt.arguments && { arguments: prompt.arguments }
|
|
273
|
+
};
|
|
274
|
+
this.promptCache.set(prompt.name, {
|
|
275
|
+
serverName: clientName,
|
|
276
|
+
client,
|
|
277
|
+
definition
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
import_logger.logger.debug(`Cached ${prompts.length} prompts for client: ${clientName}`);
|
|
150
281
|
} catch (error) {
|
|
151
282
|
import_logger.logger.debug(`Skipping prompts for client ${clientName}: ${error}`);
|
|
152
283
|
}
|
|
153
284
|
try {
|
|
285
|
+
this.removeServerResources(clientName);
|
|
154
286
|
const resources = await client.listResources();
|
|
155
|
-
resources.forEach((
|
|
156
|
-
this.
|
|
287
|
+
resources.forEach((summary) => {
|
|
288
|
+
const key = this.buildQualifiedResourceKey(clientName, summary.uri);
|
|
289
|
+
this.resourceCache.set(key, {
|
|
290
|
+
serverName: clientName,
|
|
291
|
+
client,
|
|
292
|
+
summary
|
|
293
|
+
});
|
|
157
294
|
});
|
|
158
295
|
import_logger.logger.debug(`Cached resources for client: ${clientName}`);
|
|
159
296
|
} catch (error) {
|
|
@@ -161,45 +298,28 @@ class MCPManager {
|
|
|
161
298
|
}
|
|
162
299
|
}
|
|
163
300
|
/**
|
|
164
|
-
* Get all available MCP tools from
|
|
165
|
-
* Conflicted tools are
|
|
301
|
+
* Get all available MCP tools from cache (no network calls).
|
|
302
|
+
* Conflicted tools are already stored with qualified names.
|
|
166
303
|
* @returns Promise resolving to a ToolSet mapping tool names to Tool definitions
|
|
167
304
|
*/
|
|
168
305
|
async getAllTools() {
|
|
169
306
|
const allTools = {};
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
if (
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const clientTools = await getClientTools(client);
|
|
180
|
-
const toolDef = clientTools[toolName];
|
|
181
|
-
if (toolDef) {
|
|
182
|
-
allTools[toolName] = toolDef;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
for (const [serverName, serverTools] of this.serverToolsMap.entries()) {
|
|
186
|
-
for (const [toolName, client] of serverTools.entries()) {
|
|
187
|
-
if (this.toolConflicts.has(toolName)) {
|
|
188
|
-
const sanitizedServerName = this.sanitizeServerName(serverName);
|
|
189
|
-
const qualifiedName = `${sanitizedServerName}${MCPManager.SERVER_DELIMITER}${toolName}`;
|
|
190
|
-
const clientTools = await getClientTools(client);
|
|
191
|
-
const toolDef = clientTools[toolName];
|
|
192
|
-
if (toolDef) {
|
|
193
|
-
allTools[qualifiedName] = {
|
|
194
|
-
...toolDef,
|
|
195
|
-
description: toolDef.description ? `${toolDef.description} (via ${serverName})` : `Tool from ${serverName}`
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
}
|
|
307
|
+
for (const [toolKey, entry] of this.toolCache.entries()) {
|
|
308
|
+
const toolDef = entry.definition;
|
|
309
|
+
if (toolKey.includes(MCPManager.SERVER_DELIMITER)) {
|
|
310
|
+
allTools[toolKey] = {
|
|
311
|
+
...toolDef,
|
|
312
|
+
description: toolDef.description ? `${toolDef.description} (via ${entry.serverName})` : `Tool from ${entry.serverName}`
|
|
313
|
+
};
|
|
314
|
+
} else {
|
|
315
|
+
allTools[toolKey] = toolDef;
|
|
199
316
|
}
|
|
200
317
|
}
|
|
318
|
+
const serverNames = Array.from(
|
|
319
|
+
new Set(Array.from(this.toolCache.values()).map((e) => e.serverName))
|
|
320
|
+
);
|
|
201
321
|
import_logger.logger.debug(
|
|
202
|
-
`\u{1F527} MCP
|
|
322
|
+
`\u{1F527} MCP tools from cache: ${Object.keys(allTools).length} total tools, ${this.toolConflicts.size} conflicts, connected servers: ${serverNames.join(", ")}`
|
|
203
323
|
);
|
|
204
324
|
if (import_logger.logger.getLevel() === "debug") {
|
|
205
325
|
Object.keys(allTools).forEach((toolName) => {
|
|
@@ -227,7 +347,7 @@ class MCPManager {
|
|
|
227
347
|
delimiterIndex + MCPManager.SERVER_DELIMITER.length
|
|
228
348
|
);
|
|
229
349
|
const originalServerName = this.sanitizedNameToServerMap.get(serverPrefix);
|
|
230
|
-
if (originalServerName && this.
|
|
350
|
+
if (originalServerName && this.toolCache.has(toolName)) {
|
|
231
351
|
return { serverName: originalServerName, toolName: actualToolName };
|
|
232
352
|
}
|
|
233
353
|
return null;
|
|
@@ -239,12 +359,7 @@ class MCPManager {
|
|
|
239
359
|
* @returns The client that provides the tool, or undefined if not found
|
|
240
360
|
*/
|
|
241
361
|
getToolClient(toolName) {
|
|
242
|
-
|
|
243
|
-
if (parsed) {
|
|
244
|
-
const serverTools = this.serverToolsMap.get(parsed.serverName);
|
|
245
|
-
return serverTools?.get(parsed.toolName);
|
|
246
|
-
}
|
|
247
|
-
return this.toolToClientMap.get(toolName);
|
|
362
|
+
return this.toolCache.get(toolName)?.client;
|
|
248
363
|
}
|
|
249
364
|
/**
|
|
250
365
|
* Execute a specific MCP tool with the given arguments.
|
|
@@ -257,13 +372,8 @@ class MCPManager {
|
|
|
257
372
|
const client = this.getToolClient(toolName);
|
|
258
373
|
if (!client) {
|
|
259
374
|
import_logger.logger.error(`\u274C No MCP tool found: ${toolName}`);
|
|
260
|
-
import_logger.logger.debug(
|
|
261
|
-
`Available MCP tools: ${Array.from(this.toolToClientMap.keys()).join(", ")}`
|
|
262
|
-
);
|
|
375
|
+
import_logger.logger.debug(`Available MCP tools: ${Array.from(this.toolCache.keys()).join(", ")}`);
|
|
263
376
|
import_logger.logger.debug(`Conflicted tools: ${Array.from(this.toolConflicts).join(", ")}`);
|
|
264
|
-
import_logger.logger.debug(
|
|
265
|
-
`Server tools map keys: ${Array.from(this.serverToolsMap.keys()).join(", ")}`
|
|
266
|
-
);
|
|
267
377
|
throw import_errors.MCPError.toolNotFound(toolName);
|
|
268
378
|
}
|
|
269
379
|
const parsed = this.parseQualifiedToolName(toolName);
|
|
@@ -285,7 +395,7 @@ class MCPManager {
|
|
|
285
395
|
* @returns Promise resolving to an array of unique prompt names.
|
|
286
396
|
*/
|
|
287
397
|
async listAllPrompts() {
|
|
288
|
-
return Array.from(this.
|
|
398
|
+
return Array.from(this.promptCache.keys());
|
|
289
399
|
}
|
|
290
400
|
/**
|
|
291
401
|
* Get the client that provides a specific prompt from the cache.
|
|
@@ -293,7 +403,7 @@ class MCPManager {
|
|
|
293
403
|
* @returns The client instance or undefined.
|
|
294
404
|
*/
|
|
295
405
|
getPromptClient(promptName) {
|
|
296
|
-
return this.
|
|
406
|
+
return this.promptCache.get(promptName)?.client;
|
|
297
407
|
}
|
|
298
408
|
/**
|
|
299
409
|
* Get a specific prompt definition by name.
|
|
@@ -309,31 +419,64 @@ class MCPManager {
|
|
|
309
419
|
return await client.getPrompt(name, args);
|
|
310
420
|
}
|
|
311
421
|
/**
|
|
312
|
-
* Get
|
|
313
|
-
* @
|
|
422
|
+
* Get cached prompt metadata (no network calls).
|
|
423
|
+
* @param promptName Name of the prompt.
|
|
424
|
+
* @returns Cached prompt definition or undefined if not cached.
|
|
425
|
+
*/
|
|
426
|
+
getPromptMetadata(promptName) {
|
|
427
|
+
const entry = this.promptCache.get(promptName);
|
|
428
|
+
return entry?.definition;
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Get all cached prompt metadata (no network calls).
|
|
432
|
+
* @returns Array of all cached prompt definitions with server info.
|
|
433
|
+
*/
|
|
434
|
+
getAllPromptMetadata() {
|
|
435
|
+
return Array.from(this.promptCache.entries()).map(([promptName, entry]) => ({
|
|
436
|
+
promptName,
|
|
437
|
+
serverName: entry.serverName,
|
|
438
|
+
definition: entry.definition
|
|
439
|
+
}));
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Get all cached MCP resources (no network calls).
|
|
314
443
|
*/
|
|
315
444
|
async listAllResources() {
|
|
316
|
-
return Array.from(this.
|
|
445
|
+
return Array.from(this.resourceCache.entries()).map(([key, { serverName, summary }]) => ({
|
|
446
|
+
key,
|
|
447
|
+
serverName,
|
|
448
|
+
summary
|
|
449
|
+
}));
|
|
317
450
|
}
|
|
318
451
|
/**
|
|
319
|
-
*
|
|
320
|
-
* @param resourceUri URI of the resource.
|
|
321
|
-
* @returns The client instance or undefined.
|
|
452
|
+
* Determine if a qualified MCP resource is cached.
|
|
322
453
|
*/
|
|
323
|
-
|
|
324
|
-
return this.
|
|
454
|
+
hasResource(resourceKey) {
|
|
455
|
+
return this.getResourceCacheEntry(resourceKey) !== void 0;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Get cached resource metadata by qualified key.
|
|
459
|
+
*/
|
|
460
|
+
getResource(resourceKey) {
|
|
461
|
+
const entry = this.getResourceCacheEntry(resourceKey);
|
|
462
|
+
if (!entry) return void 0;
|
|
463
|
+
return {
|
|
464
|
+
key: resourceKey,
|
|
465
|
+
serverName: entry.serverName,
|
|
466
|
+
summary: entry.summary
|
|
467
|
+
};
|
|
325
468
|
}
|
|
326
469
|
/**
|
|
327
|
-
* Read a specific resource by URI.
|
|
328
|
-
* @param
|
|
470
|
+
* Read a specific resource by qualified URI.
|
|
471
|
+
* @param resourceKey Qualified resource key in the form mcp:server:uri.
|
|
329
472
|
* @returns Promise resolving to the resource content.
|
|
330
473
|
*/
|
|
331
|
-
async readResource(
|
|
332
|
-
const
|
|
333
|
-
if (!
|
|
334
|
-
throw import_errors.MCPError.resourceNotFound(
|
|
474
|
+
async readResource(resourceKey) {
|
|
475
|
+
const entry = this.getResourceCacheEntry(resourceKey);
|
|
476
|
+
if (!entry) {
|
|
477
|
+
throw import_errors.MCPError.resourceNotFound(resourceKey);
|
|
335
478
|
}
|
|
336
|
-
return await client.readResource(uri);
|
|
479
|
+
return await entry.client.readResource(entry.summary.uri);
|
|
337
480
|
}
|
|
338
481
|
/**
|
|
339
482
|
* Initialize clients from server configurations
|
|
@@ -390,8 +533,12 @@ class MCPManager {
|
|
|
390
533
|
try {
|
|
391
534
|
import_logger.logger.info(`Attempting to connect to new server '${name}'...`);
|
|
392
535
|
await client.connect(config, name);
|
|
536
|
+
if (this.approvalManager) {
|
|
537
|
+
client.setApprovalManager(this.approvalManager);
|
|
538
|
+
}
|
|
393
539
|
this.registerClient(name, client);
|
|
394
540
|
await this.updateClientCache(name, client);
|
|
541
|
+
this.configCache.set(name, config);
|
|
395
542
|
import_logger.logger.info(`Successfully connected and cached new server '${name}'`);
|
|
396
543
|
} catch (error) {
|
|
397
544
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
@@ -415,6 +562,20 @@ class MCPManager {
|
|
|
415
562
|
getFailedConnections() {
|
|
416
563
|
return this.connectionErrors;
|
|
417
564
|
}
|
|
565
|
+
/**
|
|
566
|
+
* Refresh all client caches by re-fetching capabilities from servers
|
|
567
|
+
* Useful when you want to force a full refresh of tools, prompts, and resources
|
|
568
|
+
* In normal operation, caches are automatically kept fresh via server notifications
|
|
569
|
+
*/
|
|
570
|
+
async refresh() {
|
|
571
|
+
import_logger.logger.debug("Refreshing all MCPManager caches...");
|
|
572
|
+
const refreshPromises = [];
|
|
573
|
+
for (const [clientName, client] of this.clients.entries()) {
|
|
574
|
+
refreshPromises.push(this.updateClientCache(clientName, client));
|
|
575
|
+
}
|
|
576
|
+
await Promise.all(refreshPromises);
|
|
577
|
+
import_logger.logger.debug(`\u2705 MCPManager cache refresh complete for ${this.clients.size} client(s)`);
|
|
578
|
+
}
|
|
418
579
|
/**
|
|
419
580
|
* Disconnect and remove a specific client by name.
|
|
420
581
|
* @param name The name of the client to remove.
|
|
@@ -422,18 +583,17 @@ class MCPManager {
|
|
|
422
583
|
async removeClient(name) {
|
|
423
584
|
const client = this.clients.get(name);
|
|
424
585
|
if (client) {
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
);
|
|
433
|
-
}
|
|
586
|
+
try {
|
|
587
|
+
await client.disconnect();
|
|
588
|
+
import_logger.logger.info(`Successfully disconnected client: ${name}`);
|
|
589
|
+
} catch (error) {
|
|
590
|
+
import_logger.logger.error(
|
|
591
|
+
`Error disconnecting client '${name}': ${error instanceof Error ? error.message : String(error)}`
|
|
592
|
+
);
|
|
434
593
|
}
|
|
435
594
|
this.clearClientCache(name);
|
|
436
595
|
this.clients.delete(name);
|
|
596
|
+
this.configCache.delete(name);
|
|
437
597
|
import_logger.logger.info(`Removed client from manager: ${name}`);
|
|
438
598
|
}
|
|
439
599
|
if (this.connectionErrors[name]) {
|
|
@@ -441,31 +601,269 @@ class MCPManager {
|
|
|
441
601
|
import_logger.logger.info(`Cleared connection error for removed client: ${name}`);
|
|
442
602
|
}
|
|
443
603
|
}
|
|
604
|
+
/**
|
|
605
|
+
* Restart a specific MCP server by disconnecting and reconnecting with original config.
|
|
606
|
+
* @param name The name of the server to restart.
|
|
607
|
+
* @throws Error if server doesn't exist or config is not cached.
|
|
608
|
+
*/
|
|
609
|
+
async restartServer(name) {
|
|
610
|
+
const config = this.configCache.get(name);
|
|
611
|
+
if (!config) {
|
|
612
|
+
throw import_errors.MCPError.serverNotFound(
|
|
613
|
+
name,
|
|
614
|
+
"Server config not found - cannot restart dynamically added servers without stored config"
|
|
615
|
+
);
|
|
616
|
+
}
|
|
617
|
+
const client = this.clients.get(name);
|
|
618
|
+
import_logger.logger.info(`Restarting MCP server '${name}'...`);
|
|
619
|
+
if (client) {
|
|
620
|
+
try {
|
|
621
|
+
await client.disconnect();
|
|
622
|
+
import_logger.logger.info(`Disconnected server '${name}' for restart`);
|
|
623
|
+
} catch (error) {
|
|
624
|
+
import_logger.logger.warn(
|
|
625
|
+
`Error disconnecting server '${name}' during restart (continuing): ${error instanceof Error ? error.message : String(error)}`
|
|
626
|
+
);
|
|
627
|
+
}
|
|
628
|
+
} else {
|
|
629
|
+
import_logger.logger.info(
|
|
630
|
+
`No active client found for '${name}' during restart; attempting fresh connection`
|
|
631
|
+
);
|
|
632
|
+
}
|
|
633
|
+
this.clearClientCache(name);
|
|
634
|
+
this.clients.delete(name);
|
|
635
|
+
delete this.connectionErrors[name];
|
|
636
|
+
try {
|
|
637
|
+
const newClient = new import_mcp_client.MCPClient();
|
|
638
|
+
await newClient.connect(config, name);
|
|
639
|
+
if (this.approvalManager) {
|
|
640
|
+
newClient.setApprovalManager(this.approvalManager);
|
|
641
|
+
}
|
|
642
|
+
this.registerClient(name, newClient);
|
|
643
|
+
await this.updateClientCache(name, newClient);
|
|
644
|
+
import_logger.logger.info(`Successfully restarted server '${name}'`);
|
|
645
|
+
import_events.eventBus.emit("dexto:mcpServerRestarted", { serverName: name });
|
|
646
|
+
} catch (error) {
|
|
647
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
648
|
+
this.connectionErrors[name] = errorMsg;
|
|
649
|
+
import_logger.logger.error(`Failed to restart server '${name}': ${errorMsg}`);
|
|
650
|
+
throw import_errors.MCPError.connectionFailed(name, errorMsg);
|
|
651
|
+
}
|
|
652
|
+
}
|
|
444
653
|
/**
|
|
445
654
|
* Disconnect all clients and clear caches
|
|
446
655
|
*/
|
|
447
656
|
async disconnectAll() {
|
|
448
657
|
const disconnectPromises = [];
|
|
449
658
|
for (const [name, client] of Array.from(this.clients.entries())) {
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
);
|
|
456
|
-
}
|
|
659
|
+
disconnectPromises.push(
|
|
660
|
+
client.disconnect().then(() => import_logger.logger.info(`Disconnected client: ${name}`)).catch(
|
|
661
|
+
(error) => import_logger.logger.error(`Failed to disconnect client '${name}': ${error}`)
|
|
662
|
+
)
|
|
663
|
+
);
|
|
457
664
|
}
|
|
458
665
|
await Promise.all(disconnectPromises);
|
|
459
666
|
this.clients.clear();
|
|
460
667
|
this.connectionErrors = {};
|
|
461
|
-
this.
|
|
462
|
-
this.
|
|
668
|
+
this.configCache.clear();
|
|
669
|
+
this.toolCache.clear();
|
|
463
670
|
this.toolConflicts.clear();
|
|
464
|
-
this.
|
|
465
|
-
this.
|
|
671
|
+
this.promptCache.clear();
|
|
672
|
+
this.resourceCache.clear();
|
|
466
673
|
this.sanitizedNameToServerMap.clear();
|
|
467
674
|
import_logger.logger.info("Disconnected all clients and cleared caches.");
|
|
468
675
|
}
|
|
676
|
+
/**
|
|
677
|
+
* Set up notification listeners for a specific client
|
|
678
|
+
*/
|
|
679
|
+
setupClientNotifications(clientName, client) {
|
|
680
|
+
try {
|
|
681
|
+
client.on("resourceUpdated", async (params) => {
|
|
682
|
+
import_logger.logger.debug(
|
|
683
|
+
`Received resource update notification from ${clientName}: ${params.uri}`
|
|
684
|
+
);
|
|
685
|
+
await this.handleResourceUpdated(clientName, params);
|
|
686
|
+
});
|
|
687
|
+
client.on("promptsListChanged", async () => {
|
|
688
|
+
import_logger.logger.debug(`Received prompts list change notification from ${clientName}`);
|
|
689
|
+
await this.handlePromptsListChanged(clientName, client);
|
|
690
|
+
});
|
|
691
|
+
client.on("toolsListChanged", async () => {
|
|
692
|
+
import_logger.logger.debug(`Received tools list change notification from ${clientName}`);
|
|
693
|
+
await this.handleToolsListChanged(clientName, client);
|
|
694
|
+
});
|
|
695
|
+
import_logger.logger.debug(`Set up notification listeners for client: ${clientName}`);
|
|
696
|
+
} catch (error) {
|
|
697
|
+
import_logger.logger.warn(`Failed to set up notification listeners for ${clientName}: ${error}`);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
/**
|
|
701
|
+
* Handle resource updated notification
|
|
702
|
+
*/
|
|
703
|
+
async handleResourceUpdated(serverName, params) {
|
|
704
|
+
try {
|
|
705
|
+
const client = this.clients.get(serverName);
|
|
706
|
+
if (client) {
|
|
707
|
+
const key = this.buildQualifiedResourceKey(serverName, params.uri);
|
|
708
|
+
try {
|
|
709
|
+
const resources = await client.listResources();
|
|
710
|
+
const updatedResource = resources.find((r) => r.uri === params.uri);
|
|
711
|
+
if (updatedResource) {
|
|
712
|
+
this.resourceCache.set(key, {
|
|
713
|
+
serverName,
|
|
714
|
+
client,
|
|
715
|
+
summary: updatedResource
|
|
716
|
+
});
|
|
717
|
+
import_logger.logger.debug(`Updated resource cache for: ${params.uri}`);
|
|
718
|
+
}
|
|
719
|
+
} catch (error) {
|
|
720
|
+
import_logger.logger.warn(`Failed to refresh resource ${params.uri}: ${error}`);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
import_events.eventBus.emit("dexto:mcpResourceUpdated", {
|
|
724
|
+
serverName,
|
|
725
|
+
resourceUri: params.uri
|
|
726
|
+
});
|
|
727
|
+
} catch (error) {
|
|
728
|
+
import_logger.logger.error(`Error handling resource update: ${error}`);
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
/**
|
|
732
|
+
* Handle prompts list changed notification
|
|
733
|
+
*/
|
|
734
|
+
async handlePromptsListChanged(serverName, client) {
|
|
735
|
+
try {
|
|
736
|
+
const existingPrompts = Array.from(this.promptCache.entries()).filter(([_, entry]) => entry.client === client).map(([promptName]) => promptName);
|
|
737
|
+
existingPrompts.forEach((promptName) => {
|
|
738
|
+
this.promptCache.delete(promptName);
|
|
739
|
+
});
|
|
740
|
+
try {
|
|
741
|
+
const newPrompts = await client.listPrompts();
|
|
742
|
+
for (const prompt of newPrompts) {
|
|
743
|
+
const definition = {
|
|
744
|
+
name: prompt.name,
|
|
745
|
+
...prompt.title && { title: prompt.title },
|
|
746
|
+
...prompt.description && { description: prompt.description },
|
|
747
|
+
...prompt.arguments && { arguments: prompt.arguments }
|
|
748
|
+
};
|
|
749
|
+
this.promptCache.set(prompt.name, {
|
|
750
|
+
serverName,
|
|
751
|
+
client,
|
|
752
|
+
definition
|
|
753
|
+
});
|
|
754
|
+
}
|
|
755
|
+
const promptNames = newPrompts.map((p) => p.name);
|
|
756
|
+
import_logger.logger.debug(
|
|
757
|
+
`Updated prompts cache for ${serverName}: [${promptNames.join(", ")}]`
|
|
758
|
+
);
|
|
759
|
+
import_events.eventBus.emit("dexto:mcpPromptsListChanged", {
|
|
760
|
+
serverName,
|
|
761
|
+
prompts: promptNames
|
|
762
|
+
});
|
|
763
|
+
} catch (error) {
|
|
764
|
+
import_logger.logger.warn(`Failed to refresh prompts for ${serverName}: ${error}`);
|
|
765
|
+
}
|
|
766
|
+
} catch (error) {
|
|
767
|
+
import_logger.logger.error(`Error handling prompts list change: ${error}`);
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
/**
|
|
771
|
+
* Handle tools list changed notification
|
|
772
|
+
*/
|
|
773
|
+
async handleToolsListChanged(serverName, client) {
|
|
774
|
+
try {
|
|
775
|
+
const removedToolBaseNames = /* @__PURE__ */ new Set();
|
|
776
|
+
for (const [toolKey, entry] of Array.from(this.toolCache.entries())) {
|
|
777
|
+
if (entry.serverName === serverName) {
|
|
778
|
+
const delimiterIndex = toolKey.lastIndexOf(MCPManager.SERVER_DELIMITER);
|
|
779
|
+
const baseName = delimiterIndex === -1 ? toolKey : toolKey.substring(
|
|
780
|
+
delimiterIndex + MCPManager.SERVER_DELIMITER.length
|
|
781
|
+
);
|
|
782
|
+
removedToolBaseNames.add(baseName);
|
|
783
|
+
this.toolCache.delete(toolKey);
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
try {
|
|
787
|
+
const tools = await client.getTools();
|
|
788
|
+
const toolNames = Object.keys(tools);
|
|
789
|
+
import_logger.logger.debug(
|
|
790
|
+
`\u{1F527} Refreshing tools from server '${serverName}': [${toolNames.join(", ")}]`
|
|
791
|
+
);
|
|
792
|
+
for (const toolName in tools) {
|
|
793
|
+
const toolDef = tools[toolName];
|
|
794
|
+
if (!toolDef) continue;
|
|
795
|
+
const existingEntry = this.toolCache.get(toolName);
|
|
796
|
+
if (existingEntry && existingEntry.serverName !== serverName) {
|
|
797
|
+
this.toolConflicts.add(toolName);
|
|
798
|
+
this.toolCache.delete(toolName);
|
|
799
|
+
const existingSanitized = this.sanitizeServerName(existingEntry.serverName);
|
|
800
|
+
const existingQualified = `${existingSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
|
|
801
|
+
this.toolCache.set(existingQualified, existingEntry);
|
|
802
|
+
const newSanitized = this.sanitizeServerName(serverName);
|
|
803
|
+
const newQualified = `${newSanitized}${MCPManager.SERVER_DELIMITER}${toolName}`;
|
|
804
|
+
this.toolCache.set(newQualified, {
|
|
805
|
+
serverName,
|
|
806
|
+
client,
|
|
807
|
+
definition: toolDef
|
|
808
|
+
});
|
|
809
|
+
import_logger.logger.warn(
|
|
810
|
+
`\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
|
|
811
|
+
);
|
|
812
|
+
} else if (this.toolConflicts.has(toolName)) {
|
|
813
|
+
const sanitizedName = this.sanitizeServerName(serverName);
|
|
814
|
+
const qualifiedName = `${sanitizedName}${MCPManager.SERVER_DELIMITER}${toolName}`;
|
|
815
|
+
this.toolCache.set(qualifiedName, {
|
|
816
|
+
serverName,
|
|
817
|
+
client,
|
|
818
|
+
definition: toolDef
|
|
819
|
+
});
|
|
820
|
+
import_logger.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
|
|
821
|
+
} else {
|
|
822
|
+
this.toolCache.set(toolName, {
|
|
823
|
+
serverName,
|
|
824
|
+
client,
|
|
825
|
+
definition: toolDef
|
|
826
|
+
});
|
|
827
|
+
import_logger.logger.debug(`\u2705 Tool '${toolName}' mapped to ${serverName}`);
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
for (const baseName of removedToolBaseNames) {
|
|
831
|
+
const remainingTools = Array.from(this.toolCache.entries()).filter(
|
|
832
|
+
([key, _]) => {
|
|
833
|
+
const delimiterIndex = key.lastIndexOf(MCPManager.SERVER_DELIMITER);
|
|
834
|
+
const bn = delimiterIndex === -1 ? key : key.substring(
|
|
835
|
+
delimiterIndex + MCPManager.SERVER_DELIMITER.length
|
|
836
|
+
);
|
|
837
|
+
return bn === baseName;
|
|
838
|
+
}
|
|
839
|
+
);
|
|
840
|
+
if (remainingTools.length === 0) {
|
|
841
|
+
this.toolConflicts.delete(baseName);
|
|
842
|
+
} else if (remainingTools.length === 1 && this.toolConflicts.has(baseName)) {
|
|
843
|
+
const singleTool = remainingTools[0];
|
|
844
|
+
if (singleTool) {
|
|
845
|
+
const [qualifiedKey, entry] = singleTool;
|
|
846
|
+
this.toolCache.delete(qualifiedKey);
|
|
847
|
+
this.toolCache.set(baseName, entry);
|
|
848
|
+
this.toolConflicts.delete(baseName);
|
|
849
|
+
import_logger.logger.debug(
|
|
850
|
+
`Restored tool '${baseName}' to simple name (conflict resolved)`
|
|
851
|
+
);
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
import_logger.logger.debug(`Updated tools cache for ${serverName}: [${toolNames.join(", ")}]`);
|
|
856
|
+
import_events.eventBus.emit("dexto:mcpToolsListChanged", {
|
|
857
|
+
serverName,
|
|
858
|
+
tools: toolNames
|
|
859
|
+
});
|
|
860
|
+
} catch (error) {
|
|
861
|
+
import_logger.logger.warn(`Failed to refresh tools for ${serverName}: ${error}`);
|
|
862
|
+
}
|
|
863
|
+
} catch (error) {
|
|
864
|
+
import_logger.logger.error(`Error handling tools list change: ${error}`);
|
|
865
|
+
}
|
|
866
|
+
}
|
|
469
867
|
}
|
|
470
868
|
// Annotate the CommonJS export names for ESM import in node:
|
|
471
869
|
0 && (module.exports = {
|