@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,284 @@
|
|
|
1
|
+
import { ContextManager } from '../context/manager.cjs';
|
|
2
|
+
import { InternalMessage } from '../context/types.cjs';
|
|
3
|
+
import { ILLMService } from '../llm/services/types.cjs';
|
|
4
|
+
import { PromptManager } from '../systemPrompt/manager.cjs';
|
|
5
|
+
import { ToolManager } from '../tools/tool-manager.cjs';
|
|
6
|
+
import { ValidatedLLMConfig } from '../llm/schemas.cjs';
|
|
7
|
+
import { AgentStateManager } from '../agent/state-manager.cjs';
|
|
8
|
+
import { StorageBackends } from '../storage/backend/types.cjs';
|
|
9
|
+
import { SessionEventBus, AgentEventBus } from '../events/index.cjs';
|
|
10
|
+
import '../llm/formatters/types.cjs';
|
|
11
|
+
import '../llm/types.cjs';
|
|
12
|
+
import '../llm/tokenizer/types.cjs';
|
|
13
|
+
import '../context/compression/types.cjs';
|
|
14
|
+
import '../systemPrompt/types.cjs';
|
|
15
|
+
import '../mcp/manager.cjs';
|
|
16
|
+
import '../mcp/schemas.cjs';
|
|
17
|
+
import 'zod';
|
|
18
|
+
import '../mcp/types.cjs';
|
|
19
|
+
import '@modelcontextprotocol/sdk/client/index.js';
|
|
20
|
+
import '../tools/types.cjs';
|
|
21
|
+
import 'json-schema';
|
|
22
|
+
import '@modelcontextprotocol/sdk/types.js';
|
|
23
|
+
import './history/types.cjs';
|
|
24
|
+
import 'ai';
|
|
25
|
+
import '../systemPrompt/schemas.cjs';
|
|
26
|
+
import '../tools/internal-tools/registry.cjs';
|
|
27
|
+
import '../search/search-service.cjs';
|
|
28
|
+
import '../storage/backend/database-backend.cjs';
|
|
29
|
+
import '../search/types.cjs';
|
|
30
|
+
import '../tools/schemas.cjs';
|
|
31
|
+
import '../tools/confirmation/types.cjs';
|
|
32
|
+
import '../tools/confirmation/allowed-tools-provider/types.cjs';
|
|
33
|
+
import '../agent/schemas.cjs';
|
|
34
|
+
import '../storage/backend/cache-backend.cjs';
|
|
35
|
+
import '../storage/schemas.cjs';
|
|
36
|
+
import 'events';
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Represents an isolated conversation session within a Dexto agent.
|
|
40
|
+
*
|
|
41
|
+
* ChatSession provides session-level isolation for conversations, allowing multiple
|
|
42
|
+
* independent chat contexts to exist within a single DextoAgent instance. Each session
|
|
43
|
+
* maintains its own conversation history, message management, and event handling.
|
|
44
|
+
*
|
|
45
|
+
* ## Architecture
|
|
46
|
+
*
|
|
47
|
+
* The ChatSession acts as a lightweight wrapper around core Dexto services, providing
|
|
48
|
+
* session-specific instances of:
|
|
49
|
+
* - **ContextManager**: Handles conversation history and message formatting
|
|
50
|
+
* - **LLMService**: Manages AI model interactions and tool execution
|
|
51
|
+
* - **TypedEventEmitter**: Provides session-scoped event handling
|
|
52
|
+
*
|
|
53
|
+
* ## Event Handling
|
|
54
|
+
*
|
|
55
|
+
* Each session has its own event bus that emits standard Dexto events:
|
|
56
|
+
* - `llmservice:*` events (thinking, toolCall, response, etc.)
|
|
57
|
+
*
|
|
58
|
+
* Session events are forwarded to the global agent event bus with session prefixes.
|
|
59
|
+
*
|
|
60
|
+
* ## Usage Example
|
|
61
|
+
*
|
|
62
|
+
* ```typescript
|
|
63
|
+
* // Create a new session
|
|
64
|
+
* const session = agent.createSession('user-123');
|
|
65
|
+
*
|
|
66
|
+
* // Listen for session events
|
|
67
|
+
* session.eventBus.on('llmservice:response', (payload) => {
|
|
68
|
+
* console.log('Session response:', payload.content);
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* // Run a conversation turn
|
|
72
|
+
* const response = await session.run('Hello, how are you?');
|
|
73
|
+
*
|
|
74
|
+
* // Reset session history
|
|
75
|
+
* await session.reset();
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @see {@link SessionManager} for session lifecycle management
|
|
79
|
+
* @see {@link ContextManager} for conversation history management
|
|
80
|
+
* @see {@link ILLMService} for AI model interaction interface
|
|
81
|
+
*/
|
|
82
|
+
declare class ChatSession {
|
|
83
|
+
private services;
|
|
84
|
+
readonly id: string;
|
|
85
|
+
/**
|
|
86
|
+
* Session-scoped event emitter for handling conversation events.
|
|
87
|
+
*
|
|
88
|
+
* This is a session-local SessionEventBus instance that forwards events
|
|
89
|
+
* to the global agent event bus.
|
|
90
|
+
*
|
|
91
|
+
* Events emitted include:
|
|
92
|
+
* - `llmservice:thinking` - AI model is processing
|
|
93
|
+
* - `llmservice:toolCall` - Tool execution requested
|
|
94
|
+
* - `llmservice:response` - Final response generated
|
|
95
|
+
*/
|
|
96
|
+
readonly eventBus: SessionEventBus;
|
|
97
|
+
/**
|
|
98
|
+
* History provider that persists conversation messages.
|
|
99
|
+
* Shared across LLM switches to maintain conversation continuity.
|
|
100
|
+
*/
|
|
101
|
+
private historyProvider;
|
|
102
|
+
/**
|
|
103
|
+
* Handles AI model interactions, tool execution, and response generation for this session.
|
|
104
|
+
*
|
|
105
|
+
* Each session has its own LLMService instance that uses the session's
|
|
106
|
+
* ContextManager and event bus.
|
|
107
|
+
*/
|
|
108
|
+
private llmService;
|
|
109
|
+
/**
|
|
110
|
+
* Map of event forwarder functions for cleanup.
|
|
111
|
+
* Stores the bound functions so they can be removed from the event bus.
|
|
112
|
+
*/
|
|
113
|
+
private forwarders;
|
|
114
|
+
/**
|
|
115
|
+
* AbortController for the currently running turn, if any.
|
|
116
|
+
* Calling cancel() aborts the in-flight LLM request and tool execution checks.
|
|
117
|
+
*/
|
|
118
|
+
private currentRunController;
|
|
119
|
+
/**
|
|
120
|
+
* Creates a new ChatSession instance.
|
|
121
|
+
*
|
|
122
|
+
* Each session creates its own isolated services:
|
|
123
|
+
* - ConversationHistoryProvider (with session-specific storage, shared across LLM switches)
|
|
124
|
+
* - LLMService (creates its own properly-typed ContextManager internally)
|
|
125
|
+
* - SessionEventBus (session-local event handling with forwarding)
|
|
126
|
+
*
|
|
127
|
+
* @param services - The shared services from the agent (state manager, prompt, client managers, etc.)
|
|
128
|
+
* @param id - Unique identifier for this session
|
|
129
|
+
*/
|
|
130
|
+
constructor(services: {
|
|
131
|
+
stateManager: AgentStateManager;
|
|
132
|
+
promptManager: PromptManager;
|
|
133
|
+
toolManager: ToolManager;
|
|
134
|
+
agentEventBus: AgentEventBus;
|
|
135
|
+
storage: StorageBackends;
|
|
136
|
+
}, id: string);
|
|
137
|
+
/**
|
|
138
|
+
* Initialize the session services asynchronously.
|
|
139
|
+
* This must be called after construction to set up the storage-backed services.
|
|
140
|
+
*/
|
|
141
|
+
init(): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Sets up event forwarding from session bus to global agent bus.
|
|
144
|
+
*
|
|
145
|
+
* All session events are automatically forwarded to the global bus with the same
|
|
146
|
+
* event names, but with session context added to the payload. This allows the app
|
|
147
|
+
* layer to continue listening to standard events while having access to session
|
|
148
|
+
* information when needed.
|
|
149
|
+
*/
|
|
150
|
+
private setupEventForwarding;
|
|
151
|
+
/**
|
|
152
|
+
* Initializes session-specific services.
|
|
153
|
+
*/
|
|
154
|
+
private initializeServices;
|
|
155
|
+
/**
|
|
156
|
+
* Processes user input through the session's LLM service and returns the response.
|
|
157
|
+
*
|
|
158
|
+
* This method:
|
|
159
|
+
* 1. Takes user input (text, optionally with image or file data)
|
|
160
|
+
* 2. Passes it to the LLM service for processing
|
|
161
|
+
* 3. Returns the AI's response text
|
|
162
|
+
*
|
|
163
|
+
* The method handles both text-only and multimodal input (text + images/files).
|
|
164
|
+
* Tool calls and conversation management are handled internally by the LLM service.
|
|
165
|
+
*
|
|
166
|
+
* @param input - The user's text input
|
|
167
|
+
* @param imageDataInput - Optional image data for multimodal input
|
|
168
|
+
* @param fileDataInput - Optional file data for file input
|
|
169
|
+
* @param stream - Optional flag to enable streaming responses
|
|
170
|
+
* @returns Promise that resolves to the AI's response text
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* const response = await session.run('What is the weather like today?');
|
|
175
|
+
* console.log(response); // "I'll check the weather for you..."
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
run(input: string, imageDataInput?: {
|
|
179
|
+
image: string;
|
|
180
|
+
mimeType: string;
|
|
181
|
+
}, fileDataInput?: {
|
|
182
|
+
data: string;
|
|
183
|
+
mimeType: string;
|
|
184
|
+
filename?: string;
|
|
185
|
+
}, stream?: boolean): Promise<string>;
|
|
186
|
+
/**
|
|
187
|
+
* Retrieves the complete conversation history for this session.
|
|
188
|
+
*
|
|
189
|
+
* Returns a read-only copy of all messages in the conversation, including:
|
|
190
|
+
* - User messages
|
|
191
|
+
* - Assistant responses
|
|
192
|
+
* - Tool call results
|
|
193
|
+
* - System messages
|
|
194
|
+
*
|
|
195
|
+
* The history is formatted as internal messages and may include multimodal
|
|
196
|
+
* content (text and images).
|
|
197
|
+
*
|
|
198
|
+
* @returns Promise that resolves to a read-only array of conversation messages in chronological order
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* const history = await session.getHistory();
|
|
203
|
+
* console.log(`Conversation has ${history.length} messages`);
|
|
204
|
+
* history.forEach(msg => console.log(`${msg.role}: ${msg.content}`));
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
getHistory(): Promise<InternalMessage[]>;
|
|
208
|
+
/**
|
|
209
|
+
* Reset the conversation history for this session.
|
|
210
|
+
*
|
|
211
|
+
* This method:
|
|
212
|
+
* 1. Clears all messages from the session's conversation history
|
|
213
|
+
* 2. Removes persisted history from the storage provider
|
|
214
|
+
* 3. Emits a `dexto:conversationReset` event with session context
|
|
215
|
+
*
|
|
216
|
+
* The system prompt and session configuration remain unchanged.
|
|
217
|
+
* Only the conversation messages are cleared.
|
|
218
|
+
*
|
|
219
|
+
* @returns Promise that resolves when the reset is complete
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```typescript
|
|
223
|
+
* await session.reset();
|
|
224
|
+
* console.log('Conversation history cleared');
|
|
225
|
+
* ```
|
|
226
|
+
*
|
|
227
|
+
* @see {@link ContextManager.resetConversation} for the underlying implementation
|
|
228
|
+
*/
|
|
229
|
+
reset(): Promise<void>;
|
|
230
|
+
/**
|
|
231
|
+
* Gets the session's ContextManager instance.
|
|
232
|
+
*
|
|
233
|
+
* @returns The ContextManager for this session
|
|
234
|
+
*/
|
|
235
|
+
getContextManager(): ContextManager<unknown>;
|
|
236
|
+
/**
|
|
237
|
+
* Gets the session's LLMService instance.
|
|
238
|
+
*
|
|
239
|
+
* @returns The LLMService for this session
|
|
240
|
+
*/
|
|
241
|
+
getLLMService(): ILLMService;
|
|
242
|
+
/**
|
|
243
|
+
* Switches the LLM service for this session while preserving conversation history.
|
|
244
|
+
*
|
|
245
|
+
* This method creates a new LLM service with the specified configuration and router,
|
|
246
|
+
* while maintaining the existing ContextManager and conversation history. This allows
|
|
247
|
+
* users to change AI models mid-conversation without losing context.
|
|
248
|
+
*
|
|
249
|
+
* @param newLLMConfig The new LLM configuration to use (includes router)
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```typescript
|
|
253
|
+
* // Switch from Claude to GPT-4 while keeping conversation history
|
|
254
|
+
* session.switchLLM({
|
|
255
|
+
* provider: 'openai',
|
|
256
|
+
* model: 'gpt-4',
|
|
257
|
+
* apiKey: process.env.OPENAI_API_KEY,
|
|
258
|
+
* router: 'in-built'
|
|
259
|
+
* });
|
|
260
|
+
* ```
|
|
261
|
+
*/
|
|
262
|
+
switchLLM(newLLMConfig: ValidatedLLMConfig): Promise<void>;
|
|
263
|
+
/**
|
|
264
|
+
* Cleanup the session and its in-memory resources.
|
|
265
|
+
* This method should be called when the session is being removed from memory.
|
|
266
|
+
* Chat history is preserved in storage and can be restored later.
|
|
267
|
+
*/
|
|
268
|
+
cleanup(): Promise<void>;
|
|
269
|
+
/**
|
|
270
|
+
* Cleans up listeners and other resources to prevent memory leaks.
|
|
271
|
+
*
|
|
272
|
+
* This method should be called when the session is being discarded to ensure
|
|
273
|
+
* that event listeners are properly removed from the global event bus.
|
|
274
|
+
* Without this cleanup, sessions would remain in memory due to listener references.
|
|
275
|
+
*/
|
|
276
|
+
dispose(): void;
|
|
277
|
+
/**
|
|
278
|
+
* Cancel the currently running turn for this session, if any.
|
|
279
|
+
* Returns true if a run was in progress and was signaled to abort.
|
|
280
|
+
*/
|
|
281
|
+
cancel(): boolean;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export { ChatSession };
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { ContextManager } from '../context/manager.js';
|
|
2
|
+
import { InternalMessage } from '../context/types.js';
|
|
3
|
+
import { ILLMService } from '../llm/services/types.js';
|
|
4
|
+
import { PromptManager } from '../systemPrompt/manager.js';
|
|
5
|
+
import { ToolManager } from '../tools/tool-manager.js';
|
|
6
|
+
import { ValidatedLLMConfig } from '../llm/schemas.js';
|
|
7
|
+
import { AgentStateManager } from '../agent/state-manager.js';
|
|
8
|
+
import { StorageBackends } from '../storage/backend/types.js';
|
|
9
|
+
import { SessionEventBus, AgentEventBus } from '../events/index.js';
|
|
10
|
+
import '../llm/formatters/types.js';
|
|
11
|
+
import '../llm/types.js';
|
|
12
|
+
import '../llm/tokenizer/types.js';
|
|
13
|
+
import '../context/compression/types.js';
|
|
14
|
+
import '../systemPrompt/types.js';
|
|
15
|
+
import '../mcp/manager.js';
|
|
16
|
+
import '../mcp/schemas.js';
|
|
17
|
+
import 'zod';
|
|
18
|
+
import '../mcp/types.js';
|
|
19
|
+
import '@modelcontextprotocol/sdk/client/index.js';
|
|
20
|
+
import '../tools/types.js';
|
|
21
|
+
import 'json-schema';
|
|
22
|
+
import '@modelcontextprotocol/sdk/types.js';
|
|
23
|
+
import './history/types.js';
|
|
24
|
+
import 'ai';
|
|
25
|
+
import '../systemPrompt/schemas.js';
|
|
26
|
+
import '../tools/internal-tools/registry.js';
|
|
27
|
+
import '../search/search-service.js';
|
|
28
|
+
import '../storage/backend/database-backend.js';
|
|
29
|
+
import '../search/types.js';
|
|
30
|
+
import '../tools/schemas.js';
|
|
31
|
+
import '../tools/confirmation/types.js';
|
|
32
|
+
import '../tools/confirmation/allowed-tools-provider/types.js';
|
|
33
|
+
import '../agent/schemas.js';
|
|
34
|
+
import '../storage/backend/cache-backend.js';
|
|
35
|
+
import '../storage/schemas.js';
|
|
36
|
+
import 'events';
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Represents an isolated conversation session within a Dexto agent.
|
|
40
|
+
*
|
|
41
|
+
* ChatSession provides session-level isolation for conversations, allowing multiple
|
|
42
|
+
* independent chat contexts to exist within a single DextoAgent instance. Each session
|
|
43
|
+
* maintains its own conversation history, message management, and event handling.
|
|
44
|
+
*
|
|
45
|
+
* ## Architecture
|
|
46
|
+
*
|
|
47
|
+
* The ChatSession acts as a lightweight wrapper around core Dexto services, providing
|
|
48
|
+
* session-specific instances of:
|
|
49
|
+
* - **ContextManager**: Handles conversation history and message formatting
|
|
50
|
+
* - **LLMService**: Manages AI model interactions and tool execution
|
|
51
|
+
* - **TypedEventEmitter**: Provides session-scoped event handling
|
|
52
|
+
*
|
|
53
|
+
* ## Event Handling
|
|
54
|
+
*
|
|
55
|
+
* Each session has its own event bus that emits standard Dexto events:
|
|
56
|
+
* - `llmservice:*` events (thinking, toolCall, response, etc.)
|
|
57
|
+
*
|
|
58
|
+
* Session events are forwarded to the global agent event bus with session prefixes.
|
|
59
|
+
*
|
|
60
|
+
* ## Usage Example
|
|
61
|
+
*
|
|
62
|
+
* ```typescript
|
|
63
|
+
* // Create a new session
|
|
64
|
+
* const session = agent.createSession('user-123');
|
|
65
|
+
*
|
|
66
|
+
* // Listen for session events
|
|
67
|
+
* session.eventBus.on('llmservice:response', (payload) => {
|
|
68
|
+
* console.log('Session response:', payload.content);
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* // Run a conversation turn
|
|
72
|
+
* const response = await session.run('Hello, how are you?');
|
|
73
|
+
*
|
|
74
|
+
* // Reset session history
|
|
75
|
+
* await session.reset();
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @see {@link SessionManager} for session lifecycle management
|
|
79
|
+
* @see {@link ContextManager} for conversation history management
|
|
80
|
+
* @see {@link ILLMService} for AI model interaction interface
|
|
81
|
+
*/
|
|
82
|
+
declare class ChatSession {
|
|
83
|
+
private services;
|
|
84
|
+
readonly id: string;
|
|
85
|
+
/**
|
|
86
|
+
* Session-scoped event emitter for handling conversation events.
|
|
87
|
+
*
|
|
88
|
+
* This is a session-local SessionEventBus instance that forwards events
|
|
89
|
+
* to the global agent event bus.
|
|
90
|
+
*
|
|
91
|
+
* Events emitted include:
|
|
92
|
+
* - `llmservice:thinking` - AI model is processing
|
|
93
|
+
* - `llmservice:toolCall` - Tool execution requested
|
|
94
|
+
* - `llmservice:response` - Final response generated
|
|
95
|
+
*/
|
|
96
|
+
readonly eventBus: SessionEventBus;
|
|
97
|
+
/**
|
|
98
|
+
* History provider that persists conversation messages.
|
|
99
|
+
* Shared across LLM switches to maintain conversation continuity.
|
|
100
|
+
*/
|
|
101
|
+
private historyProvider;
|
|
102
|
+
/**
|
|
103
|
+
* Handles AI model interactions, tool execution, and response generation for this session.
|
|
104
|
+
*
|
|
105
|
+
* Each session has its own LLMService instance that uses the session's
|
|
106
|
+
* ContextManager and event bus.
|
|
107
|
+
*/
|
|
108
|
+
private llmService;
|
|
109
|
+
/**
|
|
110
|
+
* Map of event forwarder functions for cleanup.
|
|
111
|
+
* Stores the bound functions so they can be removed from the event bus.
|
|
112
|
+
*/
|
|
113
|
+
private forwarders;
|
|
114
|
+
/**
|
|
115
|
+
* AbortController for the currently running turn, if any.
|
|
116
|
+
* Calling cancel() aborts the in-flight LLM request and tool execution checks.
|
|
117
|
+
*/
|
|
118
|
+
private currentRunController;
|
|
119
|
+
/**
|
|
120
|
+
* Creates a new ChatSession instance.
|
|
121
|
+
*
|
|
122
|
+
* Each session creates its own isolated services:
|
|
123
|
+
* - ConversationHistoryProvider (with session-specific storage, shared across LLM switches)
|
|
124
|
+
* - LLMService (creates its own properly-typed ContextManager internally)
|
|
125
|
+
* - SessionEventBus (session-local event handling with forwarding)
|
|
126
|
+
*
|
|
127
|
+
* @param services - The shared services from the agent (state manager, prompt, client managers, etc.)
|
|
128
|
+
* @param id - Unique identifier for this session
|
|
129
|
+
*/
|
|
130
|
+
constructor(services: {
|
|
131
|
+
stateManager: AgentStateManager;
|
|
132
|
+
promptManager: PromptManager;
|
|
133
|
+
toolManager: ToolManager;
|
|
134
|
+
agentEventBus: AgentEventBus;
|
|
135
|
+
storage: StorageBackends;
|
|
136
|
+
}, id: string);
|
|
137
|
+
/**
|
|
138
|
+
* Initialize the session services asynchronously.
|
|
139
|
+
* This must be called after construction to set up the storage-backed services.
|
|
140
|
+
*/
|
|
141
|
+
init(): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Sets up event forwarding from session bus to global agent bus.
|
|
144
|
+
*
|
|
145
|
+
* All session events are automatically forwarded to the global bus with the same
|
|
146
|
+
* event names, but with session context added to the payload. This allows the app
|
|
147
|
+
* layer to continue listening to standard events while having access to session
|
|
148
|
+
* information when needed.
|
|
149
|
+
*/
|
|
150
|
+
private setupEventForwarding;
|
|
151
|
+
/**
|
|
152
|
+
* Initializes session-specific services.
|
|
153
|
+
*/
|
|
154
|
+
private initializeServices;
|
|
155
|
+
/**
|
|
156
|
+
* Processes user input through the session's LLM service and returns the response.
|
|
157
|
+
*
|
|
158
|
+
* This method:
|
|
159
|
+
* 1. Takes user input (text, optionally with image or file data)
|
|
160
|
+
* 2. Passes it to the LLM service for processing
|
|
161
|
+
* 3. Returns the AI's response text
|
|
162
|
+
*
|
|
163
|
+
* The method handles both text-only and multimodal input (text + images/files).
|
|
164
|
+
* Tool calls and conversation management are handled internally by the LLM service.
|
|
165
|
+
*
|
|
166
|
+
* @param input - The user's text input
|
|
167
|
+
* @param imageDataInput - Optional image data for multimodal input
|
|
168
|
+
* @param fileDataInput - Optional file data for file input
|
|
169
|
+
* @param stream - Optional flag to enable streaming responses
|
|
170
|
+
* @returns Promise that resolves to the AI's response text
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* const response = await session.run('What is the weather like today?');
|
|
175
|
+
* console.log(response); // "I'll check the weather for you..."
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
run(input: string, imageDataInput?: {
|
|
179
|
+
image: string;
|
|
180
|
+
mimeType: string;
|
|
181
|
+
}, fileDataInput?: {
|
|
182
|
+
data: string;
|
|
183
|
+
mimeType: string;
|
|
184
|
+
filename?: string;
|
|
185
|
+
}, stream?: boolean): Promise<string>;
|
|
186
|
+
/**
|
|
187
|
+
* Retrieves the complete conversation history for this session.
|
|
188
|
+
*
|
|
189
|
+
* Returns a read-only copy of all messages in the conversation, including:
|
|
190
|
+
* - User messages
|
|
191
|
+
* - Assistant responses
|
|
192
|
+
* - Tool call results
|
|
193
|
+
* - System messages
|
|
194
|
+
*
|
|
195
|
+
* The history is formatted as internal messages and may include multimodal
|
|
196
|
+
* content (text and images).
|
|
197
|
+
*
|
|
198
|
+
* @returns Promise that resolves to a read-only array of conversation messages in chronological order
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* const history = await session.getHistory();
|
|
203
|
+
* console.log(`Conversation has ${history.length} messages`);
|
|
204
|
+
* history.forEach(msg => console.log(`${msg.role}: ${msg.content}`));
|
|
205
|
+
* ```
|
|
206
|
+
*/
|
|
207
|
+
getHistory(): Promise<InternalMessage[]>;
|
|
208
|
+
/**
|
|
209
|
+
* Reset the conversation history for this session.
|
|
210
|
+
*
|
|
211
|
+
* This method:
|
|
212
|
+
* 1. Clears all messages from the session's conversation history
|
|
213
|
+
* 2. Removes persisted history from the storage provider
|
|
214
|
+
* 3. Emits a `dexto:conversationReset` event with session context
|
|
215
|
+
*
|
|
216
|
+
* The system prompt and session configuration remain unchanged.
|
|
217
|
+
* Only the conversation messages are cleared.
|
|
218
|
+
*
|
|
219
|
+
* @returns Promise that resolves when the reset is complete
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* ```typescript
|
|
223
|
+
* await session.reset();
|
|
224
|
+
* console.log('Conversation history cleared');
|
|
225
|
+
* ```
|
|
226
|
+
*
|
|
227
|
+
* @see {@link ContextManager.resetConversation} for the underlying implementation
|
|
228
|
+
*/
|
|
229
|
+
reset(): Promise<void>;
|
|
230
|
+
/**
|
|
231
|
+
* Gets the session's ContextManager instance.
|
|
232
|
+
*
|
|
233
|
+
* @returns The ContextManager for this session
|
|
234
|
+
*/
|
|
235
|
+
getContextManager(): ContextManager<unknown>;
|
|
236
|
+
/**
|
|
237
|
+
* Gets the session's LLMService instance.
|
|
238
|
+
*
|
|
239
|
+
* @returns The LLMService for this session
|
|
240
|
+
*/
|
|
241
|
+
getLLMService(): ILLMService;
|
|
242
|
+
/**
|
|
243
|
+
* Switches the LLM service for this session while preserving conversation history.
|
|
244
|
+
*
|
|
245
|
+
* This method creates a new LLM service with the specified configuration and router,
|
|
246
|
+
* while maintaining the existing ContextManager and conversation history. This allows
|
|
247
|
+
* users to change AI models mid-conversation without losing context.
|
|
248
|
+
*
|
|
249
|
+
* @param newLLMConfig The new LLM configuration to use (includes router)
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```typescript
|
|
253
|
+
* // Switch from Claude to GPT-4 while keeping conversation history
|
|
254
|
+
* session.switchLLM({
|
|
255
|
+
* provider: 'openai',
|
|
256
|
+
* model: 'gpt-4',
|
|
257
|
+
* apiKey: process.env.OPENAI_API_KEY,
|
|
258
|
+
* router: 'in-built'
|
|
259
|
+
* });
|
|
260
|
+
* ```
|
|
261
|
+
*/
|
|
262
|
+
switchLLM(newLLMConfig: ValidatedLLMConfig): Promise<void>;
|
|
263
|
+
/**
|
|
264
|
+
* Cleanup the session and its in-memory resources.
|
|
265
|
+
* This method should be called when the session is being removed from memory.
|
|
266
|
+
* Chat history is preserved in storage and can be restored later.
|
|
267
|
+
*/
|
|
268
|
+
cleanup(): Promise<void>;
|
|
269
|
+
/**
|
|
270
|
+
* Cleans up listeners and other resources to prevent memory leaks.
|
|
271
|
+
*
|
|
272
|
+
* This method should be called when the session is being discarded to ensure
|
|
273
|
+
* that event listeners are properly removed from the global event bus.
|
|
274
|
+
* Without this cleanup, sessions would remain in memory due to listener references.
|
|
275
|
+
*/
|
|
276
|
+
dispose(): void;
|
|
277
|
+
/**
|
|
278
|
+
* Cancel the currently running turn for this session, if any.
|
|
279
|
+
* Returns true if a run was in progress and was signaled to abort.
|
|
280
|
+
*/
|
|
281
|
+
cancel(): boolean;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export { ChatSession };
|