@dexto/core 1.1.4 → 1.1.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 +125 -0
- package/dist/agent/DextoAgent.cjs +793 -0
- package/dist/agent/DextoAgent.d.cts +473 -0
- package/dist/agent/DextoAgent.d.ts +473 -0
- package/dist/agent/DextoAgent.js +774 -0
- package/dist/agent/agentCard.cjs +44 -0
- package/dist/agent/agentCard.d.cts +20 -0
- package/dist/agent/agentCard.d.ts +20 -0
- package/dist/agent/agentCard.js +20 -0
- package/dist/agent/error-codes.cjs +35 -0
- package/dist/agent/error-codes.d.cts +14 -0
- package/dist/agent/error-codes.d.ts +14 -0
- package/dist/agent/error-codes.js +11 -0
- package/dist/agent/errors.cjs +84 -0
- package/dist/agent/errors.d.cts +40 -0
- package/dist/agent/errors.d.ts +40 -0
- package/dist/agent/errors.js +60 -0
- package/dist/agent/index.cjs +44 -0
- package/dist/agent/index.d.cts +60 -0
- package/dist/agent/index.d.ts +60 -0
- package/dist/agent/index.js +13 -0
- package/dist/agent/registry/error-codes.cjs +42 -0
- package/dist/agent/registry/error-codes.d.cts +20 -0
- package/dist/agent/registry/error-codes.d.ts +20 -0
- package/dist/agent/registry/error-codes.js +18 -0
- package/dist/agent/registry/errors.cjs +158 -0
- package/dist/agent/registry/errors.d.cts +67 -0
- package/dist/agent/registry/errors.d.ts +67 -0
- package/dist/{chunk-PI6XFMEW.js → agent/registry/errors.js} +43 -50
- package/dist/agent/registry/registry.cjs +291 -0
- package/dist/agent/registry/registry.d.cts +67 -0
- package/dist/agent/registry/registry.d.ts +67 -0
- package/dist/agent/registry/registry.js +256 -0
- package/dist/agent/registry/types.cjs +41 -0
- package/dist/agent/registry/types.d.cts +100 -0
- package/dist/agent/registry/types.d.ts +100 -0
- package/dist/agent/registry/types.js +16 -0
- package/dist/agent/schemas.cjs +113 -0
- package/dist/agent/schemas.d.cts +1502 -0
- package/dist/agent/schemas.d.ts +1502 -0
- package/dist/agent/schemas.js +88 -0
- package/dist/agent/state-manager.cjs +214 -0
- package/dist/agent/state-manager.d.cts +97 -0
- package/dist/agent/state-manager.d.ts +97 -0
- package/dist/agent/state-manager.js +190 -0
- package/dist/config/agent-resolver.cjs +153 -0
- package/dist/config/agent-resolver.d.cts +15 -0
- package/dist/config/agent-resolver.d.ts +15 -0
- package/dist/config/agent-resolver.js +122 -0
- package/dist/config/error-codes.cjs +39 -0
- package/dist/config/error-codes.d.cts +17 -0
- package/dist/config/error-codes.d.ts +17 -0
- package/dist/config/error-codes.js +15 -0
- package/dist/config/errors.cjs +126 -0
- package/dist/config/errors.d.cts +49 -0
- package/dist/config/errors.d.ts +49 -0
- package/dist/config/errors.js +102 -0
- package/dist/config/index.cjs +26 -0
- package/dist/config/index.d.cts +7 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.js +3 -0
- package/dist/config/loader.cjs +119 -0
- package/dist/config/loader.d.cts +19 -0
- package/dist/config/loader.d.ts +19 -0
- package/dist/config/loader.js +85 -0
- package/dist/config/writer.cjs +182 -0
- package/dist/config/writer.d.cts +38 -0
- package/dist/config/writer.d.ts +38 -0
- package/dist/config/writer.js +146 -0
- package/dist/context/compression/middle-removal.cjs +95 -0
- package/dist/context/compression/middle-removal.d.cts +48 -0
- package/dist/context/compression/middle-removal.d.ts +48 -0
- package/dist/context/compression/middle-removal.js +71 -0
- package/dist/context/compression/oldest-removal.cjs +70 -0
- package/dist/context/compression/oldest-removal.d.cts +43 -0
- package/dist/context/compression/oldest-removal.d.ts +43 -0
- package/dist/context/compression/oldest-removal.js +46 -0
- package/dist/context/compression/types.cjs +16 -0
- package/dist/context/compression/types.d.cts +21 -0
- package/dist/context/compression/types.d.ts +21 -0
- package/dist/context/compression/types.js +0 -0
- package/dist/context/error-codes.cjs +41 -0
- package/dist/context/error-codes.d.cts +19 -0
- package/dist/context/error-codes.d.ts +19 -0
- package/dist/context/error-codes.js +17 -0
- package/dist/context/errors.cjs +146 -0
- package/dist/context/errors.d.cts +36 -0
- package/dist/context/errors.d.ts +36 -0
- package/dist/context/errors.js +122 -0
- package/dist/context/index.cjs +24 -0
- package/dist/context/index.d.cts +19 -0
- package/dist/context/index.d.ts +19 -0
- package/dist/context/index.js +2 -0
- package/dist/context/manager.cjs +516 -0
- package/dist/context/manager.d.cts +254 -0
- package/dist/context/manager.d.ts +254 -0
- package/dist/context/manager.js +492 -0
- package/dist/context/types.cjs +16 -0
- package/dist/context/types.d.cts +113 -0
- package/dist/context/types.d.ts +113 -0
- package/dist/context/types.js +0 -0
- package/dist/context/utils.cjs +406 -0
- package/dist/context/utils.d.cts +79 -0
- package/dist/context/utils.d.ts +79 -0
- package/dist/context/utils.js +374 -0
- package/dist/errors/DextoBaseError.cjs +36 -0
- package/dist/errors/DextoBaseError.d.cts +15 -0
- package/dist/errors/DextoBaseError.d.ts +15 -0
- package/dist/errors/DextoBaseError.js +12 -0
- package/dist/errors/DextoRuntimeError.cjs +50 -0
- package/dist/errors/DextoRuntimeError.d.cts +37 -0
- package/dist/errors/DextoRuntimeError.d.ts +37 -0
- package/dist/errors/DextoRuntimeError.js +26 -0
- package/dist/errors/DextoValidationError.cjs +118 -0
- package/dist/errors/DextoValidationError.d.cts +65 -0
- package/dist/errors/DextoValidationError.d.ts +65 -0
- package/dist/{chunk-XFQLRBHE.js → errors/DextoValidationError.js} +4 -32
- package/dist/errors/index.cjs +42 -0
- package/dist/errors/index.d.cts +18 -0
- package/dist/errors/index.d.ts +18 -0
- package/dist/errors/index.js +13 -0
- package/dist/errors/result-bridge.cjs +38 -0
- package/dist/errors/result-bridge.d.cts +39 -0
- package/dist/errors/result-bridge.d.ts +39 -0
- package/dist/errors/result-bridge.js +14 -0
- package/dist/errors/types.cjs +54 -0
- package/dist/errors/types.d.cts +62 -0
- package/dist/errors/types.d.ts +62 -0
- package/dist/errors/types.js +29 -0
- package/dist/events/index.cjs +169 -0
- package/dist/events/index.d.cts +272 -0
- package/dist/events/index.d.ts +272 -0
- package/dist/events/index.js +136 -0
- package/dist/index.browser.cjs +9 -220
- package/dist/index.browser.d.cts +53 -379
- package/dist/index.browser.d.ts +53 -379
- package/dist/index.browser.js +4 -210
- package/dist/index.cjs +31 -15266
- package/dist/index.d.cts +89 -6842
- package/dist/index.d.ts +89 -6842
- package/dist/index.js +14 -9914
- package/dist/llm/error-codes.cjs +48 -0
- package/dist/llm/error-codes.d.cts +26 -0
- package/dist/llm/error-codes.d.ts +26 -0
- package/dist/llm/error-codes.js +24 -0
- package/dist/llm/errors.cjs +108 -0
- package/dist/llm/errors.d.cts +58 -0
- package/dist/llm/errors.d.ts +58 -0
- package/dist/llm/errors.js +84 -0
- package/dist/llm/formatters/anthropic.cjs +246 -0
- package/dist/llm/formatters/anthropic.d.cts +45 -0
- package/dist/llm/formatters/anthropic.d.ts +45 -0
- package/dist/llm/formatters/anthropic.js +227 -0
- package/dist/llm/formatters/factory.cjs +51 -0
- package/dist/llm/formatters/factory.d.cts +12 -0
- package/dist/llm/formatters/factory.d.ts +12 -0
- package/dist/llm/formatters/factory.js +27 -0
- package/dist/llm/formatters/openai.cjs +167 -0
- package/dist/llm/formatters/openai.d.cts +38 -0
- package/dist/llm/formatters/openai.d.ts +38 -0
- package/dist/llm/formatters/openai.js +147 -0
- package/dist/llm/formatters/types.cjs +16 -0
- package/dist/llm/formatters/types.d.cts +43 -0
- package/dist/llm/formatters/types.d.ts +43 -0
- package/dist/llm/formatters/types.js +0 -0
- package/dist/llm/formatters/vercel.cjs +411 -0
- package/dist/llm/formatters/vercel.d.cts +48 -0
- package/dist/llm/formatters/vercel.d.ts +48 -0
- package/dist/llm/formatters/vercel.js +387 -0
- package/dist/llm/index.cjs +34 -0
- package/dist/llm/index.d.cts +39 -0
- package/dist/llm/index.d.ts +39 -0
- package/dist/llm/index.js +7 -0
- package/dist/llm/registry.cjs +881 -0
- package/dist/llm/registry.d.cts +176 -0
- package/dist/llm/registry.d.ts +176 -0
- package/dist/{chunk-J6AXCN3H.js → llm/registry.js} +25 -455
- package/dist/llm/resolver.cjs +154 -0
- package/dist/llm/resolver.d.cts +34 -0
- package/dist/llm/resolver.d.ts +34 -0
- package/dist/llm/resolver.js +136 -0
- package/dist/llm/schemas.cjs +188 -0
- package/dist/llm/schemas.d.cts +111 -0
- package/dist/llm/schemas.d.ts +111 -0
- package/dist/llm/schemas.js +172 -0
- package/dist/llm/services/anthropic.cjs +398 -0
- package/dist/llm/services/anthropic.d.cts +65 -0
- package/dist/llm/services/anthropic.d.ts +65 -0
- package/dist/llm/services/anthropic.js +374 -0
- package/dist/llm/services/factory.cjs +164 -0
- package/dist/llm/services/factory.d.cts +39 -0
- package/dist/llm/services/factory.d.ts +39 -0
- package/dist/llm/services/factory.js +130 -0
- package/dist/llm/services/index.cjs +22 -0
- package/dist/llm/services/index.d.cts +21 -0
- package/dist/llm/services/index.d.ts +21 -0
- package/dist/llm/services/index.js +1 -0
- package/dist/llm/services/openai.cjs +470 -0
- package/dist/llm/services/openai.d.cts +65 -0
- package/dist/llm/services/openai.d.ts +65 -0
- package/dist/llm/services/openai.js +446 -0
- package/dist/llm/services/test-utils.integration.cjs +169 -0
- package/dist/llm/services/test-utils.integration.d.cts +83 -0
- package/dist/llm/services/test-utils.integration.d.ts +83 -0
- package/dist/llm/services/test-utils.integration.js +142 -0
- package/dist/llm/services/types.cjs +16 -0
- package/dist/llm/services/types.d.cts +56 -0
- package/dist/llm/services/types.d.ts +56 -0
- package/dist/llm/services/types.js +0 -0
- package/dist/llm/services/vercel.cjs +525 -0
- package/dist/llm/services/vercel.d.cts +72 -0
- package/dist/llm/services/vercel.d.ts +72 -0
- package/dist/llm/services/vercel.js +506 -0
- package/dist/llm/tokenizer/anthropic.cjs +43 -0
- package/dist/llm/tokenizer/anthropic.d.cts +21 -0
- package/dist/llm/tokenizer/anthropic.d.ts +21 -0
- package/dist/llm/tokenizer/anthropic.js +19 -0
- package/dist/llm/tokenizer/default.cjs +41 -0
- package/dist/llm/tokenizer/default.d.cts +16 -0
- package/dist/llm/tokenizer/default.d.ts +16 -0
- package/dist/llm/tokenizer/default.js +17 -0
- package/dist/llm/tokenizer/factory.cjs +44 -0
- package/dist/llm/tokenizer/factory.d.cts +12 -0
- package/dist/llm/tokenizer/factory.d.ts +12 -0
- package/dist/llm/tokenizer/factory.js +20 -0
- package/dist/llm/tokenizer/google.cjs +52 -0
- package/dist/llm/tokenizer/google.d.cts +31 -0
- package/dist/llm/tokenizer/google.d.ts +31 -0
- package/dist/llm/tokenizer/google.js +28 -0
- package/dist/llm/tokenizer/openai.cjs +108 -0
- package/dist/llm/tokenizer/openai.d.cts +32 -0
- package/dist/llm/tokenizer/openai.d.ts +32 -0
- package/dist/llm/tokenizer/openai.js +83 -0
- package/dist/llm/tokenizer/types.cjs +33 -0
- package/dist/llm/tokenizer/types.d.cts +19 -0
- package/dist/llm/tokenizer/types.d.ts +19 -0
- package/dist/llm/tokenizer/types.js +9 -0
- package/dist/llm/types.cjs +42 -0
- package/dist/llm/types.d.cts +29 -0
- package/dist/llm/types.d.ts +29 -0
- package/dist/llm/types.js +16 -0
- package/dist/llm/validation.cjs +162 -0
- package/dist/llm/validation.d.cts +60 -0
- package/dist/llm/validation.d.ts +60 -0
- package/dist/llm/validation.js +138 -0
- package/dist/logger/browser.cjs +86 -0
- package/dist/logger/browser.d.cts +29 -0
- package/dist/logger/browser.d.ts +29 -0
- package/dist/logger/browser.js +61 -0
- package/dist/logger/index.cjs +22 -0
- package/dist/logger/index.d.cts +1 -0
- package/dist/logger/index.d.ts +1 -0
- package/dist/logger/index.js +1 -0
- package/dist/logger/logger.cjs +362 -0
- package/dist/logger/logger.d.cts +52 -0
- package/dist/logger/logger.d.ts +52 -0
- package/dist/logger/logger.js +327 -0
- package/dist/mcp/error-codes.cjs +38 -0
- package/dist/mcp/error-codes.d.cts +16 -0
- package/dist/mcp/error-codes.d.ts +16 -0
- package/dist/mcp/error-codes.js +14 -0
- package/dist/mcp/errors.cjs +131 -0
- package/dist/mcp/errors.d.cts +72 -0
- package/dist/mcp/errors.d.ts +72 -0
- package/dist/mcp/errors.js +107 -0
- package/dist/mcp/index.cjs +34 -0
- package/dist/mcp/index.d.cts +26 -0
- package/dist/mcp/index.d.ts +26 -0
- package/dist/mcp/index.js +7 -0
- package/dist/mcp/manager.cjs +473 -0
- package/dist/mcp/manager.d.cts +163 -0
- package/dist/mcp/manager.d.ts +163 -0
- package/dist/mcp/manager.js +449 -0
- package/dist/mcp/mcp-client.cjs +420 -0
- package/dist/mcp/mcp-client.d.cts +108 -0
- package/dist/mcp/mcp-client.d.ts +108 -0
- package/dist/mcp/mcp-client.js +396 -0
- package/dist/mcp/resolver.cjs +78 -0
- package/dist/mcp/resolver.d.cts +22 -0
- package/dist/mcp/resolver.d.ts +22 -0
- package/dist/mcp/resolver.js +56 -0
- package/dist/mcp/schemas.cjs +82 -0
- package/dist/mcp/schemas.d.cts +266 -0
- package/dist/mcp/schemas.d.ts +266 -0
- package/dist/mcp/schemas.js +54 -0
- package/dist/mcp/types.cjs +16 -0
- package/dist/mcp/types.d.cts +21 -0
- package/dist/mcp/types.d.ts +21 -0
- package/dist/mcp/types.js +0 -0
- package/dist/preferences/constants.cjs +28 -0
- package/dist/preferences/constants.d.cts +3 -0
- package/dist/preferences/constants.d.ts +3 -0
- package/dist/preferences/constants.js +4 -0
- package/dist/preferences/error-codes.cjs +35 -0
- package/dist/preferences/error-codes.d.cts +9 -0
- package/dist/preferences/error-codes.d.ts +9 -0
- package/dist/preferences/error-codes.js +11 -0
- package/dist/preferences/errors.cjs +75 -0
- package/dist/preferences/errors.d.cts +33 -0
- package/dist/preferences/errors.d.ts +33 -0
- package/dist/preferences/errors.js +50 -0
- package/dist/preferences/index.cjs +55 -0
- package/dist/preferences/index.d.cts +21 -0
- package/dist/preferences/index.d.ts +21 -0
- package/dist/preferences/index.js +31 -0
- package/dist/preferences/loader.cjs +136 -0
- package/dist/preferences/loader.d.cts +45 -0
- package/dist/preferences/loader.d.ts +45 -0
- package/dist/preferences/loader.js +107 -0
- package/dist/preferences/schemas.cjs +74 -0
- package/dist/preferences/schemas.d.cts +104 -0
- package/dist/preferences/schemas.d.ts +104 -0
- package/dist/preferences/schemas.js +47 -0
- package/dist/search/index.cjs +28 -0
- package/dist/search/index.d.cts +5 -0
- package/dist/search/index.d.ts +5 -0
- package/dist/search/index.js +4 -0
- package/dist/search/search-service.cjs +245 -0
- package/dist/search/search-service.d.cts +47 -0
- package/dist/search/search-service.d.ts +47 -0
- package/dist/search/search-service.js +221 -0
- package/dist/search/types.cjs +16 -0
- package/dist/search/types.d.cts +78 -0
- package/dist/search/types.d.ts +78 -0
- package/dist/search/types.js +0 -0
- package/dist/session/chat-session.cjs +354 -0
- package/dist/session/chat-session.d.cts +284 -0
- package/dist/session/chat-session.d.ts +284 -0
- package/dist/session/chat-session.js +333 -0
- package/dist/session/error-codes.cjs +35 -0
- package/dist/session/error-codes.d.cts +13 -0
- package/dist/session/error-codes.d.ts +13 -0
- package/dist/session/error-codes.js +11 -0
- package/dist/session/errors.cjs +93 -0
- package/dist/session/errors.d.cts +58 -0
- package/dist/session/errors.d.ts +58 -0
- package/dist/session/errors.js +69 -0
- package/dist/session/history/database.cjs +95 -0
- package/dist/session/history/database.d.cts +28 -0
- package/dist/session/history/database.d.ts +28 -0
- package/dist/session/history/database.js +71 -0
- package/dist/session/history/factory.cjs +31 -0
- package/dist/session/history/factory.d.cts +11 -0
- package/dist/session/history/factory.d.ts +11 -0
- package/dist/session/history/factory.js +7 -0
- package/dist/session/history/types.cjs +16 -0
- package/dist/session/history/types.d.cts +17 -0
- package/dist/session/history/types.d.ts +17 -0
- package/dist/session/history/types.js +0 -0
- package/dist/session/index.cjs +37 -0
- package/dist/session/index.d.cts +53 -0
- package/dist/session/index.d.ts +53 -0
- package/dist/session/index.js +10 -0
- package/dist/session/schemas.cjs +32 -0
- package/dist/session/schemas.d.cts +16 -0
- package/dist/session/schemas.d.ts +16 -0
- package/dist/session/schemas.js +8 -0
- package/dist/session/session-manager.cjs +481 -0
- package/dist/session/session-manager.d.cts +219 -0
- package/dist/session/session-manager.d.ts +219 -0
- package/dist/session/session-manager.js +457 -0
- package/dist/storage/backend/cache-backend.cjs +16 -0
- package/dist/storage/backend/cache-backend.d.cts +15 -0
- package/dist/storage/backend/cache-backend.d.ts +15 -0
- package/dist/storage/backend/cache-backend.js +0 -0
- package/dist/storage/backend/database-backend.cjs +16 -0
- package/dist/storage/backend/database-backend.d.cts +19 -0
- package/dist/storage/backend/database-backend.d.ts +19 -0
- package/dist/storage/backend/database-backend.js +0 -0
- package/dist/storage/backend/memory-backend.cjs +140 -0
- package/dist/storage/backend/memory-backend.d.cts +34 -0
- package/dist/storage/backend/memory-backend.d.ts +34 -0
- package/dist/storage/backend/memory-backend.js +116 -0
- package/dist/storage/backend/postgres-backend.cjs +231 -0
- package/dist/storage/backend/postgres-backend.d.cts +37 -0
- package/dist/storage/backend/postgres-backend.d.ts +37 -0
- package/dist/{postgres-backend-WMWS7RAT.js → storage/backend/postgres-backend.js} +3 -12
- package/dist/storage/backend/redis-backend.cjs +184 -0
- package/dist/storage/backend/redis-backend.d.cts +36 -0
- package/dist/storage/backend/redis-backend.d.ts +36 -0
- package/dist/{redis-backend-BNLN3XHX.js → storage/backend/redis-backend.js} +3 -12
- package/dist/storage/backend/sqlite-backend.cjs +271 -0
- package/dist/storage/backend/sqlite-backend.d.cts +35 -0
- package/dist/storage/backend/sqlite-backend.d.ts +35 -0
- package/dist/{sqlite-backend-AR6XNK2Q.js → storage/backend/sqlite-backend.js} +6 -17
- package/dist/storage/backend/types.cjs +16 -0
- package/dist/storage/backend/types.d.cts +14 -0
- package/dist/storage/backend/types.d.ts +14 -0
- package/dist/storage/backend/types.js +0 -0
- package/dist/storage/error-codes.cjs +36 -0
- package/dist/storage/error-codes.d.cts +14 -0
- package/dist/storage/error-codes.d.ts +14 -0
- package/dist/storage/error-codes.js +12 -0
- package/dist/storage/errors.cjs +104 -0
- package/dist/storage/errors.d.cts +63 -0
- package/dist/storage/errors.d.ts +63 -0
- package/dist/{chunk-F2QFAECT.js → storage/errors.js} +23 -30
- package/dist/storage/index.cjs +33 -0
- package/dist/storage/index.d.cts +7 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/schemas.cjs +113 -0
- package/dist/storage/schemas.d.cts +856 -0
- package/dist/storage/schemas.d.ts +856 -0
- package/dist/storage/schemas.js +89 -0
- package/dist/storage/storage-manager.cjs +208 -0
- package/dist/storage/storage-manager.d.cts +52 -0
- package/dist/storage/storage-manager.d.ts +52 -0
- package/dist/storage/storage-manager.js +173 -0
- package/dist/storage/types.cjs +16 -0
- package/dist/storage/types.d.cts +5 -0
- package/dist/storage/types.d.ts +5 -0
- package/dist/storage/types.js +0 -0
- package/dist/systemPrompt/contributors.cjs +146 -0
- package/dist/systemPrompt/contributors.d.cts +44 -0
- package/dist/systemPrompt/contributors.d.ts +44 -0
- package/dist/systemPrompt/contributors.js +120 -0
- package/dist/systemPrompt/error-codes.cjs +35 -0
- package/dist/systemPrompt/error-codes.d.cts +13 -0
- package/dist/systemPrompt/error-codes.d.ts +13 -0
- package/dist/systemPrompt/error-codes.js +11 -0
- package/dist/systemPrompt/errors.cjs +93 -0
- package/dist/systemPrompt/errors.d.cts +55 -0
- package/dist/systemPrompt/errors.d.ts +55 -0
- package/dist/systemPrompt/errors.js +69 -0
- package/dist/systemPrompt/in-built-prompts.cjs +68 -0
- package/dist/systemPrompt/in-built-prompts.d.cts +28 -0
- package/dist/systemPrompt/in-built-prompts.d.ts +28 -0
- package/dist/systemPrompt/in-built-prompts.js +42 -0
- package/dist/systemPrompt/index.cjs +30 -0
- package/dist/systemPrompt/index.d.cts +14 -0
- package/dist/systemPrompt/index.d.ts +14 -0
- package/dist/systemPrompt/index.js +5 -0
- package/dist/systemPrompt/manager.cjs +93 -0
- package/dist/systemPrompt/manager.d.cts +31 -0
- package/dist/systemPrompt/manager.d.ts +31 -0
- package/dist/systemPrompt/manager.js +69 -0
- package/dist/systemPrompt/registry.cjs +51 -0
- package/dist/systemPrompt/registry.d.cts +20 -0
- package/dist/systemPrompt/registry.d.ts +20 -0
- package/dist/systemPrompt/registry.js +15 -0
- package/dist/systemPrompt/schemas.cjs +107 -0
- package/dist/systemPrompt/schemas.d.cts +401 -0
- package/dist/systemPrompt/schemas.d.ts +401 -0
- package/dist/systemPrompt/schemas.js +81 -0
- package/dist/systemPrompt/types.cjs +16 -0
- package/dist/systemPrompt/types.d.cts +19 -0
- package/dist/systemPrompt/types.d.ts +19 -0
- package/dist/systemPrompt/types.js +0 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +44 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.cts +19 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +19 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +20 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.cjs +62 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.cts +17 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.d.ts +17 -0
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +38 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +68 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.cts +26 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +26 -0
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +44 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.cjs +16 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.d.cts +35 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.d.ts +35 -0
- package/dist/tools/confirmation/allowed-tools-provider/types.js +0 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.cjs +158 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.d.cts +41 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.d.ts +41 -0
- package/dist/tools/confirmation/event-based-confirmation-provider.js +134 -0
- package/dist/tools/confirmation/factory.cjs +52 -0
- package/dist/tools/confirmation/factory.d.cts +37 -0
- package/dist/tools/confirmation/factory.d.ts +37 -0
- package/dist/tools/confirmation/factory.js +28 -0
- package/dist/tools/confirmation/noop-confirmation-provider.cjs +49 -0
- package/dist/tools/confirmation/noop-confirmation-provider.d.cts +22 -0
- package/dist/tools/confirmation/noop-confirmation-provider.d.ts +22 -0
- package/dist/tools/confirmation/noop-confirmation-provider.js +25 -0
- package/dist/tools/confirmation/types.cjs +16 -0
- package/dist/tools/confirmation/types.d.cts +46 -0
- package/dist/tools/confirmation/types.d.ts +46 -0
- package/dist/tools/confirmation/types.js +0 -0
- package/dist/tools/error-codes.cjs +40 -0
- package/dist/tools/error-codes.d.cts +18 -0
- package/dist/tools/error-codes.d.ts +18 -0
- package/dist/tools/error-codes.js +16 -0
- package/dist/tools/errors.cjs +164 -0
- package/dist/tools/errors.d.cts +97 -0
- package/dist/tools/errors.d.ts +97 -0
- package/dist/tools/errors.js +140 -0
- package/dist/tools/index.cjs +37 -0
- package/dist/tools/index.d.cts +19 -0
- package/dist/tools/index.d.ts +19 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.cjs +61 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.d.cts +15 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.d.ts +15 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.js +37 -0
- package/dist/tools/internal-tools/index.cjs +24 -0
- package/dist/tools/internal-tools/index.d.cts +13 -0
- package/dist/tools/internal-tools/index.d.ts +13 -0
- package/dist/tools/internal-tools/index.js +2 -0
- package/dist/tools/internal-tools/provider.cjs +159 -0
- package/dist/tools/internal-tools/provider.d.cts +66 -0
- package/dist/tools/internal-tools/provider.d.ts +66 -0
- package/dist/tools/internal-tools/provider.js +135 -0
- package/dist/tools/internal-tools/registry.cjs +43 -0
- package/dist/tools/internal-tools/registry.d.cts +45 -0
- package/dist/tools/internal-tools/registry.d.ts +45 -0
- package/dist/tools/internal-tools/registry.js +17 -0
- package/dist/tools/schemas.cjs +45 -0
- package/dist/tools/schemas.d.cts +21 -0
- package/dist/tools/schemas.d.ts +21 -0
- package/dist/tools/schemas.js +20 -0
- package/dist/tools/tool-manager.cjs +275 -0
- package/dist/tools/tool-manager.d.cts +106 -0
- package/dist/tools/tool-manager.d.ts +106 -0
- package/dist/tools/tool-manager.js +251 -0
- package/dist/tools/types.cjs +16 -0
- package/dist/tools/types.d.cts +66 -0
- package/dist/tools/types.d.ts +66 -0
- package/dist/tools/types.js +0 -0
- package/dist/utils/api-key-resolver.cjs +62 -0
- package/dist/utils/api-key-resolver.d.cts +23 -0
- package/dist/utils/api-key-resolver.d.ts +23 -0
- package/dist/utils/api-key-resolver.js +36 -0
- package/dist/utils/api-key-store.cjs +56 -0
- package/dist/utils/api-key-store.d.cts +26 -0
- package/dist/utils/api-key-store.d.ts +26 -0
- package/dist/utils/api-key-store.js +30 -0
- package/dist/utils/env.cjs +154 -0
- package/dist/utils/env.d.cts +29 -0
- package/dist/utils/env.d.ts +29 -0
- package/dist/utils/env.js +118 -0
- package/dist/utils/error-conversion.cjs +53 -0
- package/dist/utils/error-conversion.d.cts +13 -0
- package/dist/utils/error-conversion.d.ts +13 -0
- package/dist/utils/error-conversion.js +29 -0
- package/dist/utils/execution-context.cjs +85 -0
- package/dist/utils/execution-context.d.cts +21 -0
- package/dist/utils/execution-context.d.ts +21 -0
- package/dist/utils/execution-context.js +49 -0
- package/dist/{chunk-MVKLS3LM.js → utils/fs-walk.cjs} +27 -18
- package/dist/utils/fs-walk.d.cts +9 -0
- package/dist/utils/fs-walk.d.ts +9 -0
- package/dist/utils/fs-walk.js +18 -0
- package/dist/utils/index.cjs +44 -0
- package/dist/utils/index.d.cts +63 -0
- package/dist/utils/index.d.ts +63 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/path.cjs +197 -0
- package/dist/utils/path.d.cts +54 -0
- package/dist/utils/path.d.ts +54 -0
- package/dist/utils/path.js +159 -0
- package/dist/utils/port-utils.cjs +37 -0
- package/dist/utils/port-utils.d.cts +11 -0
- package/dist/utils/port-utils.d.ts +11 -0
- package/dist/utils/port-utils.js +13 -0
- package/dist/utils/port-utils.spec.cjs +26 -0
- package/dist/utils/port-utils.spec.d.cts +2 -0
- package/dist/utils/port-utils.spec.d.ts +2 -0
- package/dist/utils/port-utils.spec.js +25 -0
- package/dist/utils/redactor.cjs +105 -0
- package/dist/utils/redactor.d.cts +18 -0
- package/dist/utils/redactor.d.ts +18 -0
- package/dist/utils/redactor.js +81 -0
- package/dist/utils/result.cjs +115 -0
- package/dist/utils/result.d.cts +180 -0
- package/dist/utils/result.d.ts +180 -0
- package/dist/utils/result.js +82 -0
- package/dist/utils/safe-stringify.cjs +57 -0
- package/dist/utils/safe-stringify.d.cts +7 -0
- package/dist/utils/safe-stringify.d.ts +7 -0
- package/dist/utils/safe-stringify.js +33 -0
- package/dist/utils/schema.cjs +42 -0
- package/dist/utils/schema.d.cts +6 -0
- package/dist/utils/schema.d.ts +6 -0
- package/dist/utils/schema.js +18 -0
- package/dist/utils/service-initializer.cjs +119 -0
- package/dist/utils/service-initializer.d.cts +63 -0
- package/dist/utils/service-initializer.d.ts +63 -0
- package/dist/utils/service-initializer.js +95 -0
- package/dist/utils/user-info.cjs +30 -0
- package/dist/utils/user-info.d.cts +3 -0
- package/dist/utils/user-info.d.ts +3 -0
- package/dist/utils/user-info.js +6 -0
- package/dist/utils/zod-schema-converter.cjs +112 -0
- package/dist/utils/zod-schema-converter.d.cts +13 -0
- package/dist/utils/zod-schema-converter.d.ts +13 -0
- package/dist/utils/zod-schema-converter.js +87 -0
- package/package.json +2 -2
- package/dist/chunk-D62MHQBE.js +0 -2203
- package/dist/chunk-FCJVTIBV.js +0 -535
- package/dist/chunk-TPERKLLN.js +0 -75
- package/dist/errors-ZZ4Z3FKB.js +0 -10
- package/dist/loader-HBNEYPQZ.js +0 -20
- package/dist/path-TP7WBDED.js +0 -21
- package/dist/registry-Z4DFXODW.js +0 -14
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var mcp_client_exports = {};
|
|
20
|
+
__export(mcp_client_exports, {
|
|
21
|
+
MCPClient: () => MCPClient
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(mcp_client_exports);
|
|
24
|
+
var import_client = require("@modelcontextprotocol/sdk/client/index.js");
|
|
25
|
+
var import_stdio = require("@modelcontextprotocol/sdk/client/stdio.js");
|
|
26
|
+
var import_sse = require("@modelcontextprotocol/sdk/client/sse.js");
|
|
27
|
+
var import_streamableHttp = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
|
|
28
|
+
var import_logger = require("../logger/index.js");
|
|
29
|
+
var import_path = require("../utils/path.js");
|
|
30
|
+
var import_errors = require("./errors.js");
|
|
31
|
+
class MCPClient {
|
|
32
|
+
client = null;
|
|
33
|
+
transport = null;
|
|
34
|
+
isConnected = false;
|
|
35
|
+
serverCommand = null;
|
|
36
|
+
originalArgs = null;
|
|
37
|
+
resolvedArgs = null;
|
|
38
|
+
serverEnv = null;
|
|
39
|
+
serverSpawned = false;
|
|
40
|
+
serverPid = null;
|
|
41
|
+
serverAlias = null;
|
|
42
|
+
timeout = 6e4;
|
|
43
|
+
// Default timeout value
|
|
44
|
+
async connect(config, serverName) {
|
|
45
|
+
this.timeout = config.timeout ?? 3e4;
|
|
46
|
+
if (config.type === "stdio") {
|
|
47
|
+
const stdioConfig = config;
|
|
48
|
+
let command = stdioConfig.command;
|
|
49
|
+
if (process.platform === "win32" && command === "npx") {
|
|
50
|
+
command = "C:\\Program Files\\nodejs\\npx.cmd";
|
|
51
|
+
}
|
|
52
|
+
return this.connectViaStdio(command, stdioConfig.args, stdioConfig.env, serverName);
|
|
53
|
+
} else if (config.type === "sse") {
|
|
54
|
+
const sseConfig = config;
|
|
55
|
+
return this.connectViaSSE(sseConfig.url, sseConfig.headers, serverName);
|
|
56
|
+
} else if (config.type === "http") {
|
|
57
|
+
const httpConfig = config;
|
|
58
|
+
return this.connectViaHttp(httpConfig.url, httpConfig.headers || {}, serverName);
|
|
59
|
+
} else {
|
|
60
|
+
const _exhaustive = config;
|
|
61
|
+
throw import_errors.MCPError.protocolError(`Unsupported server type: ${JSON.stringify(_exhaustive)}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Connect to an MCP server via stdio
|
|
66
|
+
* @param command Command to run
|
|
67
|
+
* @param args Arguments for the command
|
|
68
|
+
* @param env Environment variables
|
|
69
|
+
* @param serverAlias Optional server alias/name to show in logs
|
|
70
|
+
*/
|
|
71
|
+
async connectViaStdio(command, args = [], env, serverAlias) {
|
|
72
|
+
this.serverCommand = command;
|
|
73
|
+
this.originalArgs = [...args];
|
|
74
|
+
this.resolvedArgs = [...this.originalArgs];
|
|
75
|
+
this.serverEnv = env || null;
|
|
76
|
+
this.serverAlias = serverAlias || null;
|
|
77
|
+
if (command === "node" && this.resolvedArgs && this.resolvedArgs.length > 0 && this.resolvedArgs[0]?.startsWith("dist/")) {
|
|
78
|
+
try {
|
|
79
|
+
const scriptRelativePath = this.resolvedArgs[0];
|
|
80
|
+
this.resolvedArgs[0] = (0, import_path.resolveBundledScript)(scriptRelativePath);
|
|
81
|
+
import_logger.logger.debug(
|
|
82
|
+
`Resolved bundled script path: ${scriptRelativePath} -> ${this.resolvedArgs[0]}`
|
|
83
|
+
);
|
|
84
|
+
} catch (e) {
|
|
85
|
+
import_logger.logger.warn(
|
|
86
|
+
`Failed to resolve path for bundled script ${this.resolvedArgs[0]}: ${JSON.stringify(e, null, 2)}`
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
import_logger.logger.info("=======================================");
|
|
91
|
+
import_logger.logger.info(`MCP SERVER: ${command} ${this.resolvedArgs.join(" ")}`, null, "magenta");
|
|
92
|
+
if (env) {
|
|
93
|
+
import_logger.logger.info("Environment:");
|
|
94
|
+
Object.entries(env).forEach(([key, _]) => {
|
|
95
|
+
import_logger.logger.info(` ${key}= [value hidden]`);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
import_logger.logger.info("=======================================\n");
|
|
99
|
+
const serverName = this.serverAlias ? `"${this.serverAlias}" (${command} ${this.resolvedArgs.join(" ")})` : `${command} ${this.resolvedArgs.join(" ")}`;
|
|
100
|
+
import_logger.logger.info(`Connecting to MCP server: ${serverName}`);
|
|
101
|
+
const expandedEnv = {
|
|
102
|
+
...process.env,
|
|
103
|
+
...env || {}
|
|
104
|
+
};
|
|
105
|
+
this.transport = new import_stdio.StdioClientTransport({
|
|
106
|
+
command,
|
|
107
|
+
args: this.resolvedArgs,
|
|
108
|
+
env: expandedEnv
|
|
109
|
+
});
|
|
110
|
+
this.client = new import_client.Client(
|
|
111
|
+
{
|
|
112
|
+
name: "Dexto-stdio-mcp-client",
|
|
113
|
+
version: "1.0.0"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
capabilities: { tools: {} }
|
|
117
|
+
}
|
|
118
|
+
);
|
|
119
|
+
try {
|
|
120
|
+
import_logger.logger.info("Establishing connection...");
|
|
121
|
+
await this.client.connect(this.transport);
|
|
122
|
+
this.serverSpawned = true;
|
|
123
|
+
import_logger.logger.info(`\u2705 Stdio SERVER ${serverName} SPAWNED`);
|
|
124
|
+
import_logger.logger.info("Connection established!\n\n");
|
|
125
|
+
this.isConnected = true;
|
|
126
|
+
return this.client;
|
|
127
|
+
} catch (error) {
|
|
128
|
+
import_logger.logger.error(
|
|
129
|
+
`Failed to connect to MCP server ${serverName}: ${JSON.stringify(error.message, null, 2)}`
|
|
130
|
+
);
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
async connectViaSSE(url, headers = {}, serverName) {
|
|
135
|
+
import_logger.logger.debug(`Connecting to SSE MCP server at url: ${url}`);
|
|
136
|
+
this.transport = new import_sse.SSEClientTransport(new URL(url), {
|
|
137
|
+
// For regular HTTP requests
|
|
138
|
+
requestInit: {
|
|
139
|
+
headers
|
|
140
|
+
}
|
|
141
|
+
// Need to implement eventSourceInit for SSE events.
|
|
142
|
+
});
|
|
143
|
+
import_logger.logger.debug(`[connectViaSSE] SSE transport: ${JSON.stringify(this.transport, null, 2)}`);
|
|
144
|
+
this.client = new import_client.Client(
|
|
145
|
+
{
|
|
146
|
+
name: "Dexto-sse-mcp-client",
|
|
147
|
+
version: "1.0.0"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
capabilities: { tools: {} }
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
try {
|
|
154
|
+
import_logger.logger.info("Establishing connection...");
|
|
155
|
+
await this.client.connect(this.transport);
|
|
156
|
+
this.serverSpawned = true;
|
|
157
|
+
import_logger.logger.info(`\u2705 ${serverName} SSE SERVER SPAWNED`);
|
|
158
|
+
import_logger.logger.info("Connection established!\n\n");
|
|
159
|
+
this.isConnected = true;
|
|
160
|
+
return this.client;
|
|
161
|
+
} catch (error) {
|
|
162
|
+
import_logger.logger.error(
|
|
163
|
+
`Failed to connect to SSE MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
|
|
164
|
+
);
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Connect to an MCP server via Streamable HTTP transport
|
|
170
|
+
*/
|
|
171
|
+
async connectViaHttp(url, headers = {}, serverAlias) {
|
|
172
|
+
import_logger.logger.info(`Connecting to HTTP MCP server at ${url}`);
|
|
173
|
+
this.transport = new import_streamableHttp.StreamableHTTPClientTransport(new URL(url), {
|
|
174
|
+
requestInit: { headers: headers || {} }
|
|
175
|
+
});
|
|
176
|
+
this.client = new import_client.Client(
|
|
177
|
+
{ name: "Dexto-http-mcp-client", version: "1.0.0" },
|
|
178
|
+
{ capabilities: { tools: {} } }
|
|
179
|
+
);
|
|
180
|
+
try {
|
|
181
|
+
import_logger.logger.info("Establishing HTTP connection...");
|
|
182
|
+
await this.client.connect(this.transport);
|
|
183
|
+
this.isConnected = true;
|
|
184
|
+
import_logger.logger.info(`\u2705 HTTP SERVER ${serverAlias ?? url} CONNECTED`);
|
|
185
|
+
return this.client;
|
|
186
|
+
} catch (error) {
|
|
187
|
+
import_logger.logger.error(
|
|
188
|
+
`Failed to connect to HTTP MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
|
|
189
|
+
);
|
|
190
|
+
throw error;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Disconnect from the server
|
|
195
|
+
*/
|
|
196
|
+
async disconnect() {
|
|
197
|
+
if (this.transport && typeof this.transport.close === "function") {
|
|
198
|
+
try {
|
|
199
|
+
await this.transport.close();
|
|
200
|
+
this.isConnected = false;
|
|
201
|
+
this.serverSpawned = false;
|
|
202
|
+
import_logger.logger.info("Disconnected from MCP server");
|
|
203
|
+
} catch (error) {
|
|
204
|
+
import_logger.logger.error(
|
|
205
|
+
`Error disconnecting from MCP server: ${JSON.stringify(error.message, null, 2)}`
|
|
206
|
+
);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Call a tool with given name and arguments
|
|
212
|
+
* @param name Tool name
|
|
213
|
+
* @param args Tool arguments
|
|
214
|
+
* @returns Result of the tool execution
|
|
215
|
+
*/
|
|
216
|
+
async callTool(name, args) {
|
|
217
|
+
this.ensureConnected();
|
|
218
|
+
try {
|
|
219
|
+
import_logger.logger.debug(`Calling tool '${name}' with args: ${JSON.stringify(args, null, 2)}`);
|
|
220
|
+
let toolArgs = args;
|
|
221
|
+
if (typeof args === "string") {
|
|
222
|
+
try {
|
|
223
|
+
toolArgs = JSON.parse(args);
|
|
224
|
+
} catch {
|
|
225
|
+
toolArgs = { input: args };
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
import_logger.logger.debug(`Using timeout: ${this.timeout}`);
|
|
229
|
+
const result = await this.client.callTool(
|
|
230
|
+
{ name, arguments: toolArgs },
|
|
231
|
+
void 0,
|
|
232
|
+
// resultSchema (optional)
|
|
233
|
+
{ timeout: this.timeout }
|
|
234
|
+
// Use server-specific timeout, default 1 minute
|
|
235
|
+
);
|
|
236
|
+
const logResult = JSON.stringify(
|
|
237
|
+
result,
|
|
238
|
+
(key, value) => {
|
|
239
|
+
if (key === "data" && typeof value === "string" && value.length > 100) {
|
|
240
|
+
return `[Base64 data: ${value.length} chars]`;
|
|
241
|
+
}
|
|
242
|
+
return value;
|
|
243
|
+
},
|
|
244
|
+
2
|
|
245
|
+
);
|
|
246
|
+
import_logger.logger.debug(`Tool '${name}' result: ${logResult}`);
|
|
247
|
+
if (result === null || result === void 0) {
|
|
248
|
+
return "Tool executed successfully with no result data.";
|
|
249
|
+
}
|
|
250
|
+
return result;
|
|
251
|
+
} catch (error) {
|
|
252
|
+
import_logger.logger.error(`Tool call '${name}' failed: ${JSON.stringify(error, null, 2)}`);
|
|
253
|
+
return `Error executing tool '${name}': ${error instanceof Error ? error.message : String(error)}`;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Get the list of tools provided by this client
|
|
258
|
+
* @returns Array of available tools
|
|
259
|
+
*/
|
|
260
|
+
async getTools() {
|
|
261
|
+
this.ensureConnected();
|
|
262
|
+
const tools = {};
|
|
263
|
+
try {
|
|
264
|
+
const listToolResult = await this.client.listTools({});
|
|
265
|
+
import_logger.logger.silly(`listTools result: ${JSON.stringify(listToolResult, null, 2)}`);
|
|
266
|
+
if (listToolResult && listToolResult.tools) {
|
|
267
|
+
listToolResult.tools.forEach((tool) => {
|
|
268
|
+
if (!tool.description) {
|
|
269
|
+
import_logger.logger.warn(`Tool '${tool.name}' is missing a description`);
|
|
270
|
+
}
|
|
271
|
+
if (!tool.inputSchema) {
|
|
272
|
+
throw import_errors.MCPError.invalidToolSchema(tool.name, "missing input schema");
|
|
273
|
+
}
|
|
274
|
+
tools[tool.name] = {
|
|
275
|
+
description: tool.description ?? "",
|
|
276
|
+
parameters: tool.inputSchema
|
|
277
|
+
};
|
|
278
|
+
});
|
|
279
|
+
} else {
|
|
280
|
+
throw import_errors.MCPError.protocolError(
|
|
281
|
+
"listTools did not return the expected structure: missing tools"
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
} catch (error) {
|
|
285
|
+
import_logger.logger.warn(
|
|
286
|
+
`Failed to get tools from MCP server, proceeding with zero tools: ${JSON.stringify(error, null, 2)}`
|
|
287
|
+
);
|
|
288
|
+
return tools;
|
|
289
|
+
}
|
|
290
|
+
return tools;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Get the list of prompts provided by this client
|
|
294
|
+
* @returns Array of available prompt names
|
|
295
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
296
|
+
*/
|
|
297
|
+
async listPrompts() {
|
|
298
|
+
this.ensureConnected();
|
|
299
|
+
try {
|
|
300
|
+
const response = await this.client.listPrompts();
|
|
301
|
+
import_logger.logger.debug(`listPrompts response: ${JSON.stringify(response, null, 2)}`);
|
|
302
|
+
return response.prompts.map((p) => p.name);
|
|
303
|
+
} catch (error) {
|
|
304
|
+
import_logger.logger.debug(
|
|
305
|
+
`Failed to list prompts from MCP server (optional feature), skipping: ${JSON.stringify(error, null, 2)}`
|
|
306
|
+
);
|
|
307
|
+
return [];
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Get a specific prompt definition
|
|
312
|
+
* @param name Name of the prompt
|
|
313
|
+
* @param args Arguments for the prompt (optional)
|
|
314
|
+
* @returns Prompt definition (structure depends on SDK)
|
|
315
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
316
|
+
*/
|
|
317
|
+
async getPrompt(name, args) {
|
|
318
|
+
this.ensureConnected();
|
|
319
|
+
try {
|
|
320
|
+
import_logger.logger.debug(`Getting prompt '${name}' with args: ${JSON.stringify(args, null, 2)}`);
|
|
321
|
+
const response = await this.client.getPrompt(
|
|
322
|
+
{ name, arguments: args },
|
|
323
|
+
{ timeout: this.timeout }
|
|
324
|
+
);
|
|
325
|
+
import_logger.logger.debug(`getPrompt '${name}' response: ${JSON.stringify(response, null, 2)}`);
|
|
326
|
+
return response;
|
|
327
|
+
} catch (error) {
|
|
328
|
+
import_logger.logger.debug(
|
|
329
|
+
`Failed to get prompt '${name}' from MCP server: ${JSON.stringify(error, null, 2)}`
|
|
330
|
+
);
|
|
331
|
+
throw import_errors.MCPError.protocolError(
|
|
332
|
+
`Error getting prompt '${name}': ${error instanceof Error ? error.message : String(error)}`
|
|
333
|
+
);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Get the list of resources provided by this client
|
|
338
|
+
* @returns Array of available resource URIs
|
|
339
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
340
|
+
*/
|
|
341
|
+
async listResources() {
|
|
342
|
+
this.ensureConnected();
|
|
343
|
+
try {
|
|
344
|
+
const response = await this.client.listResources();
|
|
345
|
+
import_logger.logger.debug(`listResources response: ${JSON.stringify(response, null, 2)}`);
|
|
346
|
+
return response.resources.map((r) => r.uri);
|
|
347
|
+
} catch (error) {
|
|
348
|
+
import_logger.logger.debug(
|
|
349
|
+
`Failed to list resources from MCP server (optional feature), skipping: ${JSON.stringify(error, null, 2)}`
|
|
350
|
+
);
|
|
351
|
+
return [];
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Read the content of a specific resource
|
|
356
|
+
* @param uri URI of the resource
|
|
357
|
+
* @returns Content of the resource (structure depends on SDK)
|
|
358
|
+
*/
|
|
359
|
+
async readResource(uri) {
|
|
360
|
+
this.ensureConnected();
|
|
361
|
+
try {
|
|
362
|
+
import_logger.logger.debug(`Reading resource '${uri}'`);
|
|
363
|
+
const response = await this.client.readResource({ uri }, { timeout: this.timeout });
|
|
364
|
+
import_logger.logger.debug(`readResource '${uri}' response: ${JSON.stringify(response, null, 2)}`);
|
|
365
|
+
return response;
|
|
366
|
+
} catch (error) {
|
|
367
|
+
import_logger.logger.debug(
|
|
368
|
+
`Failed to read resource '${uri}' from MCP server: ${JSON.stringify(error, null, 2)}`
|
|
369
|
+
);
|
|
370
|
+
throw import_errors.MCPError.protocolError(
|
|
371
|
+
`Error reading resource '${uri}': ${error instanceof Error ? error.message : String(error)}`
|
|
372
|
+
);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Check if the client is connected
|
|
377
|
+
*/
|
|
378
|
+
getConnectionStatus() {
|
|
379
|
+
return this.isConnected;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Get the connected client
|
|
383
|
+
*/
|
|
384
|
+
getClient() {
|
|
385
|
+
return this.client;
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Get server status information
|
|
389
|
+
*/
|
|
390
|
+
getServerInfo() {
|
|
391
|
+
return {
|
|
392
|
+
spawned: this.serverSpawned,
|
|
393
|
+
pid: this.serverPid,
|
|
394
|
+
command: this.serverCommand,
|
|
395
|
+
originalArgs: this.originalArgs,
|
|
396
|
+
resolvedArgs: this.resolvedArgs,
|
|
397
|
+
env: this.serverEnv,
|
|
398
|
+
alias: this.serverAlias
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Get the client instance once connected
|
|
403
|
+
* @returns Promise with the MCP client
|
|
404
|
+
*/
|
|
405
|
+
async getConnectedClient() {
|
|
406
|
+
if (!this.client || !this.isConnected) {
|
|
407
|
+
throw import_errors.MCPError.clientNotConnected();
|
|
408
|
+
}
|
|
409
|
+
return this.client;
|
|
410
|
+
}
|
|
411
|
+
ensureConnected() {
|
|
412
|
+
if (!this.isConnected || !this.client) {
|
|
413
|
+
throw import_errors.MCPError.clientNotConnected("Please call connect() first");
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
418
|
+
0 && (module.exports = {
|
|
419
|
+
MCPClient
|
|
420
|
+
});
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import { ValidatedMcpServerConfig } from './schemas.cjs';
|
|
3
|
+
import { ToolSet } from '../tools/types.cjs';
|
|
4
|
+
import { IMCPClient } from './types.cjs';
|
|
5
|
+
import { GetPromptResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import 'zod';
|
|
7
|
+
import 'json-schema';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Wrapper on top of Client class provided in model context protocol SDK, to add additional metadata about the server
|
|
11
|
+
*/
|
|
12
|
+
declare class MCPClient implements IMCPClient {
|
|
13
|
+
private client;
|
|
14
|
+
private transport;
|
|
15
|
+
private isConnected;
|
|
16
|
+
private serverCommand;
|
|
17
|
+
private originalArgs;
|
|
18
|
+
private resolvedArgs;
|
|
19
|
+
private serverEnv;
|
|
20
|
+
private serverSpawned;
|
|
21
|
+
private serverPid;
|
|
22
|
+
private serverAlias;
|
|
23
|
+
private timeout;
|
|
24
|
+
connect(config: ValidatedMcpServerConfig, serverName: string): Promise<Client>;
|
|
25
|
+
/**
|
|
26
|
+
* Connect to an MCP server via stdio
|
|
27
|
+
* @param command Command to run
|
|
28
|
+
* @param args Arguments for the command
|
|
29
|
+
* @param env Environment variables
|
|
30
|
+
* @param serverAlias Optional server alias/name to show in logs
|
|
31
|
+
*/
|
|
32
|
+
connectViaStdio(command: string, args?: string[], env?: Record<string, string>, serverAlias?: string): Promise<Client>;
|
|
33
|
+
connectViaSSE(url: string, headers: Record<string, string> | undefined, serverName: string): Promise<Client>;
|
|
34
|
+
/**
|
|
35
|
+
* Connect to an MCP server via Streamable HTTP transport
|
|
36
|
+
*/
|
|
37
|
+
private connectViaHttp;
|
|
38
|
+
/**
|
|
39
|
+
* Disconnect from the server
|
|
40
|
+
*/
|
|
41
|
+
disconnect(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Call a tool with given name and arguments
|
|
44
|
+
* @param name Tool name
|
|
45
|
+
* @param args Tool arguments
|
|
46
|
+
* @returns Result of the tool execution
|
|
47
|
+
*/
|
|
48
|
+
callTool(name: string, args: any): Promise<any>;
|
|
49
|
+
/**
|
|
50
|
+
* Get the list of tools provided by this client
|
|
51
|
+
* @returns Array of available tools
|
|
52
|
+
*/
|
|
53
|
+
getTools(): Promise<ToolSet>;
|
|
54
|
+
/**
|
|
55
|
+
* Get the list of prompts provided by this client
|
|
56
|
+
* @returns Array of available prompt names
|
|
57
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
58
|
+
*/
|
|
59
|
+
listPrompts(): Promise<string[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Get a specific prompt definition
|
|
62
|
+
* @param name Name of the prompt
|
|
63
|
+
* @param args Arguments for the prompt (optional)
|
|
64
|
+
* @returns Prompt definition (structure depends on SDK)
|
|
65
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
66
|
+
*/
|
|
67
|
+
getPrompt(name: string, args?: any): Promise<GetPromptResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Get the list of resources provided by this client
|
|
70
|
+
* @returns Array of available resource URIs
|
|
71
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
72
|
+
*/
|
|
73
|
+
listResources(): Promise<string[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Read the content of a specific resource
|
|
76
|
+
* @param uri URI of the resource
|
|
77
|
+
* @returns Content of the resource (structure depends on SDK)
|
|
78
|
+
*/
|
|
79
|
+
readResource(uri: string): Promise<ReadResourceResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Check if the client is connected
|
|
82
|
+
*/
|
|
83
|
+
getConnectionStatus(): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Get the connected client
|
|
86
|
+
*/
|
|
87
|
+
getClient(): Client | null;
|
|
88
|
+
/**
|
|
89
|
+
* Get server status information
|
|
90
|
+
*/
|
|
91
|
+
getServerInfo(): {
|
|
92
|
+
spawned: boolean;
|
|
93
|
+
pid: number | null;
|
|
94
|
+
command: string | null;
|
|
95
|
+
originalArgs: string[] | null;
|
|
96
|
+
resolvedArgs: string[] | null;
|
|
97
|
+
env: Record<string, string> | null;
|
|
98
|
+
alias: string | null;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Get the client instance once connected
|
|
102
|
+
* @returns Promise with the MCP client
|
|
103
|
+
*/
|
|
104
|
+
getConnectedClient(): Promise<Client>;
|
|
105
|
+
private ensureConnected;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { MCPClient };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import { ValidatedMcpServerConfig } from './schemas.js';
|
|
3
|
+
import { ToolSet } from '../tools/types.js';
|
|
4
|
+
import { IMCPClient } from './types.js';
|
|
5
|
+
import { GetPromptResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import 'zod';
|
|
7
|
+
import 'json-schema';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Wrapper on top of Client class provided in model context protocol SDK, to add additional metadata about the server
|
|
11
|
+
*/
|
|
12
|
+
declare class MCPClient implements IMCPClient {
|
|
13
|
+
private client;
|
|
14
|
+
private transport;
|
|
15
|
+
private isConnected;
|
|
16
|
+
private serverCommand;
|
|
17
|
+
private originalArgs;
|
|
18
|
+
private resolvedArgs;
|
|
19
|
+
private serverEnv;
|
|
20
|
+
private serverSpawned;
|
|
21
|
+
private serverPid;
|
|
22
|
+
private serverAlias;
|
|
23
|
+
private timeout;
|
|
24
|
+
connect(config: ValidatedMcpServerConfig, serverName: string): Promise<Client>;
|
|
25
|
+
/**
|
|
26
|
+
* Connect to an MCP server via stdio
|
|
27
|
+
* @param command Command to run
|
|
28
|
+
* @param args Arguments for the command
|
|
29
|
+
* @param env Environment variables
|
|
30
|
+
* @param serverAlias Optional server alias/name to show in logs
|
|
31
|
+
*/
|
|
32
|
+
connectViaStdio(command: string, args?: string[], env?: Record<string, string>, serverAlias?: string): Promise<Client>;
|
|
33
|
+
connectViaSSE(url: string, headers: Record<string, string> | undefined, serverName: string): Promise<Client>;
|
|
34
|
+
/**
|
|
35
|
+
* Connect to an MCP server via Streamable HTTP transport
|
|
36
|
+
*/
|
|
37
|
+
private connectViaHttp;
|
|
38
|
+
/**
|
|
39
|
+
* Disconnect from the server
|
|
40
|
+
*/
|
|
41
|
+
disconnect(): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Call a tool with given name and arguments
|
|
44
|
+
* @param name Tool name
|
|
45
|
+
* @param args Tool arguments
|
|
46
|
+
* @returns Result of the tool execution
|
|
47
|
+
*/
|
|
48
|
+
callTool(name: string, args: any): Promise<any>;
|
|
49
|
+
/**
|
|
50
|
+
* Get the list of tools provided by this client
|
|
51
|
+
* @returns Array of available tools
|
|
52
|
+
*/
|
|
53
|
+
getTools(): Promise<ToolSet>;
|
|
54
|
+
/**
|
|
55
|
+
* Get the list of prompts provided by this client
|
|
56
|
+
* @returns Array of available prompt names
|
|
57
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
58
|
+
*/
|
|
59
|
+
listPrompts(): Promise<string[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Get a specific prompt definition
|
|
62
|
+
* @param name Name of the prompt
|
|
63
|
+
* @param args Arguments for the prompt (optional)
|
|
64
|
+
* @returns Prompt definition (structure depends on SDK)
|
|
65
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
66
|
+
*/
|
|
67
|
+
getPrompt(name: string, args?: any): Promise<GetPromptResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Get the list of resources provided by this client
|
|
70
|
+
* @returns Array of available resource URIs
|
|
71
|
+
* TODO: Turn exception logs back into error and only call this based on capabilities of the server
|
|
72
|
+
*/
|
|
73
|
+
listResources(): Promise<string[]>;
|
|
74
|
+
/**
|
|
75
|
+
* Read the content of a specific resource
|
|
76
|
+
* @param uri URI of the resource
|
|
77
|
+
* @returns Content of the resource (structure depends on SDK)
|
|
78
|
+
*/
|
|
79
|
+
readResource(uri: string): Promise<ReadResourceResult>;
|
|
80
|
+
/**
|
|
81
|
+
* Check if the client is connected
|
|
82
|
+
*/
|
|
83
|
+
getConnectionStatus(): boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Get the connected client
|
|
86
|
+
*/
|
|
87
|
+
getClient(): Client | null;
|
|
88
|
+
/**
|
|
89
|
+
* Get server status information
|
|
90
|
+
*/
|
|
91
|
+
getServerInfo(): {
|
|
92
|
+
spawned: boolean;
|
|
93
|
+
pid: number | null;
|
|
94
|
+
command: string | null;
|
|
95
|
+
originalArgs: string[] | null;
|
|
96
|
+
resolvedArgs: string[] | null;
|
|
97
|
+
env: Record<string, string> | null;
|
|
98
|
+
alias: string | null;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Get the client instance once connected
|
|
102
|
+
* @returns Promise with the MCP client
|
|
103
|
+
*/
|
|
104
|
+
getConnectedClient(): Promise<Client>;
|
|
105
|
+
private ensureConnected;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { MCPClient };
|