@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,62 @@
|
|
|
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 in_memory_exports = {};
|
|
20
|
+
__export(in_memory_exports, {
|
|
21
|
+
InMemoryAllowedToolsProvider: () => InMemoryAllowedToolsProvider
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(in_memory_exports);
|
|
24
|
+
class InMemoryAllowedToolsProvider {
|
|
25
|
+
/**
|
|
26
|
+
* Map key is sessionId (undefined => global approvals). Value is a set of
|
|
27
|
+
* approved tool names.
|
|
28
|
+
*/
|
|
29
|
+
store = /* @__PURE__ */ new Map();
|
|
30
|
+
constructor(initialGlobal) {
|
|
31
|
+
if (initialGlobal) {
|
|
32
|
+
this.store.set(void 0, new Set(initialGlobal));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
getSet(sessionId) {
|
|
36
|
+
const key = sessionId ?? void 0;
|
|
37
|
+
let set = this.store.get(key);
|
|
38
|
+
if (!set) {
|
|
39
|
+
set = /* @__PURE__ */ new Set();
|
|
40
|
+
this.store.set(key, set);
|
|
41
|
+
}
|
|
42
|
+
return set;
|
|
43
|
+
}
|
|
44
|
+
async allowTool(toolName, sessionId) {
|
|
45
|
+
this.getSet(sessionId).add(toolName);
|
|
46
|
+
}
|
|
47
|
+
async disallowTool(toolName, sessionId) {
|
|
48
|
+
this.getSet(sessionId).delete(toolName);
|
|
49
|
+
}
|
|
50
|
+
async isToolAllowed(toolName, sessionId) {
|
|
51
|
+
const scopedSet = this.store.get(sessionId ?? void 0);
|
|
52
|
+
const globalSet = this.store.get(void 0);
|
|
53
|
+
return Boolean(scopedSet?.has(toolName) || globalSet?.has(toolName));
|
|
54
|
+
}
|
|
55
|
+
async getAllowedTools(sessionId) {
|
|
56
|
+
return new Set(this.getSet(sessionId));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
60
|
+
0 && (module.exports = {
|
|
61
|
+
InMemoryAllowedToolsProvider
|
|
62
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IAllowedToolsProvider } from './types.cjs';
|
|
2
|
+
|
|
3
|
+
declare class InMemoryAllowedToolsProvider implements IAllowedToolsProvider {
|
|
4
|
+
/**
|
|
5
|
+
* Map key is sessionId (undefined => global approvals). Value is a set of
|
|
6
|
+
* approved tool names.
|
|
7
|
+
*/
|
|
8
|
+
private store;
|
|
9
|
+
constructor(initialGlobal?: Set<string>);
|
|
10
|
+
private getSet;
|
|
11
|
+
allowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
12
|
+
disallowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
13
|
+
isToolAllowed(toolName: string, sessionId?: string): Promise<boolean>;
|
|
14
|
+
getAllowedTools(sessionId?: string): Promise<Set<string>>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { InMemoryAllowedToolsProvider };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IAllowedToolsProvider } from './types.js';
|
|
2
|
+
|
|
3
|
+
declare class InMemoryAllowedToolsProvider implements IAllowedToolsProvider {
|
|
4
|
+
/**
|
|
5
|
+
* Map key is sessionId (undefined => global approvals). Value is a set of
|
|
6
|
+
* approved tool names.
|
|
7
|
+
*/
|
|
8
|
+
private store;
|
|
9
|
+
constructor(initialGlobal?: Set<string>);
|
|
10
|
+
private getSet;
|
|
11
|
+
allowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
12
|
+
disallowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
13
|
+
isToolAllowed(toolName: string, sessionId?: string): Promise<boolean>;
|
|
14
|
+
getAllowedTools(sessionId?: string): Promise<Set<string>>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { InMemoryAllowedToolsProvider };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
class InMemoryAllowedToolsProvider {
|
|
2
|
+
/**
|
|
3
|
+
* Map key is sessionId (undefined => global approvals). Value is a set of
|
|
4
|
+
* approved tool names.
|
|
5
|
+
*/
|
|
6
|
+
store = /* @__PURE__ */ new Map();
|
|
7
|
+
constructor(initialGlobal) {
|
|
8
|
+
if (initialGlobal) {
|
|
9
|
+
this.store.set(void 0, new Set(initialGlobal));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
getSet(sessionId) {
|
|
13
|
+
const key = sessionId ?? void 0;
|
|
14
|
+
let set = this.store.get(key);
|
|
15
|
+
if (!set) {
|
|
16
|
+
set = /* @__PURE__ */ new Set();
|
|
17
|
+
this.store.set(key, set);
|
|
18
|
+
}
|
|
19
|
+
return set;
|
|
20
|
+
}
|
|
21
|
+
async allowTool(toolName, sessionId) {
|
|
22
|
+
this.getSet(sessionId).add(toolName);
|
|
23
|
+
}
|
|
24
|
+
async disallowTool(toolName, sessionId) {
|
|
25
|
+
this.getSet(sessionId).delete(toolName);
|
|
26
|
+
}
|
|
27
|
+
async isToolAllowed(toolName, sessionId) {
|
|
28
|
+
const scopedSet = this.store.get(sessionId ?? void 0);
|
|
29
|
+
const globalSet = this.store.get(void 0);
|
|
30
|
+
return Boolean(scopedSet?.has(toolName) || globalSet?.has(toolName));
|
|
31
|
+
}
|
|
32
|
+
async getAllowedTools(sessionId) {
|
|
33
|
+
return new Set(this.getSet(sessionId));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export {
|
|
37
|
+
InMemoryAllowedToolsProvider
|
|
38
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
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 storage_exports = {};
|
|
20
|
+
__export(storage_exports, {
|
|
21
|
+
StorageAllowedToolsProvider: () => StorageAllowedToolsProvider
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(storage_exports);
|
|
24
|
+
var import_logger = require("../../../logger/index.cjs");
|
|
25
|
+
class StorageAllowedToolsProvider {
|
|
26
|
+
constructor(storage) {
|
|
27
|
+
this.storage = storage;
|
|
28
|
+
}
|
|
29
|
+
buildKey(sessionId) {
|
|
30
|
+
return sessionId ? `allowedTools:${sessionId}` : "allowedTools:global";
|
|
31
|
+
}
|
|
32
|
+
async allowTool(toolName, sessionId) {
|
|
33
|
+
const key = this.buildKey(sessionId);
|
|
34
|
+
import_logger.logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
|
|
35
|
+
const existingRaw = await this.storage.database.get(key);
|
|
36
|
+
const newSet = new Set(Array.isArray(existingRaw) ? existingRaw : []);
|
|
37
|
+
newSet.add(toolName);
|
|
38
|
+
await this.storage.database.set(key, Array.from(newSet));
|
|
39
|
+
import_logger.logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
|
|
40
|
+
}
|
|
41
|
+
async disallowTool(toolName, sessionId) {
|
|
42
|
+
const key = this.buildKey(sessionId);
|
|
43
|
+
import_logger.logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
|
|
44
|
+
const existingRaw = await this.storage.database.get(key);
|
|
45
|
+
if (!Array.isArray(existingRaw)) return;
|
|
46
|
+
const newSet = new Set(existingRaw);
|
|
47
|
+
newSet.delete(toolName);
|
|
48
|
+
await this.storage.database.set(key, Array.from(newSet));
|
|
49
|
+
}
|
|
50
|
+
async isToolAllowed(toolName, sessionId) {
|
|
51
|
+
const sessionArr = await this.storage.database.get(this.buildKey(sessionId));
|
|
52
|
+
if (Array.isArray(sessionArr) && sessionArr.includes(toolName)) return true;
|
|
53
|
+
const globalArr = await this.storage.database.get(this.buildKey(void 0));
|
|
54
|
+
const allowed = Array.isArray(globalArr) ? globalArr.includes(toolName) : false;
|
|
55
|
+
import_logger.logger.debug(
|
|
56
|
+
`Checked allowed tool '${toolName}' in session '${sessionId ?? "global"}' \u2013 allowed=${allowed}`
|
|
57
|
+
);
|
|
58
|
+
return allowed;
|
|
59
|
+
}
|
|
60
|
+
async getAllowedTools(sessionId) {
|
|
61
|
+
const arr = await this.storage.database.get(this.buildKey(sessionId));
|
|
62
|
+
return new Set(Array.isArray(arr) ? arr : []);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
+
0 && (module.exports = {
|
|
67
|
+
StorageAllowedToolsProvider
|
|
68
|
+
});
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StorageBackends } from '../../../storage/backend/types.cjs';
|
|
2
|
+
import { IAllowedToolsProvider } from './types.cjs';
|
|
3
|
+
import '../../../storage/backend/cache-backend.cjs';
|
|
4
|
+
import '../../../storage/backend/database-backend.cjs';
|
|
5
|
+
import '../../../storage/schemas.cjs';
|
|
6
|
+
import 'zod';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Storage-backed implementation that persists allowed tools in the Dexto
|
|
10
|
+
* storage backends. The key scheme is:
|
|
11
|
+
* allowedTools:<sessionId> – approvals scoped to a session
|
|
12
|
+
* allowedTools:global – global approvals (sessionId undefined)
|
|
13
|
+
*
|
|
14
|
+
* Using the database backend for persistence.
|
|
15
|
+
*/
|
|
16
|
+
declare class StorageAllowedToolsProvider implements IAllowedToolsProvider {
|
|
17
|
+
private storage;
|
|
18
|
+
constructor(storage: StorageBackends);
|
|
19
|
+
private buildKey;
|
|
20
|
+
allowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
21
|
+
disallowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
22
|
+
isToolAllowed(toolName: string, sessionId?: string): Promise<boolean>;
|
|
23
|
+
getAllowedTools(sessionId?: string): Promise<Set<string>>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { StorageAllowedToolsProvider };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StorageBackends } from '../../../storage/backend/types.js';
|
|
2
|
+
import { IAllowedToolsProvider } from './types.js';
|
|
3
|
+
import '../../../storage/backend/cache-backend.js';
|
|
4
|
+
import '../../../storage/backend/database-backend.js';
|
|
5
|
+
import '../../../storage/schemas.js';
|
|
6
|
+
import 'zod';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Storage-backed implementation that persists allowed tools in the Dexto
|
|
10
|
+
* storage backends. The key scheme is:
|
|
11
|
+
* allowedTools:<sessionId> – approvals scoped to a session
|
|
12
|
+
* allowedTools:global – global approvals (sessionId undefined)
|
|
13
|
+
*
|
|
14
|
+
* Using the database backend for persistence.
|
|
15
|
+
*/
|
|
16
|
+
declare class StorageAllowedToolsProvider implements IAllowedToolsProvider {
|
|
17
|
+
private storage;
|
|
18
|
+
constructor(storage: StorageBackends);
|
|
19
|
+
private buildKey;
|
|
20
|
+
allowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
21
|
+
disallowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
22
|
+
isToolAllowed(toolName: string, sessionId?: string): Promise<boolean>;
|
|
23
|
+
getAllowedTools(sessionId?: string): Promise<Set<string>>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { StorageAllowedToolsProvider };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { logger } from "../../../logger/index.js";
|
|
2
|
+
class StorageAllowedToolsProvider {
|
|
3
|
+
constructor(storage) {
|
|
4
|
+
this.storage = storage;
|
|
5
|
+
}
|
|
6
|
+
buildKey(sessionId) {
|
|
7
|
+
return sessionId ? `allowedTools:${sessionId}` : "allowedTools:global";
|
|
8
|
+
}
|
|
9
|
+
async allowTool(toolName, sessionId) {
|
|
10
|
+
const key = this.buildKey(sessionId);
|
|
11
|
+
logger.debug(`Adding allowed tool '${toolName}' for key '${key}'`);
|
|
12
|
+
const existingRaw = await this.storage.database.get(key);
|
|
13
|
+
const newSet = new Set(Array.isArray(existingRaw) ? existingRaw : []);
|
|
14
|
+
newSet.add(toolName);
|
|
15
|
+
await this.storage.database.set(key, Array.from(newSet));
|
|
16
|
+
logger.debug(`Added allowed tool '${toolName}' for key '${key}'`);
|
|
17
|
+
}
|
|
18
|
+
async disallowTool(toolName, sessionId) {
|
|
19
|
+
const key = this.buildKey(sessionId);
|
|
20
|
+
logger.debug(`Removing allowed tool '${toolName}' for key '${key}'`);
|
|
21
|
+
const existingRaw = await this.storage.database.get(key);
|
|
22
|
+
if (!Array.isArray(existingRaw)) return;
|
|
23
|
+
const newSet = new Set(existingRaw);
|
|
24
|
+
newSet.delete(toolName);
|
|
25
|
+
await this.storage.database.set(key, Array.from(newSet));
|
|
26
|
+
}
|
|
27
|
+
async isToolAllowed(toolName, sessionId) {
|
|
28
|
+
const sessionArr = await this.storage.database.get(this.buildKey(sessionId));
|
|
29
|
+
if (Array.isArray(sessionArr) && sessionArr.includes(toolName)) return true;
|
|
30
|
+
const globalArr = await this.storage.database.get(this.buildKey(void 0));
|
|
31
|
+
const allowed = Array.isArray(globalArr) ? globalArr.includes(toolName) : false;
|
|
32
|
+
logger.debug(
|
|
33
|
+
`Checked allowed tool '${toolName}' in session '${sessionId ?? "global"}' \u2013 allowed=${allowed}`
|
|
34
|
+
);
|
|
35
|
+
return allowed;
|
|
36
|
+
}
|
|
37
|
+
async getAllowedTools(sessionId) {
|
|
38
|
+
const arr = await this.storage.database.get(this.buildKey(sessionId));
|
|
39
|
+
return new Set(Array.isArray(arr) ? arr : []);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
StorageAllowedToolsProvider
|
|
44
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
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 __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
|
+
var types_exports = {};
|
|
16
|
+
module.exports = __toCommonJS(types_exports);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for allowed tools storage (in-memory, DB, etc.)
|
|
3
|
+
*
|
|
4
|
+
* Multi-user support: For multi-tenancy, we can consider either:
|
|
5
|
+
* - Instantiating a provider per user (current pattern, recommended for most cases)
|
|
6
|
+
* - Or, add userId as a parameter to each method for batch/admin/multi-user operations:
|
|
7
|
+
* allowTool(toolName: string, userId: string): Promise<void>
|
|
8
|
+
* ...etc.
|
|
9
|
+
* - You can also add static/factory methods to create user-scoped providers, e.g.,
|
|
10
|
+
* AllowedToolsProvider.forUser(userId)
|
|
11
|
+
*
|
|
12
|
+
* AllowedToolsProvider supports both single-user and multi-user scenarios.
|
|
13
|
+
* - If `userId` is omitted, the implementation will use a default user (e.g., from getUserId()).
|
|
14
|
+
* - For multi-user/admin scenarios, always pass `userId` explicitly.
|
|
15
|
+
* - We can enforce this by having a separate env variable/feature-flag for multi-user and having
|
|
16
|
+
* strict check for the user id if the feature flag is set.
|
|
17
|
+
*/
|
|
18
|
+
interface IAllowedToolsProvider {
|
|
19
|
+
/**
|
|
20
|
+
* Persist an approval for a tool. If `sessionId` is provided the approval is
|
|
21
|
+
* scoped to that session. When omitted the approval is treated as global.
|
|
22
|
+
*/
|
|
23
|
+
allowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
24
|
+
/** Remove an approval. */
|
|
25
|
+
disallowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Check whether the given tool is currently allowed. If `sessionId` is
|
|
28
|
+
* provided the session-scoped list is checked first, then any global entry.
|
|
29
|
+
*/
|
|
30
|
+
isToolAllowed(toolName: string, sessionId?: string): Promise<boolean>;
|
|
31
|
+
/** Optional helper to introspect all approvals for debugging. */
|
|
32
|
+
getAllowedTools?(sessionId?: string): Promise<Set<string>>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export type { IAllowedToolsProvider };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for allowed tools storage (in-memory, DB, etc.)
|
|
3
|
+
*
|
|
4
|
+
* Multi-user support: For multi-tenancy, we can consider either:
|
|
5
|
+
* - Instantiating a provider per user (current pattern, recommended for most cases)
|
|
6
|
+
* - Or, add userId as a parameter to each method for batch/admin/multi-user operations:
|
|
7
|
+
* allowTool(toolName: string, userId: string): Promise<void>
|
|
8
|
+
* ...etc.
|
|
9
|
+
* - You can also add static/factory methods to create user-scoped providers, e.g.,
|
|
10
|
+
* AllowedToolsProvider.forUser(userId)
|
|
11
|
+
*
|
|
12
|
+
* AllowedToolsProvider supports both single-user and multi-user scenarios.
|
|
13
|
+
* - If `userId` is omitted, the implementation will use a default user (e.g., from getUserId()).
|
|
14
|
+
* - For multi-user/admin scenarios, always pass `userId` explicitly.
|
|
15
|
+
* - We can enforce this by having a separate env variable/feature-flag for multi-user and having
|
|
16
|
+
* strict check for the user id if the feature flag is set.
|
|
17
|
+
*/
|
|
18
|
+
interface IAllowedToolsProvider {
|
|
19
|
+
/**
|
|
20
|
+
* Persist an approval for a tool. If `sessionId` is provided the approval is
|
|
21
|
+
* scoped to that session. When omitted the approval is treated as global.
|
|
22
|
+
*/
|
|
23
|
+
allowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
24
|
+
/** Remove an approval. */
|
|
25
|
+
disallowTool(toolName: string, sessionId?: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Check whether the given tool is currently allowed. If `sessionId` is
|
|
28
|
+
* provided the session-scoped list is checked first, then any global entry.
|
|
29
|
+
*/
|
|
30
|
+
isToolAllowed(toolName: string, sessionId?: string): Promise<boolean>;
|
|
31
|
+
/** Optional helper to introspect all approvals for debugging. */
|
|
32
|
+
getAllowedTools?(sessionId?: string): Promise<Set<string>>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export type { IAllowedToolsProvider };
|
|
File without changes
|
|
@@ -0,0 +1,158 @@
|
|
|
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 event_based_confirmation_provider_exports = {};
|
|
20
|
+
__export(event_based_confirmation_provider_exports, {
|
|
21
|
+
EventBasedConfirmationProvider: () => EventBasedConfirmationProvider
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(event_based_confirmation_provider_exports);
|
|
24
|
+
var import_crypto = require("crypto");
|
|
25
|
+
var import_logger = require("../../logger/index.cjs");
|
|
26
|
+
var import_errors = require("../errors.js");
|
|
27
|
+
class EventBasedConfirmationProvider {
|
|
28
|
+
constructor(allowedToolsProvider, agentEventBus, options) {
|
|
29
|
+
this.allowedToolsProvider = allowedToolsProvider;
|
|
30
|
+
this.agentEventBus = agentEventBus;
|
|
31
|
+
this.confirmationTimeout = options.confirmationTimeout;
|
|
32
|
+
this.agentEventBus.on(
|
|
33
|
+
"dexto:toolConfirmationResponse",
|
|
34
|
+
this.handleConfirmationResponse.bind(this)
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
pendingConfirmations = /* @__PURE__ */ new Map();
|
|
38
|
+
confirmationTimeout;
|
|
39
|
+
agentEventBus;
|
|
40
|
+
async requestConfirmation(details) {
|
|
41
|
+
const isAllowed = await this.allowedToolsProvider.isToolAllowed(
|
|
42
|
+
details.toolName,
|
|
43
|
+
details.sessionId
|
|
44
|
+
);
|
|
45
|
+
if (isAllowed) {
|
|
46
|
+
import_logger.logger.info(
|
|
47
|
+
`Tool '${details.toolName}' already allowed for session '${details.sessionId ?? "global"}' \u2013 skipping confirmation.`
|
|
48
|
+
);
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
const executionId = (0, import_crypto.randomUUID)();
|
|
52
|
+
const event = {
|
|
53
|
+
toolName: details.toolName,
|
|
54
|
+
args: details.args,
|
|
55
|
+
...details.description && { description: details.description },
|
|
56
|
+
executionId,
|
|
57
|
+
timestamp: /* @__PURE__ */ new Date(),
|
|
58
|
+
...details.sessionId && { sessionId: details.sessionId }
|
|
59
|
+
// session context
|
|
60
|
+
};
|
|
61
|
+
import_logger.logger.info(
|
|
62
|
+
`Tool confirmation requested for ${details.toolName}, executionId: ${executionId}, sessionId: ${details.sessionId}`
|
|
63
|
+
);
|
|
64
|
+
return new Promise((resolve, reject) => {
|
|
65
|
+
const timeout = setTimeout(() => {
|
|
66
|
+
const timeoutResponse = {
|
|
67
|
+
executionId,
|
|
68
|
+
approved: false,
|
|
69
|
+
rememberChoice: false,
|
|
70
|
+
...details.sessionId && { sessionId: details.sessionId }
|
|
71
|
+
};
|
|
72
|
+
import_logger.logger.warn(
|
|
73
|
+
`Tool confirmation timeout for ${details.toolName}, executionId: ${executionId}`
|
|
74
|
+
);
|
|
75
|
+
this.pendingConfirmations.delete(executionId);
|
|
76
|
+
this.agentEventBus.emit("dexto:toolConfirmationResponse", timeoutResponse);
|
|
77
|
+
reject(
|
|
78
|
+
import_errors.ToolError.confirmationTimeout(
|
|
79
|
+
details.toolName,
|
|
80
|
+
this.confirmationTimeout,
|
|
81
|
+
details.sessionId
|
|
82
|
+
)
|
|
83
|
+
);
|
|
84
|
+
}, this.confirmationTimeout);
|
|
85
|
+
this.pendingConfirmations.set(executionId, {
|
|
86
|
+
resolve: (approved) => {
|
|
87
|
+
clearTimeout(timeout);
|
|
88
|
+
this.pendingConfirmations.delete(executionId);
|
|
89
|
+
resolve(approved);
|
|
90
|
+
},
|
|
91
|
+
reject: (error) => {
|
|
92
|
+
clearTimeout(timeout);
|
|
93
|
+
this.pendingConfirmations.delete(executionId);
|
|
94
|
+
reject(error);
|
|
95
|
+
},
|
|
96
|
+
toolName: details.toolName,
|
|
97
|
+
...details.sessionId && { sessionId: details.sessionId }
|
|
98
|
+
});
|
|
99
|
+
this.agentEventBus.emit("dexto:toolConfirmationRequest", event);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Handle confirmation response from external handlers
|
|
104
|
+
*/
|
|
105
|
+
async handleConfirmationResponse(response) {
|
|
106
|
+
const pending = this.pendingConfirmations.get(response.executionId);
|
|
107
|
+
if (!pending) {
|
|
108
|
+
import_logger.logger.warn(
|
|
109
|
+
`Received toolConfirmationResponse for unknown executionId ${response.executionId}`
|
|
110
|
+
);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this.pendingConfirmations.delete(response.executionId);
|
|
114
|
+
if (response.approved && response.rememberChoice) {
|
|
115
|
+
await this.allowedToolsProvider.allowTool(pending.toolName, response.sessionId);
|
|
116
|
+
import_logger.logger.info(
|
|
117
|
+
`Tool '${pending.toolName}' added to allowed tools for session '${response.sessionId ?? "global"}' (remember choice selected)`
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
import_logger.logger.info(
|
|
121
|
+
`Tool confirmation ${response.approved ? "approved" : "denied"} for ${pending.toolName}, executionId: ${response.executionId}, sessionId: ${response.sessionId ?? "global"}`
|
|
122
|
+
);
|
|
123
|
+
pending.resolve(response.approved);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get list of pending confirmation requests
|
|
127
|
+
*/
|
|
128
|
+
getPendingConfirmations() {
|
|
129
|
+
return Array.from(this.pendingConfirmations.keys());
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Cancel a pending confirmation request
|
|
133
|
+
*/
|
|
134
|
+
cancelConfirmation(executionId) {
|
|
135
|
+
const pending = this.pendingConfirmations.get(executionId);
|
|
136
|
+
if (pending) {
|
|
137
|
+
pending.reject(
|
|
138
|
+
import_errors.ToolError.confirmationCancelled(pending.toolName, "individual request cancelled")
|
|
139
|
+
);
|
|
140
|
+
this.pendingConfirmations.delete(executionId);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Cancel all pending confirmation requests
|
|
145
|
+
*/
|
|
146
|
+
cancelAllConfirmations() {
|
|
147
|
+
for (const [_executionId, pending] of this.pendingConfirmations) {
|
|
148
|
+
pending.reject(
|
|
149
|
+
import_errors.ToolError.confirmationCancelled(pending.toolName, "all requests cancelled")
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
this.pendingConfirmations.clear();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
156
|
+
0 && (module.exports = {
|
|
157
|
+
EventBasedConfirmationProvider
|
|
158
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ToolConfirmationProvider, ToolExecutionDetails, ToolConfirmationResponse } from './types.cjs';
|
|
2
|
+
import { IAllowedToolsProvider } from './allowed-tools-provider/types.cjs';
|
|
3
|
+
import { AgentEventBus } from '../../events/index.cjs';
|
|
4
|
+
import 'events';
|
|
5
|
+
import '../../llm/types.cjs';
|
|
6
|
+
import '../../agent/schemas.cjs';
|
|
7
|
+
import 'zod';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Event-based tool confirmation provider that uses the official AgentEventBus
|
|
11
|
+
* to emit events for confirmation requests and wait for responses.
|
|
12
|
+
* This decouples the core logic from UI-specific implementations.
|
|
13
|
+
*/
|
|
14
|
+
declare class EventBasedConfirmationProvider implements ToolConfirmationProvider {
|
|
15
|
+
allowedToolsProvider: IAllowedToolsProvider;
|
|
16
|
+
private pendingConfirmations;
|
|
17
|
+
private confirmationTimeout;
|
|
18
|
+
private agentEventBus;
|
|
19
|
+
constructor(allowedToolsProvider: IAllowedToolsProvider, agentEventBus: AgentEventBus, options: {
|
|
20
|
+
confirmationTimeout: number;
|
|
21
|
+
});
|
|
22
|
+
requestConfirmation(details: ToolExecutionDetails): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Handle confirmation response from external handlers
|
|
25
|
+
*/
|
|
26
|
+
handleConfirmationResponse(response: ToolConfirmationResponse): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Get list of pending confirmation requests
|
|
29
|
+
*/
|
|
30
|
+
getPendingConfirmations(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Cancel a pending confirmation request
|
|
33
|
+
*/
|
|
34
|
+
cancelConfirmation(executionId: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Cancel all pending confirmation requests
|
|
37
|
+
*/
|
|
38
|
+
cancelAllConfirmations(): void;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { EventBasedConfirmationProvider };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ToolConfirmationProvider, ToolExecutionDetails, ToolConfirmationResponse } from './types.js';
|
|
2
|
+
import { IAllowedToolsProvider } from './allowed-tools-provider/types.js';
|
|
3
|
+
import { AgentEventBus } from '../../events/index.js';
|
|
4
|
+
import 'events';
|
|
5
|
+
import '../../llm/types.js';
|
|
6
|
+
import '../../agent/schemas.js';
|
|
7
|
+
import 'zod';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Event-based tool confirmation provider that uses the official AgentEventBus
|
|
11
|
+
* to emit events for confirmation requests and wait for responses.
|
|
12
|
+
* This decouples the core logic from UI-specific implementations.
|
|
13
|
+
*/
|
|
14
|
+
declare class EventBasedConfirmationProvider implements ToolConfirmationProvider {
|
|
15
|
+
allowedToolsProvider: IAllowedToolsProvider;
|
|
16
|
+
private pendingConfirmations;
|
|
17
|
+
private confirmationTimeout;
|
|
18
|
+
private agentEventBus;
|
|
19
|
+
constructor(allowedToolsProvider: IAllowedToolsProvider, agentEventBus: AgentEventBus, options: {
|
|
20
|
+
confirmationTimeout: number;
|
|
21
|
+
});
|
|
22
|
+
requestConfirmation(details: ToolExecutionDetails): Promise<boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Handle confirmation response from external handlers
|
|
25
|
+
*/
|
|
26
|
+
handleConfirmationResponse(response: ToolConfirmationResponse): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Get list of pending confirmation requests
|
|
29
|
+
*/
|
|
30
|
+
getPendingConfirmations(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Cancel a pending confirmation request
|
|
33
|
+
*/
|
|
34
|
+
cancelConfirmation(executionId: string): void;
|
|
35
|
+
/**
|
|
36
|
+
* Cancel all pending confirmation requests
|
|
37
|
+
*/
|
|
38
|
+
cancelAllConfirmations(): void;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { EventBasedConfirmationProvider };
|