@dexto/core 1.2.4 → 1.2.6
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 +179 -75
- package/dist/agent/schemas.d.ts +2678 -586
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +172 -65
- 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/index.cjs +2 -0
- package/dist/memory/index.d.ts +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -1
- 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.cjs +10 -0
- package/dist/memory/schemas.d.ts +37 -8
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/memory/schemas.js +9 -0
- 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/index.cjs +6 -8
- package/dist/prompts/index.d.ts +2 -4
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +4 -6
- package/dist/prompts/prompt-manager.cjs +25 -20
- 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 -20
- package/dist/prompts/providers/config-prompt-provider.cjs +331 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts +34 -0
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -0
- package/dist/prompts/providers/config-prompt-provider.js +308 -0
- 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/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/schemas.cjs +42 -23
- package/dist/prompts/schemas.d.ts +123 -14
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +39 -22
- package/dist/prompts/types.d.ts +1 -1
- package/dist/prompts/types.d.ts.map +1 -1
- 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/in-built-prompts.cjs +0 -5
- package/dist/systemPrompt/in-built-prompts.d.ts +1 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +0 -4
- package/dist/systemPrompt/manager.cjs +31 -23
- package/dist/systemPrompt/manager.d.ts +5 -3
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +31 -23
- package/dist/systemPrompt/registry.cjs +1 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +1 -2
- package/dist/systemPrompt/schemas.cjs +24 -18
- package/dist/systemPrompt/schemas.d.ts +46 -222
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +14 -18
- 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 +88 -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 +70 -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/prompts/providers/file-prompt-provider.cjs +0 -399
- package/dist/prompts/providers/file-prompt-provider.d.ts +0 -47
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/file-prompt-provider.js +0 -376
- package/dist/prompts/providers/starter-prompt-provider.cjs +0 -170
- package/dist/prompts/providers/starter-prompt-provider.d.ts +0 -45
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +0 -1
- package/dist/prompts/providers/starter-prompt-provider.js +0 -147
- 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.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "../chunk-C6A6W6XS.js";
|
|
2
2
|
import { MCPClient } from "./mcp-client.js";
|
|
3
|
-
import {
|
|
3
|
+
import { DextoLogComponent } from "../logger/v2/types.js";
|
|
4
4
|
import { MCPError } from "./errors.js";
|
|
5
5
|
import { eventBus } from "../events/index.js";
|
|
6
6
|
class MCPManager {
|
|
@@ -16,10 +16,12 @@ class MCPManager {
|
|
|
16
16
|
sanitizedNameToServerMap = /* @__PURE__ */ new Map();
|
|
17
17
|
approvalManager = null;
|
|
18
18
|
// Will be set by service initializer
|
|
19
|
+
logger;
|
|
19
20
|
// Use a distinctive delimiter that won't appear in normal server/tool names
|
|
20
21
|
// Using double hyphen as it's allowed in LLM tool name patterns (^[a-zA-Z0-9_-]+$)
|
|
21
22
|
static SERVER_DELIMITER = "--";
|
|
22
|
-
constructor() {
|
|
23
|
+
constructor(logger) {
|
|
24
|
+
this.logger = logger.createChild(DextoLogComponent.MCP);
|
|
23
25
|
}
|
|
24
26
|
/**
|
|
25
27
|
* Set the approval manager for handling elicitation requests from MCP servers
|
|
@@ -76,7 +78,7 @@ class MCPManager {
|
|
|
76
78
|
*/
|
|
77
79
|
registerClient(name, client) {
|
|
78
80
|
if (this.clients.has(name)) {
|
|
79
|
-
logger.warn(`Client '${name}' already registered. Overwriting.`);
|
|
81
|
+
this.logger.warn(`Client '${name}' already registered. Overwriting.`);
|
|
80
82
|
}
|
|
81
83
|
this.clearClientCache(name);
|
|
82
84
|
const sanitizedName = this.sanitizeServerName(name);
|
|
@@ -87,7 +89,7 @@ class MCPManager {
|
|
|
87
89
|
this.clients.set(name, client);
|
|
88
90
|
this.sanitizedNameToServerMap.set(sanitizedName, name);
|
|
89
91
|
this.setupClientNotifications(name, client);
|
|
90
|
-
logger.info(`Registered client: ${name}`);
|
|
92
|
+
this.logger.info(`Registered client: ${name}`);
|
|
91
93
|
delete this.connectionErrors[name];
|
|
92
94
|
}
|
|
93
95
|
/**
|
|
@@ -131,7 +133,9 @@ class MCPManager {
|
|
|
131
133
|
this.toolCache.delete(qualifiedKey);
|
|
132
134
|
this.toolCache.set(baseName, entry);
|
|
133
135
|
this.toolConflicts.delete(baseName);
|
|
134
|
-
logger.debug(
|
|
136
|
+
this.logger.debug(
|
|
137
|
+
`Restored tool '${baseName}' to simple name (conflict resolved)`
|
|
138
|
+
);
|
|
135
139
|
}
|
|
136
140
|
}
|
|
137
141
|
}
|
|
@@ -145,7 +149,7 @@ class MCPManager {
|
|
|
145
149
|
this.resourceCache.delete(key);
|
|
146
150
|
}
|
|
147
151
|
}
|
|
148
|
-
logger.debug(`Cleared cache for client: ${clientName}`);
|
|
152
|
+
this.logger.debug(`Cleared cache for client: ${clientName}`);
|
|
149
153
|
}
|
|
150
154
|
/**
|
|
151
155
|
* Sanitize server name for use in tool prefixing.
|
|
@@ -190,7 +194,7 @@ class MCPManager {
|
|
|
190
194
|
async updateClientCache(clientName, client) {
|
|
191
195
|
try {
|
|
192
196
|
const tools = await client.getTools();
|
|
193
|
-
logger.debug(
|
|
197
|
+
this.logger.debug(
|
|
194
198
|
`\u{1F527} Discovered ${Object.keys(tools).length} tools from server '${clientName}': [${Object.keys(tools).join(", ")}]`
|
|
195
199
|
);
|
|
196
200
|
for (const toolName in tools) {
|
|
@@ -210,7 +214,7 @@ class MCPManager {
|
|
|
210
214
|
client,
|
|
211
215
|
definition: toolDef
|
|
212
216
|
});
|
|
213
|
-
logger.warn(
|
|
217
|
+
this.logger.warn(
|
|
214
218
|
`\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
|
|
215
219
|
);
|
|
216
220
|
} else if (this.toolConflicts.has(toolName)) {
|
|
@@ -221,21 +225,21 @@ class MCPManager {
|
|
|
221
225
|
client,
|
|
222
226
|
definition: toolDef
|
|
223
227
|
});
|
|
224
|
-
logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
|
|
228
|
+
this.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
|
|
225
229
|
} else {
|
|
226
230
|
this.toolCache.set(toolName, {
|
|
227
231
|
serverName: clientName,
|
|
228
232
|
client,
|
|
229
233
|
definition: toolDef
|
|
230
234
|
});
|
|
231
|
-
logger.debug(`\u2705 Tool '${toolName}' mapped to ${clientName}`);
|
|
235
|
+
this.logger.debug(`\u2705 Tool '${toolName}' mapped to ${clientName}`);
|
|
232
236
|
}
|
|
233
237
|
}
|
|
234
|
-
logger.debug(
|
|
238
|
+
this.logger.debug(
|
|
235
239
|
`\u2705 Successfully cached ${Object.keys(tools).length} tools for client: ${clientName}`
|
|
236
240
|
);
|
|
237
241
|
} catch (error) {
|
|
238
|
-
logger.error(
|
|
242
|
+
this.logger.error(
|
|
239
243
|
`\u274C Error retrieving tools for client ${clientName}: ${error instanceof Error ? error.message : String(error)}`
|
|
240
244
|
);
|
|
241
245
|
return;
|
|
@@ -255,9 +259,9 @@ class MCPManager {
|
|
|
255
259
|
definition
|
|
256
260
|
});
|
|
257
261
|
}
|
|
258
|
-
logger.debug(`Cached ${prompts.length} prompts for client: ${clientName}`);
|
|
262
|
+
this.logger.debug(`Cached ${prompts.length} prompts for client: ${clientName}`);
|
|
259
263
|
} catch (error) {
|
|
260
|
-
logger.debug(`Skipping prompts for client ${clientName}: ${error}`);
|
|
264
|
+
this.logger.debug(`Skipping prompts for client ${clientName}: ${error}`);
|
|
261
265
|
}
|
|
262
266
|
try {
|
|
263
267
|
this.removeServerResources(clientName);
|
|
@@ -270,9 +274,9 @@ class MCPManager {
|
|
|
270
274
|
summary
|
|
271
275
|
});
|
|
272
276
|
});
|
|
273
|
-
logger.debug(`Cached resources for client: ${clientName}`);
|
|
277
|
+
this.logger.debug(`Cached resources for client: ${clientName}`);
|
|
274
278
|
} catch (error) {
|
|
275
|
-
logger.debug(`Skipping resources for client ${clientName}: ${error}`);
|
|
279
|
+
this.logger.debug(`Skipping resources for client ${clientName}: ${error}`);
|
|
276
280
|
}
|
|
277
281
|
}
|
|
278
282
|
/**
|
|
@@ -296,19 +300,17 @@ class MCPManager {
|
|
|
296
300
|
const serverNames = Array.from(
|
|
297
301
|
new Set(Array.from(this.toolCache.values()).map((e) => e.serverName))
|
|
298
302
|
);
|
|
299
|
-
logger.debug(
|
|
303
|
+
this.logger.debug(
|
|
300
304
|
`\u{1F527} MCP tools from cache: ${Object.keys(allTools).length} total tools, ${this.toolConflicts.size} conflicts, connected servers: ${serverNames.join(", ")}`
|
|
301
305
|
);
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
logger.silly(`MCP tools: ${JSON.stringify(allTools, null, 2)}`);
|
|
306
|
+
Object.keys(allTools).forEach((toolName) => {
|
|
307
|
+
if (toolName.includes(MCPManager.SERVER_DELIMITER)) {
|
|
308
|
+
this.logger.debug(` - ${toolName} (qualified)`);
|
|
309
|
+
} else {
|
|
310
|
+
this.logger.debug(` - ${toolName}`);
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
this.logger.silly(`MCP tools: ${JSON.stringify(allTools, null, 2)}`);
|
|
312
314
|
return allTools;
|
|
313
315
|
}
|
|
314
316
|
/**
|
|
@@ -349,20 +351,24 @@ class MCPManager {
|
|
|
349
351
|
async executeTool(toolName, args, _sessionId) {
|
|
350
352
|
const client = this.getToolClient(toolName);
|
|
351
353
|
if (!client) {
|
|
352
|
-
logger.error(`\u274C No MCP tool found: ${toolName}`);
|
|
353
|
-
logger.debug(
|
|
354
|
-
|
|
354
|
+
this.logger.error(`\u274C No MCP tool found: ${toolName}`);
|
|
355
|
+
this.logger.debug(
|
|
356
|
+
`Available MCP tools: ${Array.from(this.toolCache.keys()).join(", ")}`
|
|
357
|
+
);
|
|
358
|
+
this.logger.debug(`Conflicted tools: ${Array.from(this.toolConflicts).join(", ")}`);
|
|
355
359
|
throw MCPError.toolNotFound(toolName);
|
|
356
360
|
}
|
|
357
361
|
const parsed = this.parseQualifiedToolName(toolName);
|
|
358
362
|
const actualToolName = parsed ? parsed.toolName : toolName;
|
|
359
363
|
const serverName = parsed ? parsed.serverName : "direct";
|
|
360
|
-
logger.debug(
|
|
364
|
+
this.logger.debug(
|
|
365
|
+
`\u25B6\uFE0F Executing MCP tool '${actualToolName}' on server '${serverName}'...`
|
|
366
|
+
);
|
|
361
367
|
try {
|
|
362
368
|
const result = await client.callTool(actualToolName, args);
|
|
363
369
|
return result;
|
|
364
370
|
} catch (error) {
|
|
365
|
-
logger.error(
|
|
371
|
+
this.logger.error(
|
|
366
372
|
`\u274C MCP tool execution failed: '${actualToolName}' - ${error instanceof Error ? error.message : String(error)}`
|
|
367
373
|
);
|
|
368
374
|
throw error;
|
|
@@ -463,7 +469,7 @@ class MCPManager {
|
|
|
463
469
|
*/
|
|
464
470
|
async initializeFromConfig(serverConfigs) {
|
|
465
471
|
if (Object.keys(serverConfigs).length === 0) {
|
|
466
|
-
logger.info("No MCP servers configured - running without external tools");
|
|
472
|
+
this.logger.info("No MCP servers configured - running without external tools");
|
|
467
473
|
return;
|
|
468
474
|
}
|
|
469
475
|
const successfulConnections = [];
|
|
@@ -480,7 +486,7 @@ class MCPManager {
|
|
|
480
486
|
const connectPromise = this.connectServer(name, config).then(() => {
|
|
481
487
|
successfulConnections.push(name);
|
|
482
488
|
}).catch((error) => {
|
|
483
|
-
logger.debug(
|
|
489
|
+
this.logger.debug(
|
|
484
490
|
`Handled connection error for '${name}' during initialization: ${error.message}`
|
|
485
491
|
);
|
|
486
492
|
});
|
|
@@ -504,12 +510,12 @@ class MCPManager {
|
|
|
504
510
|
*/
|
|
505
511
|
async connectServer(name, config) {
|
|
506
512
|
if (this.clients.has(name)) {
|
|
507
|
-
logger.warn(`Client '${name}' is already connected or registered.`);
|
|
513
|
+
this.logger.warn(`Client '${name}' is already connected or registered.`);
|
|
508
514
|
return;
|
|
509
515
|
}
|
|
510
|
-
const client = new MCPClient();
|
|
516
|
+
const client = new MCPClient(this.logger);
|
|
511
517
|
try {
|
|
512
|
-
logger.info(`Attempting to connect to new server '${name}'...`);
|
|
518
|
+
this.logger.info(`Attempting to connect to new server '${name}'...`);
|
|
513
519
|
await client.connect(config, name);
|
|
514
520
|
if (this.approvalManager) {
|
|
515
521
|
client.setApprovalManager(this.approvalManager);
|
|
@@ -517,11 +523,11 @@ class MCPManager {
|
|
|
517
523
|
this.registerClient(name, client);
|
|
518
524
|
await this.updateClientCache(name, client);
|
|
519
525
|
this.configCache.set(name, config);
|
|
520
|
-
logger.info(`Successfully connected and cached new server '${name}'`);
|
|
526
|
+
this.logger.info(`Successfully connected and cached new server '${name}'`);
|
|
521
527
|
} catch (error) {
|
|
522
528
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
523
529
|
this.connectionErrors[name] = errorMsg;
|
|
524
|
-
logger.error(`Failed to connect to new server '${name}': ${errorMsg}`);
|
|
530
|
+
this.logger.error(`Failed to connect to new server '${name}': ${errorMsg}`);
|
|
525
531
|
this.clients.delete(name);
|
|
526
532
|
throw MCPError.connectionFailed(name, errorMsg);
|
|
527
533
|
}
|
|
@@ -546,13 +552,15 @@ class MCPManager {
|
|
|
546
552
|
* In normal operation, caches are automatically kept fresh via server notifications
|
|
547
553
|
*/
|
|
548
554
|
async refresh() {
|
|
549
|
-
logger.debug("Refreshing all MCPManager caches...");
|
|
555
|
+
this.logger.debug("Refreshing all MCPManager caches...");
|
|
550
556
|
const refreshPromises = [];
|
|
551
557
|
for (const [clientName, client] of this.clients.entries()) {
|
|
552
558
|
refreshPromises.push(this.updateClientCache(clientName, client));
|
|
553
559
|
}
|
|
554
560
|
await Promise.all(refreshPromises);
|
|
555
|
-
logger.debug(
|
|
561
|
+
this.logger.debug(
|
|
562
|
+
`\u2705 MCPManager cache refresh complete for ${this.clients.size} client(s)`
|
|
563
|
+
);
|
|
556
564
|
}
|
|
557
565
|
/**
|
|
558
566
|
* Disconnect and remove a specific client by name.
|
|
@@ -563,20 +571,20 @@ class MCPManager {
|
|
|
563
571
|
if (client) {
|
|
564
572
|
try {
|
|
565
573
|
await client.disconnect();
|
|
566
|
-
logger.info(`Successfully disconnected client: ${name}`);
|
|
574
|
+
this.logger.info(`Successfully disconnected client: ${name}`);
|
|
567
575
|
} catch (error) {
|
|
568
|
-
logger.error(
|
|
576
|
+
this.logger.error(
|
|
569
577
|
`Error disconnecting client '${name}': ${error instanceof Error ? error.message : String(error)}`
|
|
570
578
|
);
|
|
571
579
|
}
|
|
572
580
|
this.clearClientCache(name);
|
|
573
581
|
this.clients.delete(name);
|
|
574
582
|
this.configCache.delete(name);
|
|
575
|
-
logger.info(`Removed client from manager: ${name}`);
|
|
583
|
+
this.logger.info(`Removed client from manager: ${name}`);
|
|
576
584
|
}
|
|
577
585
|
if (this.connectionErrors[name]) {
|
|
578
586
|
delete this.connectionErrors[name];
|
|
579
|
-
logger.info(`Cleared connection error for removed client: ${name}`);
|
|
587
|
+
this.logger.info(`Cleared connection error for removed client: ${name}`);
|
|
580
588
|
}
|
|
581
589
|
}
|
|
582
590
|
/**
|
|
@@ -593,18 +601,18 @@ class MCPManager {
|
|
|
593
601
|
);
|
|
594
602
|
}
|
|
595
603
|
const client = this.clients.get(name);
|
|
596
|
-
logger.info(`Restarting MCP server '${name}'...`);
|
|
604
|
+
this.logger.info(`Restarting MCP server '${name}'...`);
|
|
597
605
|
if (client) {
|
|
598
606
|
try {
|
|
599
607
|
await client.disconnect();
|
|
600
|
-
logger.info(`Disconnected server '${name}' for restart`);
|
|
608
|
+
this.logger.info(`Disconnected server '${name}' for restart`);
|
|
601
609
|
} catch (error) {
|
|
602
|
-
logger.warn(
|
|
610
|
+
this.logger.warn(
|
|
603
611
|
`Error disconnecting server '${name}' during restart (continuing): ${error instanceof Error ? error.message : String(error)}`
|
|
604
612
|
);
|
|
605
613
|
}
|
|
606
614
|
} else {
|
|
607
|
-
logger.info(
|
|
615
|
+
this.logger.info(
|
|
608
616
|
`No active client found for '${name}' during restart; attempting fresh connection`
|
|
609
617
|
);
|
|
610
618
|
}
|
|
@@ -612,19 +620,19 @@ class MCPManager {
|
|
|
612
620
|
this.clients.delete(name);
|
|
613
621
|
delete this.connectionErrors[name];
|
|
614
622
|
try {
|
|
615
|
-
const newClient = new MCPClient();
|
|
623
|
+
const newClient = new MCPClient(this.logger);
|
|
616
624
|
await newClient.connect(config, name);
|
|
617
625
|
if (this.approvalManager) {
|
|
618
626
|
newClient.setApprovalManager(this.approvalManager);
|
|
619
627
|
}
|
|
620
628
|
this.registerClient(name, newClient);
|
|
621
629
|
await this.updateClientCache(name, newClient);
|
|
622
|
-
logger.info(`Successfully restarted server '${name}'`);
|
|
623
|
-
eventBus.emit("
|
|
630
|
+
this.logger.info(`Successfully restarted server '${name}'`);
|
|
631
|
+
eventBus.emit("mcp:server-restarted", { serverName: name });
|
|
624
632
|
} catch (error) {
|
|
625
633
|
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
626
634
|
this.connectionErrors[name] = errorMsg;
|
|
627
|
-
logger.error(`Failed to restart server '${name}': ${errorMsg}`);
|
|
635
|
+
this.logger.error(`Failed to restart server '${name}': ${errorMsg}`);
|
|
628
636
|
throw MCPError.connectionFailed(name, errorMsg);
|
|
629
637
|
}
|
|
630
638
|
}
|
|
@@ -635,8 +643,8 @@ class MCPManager {
|
|
|
635
643
|
const disconnectPromises = [];
|
|
636
644
|
for (const [name, client] of Array.from(this.clients.entries())) {
|
|
637
645
|
disconnectPromises.push(
|
|
638
|
-
client.disconnect().then(() => logger.info(`Disconnected client: ${name}`)).catch(
|
|
639
|
-
(error) => logger.error(`Failed to disconnect client '${name}': ${error}`)
|
|
646
|
+
client.disconnect().then(() => this.logger.info(`Disconnected client: ${name}`)).catch(
|
|
647
|
+
(error) => this.logger.error(`Failed to disconnect client '${name}': ${error}`)
|
|
640
648
|
)
|
|
641
649
|
);
|
|
642
650
|
}
|
|
@@ -649,7 +657,7 @@ class MCPManager {
|
|
|
649
657
|
this.promptCache.clear();
|
|
650
658
|
this.resourceCache.clear();
|
|
651
659
|
this.sanitizedNameToServerMap.clear();
|
|
652
|
-
logger.info("Disconnected all clients and cleared caches.");
|
|
660
|
+
this.logger.info("Disconnected all clients and cleared caches.");
|
|
653
661
|
}
|
|
654
662
|
/**
|
|
655
663
|
* Set up notification listeners for a specific client
|
|
@@ -657,22 +665,22 @@ class MCPManager {
|
|
|
657
665
|
setupClientNotifications(clientName, client) {
|
|
658
666
|
try {
|
|
659
667
|
client.on("resourceUpdated", async (params) => {
|
|
660
|
-
logger.debug(
|
|
668
|
+
this.logger.debug(
|
|
661
669
|
`Received resource update notification from ${clientName}: ${params.uri}`
|
|
662
670
|
);
|
|
663
671
|
await this.handleResourceUpdated(clientName, params);
|
|
664
672
|
});
|
|
665
673
|
client.on("promptsListChanged", async () => {
|
|
666
|
-
logger.debug(`Received prompts list change notification from ${clientName}`);
|
|
674
|
+
this.logger.debug(`Received prompts list change notification from ${clientName}`);
|
|
667
675
|
await this.handlePromptsListChanged(clientName, client);
|
|
668
676
|
});
|
|
669
677
|
client.on("toolsListChanged", async () => {
|
|
670
|
-
logger.debug(`Received tools list change notification from ${clientName}`);
|
|
678
|
+
this.logger.debug(`Received tools list change notification from ${clientName}`);
|
|
671
679
|
await this.handleToolsListChanged(clientName, client);
|
|
672
680
|
});
|
|
673
|
-
logger.debug(`Set up notification listeners for client: ${clientName}`);
|
|
681
|
+
this.logger.debug(`Set up notification listeners for client: ${clientName}`);
|
|
674
682
|
} catch (error) {
|
|
675
|
-
logger.warn(`Failed to set up notification listeners for ${clientName}: ${error}`);
|
|
683
|
+
this.logger.warn(`Failed to set up notification listeners for ${clientName}: ${error}`);
|
|
676
684
|
}
|
|
677
685
|
}
|
|
678
686
|
/**
|
|
@@ -692,18 +700,18 @@ class MCPManager {
|
|
|
692
700
|
client,
|
|
693
701
|
summary: updatedResource
|
|
694
702
|
});
|
|
695
|
-
logger.debug(`Updated resource cache for: ${params.uri}`);
|
|
703
|
+
this.logger.debug(`Updated resource cache for: ${params.uri}`);
|
|
696
704
|
}
|
|
697
705
|
} catch (error) {
|
|
698
|
-
logger.warn(`Failed to refresh resource ${params.uri}: ${error}`);
|
|
706
|
+
this.logger.warn(`Failed to refresh resource ${params.uri}: ${error}`);
|
|
699
707
|
}
|
|
700
708
|
}
|
|
701
|
-
eventBus.emit("
|
|
709
|
+
eventBus.emit("mcp:resource-updated", {
|
|
702
710
|
serverName,
|
|
703
711
|
resourceUri: params.uri
|
|
704
712
|
});
|
|
705
713
|
} catch (error) {
|
|
706
|
-
logger.error(`Error handling resource update: ${error}`);
|
|
714
|
+
this.logger.error(`Error handling resource update: ${error}`);
|
|
707
715
|
}
|
|
708
716
|
}
|
|
709
717
|
/**
|
|
@@ -731,18 +739,18 @@ class MCPManager {
|
|
|
731
739
|
});
|
|
732
740
|
}
|
|
733
741
|
const promptNames = newPrompts.map((p) => p.name);
|
|
734
|
-
logger.debug(
|
|
742
|
+
this.logger.debug(
|
|
735
743
|
`Updated prompts cache for ${serverName}: [${promptNames.join(", ")}]`
|
|
736
744
|
);
|
|
737
|
-
eventBus.emit("
|
|
745
|
+
eventBus.emit("mcp:prompts-list-changed", {
|
|
738
746
|
serverName,
|
|
739
747
|
prompts: promptNames
|
|
740
748
|
});
|
|
741
749
|
} catch (error) {
|
|
742
|
-
logger.warn(`Failed to refresh prompts for ${serverName}: ${error}`);
|
|
750
|
+
this.logger.warn(`Failed to refresh prompts for ${serverName}: ${error}`);
|
|
743
751
|
}
|
|
744
752
|
} catch (error) {
|
|
745
|
-
logger.error(`Error handling prompts list change: ${error}`);
|
|
753
|
+
this.logger.error(`Error handling prompts list change: ${error}`);
|
|
746
754
|
}
|
|
747
755
|
}
|
|
748
756
|
/**
|
|
@@ -764,7 +772,7 @@ class MCPManager {
|
|
|
764
772
|
try {
|
|
765
773
|
const tools = await client.getTools();
|
|
766
774
|
const toolNames = Object.keys(tools);
|
|
767
|
-
logger.debug(
|
|
775
|
+
this.logger.debug(
|
|
768
776
|
`\u{1F527} Refreshing tools from server '${serverName}': [${toolNames.join(", ")}]`
|
|
769
777
|
);
|
|
770
778
|
for (const toolName in tools) {
|
|
@@ -784,7 +792,7 @@ class MCPManager {
|
|
|
784
792
|
client,
|
|
785
793
|
definition: toolDef
|
|
786
794
|
});
|
|
787
|
-
logger.warn(
|
|
795
|
+
this.logger.warn(
|
|
788
796
|
`\u26A0\uFE0F Tool conflict detected for '${toolName}' - using server prefixes: ${existingQualified}, ${newQualified}`
|
|
789
797
|
);
|
|
790
798
|
} else if (this.toolConflicts.has(toolName)) {
|
|
@@ -795,14 +803,14 @@ class MCPManager {
|
|
|
795
803
|
client,
|
|
796
804
|
definition: toolDef
|
|
797
805
|
});
|
|
798
|
-
logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
|
|
806
|
+
this.logger.debug(`\u2705 Tool '${qualifiedName}' cached (known conflict)`);
|
|
799
807
|
} else {
|
|
800
808
|
this.toolCache.set(toolName, {
|
|
801
809
|
serverName,
|
|
802
810
|
client,
|
|
803
811
|
definition: toolDef
|
|
804
812
|
});
|
|
805
|
-
logger.debug(`\u2705 Tool '${toolName}' mapped to ${serverName}`);
|
|
813
|
+
this.logger.debug(`\u2705 Tool '${toolName}' mapped to ${serverName}`);
|
|
806
814
|
}
|
|
807
815
|
}
|
|
808
816
|
for (const baseName of removedToolBaseNames) {
|
|
@@ -824,22 +832,24 @@ class MCPManager {
|
|
|
824
832
|
this.toolCache.delete(qualifiedKey);
|
|
825
833
|
this.toolCache.set(baseName, entry);
|
|
826
834
|
this.toolConflicts.delete(baseName);
|
|
827
|
-
logger.debug(
|
|
835
|
+
this.logger.debug(
|
|
828
836
|
`Restored tool '${baseName}' to simple name (conflict resolved)`
|
|
829
837
|
);
|
|
830
838
|
}
|
|
831
839
|
}
|
|
832
840
|
}
|
|
833
|
-
logger.debug(
|
|
834
|
-
|
|
841
|
+
this.logger.debug(
|
|
842
|
+
`Updated tools cache for ${serverName}: [${toolNames.join(", ")}]`
|
|
843
|
+
);
|
|
844
|
+
eventBus.emit("mcp:tools-list-changed", {
|
|
835
845
|
serverName,
|
|
836
846
|
tools: toolNames
|
|
837
847
|
});
|
|
838
848
|
} catch (error) {
|
|
839
|
-
logger.warn(`Failed to refresh tools for ${serverName}: ${error}`);
|
|
849
|
+
this.logger.warn(`Failed to refresh tools for ${serverName}: ${error}`);
|
|
840
850
|
}
|
|
841
851
|
} catch (error) {
|
|
842
|
-
logger.error(`Error handling tools list change: ${error}`);
|
|
852
|
+
this.logger.error(`Error handling tools list change: ${error}`);
|
|
843
853
|
}
|
|
844
854
|
}
|
|
845
855
|
}
|