@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,45 @@
|
|
|
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 schemas_exports = {};
|
|
20
|
+
__export(schemas_exports, {
|
|
21
|
+
InternalToolsSchema: () => InternalToolsSchema,
|
|
22
|
+
ToolConfirmationConfigSchema: () => ToolConfirmationConfigSchema
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(schemas_exports);
|
|
25
|
+
var import_zod = require("zod");
|
|
26
|
+
var import_registry = require("./internal-tools/registry.js");
|
|
27
|
+
const InternalToolsSchema = import_zod.z.array(import_zod.z.enum(import_registry.INTERNAL_TOOL_NAMES).describe("Available internal tool names")).default([]).describe(
|
|
28
|
+
`Array of internal tool names to enable. Empty array = disabled. Available tools: ${import_registry.INTERNAL_TOOL_NAMES.join(", ")}`
|
|
29
|
+
);
|
|
30
|
+
const ToolConfirmationConfigSchema = import_zod.z.object({
|
|
31
|
+
mode: import_zod.z.enum(["event-based", "auto-approve", "auto-deny"]).default("event-based").describe(
|
|
32
|
+
"Tool confirmation mode: event-based (interactive), auto-approve (all tools), auto-deny (no tools)"
|
|
33
|
+
),
|
|
34
|
+
timeout: import_zod.z.number().int().positive().default(12e4).describe(
|
|
35
|
+
"Timeout for tool confirmation requests in milliseconds, defaults to 120000ms (2 mins)"
|
|
36
|
+
),
|
|
37
|
+
allowedToolsStorage: import_zod.z.enum(["memory", "storage"]).default("storage").describe(
|
|
38
|
+
"Storage type for remembered tool approvals: memory (session-only) or storage (persistent)"
|
|
39
|
+
)
|
|
40
|
+
}).strict().describe("Tool confirmation and approval configuration");
|
|
41
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
42
|
+
0 && (module.exports = {
|
|
43
|
+
InternalToolsSchema,
|
|
44
|
+
ToolConfirmationConfigSchema
|
|
45
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const InternalToolsSchema: z.ZodDefault<z.ZodArray<z.ZodEnum<["search_history"]>, "many">>;
|
|
4
|
+
type InternalToolsConfig = z.output<typeof InternalToolsSchema>;
|
|
5
|
+
declare const ToolConfirmationConfigSchema: z.ZodObject<{
|
|
6
|
+
mode: z.ZodDefault<z.ZodEnum<["event-based", "auto-approve", "auto-deny"]>>;
|
|
7
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
8
|
+
allowedToolsStorage: z.ZodDefault<z.ZodEnum<["memory", "storage"]>>;
|
|
9
|
+
}, "strict", z.ZodTypeAny, {
|
|
10
|
+
timeout: number;
|
|
11
|
+
mode: "event-based" | "auto-approve" | "auto-deny";
|
|
12
|
+
allowedToolsStorage: "storage" | "memory";
|
|
13
|
+
}, {
|
|
14
|
+
timeout?: number | undefined;
|
|
15
|
+
mode?: "event-based" | "auto-approve" | "auto-deny" | undefined;
|
|
16
|
+
allowedToolsStorage?: "storage" | "memory" | undefined;
|
|
17
|
+
}>;
|
|
18
|
+
type ToolConfirmationConfig = z.input<typeof ToolConfirmationConfigSchema>;
|
|
19
|
+
type ValidatedToolConfirmationConfig = z.output<typeof ToolConfirmationConfigSchema>;
|
|
20
|
+
|
|
21
|
+
export { type InternalToolsConfig, InternalToolsSchema, type ToolConfirmationConfig, ToolConfirmationConfigSchema, type ValidatedToolConfirmationConfig };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
declare const InternalToolsSchema: z.ZodDefault<z.ZodArray<z.ZodEnum<["search_history"]>, "many">>;
|
|
4
|
+
type InternalToolsConfig = z.output<typeof InternalToolsSchema>;
|
|
5
|
+
declare const ToolConfirmationConfigSchema: z.ZodObject<{
|
|
6
|
+
mode: z.ZodDefault<z.ZodEnum<["event-based", "auto-approve", "auto-deny"]>>;
|
|
7
|
+
timeout: z.ZodDefault<z.ZodNumber>;
|
|
8
|
+
allowedToolsStorage: z.ZodDefault<z.ZodEnum<["memory", "storage"]>>;
|
|
9
|
+
}, "strict", z.ZodTypeAny, {
|
|
10
|
+
timeout: number;
|
|
11
|
+
mode: "event-based" | "auto-approve" | "auto-deny";
|
|
12
|
+
allowedToolsStorage: "storage" | "memory";
|
|
13
|
+
}, {
|
|
14
|
+
timeout?: number | undefined;
|
|
15
|
+
mode?: "event-based" | "auto-approve" | "auto-deny" | undefined;
|
|
16
|
+
allowedToolsStorage?: "storage" | "memory" | undefined;
|
|
17
|
+
}>;
|
|
18
|
+
type ToolConfirmationConfig = z.input<typeof ToolConfirmationConfigSchema>;
|
|
19
|
+
type ValidatedToolConfirmationConfig = z.output<typeof ToolConfirmationConfigSchema>;
|
|
20
|
+
|
|
21
|
+
export { type InternalToolsConfig, InternalToolsSchema, type ToolConfirmationConfig, ToolConfirmationConfigSchema, type ValidatedToolConfirmationConfig };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { INTERNAL_TOOL_NAMES } from "./internal-tools/registry.js";
|
|
3
|
+
const InternalToolsSchema = z.array(z.enum(INTERNAL_TOOL_NAMES).describe("Available internal tool names")).default([]).describe(
|
|
4
|
+
`Array of internal tool names to enable. Empty array = disabled. Available tools: ${INTERNAL_TOOL_NAMES.join(", ")}`
|
|
5
|
+
);
|
|
6
|
+
const ToolConfirmationConfigSchema = z.object({
|
|
7
|
+
mode: z.enum(["event-based", "auto-approve", "auto-deny"]).default("event-based").describe(
|
|
8
|
+
"Tool confirmation mode: event-based (interactive), auto-approve (all tools), auto-deny (no tools)"
|
|
9
|
+
),
|
|
10
|
+
timeout: z.number().int().positive().default(12e4).describe(
|
|
11
|
+
"Timeout for tool confirmation requests in milliseconds, defaults to 120000ms (2 mins)"
|
|
12
|
+
),
|
|
13
|
+
allowedToolsStorage: z.enum(["memory", "storage"]).default("storage").describe(
|
|
14
|
+
"Storage type for remembered tool approvals: memory (session-only) or storage (persistent)"
|
|
15
|
+
)
|
|
16
|
+
}).strict().describe("Tool confirmation and approval configuration");
|
|
17
|
+
export {
|
|
18
|
+
InternalToolsSchema,
|
|
19
|
+
ToolConfirmationConfigSchema
|
|
20
|
+
};
|
|
@@ -0,0 +1,275 @@
|
|
|
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 tool_manager_exports = {};
|
|
20
|
+
__export(tool_manager_exports, {
|
|
21
|
+
ToolManager: () => ToolManager
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(tool_manager_exports);
|
|
24
|
+
var import_provider = require("./internal-tools/provider.js");
|
|
25
|
+
var import_errors = require("./errors.js");
|
|
26
|
+
var import_logger = require("../logger/index.js");
|
|
27
|
+
class ToolManager {
|
|
28
|
+
mcpManager;
|
|
29
|
+
internalToolsProvider;
|
|
30
|
+
confirmationProvider;
|
|
31
|
+
// Tool source prefixing - ALL tools get prefixed by source
|
|
32
|
+
static MCP_TOOL_PREFIX = "mcp--";
|
|
33
|
+
static INTERNAL_TOOL_PREFIX = "internal--";
|
|
34
|
+
// Tool caching for performance
|
|
35
|
+
toolsCache = {};
|
|
36
|
+
cacheValid = false;
|
|
37
|
+
constructor(mcpManager, confirmationProvider, options) {
|
|
38
|
+
this.mcpManager = mcpManager;
|
|
39
|
+
this.confirmationProvider = confirmationProvider;
|
|
40
|
+
if (options?.internalToolsConfig && options.internalToolsConfig.length > 0) {
|
|
41
|
+
this.internalToolsProvider = new import_provider.InternalToolsProvider(
|
|
42
|
+
options.internalToolsServices || {},
|
|
43
|
+
confirmationProvider,
|
|
44
|
+
options.internalToolsConfig
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
import_logger.logger.debug("ToolManager initialized");
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Initialize the ToolManager and its components
|
|
51
|
+
*/
|
|
52
|
+
async initialize() {
|
|
53
|
+
if (this.internalToolsProvider) {
|
|
54
|
+
await this.internalToolsProvider.initialize();
|
|
55
|
+
}
|
|
56
|
+
import_logger.logger.debug("ToolManager initialization complete");
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Invalidate the tools cache when tool sources change
|
|
60
|
+
*/
|
|
61
|
+
invalidateCache() {
|
|
62
|
+
this.cacheValid = false;
|
|
63
|
+
this.toolsCache = {};
|
|
64
|
+
}
|
|
65
|
+
getMcpManager() {
|
|
66
|
+
return this.mcpManager;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get all MCP tools (delegates to mcpManager.getAllTools())
|
|
70
|
+
* This provides access to MCP tools while maintaining separation of concerns
|
|
71
|
+
*/
|
|
72
|
+
async getMcpTools() {
|
|
73
|
+
return await this.mcpManager.getAllTools();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Build all tools from sources with universal prefixing
|
|
77
|
+
* ALL tools get prefixed by their source - no exceptions
|
|
78
|
+
*/
|
|
79
|
+
async buildAllTools() {
|
|
80
|
+
const allTools = {};
|
|
81
|
+
let mcpTools = {};
|
|
82
|
+
let internalTools = {};
|
|
83
|
+
try {
|
|
84
|
+
mcpTools = await this.mcpManager.getAllTools();
|
|
85
|
+
} catch (error) {
|
|
86
|
+
import_logger.logger.error(
|
|
87
|
+
`Failed to get MCP tools: ${error instanceof Error ? error.message : String(error)}`
|
|
88
|
+
);
|
|
89
|
+
mcpTools = {};
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
internalTools = this.internalToolsProvider?.getAllTools() || {};
|
|
93
|
+
} catch (error) {
|
|
94
|
+
import_logger.logger.error(
|
|
95
|
+
`Failed to get internal tools: ${error instanceof Error ? error.message : String(error)}`
|
|
96
|
+
);
|
|
97
|
+
internalTools = {};
|
|
98
|
+
}
|
|
99
|
+
for (const [toolName, toolDef] of Object.entries(internalTools)) {
|
|
100
|
+
const qualifiedName = `${ToolManager.INTERNAL_TOOL_PREFIX}${toolName}`;
|
|
101
|
+
allTools[qualifiedName] = {
|
|
102
|
+
...toolDef,
|
|
103
|
+
name: qualifiedName,
|
|
104
|
+
description: `${toolDef.description || "No description provided"} (internal tool)`
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
for (const [toolName, toolDef] of Object.entries(mcpTools)) {
|
|
108
|
+
const qualifiedName = `${ToolManager.MCP_TOOL_PREFIX}${toolName}`;
|
|
109
|
+
allTools[qualifiedName] = {
|
|
110
|
+
...toolDef,
|
|
111
|
+
name: qualifiedName,
|
|
112
|
+
description: `${toolDef.description || "No description provided"} (via MCP servers)`
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const totalTools = Object.keys(allTools).length;
|
|
116
|
+
const mcpCount = Object.keys(mcpTools).length;
|
|
117
|
+
const internalCount = Object.keys(internalTools).length;
|
|
118
|
+
import_logger.logger.debug(
|
|
119
|
+
`\u{1F527} Unified tool discovery: ${totalTools} total tools (${mcpCount} MCP \u2192 ${ToolManager.MCP_TOOL_PREFIX}*, ${internalCount} internal \u2192 ${ToolManager.INTERNAL_TOOL_PREFIX}*)`
|
|
120
|
+
);
|
|
121
|
+
return allTools;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get all available tools from all sources with conflict resolution
|
|
125
|
+
* This is the single interface the LLM uses to discover tools
|
|
126
|
+
* Uses caching to avoid rebuilding on every call
|
|
127
|
+
*/
|
|
128
|
+
async getAllTools() {
|
|
129
|
+
if (this.cacheValid) {
|
|
130
|
+
return this.toolsCache;
|
|
131
|
+
}
|
|
132
|
+
this.toolsCache = await this.buildAllTools();
|
|
133
|
+
this.cacheValid = true;
|
|
134
|
+
return this.toolsCache;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Execute a tool by routing based on universal prefix
|
|
138
|
+
* ALL tools must have source prefix - no exceptions
|
|
139
|
+
*/
|
|
140
|
+
async executeTool(toolName, args, sessionId) {
|
|
141
|
+
import_logger.logger.debug(`\u{1F527} Tool execution requested: '${toolName}'`);
|
|
142
|
+
import_logger.logger.debug(`Tool args: ${JSON.stringify(args, null, 2)}`);
|
|
143
|
+
const approved = await this.confirmationProvider.requestConfirmation({
|
|
144
|
+
toolName,
|
|
145
|
+
args,
|
|
146
|
+
...sessionId && { sessionId }
|
|
147
|
+
});
|
|
148
|
+
if (!approved) {
|
|
149
|
+
import_logger.logger.debug(`\u{1F6AB} Tool execution denied: ${toolName}`);
|
|
150
|
+
throw import_errors.ToolError.executionDenied(toolName, sessionId);
|
|
151
|
+
}
|
|
152
|
+
import_logger.logger.debug(`\u2705 Tool execution approved: ${toolName}`);
|
|
153
|
+
import_logger.logger.info(
|
|
154
|
+
`\u{1F527} Tool execution started for ${toolName}, sessionId: ${sessionId ?? "global"}`
|
|
155
|
+
);
|
|
156
|
+
const startTime = Date.now();
|
|
157
|
+
try {
|
|
158
|
+
let result;
|
|
159
|
+
if (toolName.startsWith(ToolManager.MCP_TOOL_PREFIX)) {
|
|
160
|
+
import_logger.logger.debug(`\u{1F527} Detected MCP tool: '${toolName}'`);
|
|
161
|
+
const actualToolName = toolName.substring(ToolManager.MCP_TOOL_PREFIX.length);
|
|
162
|
+
if (actualToolName.length === 0) {
|
|
163
|
+
throw import_errors.ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
|
|
164
|
+
}
|
|
165
|
+
import_logger.logger.debug(`\u{1F3AF} MCP routing: '${toolName}' -> '${actualToolName}'`);
|
|
166
|
+
result = await this.mcpManager.executeTool(actualToolName, args, sessionId);
|
|
167
|
+
} else if (toolName.startsWith(ToolManager.INTERNAL_TOOL_PREFIX)) {
|
|
168
|
+
import_logger.logger.debug(`\u{1F527} Detected internal tool: '${toolName}'`);
|
|
169
|
+
const actualToolName = toolName.substring(ToolManager.INTERNAL_TOOL_PREFIX.length);
|
|
170
|
+
if (actualToolName.length === 0) {
|
|
171
|
+
throw import_errors.ToolError.invalidName(toolName, "tool name cannot be empty after prefix");
|
|
172
|
+
}
|
|
173
|
+
if (!this.internalToolsProvider) {
|
|
174
|
+
throw import_errors.ToolError.internalToolsNotInitialized(toolName);
|
|
175
|
+
}
|
|
176
|
+
import_logger.logger.debug(`\u{1F3AF} Internal routing: '${toolName}' -> '${actualToolName}'`);
|
|
177
|
+
result = await this.internalToolsProvider.executeTool(
|
|
178
|
+
actualToolName,
|
|
179
|
+
args,
|
|
180
|
+
sessionId
|
|
181
|
+
);
|
|
182
|
+
} else {
|
|
183
|
+
import_logger.logger.debug(`\u{1F527} Detected tool without proper prefix: '${toolName}'`);
|
|
184
|
+
const stats = await this.getToolStats();
|
|
185
|
+
import_logger.logger.error(
|
|
186
|
+
`\u274C Tool missing source prefix: '${toolName}' (expected '${ToolManager.MCP_TOOL_PREFIX}*' or '${ToolManager.INTERNAL_TOOL_PREFIX}*')`
|
|
187
|
+
);
|
|
188
|
+
import_logger.logger.debug(`Available: ${stats.mcp} MCP tools, ${stats.internal} internal tools`);
|
|
189
|
+
throw import_errors.ToolError.notFound(toolName);
|
|
190
|
+
}
|
|
191
|
+
const duration = Date.now() - startTime;
|
|
192
|
+
import_logger.logger.debug(`\u{1F3AF} Tool execution completed in ${duration}ms: '${toolName}'`);
|
|
193
|
+
import_logger.logger.info(
|
|
194
|
+
`\u2705 Tool execution completed successfully for ${toolName} in ${duration}ms, sessionId: ${sessionId ?? "global"}`
|
|
195
|
+
);
|
|
196
|
+
return result;
|
|
197
|
+
} catch (error) {
|
|
198
|
+
const duration = Date.now() - startTime;
|
|
199
|
+
import_logger.logger.error(
|
|
200
|
+
`\u274C Tool execution failed for ${toolName} after ${duration}ms, sessionId: ${sessionId ?? "global"}: ${error instanceof Error ? error.message : String(error)}`
|
|
201
|
+
);
|
|
202
|
+
throw error;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Check if a tool exists (must have proper source prefix)
|
|
207
|
+
*/
|
|
208
|
+
async hasTool(toolName) {
|
|
209
|
+
if (toolName.startsWith(ToolManager.MCP_TOOL_PREFIX)) {
|
|
210
|
+
const actualToolName = toolName.substring(ToolManager.MCP_TOOL_PREFIX.length);
|
|
211
|
+
return this.mcpManager.getToolClient(actualToolName) !== void 0;
|
|
212
|
+
}
|
|
213
|
+
if (toolName.startsWith(ToolManager.INTERNAL_TOOL_PREFIX)) {
|
|
214
|
+
const actualToolName = toolName.substring(ToolManager.INTERNAL_TOOL_PREFIX.length);
|
|
215
|
+
return this.internalToolsProvider?.hasTool(actualToolName) ?? false;
|
|
216
|
+
}
|
|
217
|
+
return false;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Get tool statistics across all sources
|
|
221
|
+
*/
|
|
222
|
+
async getToolStats() {
|
|
223
|
+
let mcpTools = {};
|
|
224
|
+
let internalTools = {};
|
|
225
|
+
try {
|
|
226
|
+
mcpTools = await this.mcpManager.getAllTools();
|
|
227
|
+
} catch (error) {
|
|
228
|
+
import_logger.logger.error(
|
|
229
|
+
`Failed to get MCP tools for stats: ${error instanceof Error ? error.message : String(error)}`
|
|
230
|
+
);
|
|
231
|
+
mcpTools = {};
|
|
232
|
+
}
|
|
233
|
+
try {
|
|
234
|
+
internalTools = this.internalToolsProvider?.getAllTools() || {};
|
|
235
|
+
} catch (error) {
|
|
236
|
+
import_logger.logger.error(
|
|
237
|
+
`Failed to get internal tools for stats: ${error instanceof Error ? error.message : String(error)}`
|
|
238
|
+
);
|
|
239
|
+
internalTools = {};
|
|
240
|
+
}
|
|
241
|
+
const mcpCount = Object.keys(mcpTools).length;
|
|
242
|
+
const internalCount = Object.keys(internalTools).length;
|
|
243
|
+
return {
|
|
244
|
+
total: mcpCount + internalCount,
|
|
245
|
+
// No conflicts with universal prefixing
|
|
246
|
+
mcp: mcpCount,
|
|
247
|
+
internal: internalCount
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Get the source of a tool (mcp, internal, or unknown)
|
|
252
|
+
* @param toolName The name of the tool to check
|
|
253
|
+
* @returns The source of the tool
|
|
254
|
+
*/
|
|
255
|
+
getToolSource(toolName) {
|
|
256
|
+
if (toolName.startsWith(ToolManager.MCP_TOOL_PREFIX) && toolName.length > ToolManager.MCP_TOOL_PREFIX.length) {
|
|
257
|
+
return "mcp";
|
|
258
|
+
}
|
|
259
|
+
if (toolName.startsWith(ToolManager.INTERNAL_TOOL_PREFIX) && toolName.length > ToolManager.INTERNAL_TOOL_PREFIX.length) {
|
|
260
|
+
return "internal";
|
|
261
|
+
}
|
|
262
|
+
return "unknown";
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Refresh tool discovery (call when MCP servers change)
|
|
266
|
+
*/
|
|
267
|
+
async refresh() {
|
|
268
|
+
this.invalidateCache();
|
|
269
|
+
import_logger.logger.debug("ToolManager refreshed");
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
273
|
+
0 && (module.exports = {
|
|
274
|
+
ToolManager
|
|
275
|
+
});
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { MCPManager } from '../mcp/manager.cjs';
|
|
2
|
+
import { InternalToolsServices } from './internal-tools/registry.cjs';
|
|
3
|
+
import { InternalToolsConfig } from './schemas.cjs';
|
|
4
|
+
import { ToolSet } from './types.cjs';
|
|
5
|
+
import { ToolConfirmationProvider } from './confirmation/types.cjs';
|
|
6
|
+
import '../mcp/schemas.cjs';
|
|
7
|
+
import 'zod';
|
|
8
|
+
import '../mcp/types.cjs';
|
|
9
|
+
import '@modelcontextprotocol/sdk/client/index.js';
|
|
10
|
+
import '@modelcontextprotocol/sdk/types.js';
|
|
11
|
+
import '../search/search-service.cjs';
|
|
12
|
+
import '../storage/backend/database-backend.cjs';
|
|
13
|
+
import '../search/types.cjs';
|
|
14
|
+
import '../context/types.cjs';
|
|
15
|
+
import '../llm/types.cjs';
|
|
16
|
+
import 'json-schema';
|
|
17
|
+
import './confirmation/allowed-tools-provider/types.cjs';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Options for internal tools configuration in ToolManager
|
|
21
|
+
*/
|
|
22
|
+
interface InternalToolsOptions {
|
|
23
|
+
internalToolsServices?: InternalToolsServices;
|
|
24
|
+
internalToolsConfig?: InternalToolsConfig;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Unified Tool Manager - Single interface for all tool operations
|
|
28
|
+
*
|
|
29
|
+
* This class acts as the single point of contact between the LLM and all tool sources.
|
|
30
|
+
* It aggregates tools from MCP servers and internal tools, providing a unified interface
|
|
31
|
+
* for tool discovery, aggregation, and execution.
|
|
32
|
+
*
|
|
33
|
+
* Responsibilities:
|
|
34
|
+
* - Aggregate tools from MCP servers and internal tools with conflict resolution
|
|
35
|
+
* - Route tool execution to appropriate source (MCP vs Internal)
|
|
36
|
+
* - Provide unified tool interface to LLM
|
|
37
|
+
* - Manage tool confirmation and security
|
|
38
|
+
* - Handle cross-source naming conflicts (internal tools have precedence)
|
|
39
|
+
*
|
|
40
|
+
* Architecture:
|
|
41
|
+
* LLMService → ToolManager → [MCPManager, InternalToolsProvider]
|
|
42
|
+
*/
|
|
43
|
+
declare class ToolManager {
|
|
44
|
+
private mcpManager;
|
|
45
|
+
private internalToolsProvider?;
|
|
46
|
+
private confirmationProvider;
|
|
47
|
+
private static readonly MCP_TOOL_PREFIX;
|
|
48
|
+
private static readonly INTERNAL_TOOL_PREFIX;
|
|
49
|
+
private toolsCache;
|
|
50
|
+
private cacheValid;
|
|
51
|
+
constructor(mcpManager: MCPManager, confirmationProvider: ToolConfirmationProvider, options?: InternalToolsOptions);
|
|
52
|
+
/**
|
|
53
|
+
* Initialize the ToolManager and its components
|
|
54
|
+
*/
|
|
55
|
+
initialize(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Invalidate the tools cache when tool sources change
|
|
58
|
+
*/
|
|
59
|
+
private invalidateCache;
|
|
60
|
+
getMcpManager(): MCPManager;
|
|
61
|
+
/**
|
|
62
|
+
* Get all MCP tools (delegates to mcpManager.getAllTools())
|
|
63
|
+
* This provides access to MCP tools while maintaining separation of concerns
|
|
64
|
+
*/
|
|
65
|
+
getMcpTools(): Promise<ToolSet>;
|
|
66
|
+
/**
|
|
67
|
+
* Build all tools from sources with universal prefixing
|
|
68
|
+
* ALL tools get prefixed by their source - no exceptions
|
|
69
|
+
*/
|
|
70
|
+
private buildAllTools;
|
|
71
|
+
/**
|
|
72
|
+
* Get all available tools from all sources with conflict resolution
|
|
73
|
+
* This is the single interface the LLM uses to discover tools
|
|
74
|
+
* Uses caching to avoid rebuilding on every call
|
|
75
|
+
*/
|
|
76
|
+
getAllTools(): Promise<ToolSet>;
|
|
77
|
+
/**
|
|
78
|
+
* Execute a tool by routing based on universal prefix
|
|
79
|
+
* ALL tools must have source prefix - no exceptions
|
|
80
|
+
*/
|
|
81
|
+
executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string): Promise<unknown>;
|
|
82
|
+
/**
|
|
83
|
+
* Check if a tool exists (must have proper source prefix)
|
|
84
|
+
*/
|
|
85
|
+
hasTool(toolName: string): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Get tool statistics across all sources
|
|
88
|
+
*/
|
|
89
|
+
getToolStats(): Promise<{
|
|
90
|
+
total: number;
|
|
91
|
+
mcp: number;
|
|
92
|
+
internal: number;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Get the source of a tool (mcp, internal, or unknown)
|
|
96
|
+
* @param toolName The name of the tool to check
|
|
97
|
+
* @returns The source of the tool
|
|
98
|
+
*/
|
|
99
|
+
getToolSource(toolName: string): 'mcp' | 'internal' | 'unknown';
|
|
100
|
+
/**
|
|
101
|
+
* Refresh tool discovery (call when MCP servers change)
|
|
102
|
+
*/
|
|
103
|
+
refresh(): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { type InternalToolsOptions, ToolManager };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { MCPManager } from '../mcp/manager.js';
|
|
2
|
+
import { InternalToolsServices } from './internal-tools/registry.js';
|
|
3
|
+
import { InternalToolsConfig } from './schemas.js';
|
|
4
|
+
import { ToolSet } from './types.js';
|
|
5
|
+
import { ToolConfirmationProvider } from './confirmation/types.js';
|
|
6
|
+
import '../mcp/schemas.js';
|
|
7
|
+
import 'zod';
|
|
8
|
+
import '../mcp/types.js';
|
|
9
|
+
import '@modelcontextprotocol/sdk/client/index.js';
|
|
10
|
+
import '@modelcontextprotocol/sdk/types.js';
|
|
11
|
+
import '../search/search-service.js';
|
|
12
|
+
import '../storage/backend/database-backend.js';
|
|
13
|
+
import '../search/types.js';
|
|
14
|
+
import '../context/types.js';
|
|
15
|
+
import '../llm/types.js';
|
|
16
|
+
import 'json-schema';
|
|
17
|
+
import './confirmation/allowed-tools-provider/types.js';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Options for internal tools configuration in ToolManager
|
|
21
|
+
*/
|
|
22
|
+
interface InternalToolsOptions {
|
|
23
|
+
internalToolsServices?: InternalToolsServices;
|
|
24
|
+
internalToolsConfig?: InternalToolsConfig;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Unified Tool Manager - Single interface for all tool operations
|
|
28
|
+
*
|
|
29
|
+
* This class acts as the single point of contact between the LLM and all tool sources.
|
|
30
|
+
* It aggregates tools from MCP servers and internal tools, providing a unified interface
|
|
31
|
+
* for tool discovery, aggregation, and execution.
|
|
32
|
+
*
|
|
33
|
+
* Responsibilities:
|
|
34
|
+
* - Aggregate tools from MCP servers and internal tools with conflict resolution
|
|
35
|
+
* - Route tool execution to appropriate source (MCP vs Internal)
|
|
36
|
+
* - Provide unified tool interface to LLM
|
|
37
|
+
* - Manage tool confirmation and security
|
|
38
|
+
* - Handle cross-source naming conflicts (internal tools have precedence)
|
|
39
|
+
*
|
|
40
|
+
* Architecture:
|
|
41
|
+
* LLMService → ToolManager → [MCPManager, InternalToolsProvider]
|
|
42
|
+
*/
|
|
43
|
+
declare class ToolManager {
|
|
44
|
+
private mcpManager;
|
|
45
|
+
private internalToolsProvider?;
|
|
46
|
+
private confirmationProvider;
|
|
47
|
+
private static readonly MCP_TOOL_PREFIX;
|
|
48
|
+
private static readonly INTERNAL_TOOL_PREFIX;
|
|
49
|
+
private toolsCache;
|
|
50
|
+
private cacheValid;
|
|
51
|
+
constructor(mcpManager: MCPManager, confirmationProvider: ToolConfirmationProvider, options?: InternalToolsOptions);
|
|
52
|
+
/**
|
|
53
|
+
* Initialize the ToolManager and its components
|
|
54
|
+
*/
|
|
55
|
+
initialize(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Invalidate the tools cache when tool sources change
|
|
58
|
+
*/
|
|
59
|
+
private invalidateCache;
|
|
60
|
+
getMcpManager(): MCPManager;
|
|
61
|
+
/**
|
|
62
|
+
* Get all MCP tools (delegates to mcpManager.getAllTools())
|
|
63
|
+
* This provides access to MCP tools while maintaining separation of concerns
|
|
64
|
+
*/
|
|
65
|
+
getMcpTools(): Promise<ToolSet>;
|
|
66
|
+
/**
|
|
67
|
+
* Build all tools from sources with universal prefixing
|
|
68
|
+
* ALL tools get prefixed by their source - no exceptions
|
|
69
|
+
*/
|
|
70
|
+
private buildAllTools;
|
|
71
|
+
/**
|
|
72
|
+
* Get all available tools from all sources with conflict resolution
|
|
73
|
+
* This is the single interface the LLM uses to discover tools
|
|
74
|
+
* Uses caching to avoid rebuilding on every call
|
|
75
|
+
*/
|
|
76
|
+
getAllTools(): Promise<ToolSet>;
|
|
77
|
+
/**
|
|
78
|
+
* Execute a tool by routing based on universal prefix
|
|
79
|
+
* ALL tools must have source prefix - no exceptions
|
|
80
|
+
*/
|
|
81
|
+
executeTool(toolName: string, args: Record<string, unknown>, sessionId?: string): Promise<unknown>;
|
|
82
|
+
/**
|
|
83
|
+
* Check if a tool exists (must have proper source prefix)
|
|
84
|
+
*/
|
|
85
|
+
hasTool(toolName: string): Promise<boolean>;
|
|
86
|
+
/**
|
|
87
|
+
* Get tool statistics across all sources
|
|
88
|
+
*/
|
|
89
|
+
getToolStats(): Promise<{
|
|
90
|
+
total: number;
|
|
91
|
+
mcp: number;
|
|
92
|
+
internal: number;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Get the source of a tool (mcp, internal, or unknown)
|
|
96
|
+
* @param toolName The name of the tool to check
|
|
97
|
+
* @returns The source of the tool
|
|
98
|
+
*/
|
|
99
|
+
getToolSource(toolName: string): 'mcp' | 'internal' | 'unknown';
|
|
100
|
+
/**
|
|
101
|
+
* Refresh tool discovery (call when MCP servers change)
|
|
102
|
+
*/
|
|
103
|
+
refresh(): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { type InternalToolsOptions, ToolManager };
|