@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/mcp-client.cjs
CHANGED
|
@@ -27,11 +27,13 @@ var import_sse = require("@modelcontextprotocol/sdk/client/sse.js");
|
|
|
27
27
|
var import_streamableHttp = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
28
28
|
var import_events = require("events");
|
|
29
29
|
var import_zod = require("zod");
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var import_path = require("../utils/path.js");
|
|
30
|
+
var import_types = require("../logger/v2/types.js");
|
|
31
|
+
var import_types2 = require("../approval/types.js");
|
|
33
32
|
var import_errors = require("./errors.js");
|
|
34
|
-
var
|
|
33
|
+
var import_types5 = require("@modelcontextprotocol/sdk/types.js");
|
|
34
|
+
var import_api = require("@opentelemetry/api");
|
|
35
|
+
var import_utils = require("../telemetry/utils.js");
|
|
36
|
+
var import_safe_stringify = require("../utils/safe-stringify.js");
|
|
35
37
|
class MCPClient extends import_events.EventEmitter {
|
|
36
38
|
client = null;
|
|
37
39
|
transport = null;
|
|
@@ -47,6 +49,11 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
47
49
|
// Default timeout value
|
|
48
50
|
approvalManager = null;
|
|
49
51
|
// Will be set by MCPManager
|
|
52
|
+
logger;
|
|
53
|
+
constructor(logger) {
|
|
54
|
+
super();
|
|
55
|
+
this.logger = logger.createChild(import_types.DextoLogComponent.MCP);
|
|
56
|
+
}
|
|
50
57
|
async connect(config, serverName) {
|
|
51
58
|
this.timeout = config.timeout ?? 3e4;
|
|
52
59
|
if (config.type === "stdio") {
|
|
@@ -80,30 +87,17 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
80
87
|
this.resolvedArgs = [...this.originalArgs];
|
|
81
88
|
this.serverEnv = env || null;
|
|
82
89
|
this.serverAlias = serverAlias || null;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const scriptRelativePath = this.resolvedArgs[0];
|
|
86
|
-
this.resolvedArgs[0] = (0, import_path.resolveBundledScript)(scriptRelativePath);
|
|
87
|
-
import_logger.logger.debug(
|
|
88
|
-
`Resolved bundled script path: ${scriptRelativePath} -> ${this.resolvedArgs[0]}`
|
|
89
|
-
);
|
|
90
|
-
} catch (e) {
|
|
91
|
-
import_logger.logger.warn(
|
|
92
|
-
`Failed to resolve path for bundled script ${this.resolvedArgs[0]}: ${JSON.stringify(e, null, 2)}`
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
import_logger.logger.info("=======================================");
|
|
97
|
-
import_logger.logger.info(`MCP SERVER: ${command} ${this.resolvedArgs.join(" ")}`, null, "magenta");
|
|
90
|
+
this.logger.info("=======================================");
|
|
91
|
+
this.logger.info(`MCP SERVER: ${command} ${this.resolvedArgs.join(" ")}`);
|
|
98
92
|
if (env) {
|
|
99
|
-
|
|
93
|
+
this.logger.info("Environment:");
|
|
100
94
|
Object.entries(env).forEach(([key, _]) => {
|
|
101
|
-
|
|
95
|
+
this.logger.info(` ${key}= [value hidden]`);
|
|
102
96
|
});
|
|
103
97
|
}
|
|
104
|
-
|
|
98
|
+
this.logger.info("=======================================\n");
|
|
105
99
|
const serverName = this.serverAlias ? `"${this.serverAlias}" (${command} ${this.resolvedArgs.join(" ")})` : `${command} ${this.resolvedArgs.join(" ")}`;
|
|
106
|
-
|
|
100
|
+
this.logger.info(`Connecting to MCP server: ${serverName}`);
|
|
107
101
|
const expandedEnv = {
|
|
108
102
|
...process.env,
|
|
109
103
|
...env || {}
|
|
@@ -127,24 +121,24 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
127
121
|
}
|
|
128
122
|
);
|
|
129
123
|
try {
|
|
130
|
-
|
|
124
|
+
this.logger.info("Establishing connection...");
|
|
131
125
|
await this.client.connect(this.transport);
|
|
132
126
|
this.serverSpawned = true;
|
|
133
|
-
|
|
134
|
-
|
|
127
|
+
this.logger.info(`\u2705 Stdio SERVER ${serverName} SPAWNED`);
|
|
128
|
+
this.logger.info("Connection established!\n\n");
|
|
135
129
|
this.isConnected = true;
|
|
136
130
|
this.setupNotificationHandlers();
|
|
137
131
|
this.setupElicitationHandler();
|
|
138
132
|
return this.client;
|
|
139
133
|
} catch (error) {
|
|
140
|
-
|
|
134
|
+
this.logger.error(
|
|
141
135
|
`Failed to connect to MCP server ${serverName}: ${JSON.stringify(error.message, null, 2)}`
|
|
142
136
|
);
|
|
143
137
|
throw error;
|
|
144
138
|
}
|
|
145
139
|
}
|
|
146
140
|
async connectViaSSE(url, headers = {}, serverName) {
|
|
147
|
-
|
|
141
|
+
this.logger.debug(`Connecting to SSE MCP server at url: ${url}`);
|
|
148
142
|
this.transport = new import_sse.SSEClientTransport(new URL(url), {
|
|
149
143
|
// For regular HTTP requests
|
|
150
144
|
requestInit: {
|
|
@@ -152,7 +146,7 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
152
146
|
}
|
|
153
147
|
// Need to implement eventSourceInit for SSE events.
|
|
154
148
|
});
|
|
155
|
-
|
|
149
|
+
this.logger.debug("[connectViaSSE] SSE transport initialized");
|
|
156
150
|
this.client = new import_client.Client(
|
|
157
151
|
{
|
|
158
152
|
name: "Dexto-sse-mcp-client",
|
|
@@ -167,17 +161,17 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
167
161
|
}
|
|
168
162
|
);
|
|
169
163
|
try {
|
|
170
|
-
|
|
164
|
+
this.logger.info("Establishing connection...");
|
|
171
165
|
await this.client.connect(this.transport);
|
|
172
166
|
this.serverSpawned = true;
|
|
173
|
-
|
|
174
|
-
|
|
167
|
+
this.logger.info(`\u2705 ${serverName} SSE SERVER SPAWNED`);
|
|
168
|
+
this.logger.info("Connection established!\n\n");
|
|
175
169
|
this.isConnected = true;
|
|
176
170
|
this.setupNotificationHandlers();
|
|
177
171
|
this.setupElicitationHandler();
|
|
178
172
|
return this.client;
|
|
179
173
|
} catch (error) {
|
|
180
|
-
|
|
174
|
+
this.logger.error(
|
|
181
175
|
`Failed to connect to SSE MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
|
|
182
176
|
);
|
|
183
177
|
throw error;
|
|
@@ -187,9 +181,13 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
187
181
|
* Connect to an MCP server via Streamable HTTP transport
|
|
188
182
|
*/
|
|
189
183
|
async connectViaHttp(url, headers = {}, serverAlias) {
|
|
190
|
-
|
|
184
|
+
this.logger.info(`Connecting to HTTP MCP server at ${url}`);
|
|
185
|
+
const defaultHeaders = {
|
|
186
|
+
Accept: "application/json, text/event-stream"
|
|
187
|
+
};
|
|
188
|
+
const mergedHeaders = { ...defaultHeaders, ...headers };
|
|
191
189
|
this.transport = new import_streamableHttp.StreamableHTTPClientTransport(new URL(url), {
|
|
192
|
-
requestInit: { headers:
|
|
190
|
+
requestInit: { headers: mergedHeaders }
|
|
193
191
|
});
|
|
194
192
|
this.client = new import_client.Client(
|
|
195
193
|
{ name: "Dexto-http-mcp-client", version: "1.0.0" },
|
|
@@ -202,15 +200,15 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
202
200
|
}
|
|
203
201
|
);
|
|
204
202
|
try {
|
|
205
|
-
|
|
203
|
+
this.logger.info("Establishing HTTP connection...");
|
|
206
204
|
await this.client.connect(this.transport);
|
|
207
205
|
this.isConnected = true;
|
|
208
|
-
|
|
206
|
+
this.logger.info(`\u2705 HTTP SERVER ${serverAlias ?? url} CONNECTED`);
|
|
209
207
|
this.setupNotificationHandlers();
|
|
210
208
|
this.setupElicitationHandler();
|
|
211
209
|
return this.client;
|
|
212
210
|
} catch (error) {
|
|
213
|
-
|
|
211
|
+
this.logger.error(
|
|
214
212
|
`Failed to connect to HTTP MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
|
|
215
213
|
);
|
|
216
214
|
throw error;
|
|
@@ -225,9 +223,9 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
225
223
|
await this.transport.close();
|
|
226
224
|
this.isConnected = false;
|
|
227
225
|
this.serverSpawned = false;
|
|
228
|
-
|
|
226
|
+
this.logger.info("Disconnected from MCP server");
|
|
229
227
|
} catch (error) {
|
|
230
|
-
|
|
228
|
+
this.logger.error(
|
|
231
229
|
`Error disconnecting from MCP server: ${JSON.stringify(error.message, null, 2)}`
|
|
232
230
|
);
|
|
233
231
|
}
|
|
@@ -241,8 +239,21 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
241
239
|
*/
|
|
242
240
|
async callTool(name, args) {
|
|
243
241
|
this.ensureConnected();
|
|
242
|
+
const shouldTrace = (0, import_utils.hasActiveTelemetry)();
|
|
243
|
+
const tracer = shouldTrace ? import_api.trace.getTracer("dexto") : null;
|
|
244
|
+
const span = tracer?.startSpan(`mcp.tool.${name}`, {
|
|
245
|
+
kind: import_api.SpanKind.CLIENT
|
|
246
|
+
});
|
|
244
247
|
try {
|
|
245
|
-
|
|
248
|
+
if (span) {
|
|
249
|
+
const ctx = import_api.trace.setSpan(import_api.context.active(), span);
|
|
250
|
+
(0, import_utils.addBaggageAttributesToSpan)(span, ctx, this.logger);
|
|
251
|
+
span.setAttribute("tool.name", name);
|
|
252
|
+
span.setAttribute("tool.server", this.serverAlias || "unknown");
|
|
253
|
+
span.setAttribute("tool.timeout", this.timeout);
|
|
254
|
+
span.setAttribute("tool.arguments", (0, import_safe_stringify.safeStringify)(args, 4096));
|
|
255
|
+
}
|
|
256
|
+
this.logger.debug(`Calling tool '${name}' with args: ${JSON.stringify(args, null, 2)}`);
|
|
246
257
|
let toolArgs = args;
|
|
247
258
|
if (typeof args === "string") {
|
|
248
259
|
try {
|
|
@@ -251,7 +262,7 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
251
262
|
toolArgs = { input: args };
|
|
252
263
|
}
|
|
253
264
|
}
|
|
254
|
-
|
|
265
|
+
this.logger.debug(`Using timeout: ${this.timeout}`);
|
|
255
266
|
const result = await this.client.callTool(
|
|
256
267
|
{ name, arguments: toolArgs },
|
|
257
268
|
void 0,
|
|
@@ -269,14 +280,27 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
269
280
|
},
|
|
270
281
|
2
|
|
271
282
|
);
|
|
272
|
-
|
|
283
|
+
this.logger.debug(`Tool '${name}' result: ${logResult}`);
|
|
284
|
+
if (span) {
|
|
285
|
+
span.setAttribute("tool.result", (0, import_safe_stringify.safeStringify)(result, 4096));
|
|
286
|
+
span.setStatus({ code: import_api.SpanStatusCode.OK });
|
|
287
|
+
}
|
|
273
288
|
if (result === null || result === void 0) {
|
|
274
289
|
return "Tool executed successfully with no result data.";
|
|
275
290
|
}
|
|
276
291
|
return result;
|
|
277
292
|
} catch (error) {
|
|
278
|
-
|
|
293
|
+
this.logger.error(`Tool call '${name}' failed: ${JSON.stringify(error, null, 2)}`);
|
|
294
|
+
if (span) {
|
|
295
|
+
span.recordException(error);
|
|
296
|
+
span.setStatus({
|
|
297
|
+
code: import_api.SpanStatusCode.ERROR,
|
|
298
|
+
message: error instanceof Error ? error.message : String(error)
|
|
299
|
+
});
|
|
300
|
+
}
|
|
279
301
|
return `Error executing tool '${name}': ${error instanceof Error ? error.message : String(error)}`;
|
|
302
|
+
} finally {
|
|
303
|
+
span?.end();
|
|
280
304
|
}
|
|
281
305
|
}
|
|
282
306
|
/**
|
|
@@ -288,11 +312,11 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
288
312
|
const tools = {};
|
|
289
313
|
try {
|
|
290
314
|
const listToolResult = await this.client.listTools({});
|
|
291
|
-
|
|
315
|
+
this.logger.silly(`listTools result: ${JSON.stringify(listToolResult, null, 2)}`);
|
|
292
316
|
if (listToolResult && listToolResult.tools) {
|
|
293
317
|
listToolResult.tools.forEach((tool) => {
|
|
294
318
|
if (!tool.description) {
|
|
295
|
-
|
|
319
|
+
this.logger.warn(`Tool '${tool.name}' is missing a description`);
|
|
296
320
|
}
|
|
297
321
|
if (!tool.inputSchema) {
|
|
298
322
|
throw import_errors.MCPError.invalidToolSchema(tool.name, "missing input schema");
|
|
@@ -308,7 +332,7 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
308
332
|
);
|
|
309
333
|
}
|
|
310
334
|
} catch (error) {
|
|
311
|
-
|
|
335
|
+
this.logger.warn(
|
|
312
336
|
`Failed to get tools from MCP server, proceeding with zero tools: ${JSON.stringify(error, null, 2)}`
|
|
313
337
|
);
|
|
314
338
|
return tools;
|
|
@@ -323,10 +347,10 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
323
347
|
this.ensureConnected();
|
|
324
348
|
try {
|
|
325
349
|
const response = await this.client.listPrompts();
|
|
326
|
-
|
|
350
|
+
this.logger.debug(`listPrompts response: ${JSON.stringify(response, null, 2)}`);
|
|
327
351
|
return response.prompts;
|
|
328
352
|
} catch (error) {
|
|
329
|
-
|
|
353
|
+
this.logger.debug(
|
|
330
354
|
`Failed to list prompts from MCP server (optional feature), skipping: ${JSON.stringify(error, null, 2)}`
|
|
331
355
|
);
|
|
332
356
|
return [];
|
|
@@ -342,15 +366,17 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
342
366
|
async getPrompt(name, args) {
|
|
343
367
|
this.ensureConnected();
|
|
344
368
|
try {
|
|
345
|
-
|
|
369
|
+
this.logger.debug(
|
|
370
|
+
`Getting prompt '${name}' with args: ${JSON.stringify(args, null, 2)}`
|
|
371
|
+
);
|
|
346
372
|
const response = await this.client.getPrompt(
|
|
347
373
|
{ name, arguments: args },
|
|
348
374
|
{ timeout: this.timeout }
|
|
349
375
|
);
|
|
350
|
-
|
|
376
|
+
this.logger.debug(`getPrompt '${name}' response: ${JSON.stringify(response, null, 2)}`);
|
|
351
377
|
return response;
|
|
352
378
|
} catch (error) {
|
|
353
|
-
|
|
379
|
+
this.logger.debug(
|
|
354
380
|
`Failed to get prompt '${name}' from MCP server: ${JSON.stringify(error, null, 2)}`
|
|
355
381
|
);
|
|
356
382
|
throw import_errors.MCPError.protocolError(
|
|
@@ -367,7 +393,7 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
367
393
|
this.ensureConnected();
|
|
368
394
|
try {
|
|
369
395
|
const response = await this.client.listResources();
|
|
370
|
-
|
|
396
|
+
this.logger.debug(`listResources response: ${JSON.stringify(response, null, 2)}`);
|
|
371
397
|
return response.resources.map(
|
|
372
398
|
(r) => ({
|
|
373
399
|
uri: r.uri,
|
|
@@ -377,7 +403,7 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
377
403
|
})
|
|
378
404
|
);
|
|
379
405
|
} catch (error) {
|
|
380
|
-
|
|
406
|
+
this.logger.debug(
|
|
381
407
|
`Failed to list resources from MCP server (optional feature), skipping: ${JSON.stringify(error, null, 2)}`
|
|
382
408
|
);
|
|
383
409
|
return [];
|
|
@@ -391,12 +417,14 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
391
417
|
async readResource(uri) {
|
|
392
418
|
this.ensureConnected();
|
|
393
419
|
try {
|
|
394
|
-
|
|
420
|
+
this.logger.debug(`Reading resource '${uri}'`);
|
|
395
421
|
const response = await this.client.readResource({ uri }, { timeout: this.timeout });
|
|
396
|
-
|
|
422
|
+
this.logger.debug(
|
|
423
|
+
`readResource '${uri}' response: ${JSON.stringify(response, null, 2)}`
|
|
424
|
+
);
|
|
397
425
|
return response;
|
|
398
426
|
} catch (error) {
|
|
399
|
-
|
|
427
|
+
this.logger.debug(
|
|
400
428
|
`Failed to read resource '${uri}' from MCP server: ${JSON.stringify(error, null, 2)}`
|
|
401
429
|
);
|
|
402
430
|
throw import_errors.MCPError.protocolError(
|
|
@@ -452,7 +480,7 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
452
480
|
if (!this.client) return;
|
|
453
481
|
try {
|
|
454
482
|
this.client.setNotificationHandler(
|
|
455
|
-
|
|
483
|
+
import_types5.ResourceUpdatedNotificationSchema,
|
|
456
484
|
(notification) => {
|
|
457
485
|
this.handleResourceUpdated({
|
|
458
486
|
uri: notification.params.uri
|
|
@@ -460,43 +488,43 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
460
488
|
}
|
|
461
489
|
);
|
|
462
490
|
} catch (error) {
|
|
463
|
-
|
|
491
|
+
this.logger.warn(`Could not set resources/updated notification handler: ${error}`);
|
|
464
492
|
}
|
|
465
493
|
try {
|
|
466
|
-
this.client.setNotificationHandler(
|
|
494
|
+
this.client.setNotificationHandler(import_types5.PromptListChangedNotificationSchema, () => {
|
|
467
495
|
this.handlePromptsListChanged();
|
|
468
496
|
});
|
|
469
497
|
} catch (error) {
|
|
470
|
-
|
|
498
|
+
this.logger.warn(`Could not set prompts/list_changed notification handler: ${error}`);
|
|
471
499
|
}
|
|
472
500
|
try {
|
|
473
|
-
this.client.setNotificationHandler(
|
|
501
|
+
this.client.setNotificationHandler(import_types5.ToolListChangedNotificationSchema, () => {
|
|
474
502
|
this.handleToolsListChanged();
|
|
475
503
|
});
|
|
476
504
|
} catch (error) {
|
|
477
|
-
|
|
505
|
+
this.logger.warn(`Could not set tools/list_changed notification handler: ${error}`);
|
|
478
506
|
}
|
|
479
|
-
|
|
507
|
+
this.logger.debug("MCP notification handlers registered (resources, prompts, tools)");
|
|
480
508
|
}
|
|
481
509
|
/**
|
|
482
510
|
* Handle resource updated notification
|
|
483
511
|
*/
|
|
484
512
|
handleResourceUpdated(params) {
|
|
485
|
-
|
|
513
|
+
this.logger.debug(`Resource updated: ${params.uri}`);
|
|
486
514
|
this.emit("resourceUpdated", params);
|
|
487
515
|
}
|
|
488
516
|
/**
|
|
489
517
|
* Handle prompts list changed notification
|
|
490
518
|
*/
|
|
491
519
|
handlePromptsListChanged() {
|
|
492
|
-
|
|
520
|
+
this.logger.debug("Prompts list changed");
|
|
493
521
|
this.emit("promptsListChanged");
|
|
494
522
|
}
|
|
495
523
|
/**
|
|
496
524
|
* Handle tools list changed notification
|
|
497
525
|
*/
|
|
498
526
|
handleToolsListChanged() {
|
|
499
|
-
|
|
527
|
+
this.logger.debug("Tools list changed");
|
|
500
528
|
this.emit("toolsListChanged");
|
|
501
529
|
}
|
|
502
530
|
/**
|
|
@@ -513,11 +541,11 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
513
541
|
*/
|
|
514
542
|
setupElicitationHandler() {
|
|
515
543
|
if (!this.client) {
|
|
516
|
-
|
|
544
|
+
this.logger.warn("Cannot setup elicitation handler: client not initialized");
|
|
517
545
|
return;
|
|
518
546
|
}
|
|
519
547
|
if (!this.approvalManager) {
|
|
520
|
-
|
|
548
|
+
this.logger.warn("Cannot setup elicitation handler: approval manager not set");
|
|
521
549
|
return;
|
|
522
550
|
}
|
|
523
551
|
const ElicitationCreateRequestSchema = import_zod.z.object({
|
|
@@ -529,16 +557,16 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
529
557
|
}).passthrough();
|
|
530
558
|
this.client.setRequestHandler(ElicitationCreateRequestSchema, async (request) => {
|
|
531
559
|
const params = request.params;
|
|
532
|
-
|
|
560
|
+
this.logger.info(
|
|
533
561
|
`Elicitation request from MCP server '${this.serverAlias}': ${params.message}`
|
|
534
562
|
);
|
|
535
563
|
try {
|
|
536
564
|
if (!this.approvalManager) {
|
|
537
|
-
|
|
565
|
+
this.logger.error("Approval manager not available for elicitation request");
|
|
538
566
|
return { action: "decline" };
|
|
539
567
|
}
|
|
540
568
|
if (typeof params.requestedSchema !== "object" || params.requestedSchema === null || Array.isArray(params.requestedSchema)) {
|
|
541
|
-
|
|
569
|
+
this.logger.error(
|
|
542
570
|
`Invalid elicitation schema from '${this.serverAlias}': expected object, got ${typeof params.requestedSchema}`
|
|
543
571
|
);
|
|
544
572
|
return { action: "decline" };
|
|
@@ -548,32 +576,34 @@ class MCPClient extends import_events.EventEmitter {
|
|
|
548
576
|
prompt: params.message,
|
|
549
577
|
serverName: this.serverAlias || "unknown"
|
|
550
578
|
});
|
|
551
|
-
if (response.status ===
|
|
579
|
+
if (response.status === import_types2.ApprovalStatus.APPROVED && response.data) {
|
|
552
580
|
const formData = response.data && typeof response.data === "object" && "formData" in response.data ? response.data.formData : {};
|
|
553
|
-
|
|
581
|
+
this.logger.info(
|
|
582
|
+
`Elicitation approved for '${this.serverAlias}', returning data`
|
|
583
|
+
);
|
|
554
584
|
return {
|
|
555
585
|
action: "accept",
|
|
556
586
|
content: formData
|
|
557
587
|
};
|
|
558
|
-
} else if (response.status ===
|
|
559
|
-
|
|
588
|
+
} else if (response.status === import_types2.ApprovalStatus.DENIED) {
|
|
589
|
+
this.logger.info(`Elicitation declined for '${this.serverAlias}'`);
|
|
560
590
|
return {
|
|
561
591
|
action: "decline"
|
|
562
592
|
};
|
|
563
593
|
} else {
|
|
564
|
-
|
|
594
|
+
this.logger.info(`Elicitation cancelled for '${this.serverAlias}'`);
|
|
565
595
|
return {
|
|
566
596
|
action: "cancel"
|
|
567
597
|
};
|
|
568
598
|
}
|
|
569
599
|
} catch (error) {
|
|
570
|
-
|
|
600
|
+
this.logger.error(`Elicitation error for '${this.serverAlias}': ${error}`);
|
|
571
601
|
return {
|
|
572
602
|
action: "decline"
|
|
573
603
|
};
|
|
574
604
|
}
|
|
575
605
|
});
|
|
576
|
-
|
|
606
|
+
this.logger.debug(`Elicitation handler registered for MCP server '${this.serverAlias}'`);
|
|
577
607
|
}
|
|
578
608
|
}
|
|
579
609
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/mcp/mcp-client.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
3
4
|
import type { ApprovalManager } from '../approval/manager.js';
|
|
4
5
|
import type { ValidatedMcpServerConfig } from './schemas.js';
|
|
5
6
|
import { ToolSet } from '../tools/types.js';
|
|
@@ -21,6 +22,8 @@ export declare class MCPClient extends EventEmitter implements IMCPClient {
|
|
|
21
22
|
private serverAlias;
|
|
22
23
|
private timeout;
|
|
23
24
|
private approvalManager;
|
|
25
|
+
private logger;
|
|
26
|
+
constructor(logger: IDextoLogger);
|
|
24
27
|
connect(config: ValidatedMcpServerConfig, serverName: string): Promise<Client>;
|
|
25
28
|
/**
|
|
26
29
|
* Connect to an MCP server via stdio
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EACR,wBAAwB,EAI3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EACR,eAAe,EACf,kBAAkB,EAGlB,MAAM,EACT,MAAM,oCAAoC,CAAC;AAW5C;;GAEG;AACH,qBAAa,SAAU,SAAQ,YAAa,YAAW,UAAU;IAC7D,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAK1B,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBpF;;;;;;OAMG;IACG,eAAe,CACjB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IAuEZ,aAAa,CACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAK,EACpC,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IA+ClB;;OAEG;YACW,cAAc;IAwC5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;;;;OAKG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAuFrD;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAoClC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IActC;;;;;;OAMG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IAuBnE;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAqBpD;;;;OAIG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoB5D;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,aAAa,IAAI;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC9B,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB;IAYD;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3C,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAsCjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAKhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAQ1D;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAoGlC"}
|