@dexto/core 1.2.3 → 1.2.5
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 +60 -0
- package/dist/agent/DextoAgent.cjs +579 -345
- package/dist/agent/DextoAgent.d.ts +131 -83
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +573 -336
- package/dist/agent/agentCard.cjs +4 -2
- package/dist/agent/agentCard.d.ts +0 -1
- package/dist/agent/agentCard.d.ts.map +1 -1
- package/dist/agent/agentCard.js +4 -2
- package/dist/agent/index.cjs +3 -7
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +7 -6
- package/dist/agent/schemas.cjs +164 -64
- package/dist/agent/schemas.d.ts +2605 -517
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +167 -64
- package/dist/agent/state-manager.cjs +28 -23
- package/dist/agent/state-manager.d.ts +4 -1
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/agent/state-manager.js +28 -23
- package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
- package/dist/agent/types.d.ts +54 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +0 -0
- package/dist/approval/errors.cjs +89 -8
- package/dist/approval/errors.d.ts +5 -3
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +89 -8
- package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
- package/dist/approval/factory.d.ts.map +1 -0
- package/dist/approval/{providers/factory.js → factory.js} +1 -1
- package/dist/approval/index.cjs +4 -6
- package/dist/approval/index.d.ts +3 -5
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +4 -5
- package/dist/approval/manager.cjs +140 -37
- package/dist/approval/manager.d.ts +56 -17
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +141 -38
- package/dist/approval/schemas.cjs +9 -1
- package/dist/approval/schemas.d.ts +120 -35
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +9 -2
- package/dist/approval/types.cjs +14 -2
- package/dist/approval/types.d.ts +64 -12
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +12 -1
- package/dist/context/compression/middle-removal.cjs +11 -11
- package/dist/context/compression/middle-removal.d.ts +3 -1
- package/dist/context/compression/middle-removal.d.ts.map +1 -1
- package/dist/context/compression/middle-removal.js +11 -11
- package/dist/context/compression/oldest-removal.cjs +18 -5
- package/dist/context/compression/oldest-removal.d.ts +3 -1
- package/dist/context/compression/oldest-removal.d.ts.map +1 -1
- package/dist/context/compression/oldest-removal.js +18 -5
- package/dist/context/manager.cjs +94 -67
- package/dist/context/manager.d.ts +13 -10
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +94 -67
- package/dist/context/utils.cjs +79 -65
- package/dist/context/utils.d.ts +15 -12
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +45 -31
- package/dist/errors/DextoRuntimeError.d.ts +5 -5
- package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts +5 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +1 -2
- package/dist/errors/types.cjs +1 -2
- package/dist/errors/types.d.ts +5 -8
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +1 -2
- package/dist/events/index.cjs +125 -55
- package/dist/events/index.d.ts +204 -97
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +123 -55
- package/dist/filesystem/filesystem-service.cjs +40 -30
- package/dist/filesystem/filesystem-service.d.ts +9 -1
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +40 -30
- package/dist/filesystem/path-validator.cjs +4 -3
- package/dist/filesystem/path-validator.d.ts +3 -1
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +4 -3
- package/dist/filesystem/types.d.ts +3 -3
- package/dist/filesystem/types.d.ts.map +1 -1
- package/dist/index.browser.cjs +7 -0
- package/dist/index.browser.d.ts +2 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +4 -0
- package/dist/index.cjs +0 -7
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/llm/formatters/anthropic.cjs +32 -21
- package/dist/llm/formatters/anthropic.d.ts +3 -0
- package/dist/llm/formatters/anthropic.d.ts.map +1 -1
- package/dist/llm/formatters/anthropic.js +32 -21
- package/dist/llm/formatters/factory.cjs +6 -7
- package/dist/llm/formatters/factory.d.ts +2 -1
- package/dist/llm/formatters/factory.d.ts.map +1 -1
- package/dist/llm/formatters/factory.js +4 -5
- package/dist/llm/formatters/openai.cjs +38 -9
- package/dist/llm/formatters/openai.d.ts +3 -0
- package/dist/llm/formatters/openai.d.ts.map +1 -1
- package/dist/llm/formatters/openai.js +38 -9
- package/dist/llm/formatters/vercel.cjs +49 -8
- package/dist/llm/formatters/vercel.d.ts +3 -0
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +49 -8
- package/dist/llm/registry.cjs +153 -17
- package/dist/llm/registry.d.ts +5 -2
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +143 -7
- package/dist/llm/resolver.cjs +4 -4
- package/dist/llm/resolver.d.ts +3 -2
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +4 -4
- package/dist/llm/schemas.cjs +6 -3
- package/dist/llm/schemas.d.ts +51 -17
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -3
- package/dist/llm/services/anthropic.cjs +216 -183
- package/dist/llm/services/anthropic.d.ts +3 -1
- package/dist/llm/services/anthropic.d.ts.map +1 -1
- package/dist/llm/services/anthropic.js +217 -184
- package/dist/llm/services/factory.cjs +15 -9
- package/dist/llm/services/factory.d.ts +2 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +15 -9
- package/dist/llm/services/openai.cjs +262 -225
- package/dist/llm/services/openai.d.ts +3 -1
- package/dist/llm/services/openai.d.ts.map +1 -1
- package/dist/llm/services/openai.js +263 -226
- package/dist/llm/services/test-utils.integration.cjs +58 -12
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +58 -12
- package/dist/llm/services/types.d.ts +9 -0
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +163 -111
- package/dist/llm/services/vercel.d.ts +3 -1
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +157 -105
- package/dist/llm/tokenizer/factory.cjs +2 -2
- package/dist/llm/tokenizer/factory.d.ts +3 -1
- package/dist/llm/tokenizer/factory.d.ts.map +1 -1
- package/dist/llm/tokenizer/factory.js +2 -2
- package/dist/llm/tokenizer/openai.cjs +16 -9
- package/dist/llm/tokenizer/openai.d.ts +4 -1
- package/dist/llm/tokenizer/openai.d.ts.map +1 -1
- package/dist/llm/tokenizer/openai.js +16 -9
- package/dist/llm/validation.cjs +8 -9
- package/dist/llm/validation.d.ts +3 -1
- package/dist/llm/validation.d.ts.map +1 -1
- package/dist/llm/validation.js +5 -6
- package/dist/logger/factory.cjs +54 -0
- package/dist/logger/factory.d.ts +36 -0
- package/dist/logger/factory.d.ts.map +1 -0
- package/dist/logger/factory.js +31 -0
- package/dist/logger/index.cjs +42 -3
- package/dist/logger/index.d.ts +17 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +26 -1
- package/dist/logger/logger.cjs +30 -17
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +30 -17
- package/dist/logger/v2/dexto-logger.cjs +141 -0
- package/dist/logger/v2/dexto-logger.d.ts +54 -0
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
- package/dist/logger/v2/dexto-logger.js +118 -0
- package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
- package/dist/logger/v2/error-codes.d.ts +13 -0
- package/dist/logger/v2/error-codes.d.ts.map +1 -0
- package/dist/logger/v2/error-codes.js +13 -0
- package/dist/logger/v2/errors.cjs +107 -0
- package/dist/logger/v2/errors.d.ts +32 -0
- package/dist/logger/v2/errors.d.ts.map +1 -0
- package/dist/logger/v2/errors.js +84 -0
- package/dist/logger/v2/schemas.cjs +57 -0
- package/dist/logger/v2/schemas.d.ts +147 -0
- package/dist/logger/v2/schemas.d.ts.map +1 -0
- package/dist/logger/v2/schemas.js +33 -0
- package/dist/logger/v2/transport-factory.cjs +53 -0
- package/dist/logger/v2/transport-factory.d.ts +21 -0
- package/dist/logger/v2/transport-factory.d.ts.map +1 -0
- package/dist/logger/v2/transport-factory.js +29 -0
- package/dist/logger/v2/transports/console-transport.cjs +79 -0
- package/dist/logger/v2/transports/console-transport.d.ts +23 -0
- package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/console-transport.js +46 -0
- package/dist/logger/v2/transports/file-transport.cjs +161 -0
- package/dist/logger/v2/transports/file-transport.d.ts +46 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/file-transport.js +128 -0
- package/dist/logger/v2/types.cjs +49 -0
- package/dist/logger/v2/types.d.ts +123 -0
- package/dist/logger/v2/types.d.ts.map +1 -0
- package/dist/logger/v2/types.js +26 -0
- package/dist/mcp/manager.cjs +88 -78
- package/dist/mcp/manager.d.ts +3 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +88 -78
- package/dist/mcp/mcp-client.cjs +109 -79
- package/dist/mcp/mcp-client.d.ts +3 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +102 -72
- package/dist/memory/manager.cjs +9 -7
- package/dist/memory/manager.d.ts +3 -1
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/manager.js +9 -7
- package/dist/memory/schemas.d.ts +6 -6
- package/dist/plugins/manager.cjs +21 -19
- package/dist/plugins/manager.d.ts +3 -1
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +21 -19
- package/dist/plugins/schemas.d.ts +9 -9
- package/dist/plugins/types.d.ts +2 -2
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.cjs +30 -20
- package/dist/process/command-validator.d.ts +4 -1
- package/dist/process/command-validator.d.ts.map +1 -1
- package/dist/process/command-validator.js +30 -20
- package/dist/process/process-service.cjs +23 -21
- package/dist/process/process-service.d.ts +3 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +23 -21
- package/dist/prompts/prompt-manager.cjs +25 -18
- package/dist/prompts/prompt-manager.d.ts +3 -1
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +25 -18
- package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
- package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/custom-prompt-provider.js +11 -7
- package/dist/prompts/providers/file-prompt-provider.cjs +14 -12
- package/dist/prompts/providers/file-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/file-prompt-provider.js +14 -12
- package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
- package/dist/prompts/providers/starter-prompt-provider.cjs +7 -5
- package/dist/prompts/providers/starter-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/starter-prompt-provider.js +7 -5
- package/dist/prompts/schemas.d.ts +3 -3
- package/dist/resources/handlers/blob-handler.cjs +15 -11
- package/dist/resources/handlers/blob-handler.d.ts +3 -1
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.js +15 -11
- package/dist/resources/handlers/factory.cjs +3 -3
- package/dist/resources/handlers/factory.d.ts +2 -1
- package/dist/resources/handlers/factory.d.ts.map +1 -1
- package/dist/resources/handlers/factory.js +3 -3
- package/dist/resources/handlers/filesystem-handler.cjs +10 -8
- package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +10 -8
- package/dist/resources/internal-provider.cjs +28 -20
- package/dist/resources/internal-provider.d.ts +3 -1
- package/dist/resources/internal-provider.d.ts.map +1 -1
- package/dist/resources/internal-provider.js +28 -20
- package/dist/resources/manager.cjs +34 -25
- package/dist/resources/manager.d.ts +3 -1
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +34 -25
- package/dist/resources/schemas.d.ts +6 -6
- package/dist/search/search-service.cjs +8 -6
- package/dist/search/search-service.d.ts +3 -1
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/search/search-service.js +8 -6
- package/dist/session/chat-session.cjs +40 -27
- package/dist/session/chat-session.d.ts +10 -7
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +40 -27
- package/dist/session/history/database.cjs +18 -11
- package/dist/session/history/database.d.ts +3 -1
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +18 -11
- package/dist/session/history/factory.cjs +2 -2
- package/dist/session/history/factory.d.ts +5 -1
- package/dist/session/history/factory.d.ts.map +1 -1
- package/dist/session/history/factory.js +2 -2
- package/dist/session/session-manager.cjs +37 -53
- package/dist/session/session-manager.d.ts +3 -17
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +37 -53
- package/dist/session/title-generator.cjs +3 -2
- package/dist/session/title-generator.d.ts +2 -1
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +3 -2
- package/dist/storage/blob/factory.cjs +9 -18
- package/dist/storage/blob/factory.d.ts +5 -4
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -17
- package/dist/storage/blob/local-blob-store.cjs +25 -32
- package/dist/storage/blob/local-blob-store.d.ts +3 -2
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
- package/dist/storage/blob/local-blob-store.js +25 -32
- package/dist/storage/blob/memory-blob-store.cjs +326 -0
- package/dist/storage/blob/memory-blob-store.d.ts +66 -0
- package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
- package/dist/storage/blob/memory-blob-store.js +303 -0
- package/dist/storage/blob/schemas.cjs +3 -1
- package/dist/storage/blob/schemas.d.ts +6 -6
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +3 -1
- package/dist/storage/cache/factory.cjs +7 -8
- package/dist/storage/cache/factory.d.ts +4 -1
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +4 -5
- package/dist/storage/cache/redis-store.cjs +4 -1
- package/dist/storage/cache/redis-store.d.ts +3 -1
- package/dist/storage/cache/redis-store.d.ts.map +1 -1
- package/dist/storage/cache/redis-store.js +4 -1
- package/dist/storage/database/factory.cjs +13 -16
- package/dist/storage/database/factory.d.ts +5 -3
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +9 -12
- package/dist/storage/database/postgres-store.cjs +4 -1
- package/dist/storage/database/postgres-store.d.ts +3 -1
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +4 -1
- package/dist/storage/database/schemas.cjs +3 -4
- package/dist/storage/database/schemas.d.ts +8 -16
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +3 -4
- package/dist/storage/database/sqlite-store.cjs +17 -45
- package/dist/storage/database/sqlite-store.d.ts +3 -3
- package/dist/storage/database/sqlite-store.d.ts.map +1 -1
- package/dist/storage/database/sqlite-store.js +17 -45
- package/dist/storage/schemas.cjs +3 -1
- package/dist/storage/schemas.d.ts +16 -23
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +3 -1
- package/dist/storage/storage-manager.cjs +15 -15
- package/dist/storage/storage-manager.d.ts +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +15 -15
- package/dist/systemPrompt/contributors.cjs +15 -15
- package/dist/systemPrompt/contributors.d.ts +5 -3
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.js +15 -15
- package/dist/systemPrompt/manager.cjs +11 -8
- package/dist/systemPrompt/manager.d.ts +4 -2
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +11 -8
- package/dist/systemPrompt/schemas.cjs +21 -1
- package/dist/systemPrompt/schemas.d.ts +53 -53
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +11 -1
- package/dist/telemetry/decorators.cjs +54 -15
- package/dist/telemetry/decorators.d.ts.map +1 -1
- package/dist/telemetry/decorators.js +54 -15
- package/dist/telemetry/utils.cjs +21 -14
- package/dist/telemetry/utils.d.ts +7 -3
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/telemetry/utils.js +21 -14
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
- package/dist/tools/errors.cjs +2 -1
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +2 -1
- package/dist/tools/internal-tools/constants.cjs +2 -1
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +2 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
- package/dist/tools/internal-tools/provider.cjs +21 -17
- package/dist/tools/internal-tools/provider.d.ts +3 -1
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +21 -17
- package/dist/tools/internal-tools/registry.cjs +5 -0
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -0
- package/dist/tools/schemas.cjs +16 -4
- package/dist/tools/schemas.d.ts +21 -9
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +15 -4
- package/dist/tools/tool-manager.cjs +64 -47
- package/dist/tools/tool-manager.d.ts +4 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +61 -44
- package/dist/tools/types.d.ts +0 -4
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/env-file.cjs +118 -0
- package/dist/utils/env-file.d.ts +5 -0
- package/dist/utils/env-file.d.ts.map +1 -0
- package/dist/utils/env-file.js +85 -0
- package/dist/utils/error-conversion.cjs +23 -1
- package/dist/utils/error-conversion.d.ts +2 -1
- package/dist/utils/error-conversion.d.ts.map +1 -1
- package/dist/utils/error-conversion.js +23 -1
- package/dist/utils/execution-context.d.ts.map +1 -1
- package/dist/utils/fs-walk.d.ts.map +1 -1
- package/dist/utils/index.cjs +7 -9
- package/dist/utils/index.d.ts +3 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -4
- package/dist/utils/path.cjs +22 -57
- package/dist/utils/path.d.ts +8 -7
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +21 -54
- package/dist/utils/result.cjs +37 -14
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +37 -14
- package/dist/utils/schema.cjs +2 -3
- package/dist/utils/schema.d.ts +2 -1
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +1 -2
- package/dist/utils/service-initializer.cjs +87 -61
- package/dist/utils/service-initializer.d.ts +4 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +69 -43
- package/package.json +7 -3
- package/dist/Dexto.cjs +0 -251
- package/dist/Dexto.d.ts +0 -191
- package/dist/Dexto.d.ts.map +0 -1
- package/dist/Dexto.js +0 -228
- package/dist/agent/registry/error-codes.cjs +0 -44
- package/dist/agent/registry/error-codes.d.ts +0 -21
- package/dist/agent/registry/error-codes.d.ts.map +0 -1
- package/dist/agent/registry/error-codes.js +0 -21
- package/dist/agent/registry/errors.cjs +0 -188
- package/dist/agent/registry/errors.d.ts +0 -63
- package/dist/agent/registry/errors.d.ts.map +0 -1
- package/dist/agent/registry/errors.js +0 -165
- package/dist/agent/registry/registry.cjs +0 -479
- package/dist/agent/registry/registry.d.ts +0 -130
- package/dist/agent/registry/registry.d.ts.map +0 -1
- package/dist/agent/registry/registry.js +0 -453
- package/dist/agent/registry/types.cjs +0 -74
- package/dist/agent/registry/types.d.ts +0 -142
- package/dist/agent/registry/types.d.ts.map +0 -1
- package/dist/agent/registry/types.js +0 -48
- package/dist/agent/registry/user-registry.cjs +0 -140
- package/dist/agent/registry/user-registry.d.ts +0 -34
- package/dist/agent/registry/user-registry.d.ts.map +0 -1
- package/dist/agent/registry/user-registry.js +0 -105
- package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
- package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
- package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/event-based-approval-provider.js +0 -133
- package/dist/approval/providers/factory.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.cjs +0 -54
- package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
- package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.js +0 -31
- package/dist/config/agent-resolver.cjs +0 -153
- package/dist/config/agent-resolver.d.ts +0 -14
- package/dist/config/agent-resolver.d.ts.map +0 -1
- package/dist/config/agent-resolver.js +0 -123
- package/dist/config/error-codes.cjs +0 -39
- package/dist/config/error-codes.d.ts +0 -16
- package/dist/config/error-codes.d.ts.map +0 -1
- package/dist/config/error-codes.js +0 -16
- package/dist/config/errors.cjs +0 -126
- package/dist/config/errors.d.ts +0 -34
- package/dist/config/errors.d.ts.map +0 -1
- package/dist/config/errors.js +0 -103
- package/dist/config/index.cjs +0 -26
- package/dist/config/index.d.ts +0 -4
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -3
- package/dist/config/loader.cjs +0 -119
- package/dist/config/loader.d.ts +0 -16
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -86
- package/dist/config/writer.cjs +0 -182
- package/dist/config/writer.d.ts +0 -35
- package/dist/config/writer.d.ts.map +0 -1
- package/dist/config/writer.js +0 -147
- package/dist/preferences/constants.d.ts +0 -2
- package/dist/preferences/constants.d.ts.map +0 -1
- package/dist/preferences/constants.js +0 -5
- package/dist/preferences/error-codes.d.ts +0 -8
- package/dist/preferences/error-codes.d.ts.map +0 -1
- package/dist/preferences/error-codes.js +0 -12
- package/dist/preferences/errors.cjs +0 -75
- package/dist/preferences/errors.d.ts +0 -18
- package/dist/preferences/errors.d.ts.map +0 -1
- package/dist/preferences/errors.js +0 -51
- package/dist/preferences/index.cjs +0 -55
- package/dist/preferences/index.d.ts +0 -6
- package/dist/preferences/index.d.ts.map +0 -1
- package/dist/preferences/index.js +0 -32
- package/dist/preferences/loader.cjs +0 -138
- package/dist/preferences/loader.d.ts +0 -51
- package/dist/preferences/loader.d.ts.map +0 -1
- package/dist/preferences/loader.js +0 -110
- package/dist/preferences/schemas.cjs +0 -75
- package/dist/preferences/schemas.d.ts +0 -110
- package/dist/preferences/schemas.d.ts.map +0 -1
- package/dist/preferences/schemas.js +0 -49
- package/dist/utils/api-key-store.cjs +0 -56
- package/dist/utils/api-key-store.d.ts +0 -24
- package/dist/utils/api-key-store.d.ts.map +0 -1
- package/dist/utils/api-key-store.js +0 -31
- package/dist/utils/env.cjs +0 -154
- package/dist/utils/env.d.ts +0 -28
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -119
- package/dist/utils/port-utils.cjs +0 -37
- package/dist/utils/port-utils.d.ts +0 -10
- package/dist/utils/port-utils.d.ts.map +0 -1
- package/dist/utils/port-utils.js +0 -14
- package/dist/utils/port-utils.spec.cjs +0 -26
- package/dist/utils/port-utils.spec.js +0 -25
- /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
package/dist/mcp/manager.cjs
CHANGED
|
@@ -22,7 +22,7 @@ __export(manager_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(manager_exports);
|
|
24
24
|
var import_mcp_client = require("./mcp-client.js");
|
|
25
|
-
var
|
|
25
|
+
var import_types = require("../logger/v2/types.js");
|
|
26
26
|
var import_errors = require("./errors.js");
|
|
27
27
|
var import_events = require("../events/index.js");
|
|
28
28
|
class MCPManager {
|
|
@@ -38,10 +38,12 @@ class MCPManager {
|
|
|
38
38
|
sanitizedNameToServerMap = /* @__PURE__ */ new Map();
|
|
39
39
|
approvalManager = null;
|
|
40
40
|
// Will be set by service initializer
|
|
41
|
+
logger;
|
|
41
42
|
// Use a distinctive delimiter that won't appear in normal server/tool names
|
|
42
43
|
// Using double hyphen as it's allowed in LLM tool name patterns (^[a-zA-Z0-9_-]+$)
|
|
43
44
|
static SERVER_DELIMITER = "--";
|
|
44
|
-
constructor() {
|
|
45
|
+
constructor(logger) {
|
|
46
|
+
this.logger = logger.createChild(import_types.DextoLogComponent.MCP);
|
|
45
47
|
}
|
|
46
48
|
/**
|
|
47
49
|
* Set the approval manager for handling elicitation requests from MCP servers
|
|
@@ -98,7 +100,7 @@ class MCPManager {
|
|
|
98
100
|
*/
|
|
99
101
|
registerClient(name, client) {
|
|
100
102
|
if (this.clients.has(name)) {
|
|
101
|
-
|
|
103
|
+
this.logger.warn(`Client '${name}' already registered. Overwriting.`);
|
|
102
104
|
}
|
|
103
105
|
this.clearClientCache(name);
|
|
104
106
|
const sanitizedName = this.sanitizeServerName(name);
|
|
@@ -109,7 +111,7 @@ class MCPManager {
|
|
|
109
111
|
this.clients.set(name, client);
|
|
110
112
|
this.sanitizedNameToServerMap.set(sanitizedName, name);
|
|
111
113
|
this.setupClientNotifications(name, client);
|
|
112
|
-
|
|
114
|
+
this.logger.info(`Registered client: ${name}`);
|
|
113
115
|
delete this.connectionErrors[name];
|
|
114
116
|
}
|
|
115
117
|
/**
|
|
@@ -153,7 +155,9 @@ class MCPManager {
|
|
|
153
155
|
this.toolCache.delete(qualifiedKey);
|
|
154
156
|
this.toolCache.set(baseName, entry);
|
|
155
157
|
this.toolConflicts.delete(baseName);
|
|
156
|
-
|
|
158
|
+
this.logger.debug(
|
|
159
|
+
`Restored tool '${baseName}' to simple name (conflict resolved)`
|
|
160
|
+
);
|
|
157
161
|
}
|
|
158
162
|
}
|
|
159
163
|
}
|
|
@@ -167,7 +171,7 @@ class MCPManager {
|
|
|
167
171
|
this.resourceCache.delete(key);
|
|
168
172
|
}
|
|
169
173
|
}
|
|
170
|
-
|
|
174
|
+
this.logger.debug(`Cleared cache for client: ${clientName}`);
|
|
171
175
|
}
|
|
172
176
|
/**
|
|
173
177
|
* Sanitize server name for use in tool prefixing.
|
|
@@ -212,7 +216,7 @@ class MCPManager {
|
|
|
212
216
|
async updateClientCache(clientName, client) {
|
|
213
217
|
try {
|
|
214
218
|
const tools = await client.getTools();
|
|
215
|
-
|
|
219
|
+
this.logger.debug(
|
|
216
220
|
`\u{1F527} Discovered ${Object.keys(tools).length} tools from server '${clientName}': [${Object.keys(tools).join(", ")}]`
|
|
217
221
|
);
|
|
218
222
|
for (const toolName in tools) {
|
|
@@ -232,7 +236,7 @@ class MCPManager {
|
|
|
232
236
|
client,
|
|
233
237
|
definition: toolDef
|
|
234
238
|
});
|
|
235
|
-
|
|
239
|
+
this.logger.warn(
|
|
236
240
|
`\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
|
|
237
241
|
);
|
|
238
242
|
} else if (this.toolConflicts.has(toolName)) {
|
|
@@ -243,21 +247,21 @@ class MCPManager {
|
|
|
243
247
|
client,
|
|
244
248
|
definition: toolDef
|
|
245
249
|
});
|
|
246
|
-
|
|
250
|
+
this.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
|
|
247
251
|
} else {
|
|
248
252
|
this.toolCache.set(toolName, {
|
|
249
253
|
serverName: clientName,
|
|
250
254
|
client,
|
|
251
255
|
definition: toolDef
|
|
252
256
|
});
|
|
253
|
-
|
|
257
|
+
this.logger.debug(`\u2705 Tool '${toolName}' mapped to ${clientName}`);
|
|
254
258
|
}
|
|
255
259
|
}
|
|
256
|
-
|
|
260
|
+
this.logger.debug(
|
|
257
261
|
`\u2705 Successfully cached ${Object.keys(tools).length} tools for client: ${clientName}`
|
|
258
262
|
);
|
|
259
263
|
} catch (error) {
|
|
260
|
-
|
|
264
|
+
this.logger.error(
|
|
261
265
|
`\u274C Error retrieving tools for client ${clientName}: ${error instanceof Error ? error.message : String(error)}`
|
|
262
266
|
);
|
|
263
267
|
return;
|
|
@@ -277,9 +281,9 @@ class MCPManager {
|
|
|
277
281
|
definition
|
|
278
282
|
});
|
|
279
283
|
}
|
|
280
|
-
|
|
284
|
+
this.logger.debug(`Cached ${prompts.length} prompts for client: ${clientName}`);
|
|
281
285
|
} catch (error) {
|
|
282
|
-
|
|
286
|
+
this.logger.debug(`Skipping prompts for client ${clientName}: ${error}`);
|
|
283
287
|
}
|
|
284
288
|
try {
|
|
285
289
|
this.removeServerResources(clientName);
|
|
@@ -292,9 +296,9 @@ class MCPManager {
|
|
|
292
296
|
summary
|
|
293
297
|
});
|
|
294
298
|
});
|
|
295
|
-
|
|
299
|
+
this.logger.debug(`Cached resources for client: ${clientName}`);
|
|
296
300
|
} catch (error) {
|
|
297
|
-
|
|
301
|
+
this.logger.debug(`Skipping resources for client ${clientName}: ${error}`);
|
|
298
302
|
}
|
|
299
303
|
}
|
|
300
304
|
/**
|
|
@@ -318,19 +322,17 @@ class MCPManager {
|
|
|
318
322
|
const serverNames = Array.from(
|
|
319
323
|
new Set(Array.from(this.toolCache.values()).map((e) => e.serverName))
|
|
320
324
|
);
|
|
321
|
-
|
|
325
|
+
this.logger.debug(
|
|
322
326
|
`\u{1F527} MCP tools from cache: ${Object.keys(allTools).length} total tools, ${this.toolConflicts.size} conflicts, connected servers: ${serverNames.join(", ")}`
|
|
323
327
|
);
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
}
|
|
333
|
-
import_logger.logger.silly(`MCP tools: ${JSON.stringify(allTools, null, 2)}`);
|
|
328
|
+
Object.keys(allTools).forEach((toolName) => {
|
|
329
|
+
if (toolName.includes(MCPManager.SERVER_DELIMITER)) {
|
|
330
|
+
this.logger.debug(` - ${toolName} (qualified)`);
|
|
331
|
+
} else {
|
|
332
|
+
this.logger.debug(` - ${toolName}`);
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
this.logger.silly(`MCP tools: ${JSON.stringify(allTools, null, 2)}`);
|
|
334
336
|
return allTools;
|
|
335
337
|
}
|
|
336
338
|
/**
|
|
@@ -371,20 +373,24 @@ class MCPManager {
|
|
|
371
373
|
async executeTool(toolName, args, _sessionId) {
|
|
372
374
|
const client = this.getToolClient(toolName);
|
|
373
375
|
if (!client) {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
376
|
+
this.logger.error(`\u274C No MCP tool found: ${toolName}`);
|
|
377
|
+
this.logger.debug(
|
|
378
|
+
`Available MCP tools: ${Array.from(this.toolCache.keys()).join(", ")}`
|
|
379
|
+
);
|
|
380
|
+
this.logger.debug(`Conflicted tools: ${Array.from(this.toolConflicts).join(", ")}`);
|
|
377
381
|
throw import_errors.MCPError.toolNotFound(toolName);
|
|
378
382
|
}
|
|
379
383
|
const parsed = this.parseQualifiedToolName(toolName);
|
|
380
384
|
const actualToolName = parsed ? parsed.toolName : toolName;
|
|
381
385
|
const serverName = parsed ? parsed.serverName : "direct";
|
|
382
|
-
|
|
386
|
+
this.logger.debug(
|
|
387
|
+
`\u25B6\uFE0F Executing MCP tool '${actualToolName}' on server '${serverName}'...`
|
|
388
|
+
);
|
|
383
389
|
try {
|
|
384
390
|
const result = await client.callTool(actualToolName, args);
|
|
385
391
|
return result;
|
|
386
392
|
} catch (error) {
|
|
387
|
-
|
|
393
|
+
this.logger.error(
|
|
388
394
|
`\u274C MCP tool execution failed: '${actualToolName}' - ${error instanceof Error ? error.message : String(error)}`
|
|
389
395
|
);
|
|
390
396
|
throw error;
|
|
@@ -485,7 +491,7 @@ class MCPManager {
|
|
|
485
491
|
*/
|
|
486
492
|
async initializeFromConfig(serverConfigs) {
|
|
487
493
|
if (Object.keys(serverConfigs).length === 0) {
|
|
488
|
-
|
|
494
|
+
this.logger.info("No MCP servers configured - running without external tools");
|
|
489
495
|
return;
|
|
490
496
|
}
|
|
491
497
|
const successfulConnections = [];
|
|
@@ -502,7 +508,7 @@ class MCPManager {
|
|
|
502
508
|
const connectPromise = this.connectServer(name, config).then(() => {
|
|
503
509
|
successfulConnections.push(name);
|
|
504
510
|
}).catch((error) => {
|
|
505
|
-
|
|
511
|
+
this.logger.debug(
|
|
506
512
|
`Handled connection error for '${name}' during initialization: ${error.message}`
|
|
507
513
|
);
|
|
508
514
|
});
|
|
@@ -526,12 +532,12 @@ class MCPManager {
|
|
|
526
532
|
*/
|
|
527
533
|
async connectServer(name, config) {
|
|
528
534
|
if (this.clients.has(name)) {
|
|
529
|
-
|
|
535
|
+
this.logger.warn(`Client '${name}' is already connected or registered.`);
|
|
530
536
|
return;
|
|
531
537
|
}
|
|
532
|
-
const client = new import_mcp_client.MCPClient();
|
|
538
|
+
const client = new import_mcp_client.MCPClient(this.logger);
|
|
533
539
|
try {
|
|
534
|
-
|
|
540
|
+
this.logger.info(`Attempting to connect to new server '${name}'...`);
|
|
535
541
|
await client.connect(config, name);
|
|
536
542
|
if (this.approvalManager) {
|
|
537
543
|
client.setApprovalManager(this.approvalManager);
|
|
@@ -539,11 +545,11 @@ class MCPManager {
|
|
|
539
545
|
this.registerClient(name, client);
|
|
540
546
|
await this.updateClientCache(name, client);
|
|
541
547
|
this.configCache.set(name, config);
|
|
542
|
-
|
|
548
|
+
this.logger.info(`Successfully connected and cached new server '${name}'`);
|
|
543
549
|
} catch (error) {
|
|
544
550
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
545
551
|
this.connectionErrors[name] = errorMsg;
|
|
546
|
-
|
|
552
|
+
this.logger.error(`Failed to connect to new server '${name}': ${errorMsg}`);
|
|
547
553
|
this.clients.delete(name);
|
|
548
554
|
throw import_errors.MCPError.connectionFailed(name, errorMsg);
|
|
549
555
|
}
|
|
@@ -568,13 +574,15 @@ class MCPManager {
|
|
|
568
574
|
* In normal operation, caches are automatically kept fresh via server notifications
|
|
569
575
|
*/
|
|
570
576
|
async refresh() {
|
|
571
|
-
|
|
577
|
+
this.logger.debug("Refreshing all MCPManager caches...");
|
|
572
578
|
const refreshPromises = [];
|
|
573
579
|
for (const [clientName, client] of this.clients.entries()) {
|
|
574
580
|
refreshPromises.push(this.updateClientCache(clientName, client));
|
|
575
581
|
}
|
|
576
582
|
await Promise.all(refreshPromises);
|
|
577
|
-
|
|
583
|
+
this.logger.debug(
|
|
584
|
+
`\u2705 MCPManager cache refresh complete for ${this.clients.size} client(s)`
|
|
585
|
+
);
|
|
578
586
|
}
|
|
579
587
|
/**
|
|
580
588
|
* Disconnect and remove a specific client by name.
|
|
@@ -585,20 +593,20 @@ class MCPManager {
|
|
|
585
593
|
if (client) {
|
|
586
594
|
try {
|
|
587
595
|
await client.disconnect();
|
|
588
|
-
|
|
596
|
+
this.logger.info(`Successfully disconnected client: ${name}`);
|
|
589
597
|
} catch (error) {
|
|
590
|
-
|
|
598
|
+
this.logger.error(
|
|
591
599
|
`Error disconnecting client '${name}': ${error instanceof Error ? error.message : String(error)}`
|
|
592
600
|
);
|
|
593
601
|
}
|
|
594
602
|
this.clearClientCache(name);
|
|
595
603
|
this.clients.delete(name);
|
|
596
604
|
this.configCache.delete(name);
|
|
597
|
-
|
|
605
|
+
this.logger.info(`Removed client from manager: ${name}`);
|
|
598
606
|
}
|
|
599
607
|
if (this.connectionErrors[name]) {
|
|
600
608
|
delete this.connectionErrors[name];
|
|
601
|
-
|
|
609
|
+
this.logger.info(`Cleared connection error for removed client: ${name}`);
|
|
602
610
|
}
|
|
603
611
|
}
|
|
604
612
|
/**
|
|
@@ -615,18 +623,18 @@ class MCPManager {
|
|
|
615
623
|
);
|
|
616
624
|
}
|
|
617
625
|
const client = this.clients.get(name);
|
|
618
|
-
|
|
626
|
+
this.logger.info(`Restarting MCP server '${name}'...`);
|
|
619
627
|
if (client) {
|
|
620
628
|
try {
|
|
621
629
|
await client.disconnect();
|
|
622
|
-
|
|
630
|
+
this.logger.info(`Disconnected server '${name}' for restart`);
|
|
623
631
|
} catch (error) {
|
|
624
|
-
|
|
632
|
+
this.logger.warn(
|
|
625
633
|
`Error disconnecting server '${name}' during restart (continuing): ${error instanceof Error ? error.message : String(error)}`
|
|
626
634
|
);
|
|
627
635
|
}
|
|
628
636
|
} else {
|
|
629
|
-
|
|
637
|
+
this.logger.info(
|
|
630
638
|
`No active client found for '${name}' during restart; attempting fresh connection`
|
|
631
639
|
);
|
|
632
640
|
}
|
|
@@ -634,19 +642,19 @@ class MCPManager {
|
|
|
634
642
|
this.clients.delete(name);
|
|
635
643
|
delete this.connectionErrors[name];
|
|
636
644
|
try {
|
|
637
|
-
const newClient = new import_mcp_client.MCPClient();
|
|
645
|
+
const newClient = new import_mcp_client.MCPClient(this.logger);
|
|
638
646
|
await newClient.connect(config, name);
|
|
639
647
|
if (this.approvalManager) {
|
|
640
648
|
newClient.setApprovalManager(this.approvalManager);
|
|
641
649
|
}
|
|
642
650
|
this.registerClient(name, newClient);
|
|
643
651
|
await this.updateClientCache(name, newClient);
|
|
644
|
-
|
|
645
|
-
import_events.eventBus.emit("
|
|
652
|
+
this.logger.info(`Successfully restarted server '${name}'`);
|
|
653
|
+
import_events.eventBus.emit("mcp:server-restarted", { serverName: name });
|
|
646
654
|
} catch (error) {
|
|
647
655
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
648
656
|
this.connectionErrors[name] = errorMsg;
|
|
649
|
-
|
|
657
|
+
this.logger.error(`Failed to restart server '${name}': ${errorMsg}`);
|
|
650
658
|
throw import_errors.MCPError.connectionFailed(name, errorMsg);
|
|
651
659
|
}
|
|
652
660
|
}
|
|
@@ -657,8 +665,8 @@ class MCPManager {
|
|
|
657
665
|
const disconnectPromises = [];
|
|
658
666
|
for (const [name, client] of Array.from(this.clients.entries())) {
|
|
659
667
|
disconnectPromises.push(
|
|
660
|
-
client.disconnect().then(() =>
|
|
661
|
-
(error) =>
|
|
668
|
+
client.disconnect().then(() => this.logger.info(`Disconnected client: ${name}`)).catch(
|
|
669
|
+
(error) => this.logger.error(`Failed to disconnect client '${name}': ${error}`)
|
|
662
670
|
)
|
|
663
671
|
);
|
|
664
672
|
}
|
|
@@ -671,7 +679,7 @@ class MCPManager {
|
|
|
671
679
|
this.promptCache.clear();
|
|
672
680
|
this.resourceCache.clear();
|
|
673
681
|
this.sanitizedNameToServerMap.clear();
|
|
674
|
-
|
|
682
|
+
this.logger.info("Disconnected all clients and cleared caches.");
|
|
675
683
|
}
|
|
676
684
|
/**
|
|
677
685
|
* Set up notification listeners for a specific client
|
|
@@ -679,22 +687,22 @@ class MCPManager {
|
|
|
679
687
|
setupClientNotifications(clientName, client) {
|
|
680
688
|
try {
|
|
681
689
|
client.on("resourceUpdated", async (params) => {
|
|
682
|
-
|
|
690
|
+
this.logger.debug(
|
|
683
691
|
`Received resource update notification from ${clientName}: ${params.uri}`
|
|
684
692
|
);
|
|
685
693
|
await this.handleResourceUpdated(clientName, params);
|
|
686
694
|
});
|
|
687
695
|
client.on("promptsListChanged", async () => {
|
|
688
|
-
|
|
696
|
+
this.logger.debug(`Received prompts list change notification from ${clientName}`);
|
|
689
697
|
await this.handlePromptsListChanged(clientName, client);
|
|
690
698
|
});
|
|
691
699
|
client.on("toolsListChanged", async () => {
|
|
692
|
-
|
|
700
|
+
this.logger.debug(`Received tools list change notification from ${clientName}`);
|
|
693
701
|
await this.handleToolsListChanged(clientName, client);
|
|
694
702
|
});
|
|
695
|
-
|
|
703
|
+
this.logger.debug(`Set up notification listeners for client: ${clientName}`);
|
|
696
704
|
} catch (error) {
|
|
697
|
-
|
|
705
|
+
this.logger.warn(`Failed to set up notification listeners for ${clientName}: ${error}`);
|
|
698
706
|
}
|
|
699
707
|
}
|
|
700
708
|
/**
|
|
@@ -714,18 +722,18 @@ class MCPManager {
|
|
|
714
722
|
client,
|
|
715
723
|
summary: updatedResource
|
|
716
724
|
});
|
|
717
|
-
|
|
725
|
+
this.logger.debug(`Updated resource cache for: ${params.uri}`);
|
|
718
726
|
}
|
|
719
727
|
} catch (error) {
|
|
720
|
-
|
|
728
|
+
this.logger.warn(`Failed to refresh resource ${params.uri}: ${error}`);
|
|
721
729
|
}
|
|
722
730
|
}
|
|
723
|
-
import_events.eventBus.emit("
|
|
731
|
+
import_events.eventBus.emit("mcp:resource-updated", {
|
|
724
732
|
serverName,
|
|
725
733
|
resourceUri: params.uri
|
|
726
734
|
});
|
|
727
735
|
} catch (error) {
|
|
728
|
-
|
|
736
|
+
this.logger.error(`Error handling resource update: ${error}`);
|
|
729
737
|
}
|
|
730
738
|
}
|
|
731
739
|
/**
|
|
@@ -753,18 +761,18 @@ class MCPManager {
|
|
|
753
761
|
});
|
|
754
762
|
}
|
|
755
763
|
const promptNames = newPrompts.map((p) => p.name);
|
|
756
|
-
|
|
764
|
+
this.logger.debug(
|
|
757
765
|
`Updated prompts cache for ${serverName}: [${promptNames.join(", ")}]`
|
|
758
766
|
);
|
|
759
|
-
import_events.eventBus.emit("
|
|
767
|
+
import_events.eventBus.emit("mcp:prompts-list-changed", {
|
|
760
768
|
serverName,
|
|
761
769
|
prompts: promptNames
|
|
762
770
|
});
|
|
763
771
|
} catch (error) {
|
|
764
|
-
|
|
772
|
+
this.logger.warn(`Failed to refresh prompts for ${serverName}: ${error}`);
|
|
765
773
|
}
|
|
766
774
|
} catch (error) {
|
|
767
|
-
|
|
775
|
+
this.logger.error(`Error handling prompts list change: ${error}`);
|
|
768
776
|
}
|
|
769
777
|
}
|
|
770
778
|
/**
|
|
@@ -786,7 +794,7 @@ class MCPManager {
|
|
|
786
794
|
try {
|
|
787
795
|
const tools = await client.getTools();
|
|
788
796
|
const toolNames = Object.keys(tools);
|
|
789
|
-
|
|
797
|
+
this.logger.debug(
|
|
790
798
|
`\u{1F527} Refreshing tools from server '${serverName}': [${toolNames.join(", ")}]`
|
|
791
799
|
);
|
|
792
800
|
for (const toolName in tools) {
|
|
@@ -806,7 +814,7 @@ class MCPManager {
|
|
|
806
814
|
client,
|
|
807
815
|
definition: toolDef
|
|
808
816
|
});
|
|
809
|
-
|
|
817
|
+
this.logger.warn(
|
|
810
818
|
`\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
|
|
811
819
|
);
|
|
812
820
|
} else if (this.toolConflicts.has(toolName)) {
|
|
@@ -817,14 +825,14 @@ class MCPManager {
|
|
|
817
825
|
client,
|
|
818
826
|
definition: toolDef
|
|
819
827
|
});
|
|
820
|
-
|
|
828
|
+
this.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
|
|
821
829
|
} else {
|
|
822
830
|
this.toolCache.set(toolName, {
|
|
823
831
|
serverName,
|
|
824
832
|
client,
|
|
825
833
|
definition: toolDef
|
|
826
834
|
});
|
|
827
|
-
|
|
835
|
+
this.logger.debug(`\u2705 Tool '${toolName}' mapped to ${serverName}`);
|
|
828
836
|
}
|
|
829
837
|
}
|
|
830
838
|
for (const baseName of removedToolBaseNames) {
|
|
@@ -846,22 +854,24 @@ class MCPManager {
|
|
|
846
854
|
this.toolCache.delete(qualifiedKey);
|
|
847
855
|
this.toolCache.set(baseName, entry);
|
|
848
856
|
this.toolConflicts.delete(baseName);
|
|
849
|
-
|
|
857
|
+
this.logger.debug(
|
|
850
858
|
`Restored tool '${baseName}' to simple name (conflict resolved)`
|
|
851
859
|
);
|
|
852
860
|
}
|
|
853
861
|
}
|
|
854
862
|
}
|
|
855
|
-
|
|
856
|
-
|
|
863
|
+
this.logger.debug(
|
|
864
|
+
`Updated tools cache for ${serverName}: [${toolNames.join(", ")}]`
|
|
865
|
+
);
|
|
866
|
+
import_events.eventBus.emit("mcp:tools-list-changed", {
|
|
857
867
|
serverName,
|
|
858
868
|
tools: toolNames
|
|
859
869
|
});
|
|
860
870
|
} catch (error) {
|
|
861
|
-
|
|
871
|
+
this.logger.warn(`Failed to refresh tools for ${serverName}: ${error}`);
|
|
862
872
|
}
|
|
863
873
|
} catch (error) {
|
|
864
|
-
|
|
874
|
+
this.logger.error(`Error handling tools list change: ${error}`);
|
|
865
875
|
}
|
|
866
876
|
}
|
|
867
877
|
}
|
package/dist/mcp/manager.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ValidatedServerConfigs, ValidatedMcpServerConfig } from './schemas.js';
|
|
2
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
2
3
|
import { GetPromptResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
|
|
3
4
|
import { IMCPClient, MCPResolvedResource } from './types.js';
|
|
4
5
|
import { ToolSet } from '../tools/types.js';
|
|
@@ -14,8 +15,9 @@ export declare class MCPManager {
|
|
|
14
15
|
private resourceCache;
|
|
15
16
|
private sanitizedNameToServerMap;
|
|
16
17
|
private approvalManager;
|
|
18
|
+
private logger;
|
|
17
19
|
private static readonly SERVER_DELIMITER;
|
|
18
|
-
constructor();
|
|
20
|
+
constructor(logger: IDextoLogger);
|
|
19
21
|
/**
|
|
20
22
|
* Set the approval manager for handling elicitation requests from MCP servers
|
|
21
23
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"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"}
|