@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,333 @@
|
|
|
1
|
+
import { createDatabaseHistoryProvider } from "./history/factory.js";
|
|
2
|
+
import { createLLMService } from "../llm/services/factory.js";
|
|
3
|
+
import {
|
|
4
|
+
SessionEventBus,
|
|
5
|
+
SessionEventNames
|
|
6
|
+
} from "../events/index.js";
|
|
7
|
+
import { logger } from "../logger/index.js";
|
|
8
|
+
class ChatSession {
|
|
9
|
+
/**
|
|
10
|
+
* Creates a new ChatSession instance.
|
|
11
|
+
*
|
|
12
|
+
* Each session creates its own isolated services:
|
|
13
|
+
* - ConversationHistoryProvider (with session-specific storage, shared across LLM switches)
|
|
14
|
+
* - LLMService (creates its own properly-typed ContextManager internally)
|
|
15
|
+
* - SessionEventBus (session-local event handling with forwarding)
|
|
16
|
+
*
|
|
17
|
+
* @param services - The shared services from the agent (state manager, prompt, client managers, etc.)
|
|
18
|
+
* @param id - Unique identifier for this session
|
|
19
|
+
*/
|
|
20
|
+
constructor(services, id) {
|
|
21
|
+
this.services = services;
|
|
22
|
+
this.id = id;
|
|
23
|
+
this.eventBus = new SessionEventBus();
|
|
24
|
+
this.setupEventForwarding();
|
|
25
|
+
logger.debug(`ChatSession ${this.id}: Created, awaiting initialization`);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Session-scoped event emitter for handling conversation events.
|
|
29
|
+
*
|
|
30
|
+
* This is a session-local SessionEventBus instance that forwards events
|
|
31
|
+
* to the global agent event bus.
|
|
32
|
+
*
|
|
33
|
+
* Events emitted include:
|
|
34
|
+
* - `llmservice:thinking` - AI model is processing
|
|
35
|
+
* - `llmservice:toolCall` - Tool execution requested
|
|
36
|
+
* - `llmservice:response` - Final response generated
|
|
37
|
+
*/
|
|
38
|
+
eventBus;
|
|
39
|
+
/**
|
|
40
|
+
* History provider that persists conversation messages.
|
|
41
|
+
* Shared across LLM switches to maintain conversation continuity.
|
|
42
|
+
*/
|
|
43
|
+
historyProvider;
|
|
44
|
+
/**
|
|
45
|
+
* Handles AI model interactions, tool execution, and response generation for this session.
|
|
46
|
+
*
|
|
47
|
+
* Each session has its own LLMService instance that uses the session's
|
|
48
|
+
* ContextManager and event bus.
|
|
49
|
+
*/
|
|
50
|
+
llmService;
|
|
51
|
+
/**
|
|
52
|
+
* Map of event forwarder functions for cleanup.
|
|
53
|
+
* Stores the bound functions so they can be removed from the event bus.
|
|
54
|
+
*/
|
|
55
|
+
forwarders = /* @__PURE__ */ new Map();
|
|
56
|
+
/**
|
|
57
|
+
* AbortController for the currently running turn, if any.
|
|
58
|
+
* Calling cancel() aborts the in-flight LLM request and tool execution checks.
|
|
59
|
+
*/
|
|
60
|
+
currentRunController = null;
|
|
61
|
+
/**
|
|
62
|
+
* Initialize the session services asynchronously.
|
|
63
|
+
* This must be called after construction to set up the storage-backed services.
|
|
64
|
+
*/
|
|
65
|
+
async init() {
|
|
66
|
+
await this.initializeServices();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Sets up event forwarding from session bus to global agent bus.
|
|
70
|
+
*
|
|
71
|
+
* All session events are automatically forwarded to the global bus with the same
|
|
72
|
+
* event names, but with session context added to the payload. This allows the app
|
|
73
|
+
* layer to continue listening to standard events while having access to session
|
|
74
|
+
* information when needed.
|
|
75
|
+
*/
|
|
76
|
+
setupEventForwarding() {
|
|
77
|
+
SessionEventNames.forEach((eventName) => {
|
|
78
|
+
const forwarder = (payload) => {
|
|
79
|
+
const payloadWithSession = payload && typeof payload === "object" ? { ...payload, sessionId: this.id } : { sessionId: this.id };
|
|
80
|
+
logger.silly(
|
|
81
|
+
`Forwarding session event ${eventName} to agent bus with session context: ${JSON.stringify(payloadWithSession, null, 2)}`
|
|
82
|
+
);
|
|
83
|
+
this.services.agentEventBus.emit(eventName, payloadWithSession);
|
|
84
|
+
};
|
|
85
|
+
this.forwarders.set(eventName, forwarder);
|
|
86
|
+
this.eventBus.on(eventName, forwarder);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Initializes session-specific services.
|
|
91
|
+
*/
|
|
92
|
+
async initializeServices() {
|
|
93
|
+
const llmConfig = this.services.stateManager.getLLMConfig(this.id);
|
|
94
|
+
this.historyProvider = createDatabaseHistoryProvider(
|
|
95
|
+
this.services.storage.database,
|
|
96
|
+
this.id
|
|
97
|
+
);
|
|
98
|
+
this.llmService = createLLMService(
|
|
99
|
+
llmConfig,
|
|
100
|
+
llmConfig.router,
|
|
101
|
+
this.services.toolManager,
|
|
102
|
+
this.services.promptManager,
|
|
103
|
+
this.historyProvider,
|
|
104
|
+
// Pass history provider for service to use
|
|
105
|
+
this.eventBus,
|
|
106
|
+
// Use session event bus
|
|
107
|
+
this.id
|
|
108
|
+
);
|
|
109
|
+
logger.debug(`ChatSession ${this.id}: Services initialized with storage`);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Processes user input through the session's LLM service and returns the response.
|
|
113
|
+
*
|
|
114
|
+
* This method:
|
|
115
|
+
* 1. Takes user input (text, optionally with image or file data)
|
|
116
|
+
* 2. Passes it to the LLM service for processing
|
|
117
|
+
* 3. Returns the AI's response text
|
|
118
|
+
*
|
|
119
|
+
* The method handles both text-only and multimodal input (text + images/files).
|
|
120
|
+
* Tool calls and conversation management are handled internally by the LLM service.
|
|
121
|
+
*
|
|
122
|
+
* @param input - The user's text input
|
|
123
|
+
* @param imageDataInput - Optional image data for multimodal input
|
|
124
|
+
* @param fileDataInput - Optional file data for file input
|
|
125
|
+
* @param stream - Optional flag to enable streaming responses
|
|
126
|
+
* @returns Promise that resolves to the AI's response text
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const response = await session.run('What is the weather like today?');
|
|
131
|
+
* console.log(response); // "I'll check the weather for you..."
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
async run(input, imageDataInput, fileDataInput, stream) {
|
|
135
|
+
logger.debug(
|
|
136
|
+
`Running session ${this.id} with input: ${input}, imageDataInput: ${imageDataInput}, fileDataInput: ${fileDataInput}`
|
|
137
|
+
);
|
|
138
|
+
this.currentRunController = new AbortController();
|
|
139
|
+
const signal = this.currentRunController.signal;
|
|
140
|
+
try {
|
|
141
|
+
const response = await this.llmService.completeTask(
|
|
142
|
+
input,
|
|
143
|
+
{ signal },
|
|
144
|
+
imageDataInput,
|
|
145
|
+
fileDataInput,
|
|
146
|
+
stream
|
|
147
|
+
);
|
|
148
|
+
return response;
|
|
149
|
+
} catch (error) {
|
|
150
|
+
const aborted = error instanceof Error && error.name === "AbortError" || typeof error === "object" && error !== null && error.aborted === true;
|
|
151
|
+
if (aborted) {
|
|
152
|
+
this.eventBus.emit("llmservice:error", {
|
|
153
|
+
error: new Error("Run cancelled"),
|
|
154
|
+
context: "user_cancelled",
|
|
155
|
+
recoverable: true
|
|
156
|
+
});
|
|
157
|
+
return "";
|
|
158
|
+
}
|
|
159
|
+
throw error;
|
|
160
|
+
} finally {
|
|
161
|
+
this.currentRunController = null;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Retrieves the complete conversation history for this session.
|
|
166
|
+
*
|
|
167
|
+
* Returns a read-only copy of all messages in the conversation, including:
|
|
168
|
+
* - User messages
|
|
169
|
+
* - Assistant responses
|
|
170
|
+
* - Tool call results
|
|
171
|
+
* - System messages
|
|
172
|
+
*
|
|
173
|
+
* The history is formatted as internal messages and may include multimodal
|
|
174
|
+
* content (text and images).
|
|
175
|
+
*
|
|
176
|
+
* @returns Promise that resolves to a read-only array of conversation messages in chronological order
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* const history = await session.getHistory();
|
|
181
|
+
* console.log(`Conversation has ${history.length} messages`);
|
|
182
|
+
* history.forEach(msg => console.log(`${msg.role}: ${msg.content}`));
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
async getHistory() {
|
|
186
|
+
return await this.historyProvider.getHistory();
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Reset the conversation history for this session.
|
|
190
|
+
*
|
|
191
|
+
* This method:
|
|
192
|
+
* 1. Clears all messages from the session's conversation history
|
|
193
|
+
* 2. Removes persisted history from the storage provider
|
|
194
|
+
* 3. Emits a `dexto:conversationReset` event with session context
|
|
195
|
+
*
|
|
196
|
+
* The system prompt and session configuration remain unchanged.
|
|
197
|
+
* Only the conversation messages are cleared.
|
|
198
|
+
*
|
|
199
|
+
* @returns Promise that resolves when the reset is complete
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```typescript
|
|
203
|
+
* await session.reset();
|
|
204
|
+
* console.log('Conversation history cleared');
|
|
205
|
+
* ```
|
|
206
|
+
*
|
|
207
|
+
* @see {@link ContextManager.resetConversation} for the underlying implementation
|
|
208
|
+
*/
|
|
209
|
+
async reset() {
|
|
210
|
+
await this.historyProvider.clearHistory();
|
|
211
|
+
this.services.agentEventBus.emit("dexto:conversationReset", {
|
|
212
|
+
sessionId: this.id
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Gets the session's ContextManager instance.
|
|
217
|
+
*
|
|
218
|
+
* @returns The ContextManager for this session
|
|
219
|
+
*/
|
|
220
|
+
getContextManager() {
|
|
221
|
+
return this.llmService.getContextManager();
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Gets the session's LLMService instance.
|
|
225
|
+
*
|
|
226
|
+
* @returns The LLMService for this session
|
|
227
|
+
*/
|
|
228
|
+
getLLMService() {
|
|
229
|
+
return this.llmService;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Switches the LLM service for this session while preserving conversation history.
|
|
233
|
+
*
|
|
234
|
+
* This method creates a new LLM service with the specified configuration and router,
|
|
235
|
+
* while maintaining the existing ContextManager and conversation history. This allows
|
|
236
|
+
* users to change AI models mid-conversation without losing context.
|
|
237
|
+
*
|
|
238
|
+
* @param newLLMConfig The new LLM configuration to use (includes router)
|
|
239
|
+
*
|
|
240
|
+
* @example
|
|
241
|
+
* ```typescript
|
|
242
|
+
* // Switch from Claude to GPT-4 while keeping conversation history
|
|
243
|
+
* session.switchLLM({
|
|
244
|
+
* provider: 'openai',
|
|
245
|
+
* model: 'gpt-4',
|
|
246
|
+
* apiKey: process.env.OPENAI_API_KEY,
|
|
247
|
+
* router: 'in-built'
|
|
248
|
+
* });
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
async switchLLM(newLLMConfig) {
|
|
252
|
+
try {
|
|
253
|
+
const router = newLLMConfig.router;
|
|
254
|
+
const newLLMService = createLLMService(
|
|
255
|
+
newLLMConfig,
|
|
256
|
+
router,
|
|
257
|
+
this.services.toolManager,
|
|
258
|
+
this.services.promptManager,
|
|
259
|
+
this.historyProvider,
|
|
260
|
+
// Pass the SAME history provider - preserves conversation!
|
|
261
|
+
this.eventBus,
|
|
262
|
+
// Use session event bus
|
|
263
|
+
this.id
|
|
264
|
+
);
|
|
265
|
+
this.llmService = newLLMService;
|
|
266
|
+
logger.info(
|
|
267
|
+
`ChatSession ${this.id}: LLM switched to ${newLLMConfig.provider}/${newLLMConfig.model}`
|
|
268
|
+
);
|
|
269
|
+
this.eventBus.emit("llmservice:switched", {
|
|
270
|
+
newConfig: newLLMConfig,
|
|
271
|
+
router,
|
|
272
|
+
historyRetained: true
|
|
273
|
+
});
|
|
274
|
+
} catch (error) {
|
|
275
|
+
logger.error(
|
|
276
|
+
`Error during ChatSession.switchLLM for session ${this.id}: ${error instanceof Error ? error.message : String(error)}`
|
|
277
|
+
);
|
|
278
|
+
throw error;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Cleanup the session and its in-memory resources.
|
|
283
|
+
* This method should be called when the session is being removed from memory.
|
|
284
|
+
* Chat history is preserved in storage and can be restored later.
|
|
285
|
+
*/
|
|
286
|
+
async cleanup() {
|
|
287
|
+
try {
|
|
288
|
+
this.dispose();
|
|
289
|
+
logger.debug(
|
|
290
|
+
`ChatSession ${this.id}: Memory cleanup completed (chat history preserved)`
|
|
291
|
+
);
|
|
292
|
+
} catch (error) {
|
|
293
|
+
logger.error(
|
|
294
|
+
`Error during ChatSession cleanup for session ${this.id}: ${error instanceof Error ? error.message : String(error)}`
|
|
295
|
+
);
|
|
296
|
+
throw error;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Cleans up listeners and other resources to prevent memory leaks.
|
|
301
|
+
*
|
|
302
|
+
* This method should be called when the session is being discarded to ensure
|
|
303
|
+
* that event listeners are properly removed from the global event bus.
|
|
304
|
+
* Without this cleanup, sessions would remain in memory due to listener references.
|
|
305
|
+
*/
|
|
306
|
+
dispose() {
|
|
307
|
+
logger.debug(`Disposing session ${this.id} - cleaning up event listeners`);
|
|
308
|
+
this.forwarders.forEach((forwarder, eventName) => {
|
|
309
|
+
this.eventBus.off(eventName, forwarder);
|
|
310
|
+
});
|
|
311
|
+
this.forwarders.clear();
|
|
312
|
+
logger.debug(`Session ${this.id} disposed successfully`);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Cancel the currently running turn for this session, if any.
|
|
316
|
+
* Returns true if a run was in progress and was signaled to abort.
|
|
317
|
+
*/
|
|
318
|
+
cancel() {
|
|
319
|
+
const controller = this.currentRunController;
|
|
320
|
+
if (!controller || controller.signal.aborted) {
|
|
321
|
+
return false;
|
|
322
|
+
}
|
|
323
|
+
try {
|
|
324
|
+
controller.abort();
|
|
325
|
+
return true;
|
|
326
|
+
} catch {
|
|
327
|
+
return false;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
export {
|
|
332
|
+
ChatSession
|
|
333
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
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 error_codes_exports = {};
|
|
20
|
+
__export(error_codes_exports, {
|
|
21
|
+
SessionErrorCode: () => SessionErrorCode
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(error_codes_exports);
|
|
24
|
+
var SessionErrorCode = /* @__PURE__ */ ((SessionErrorCode2) => {
|
|
25
|
+
SessionErrorCode2["SESSION_NOT_FOUND"] = "session_not_found";
|
|
26
|
+
SessionErrorCode2["SESSION_INITIALIZATION_FAILED"] = "session_initialization_failed";
|
|
27
|
+
SessionErrorCode2["SESSION_MAX_SESSIONS_EXCEEDED"] = "session_max_sessions_exceeded";
|
|
28
|
+
SessionErrorCode2["SESSION_STORAGE_FAILED"] = "session_storage_failed";
|
|
29
|
+
SessionErrorCode2["SESSION_RESET_FAILED"] = "session_reset_failed";
|
|
30
|
+
return SessionErrorCode2;
|
|
31
|
+
})(SessionErrorCode || {});
|
|
32
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
33
|
+
0 && (module.exports = {
|
|
34
|
+
SessionErrorCode
|
|
35
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session-specific error codes
|
|
3
|
+
* Includes session lifecycle, management, and state errors
|
|
4
|
+
*/
|
|
5
|
+
declare enum SessionErrorCode {
|
|
6
|
+
SESSION_NOT_FOUND = "session_not_found",
|
|
7
|
+
SESSION_INITIALIZATION_FAILED = "session_initialization_failed",
|
|
8
|
+
SESSION_MAX_SESSIONS_EXCEEDED = "session_max_sessions_exceeded",
|
|
9
|
+
SESSION_STORAGE_FAILED = "session_storage_failed",
|
|
10
|
+
SESSION_RESET_FAILED = "session_reset_failed"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { SessionErrorCode };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session-specific error codes
|
|
3
|
+
* Includes session lifecycle, management, and state errors
|
|
4
|
+
*/
|
|
5
|
+
declare enum SessionErrorCode {
|
|
6
|
+
SESSION_NOT_FOUND = "session_not_found",
|
|
7
|
+
SESSION_INITIALIZATION_FAILED = "session_initialization_failed",
|
|
8
|
+
SESSION_MAX_SESSIONS_EXCEEDED = "session_max_sessions_exceeded",
|
|
9
|
+
SESSION_STORAGE_FAILED = "session_storage_failed",
|
|
10
|
+
SESSION_RESET_FAILED = "session_reset_failed"
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { SessionErrorCode };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var SessionErrorCode = /* @__PURE__ */ ((SessionErrorCode2) => {
|
|
2
|
+
SessionErrorCode2["SESSION_NOT_FOUND"] = "session_not_found";
|
|
3
|
+
SessionErrorCode2["SESSION_INITIALIZATION_FAILED"] = "session_initialization_failed";
|
|
4
|
+
SessionErrorCode2["SESSION_MAX_SESSIONS_EXCEEDED"] = "session_max_sessions_exceeded";
|
|
5
|
+
SessionErrorCode2["SESSION_STORAGE_FAILED"] = "session_storage_failed";
|
|
6
|
+
SessionErrorCode2["SESSION_RESET_FAILED"] = "session_reset_failed";
|
|
7
|
+
return SessionErrorCode2;
|
|
8
|
+
})(SessionErrorCode || {});
|
|
9
|
+
export {
|
|
10
|
+
SessionErrorCode
|
|
11
|
+
};
|
|
@@ -0,0 +1,93 @@
|
|
|
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 errors_exports = {};
|
|
20
|
+
__export(errors_exports, {
|
|
21
|
+
SessionError: () => SessionError
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(errors_exports);
|
|
24
|
+
var import_DextoRuntimeError = require("../errors/DextoRuntimeError.cjs");
|
|
25
|
+
var import_types = require("../errors/types.cjs");
|
|
26
|
+
var import_error_codes = require("./error-codes.js");
|
|
27
|
+
class SessionError {
|
|
28
|
+
/**
|
|
29
|
+
* Session not found
|
|
30
|
+
*/
|
|
31
|
+
static notFound(sessionId) {
|
|
32
|
+
return new import_DextoRuntimeError.DextoRuntimeError(
|
|
33
|
+
import_error_codes.SessionErrorCode.SESSION_NOT_FOUND,
|
|
34
|
+
import_types.ErrorScope.SESSION,
|
|
35
|
+
import_types.ErrorType.NOT_FOUND,
|
|
36
|
+
`Session ${sessionId} not found`,
|
|
37
|
+
{ sessionId }
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Session initialization failed
|
|
42
|
+
*/
|
|
43
|
+
static initializationFailed(sessionId, reason) {
|
|
44
|
+
return new import_DextoRuntimeError.DextoRuntimeError(
|
|
45
|
+
import_error_codes.SessionErrorCode.SESSION_INITIALIZATION_FAILED,
|
|
46
|
+
import_types.ErrorScope.SESSION,
|
|
47
|
+
import_types.ErrorType.SYSTEM,
|
|
48
|
+
`Failed to initialize session '${sessionId}': ${reason}`,
|
|
49
|
+
{ sessionId, reason }
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Maximum number of sessions exceeded
|
|
54
|
+
*/
|
|
55
|
+
static maxSessionsExceeded(currentCount, maxSessions) {
|
|
56
|
+
return new import_DextoRuntimeError.DextoRuntimeError(
|
|
57
|
+
import_error_codes.SessionErrorCode.SESSION_MAX_SESSIONS_EXCEEDED,
|
|
58
|
+
import_types.ErrorScope.SESSION,
|
|
59
|
+
import_types.ErrorType.USER,
|
|
60
|
+
`Maximum sessions (${maxSessions}) reached`,
|
|
61
|
+
{ currentCount, maxSessions },
|
|
62
|
+
"Delete unused sessions or increase maxSessions limit in configuration"
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Session storage failed
|
|
67
|
+
*/
|
|
68
|
+
static storageFailed(sessionId, operation, reason) {
|
|
69
|
+
return new import_DextoRuntimeError.DextoRuntimeError(
|
|
70
|
+
import_error_codes.SessionErrorCode.SESSION_STORAGE_FAILED,
|
|
71
|
+
import_types.ErrorScope.SESSION,
|
|
72
|
+
import_types.ErrorType.SYSTEM,
|
|
73
|
+
`Failed to ${operation} session '${sessionId}': ${reason}`,
|
|
74
|
+
{ sessionId, operation, reason }
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Session reset failed
|
|
79
|
+
*/
|
|
80
|
+
static resetFailed(sessionId, reason) {
|
|
81
|
+
return new import_DextoRuntimeError.DextoRuntimeError(
|
|
82
|
+
import_error_codes.SessionErrorCode.SESSION_RESET_FAILED,
|
|
83
|
+
import_types.ErrorScope.SESSION,
|
|
84
|
+
import_types.ErrorType.SYSTEM,
|
|
85
|
+
`Failed to reset session '${sessionId}': ${reason}`,
|
|
86
|
+
{ sessionId, reason }
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
91
|
+
0 && (module.exports = {
|
|
92
|
+
SessionError
|
|
93
|
+
});
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DextoRuntimeError } from '../errors/DextoRuntimeError.cjs';
|
|
2
|
+
import '../errors/DextoBaseError.cjs';
|
|
3
|
+
import '../errors/types.cjs';
|
|
4
|
+
import '../agent/error-codes.cjs';
|
|
5
|
+
import '../config/error-codes.cjs';
|
|
6
|
+
import '../context/error-codes.cjs';
|
|
7
|
+
import '../llm/error-codes.cjs';
|
|
8
|
+
import '../mcp/error-codes.cjs';
|
|
9
|
+
import './error-codes.cjs';
|
|
10
|
+
import '../storage/error-codes.cjs';
|
|
11
|
+
import '../systemPrompt/error-codes.cjs';
|
|
12
|
+
import '../tools/error-codes.cjs';
|
|
13
|
+
import '../preferences/error-codes.cjs';
|
|
14
|
+
import '../agent/registry/error-codes.cjs';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Session error factory with typed methods for creating session-specific errors
|
|
18
|
+
* Each method creates a properly typed DextoError with SESSION scope
|
|
19
|
+
*/
|
|
20
|
+
declare class SessionError {
|
|
21
|
+
/**
|
|
22
|
+
* Session not found
|
|
23
|
+
*/
|
|
24
|
+
static notFound(sessionId: string): DextoRuntimeError<{
|
|
25
|
+
sessionId: string;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Session initialization failed
|
|
29
|
+
*/
|
|
30
|
+
static initializationFailed(sessionId: string, reason: string): DextoRuntimeError<{
|
|
31
|
+
sessionId: string;
|
|
32
|
+
reason: string;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Maximum number of sessions exceeded
|
|
36
|
+
*/
|
|
37
|
+
static maxSessionsExceeded(currentCount: number, maxSessions: number): DextoRuntimeError<{
|
|
38
|
+
currentCount: number;
|
|
39
|
+
maxSessions: number;
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Session storage failed
|
|
43
|
+
*/
|
|
44
|
+
static storageFailed(sessionId: string, operation: string, reason: string): DextoRuntimeError<{
|
|
45
|
+
sessionId: string;
|
|
46
|
+
operation: string;
|
|
47
|
+
reason: string;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Session reset failed
|
|
51
|
+
*/
|
|
52
|
+
static resetFailed(sessionId: string, reason: string): DextoRuntimeError<{
|
|
53
|
+
sessionId: string;
|
|
54
|
+
reason: string;
|
|
55
|
+
}>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { SessionError };
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { DextoRuntimeError } from '../errors/DextoRuntimeError.js';
|
|
2
|
+
import '../errors/DextoBaseError.js';
|
|
3
|
+
import '../errors/types.js';
|
|
4
|
+
import '../agent/error-codes.js';
|
|
5
|
+
import '../config/error-codes.js';
|
|
6
|
+
import '../context/error-codes.js';
|
|
7
|
+
import '../llm/error-codes.js';
|
|
8
|
+
import '../mcp/error-codes.js';
|
|
9
|
+
import './error-codes.js';
|
|
10
|
+
import '../storage/error-codes.js';
|
|
11
|
+
import '../systemPrompt/error-codes.js';
|
|
12
|
+
import '../tools/error-codes.js';
|
|
13
|
+
import '../preferences/error-codes.js';
|
|
14
|
+
import '../agent/registry/error-codes.js';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Session error factory with typed methods for creating session-specific errors
|
|
18
|
+
* Each method creates a properly typed DextoError with SESSION scope
|
|
19
|
+
*/
|
|
20
|
+
declare class SessionError {
|
|
21
|
+
/**
|
|
22
|
+
* Session not found
|
|
23
|
+
*/
|
|
24
|
+
static notFound(sessionId: string): DextoRuntimeError<{
|
|
25
|
+
sessionId: string;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Session initialization failed
|
|
29
|
+
*/
|
|
30
|
+
static initializationFailed(sessionId: string, reason: string): DextoRuntimeError<{
|
|
31
|
+
sessionId: string;
|
|
32
|
+
reason: string;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Maximum number of sessions exceeded
|
|
36
|
+
*/
|
|
37
|
+
static maxSessionsExceeded(currentCount: number, maxSessions: number): DextoRuntimeError<{
|
|
38
|
+
currentCount: number;
|
|
39
|
+
maxSessions: number;
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Session storage failed
|
|
43
|
+
*/
|
|
44
|
+
static storageFailed(sessionId: string, operation: string, reason: string): DextoRuntimeError<{
|
|
45
|
+
sessionId: string;
|
|
46
|
+
operation: string;
|
|
47
|
+
reason: string;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Session reset failed
|
|
51
|
+
*/
|
|
52
|
+
static resetFailed(sessionId: string, reason: string): DextoRuntimeError<{
|
|
53
|
+
sessionId: string;
|
|
54
|
+
reason: string;
|
|
55
|
+
}>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { SessionError };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
|
|
2
|
+
import { ErrorScope, ErrorType } from "../errors/types.js";
|
|
3
|
+
import { SessionErrorCode } from "./error-codes.js";
|
|
4
|
+
class SessionError {
|
|
5
|
+
/**
|
|
6
|
+
* Session not found
|
|
7
|
+
*/
|
|
8
|
+
static notFound(sessionId) {
|
|
9
|
+
return new DextoRuntimeError(
|
|
10
|
+
SessionErrorCode.SESSION_NOT_FOUND,
|
|
11
|
+
ErrorScope.SESSION,
|
|
12
|
+
ErrorType.NOT_FOUND,
|
|
13
|
+
`Session ${sessionId} not found`,
|
|
14
|
+
{ sessionId }
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Session initialization failed
|
|
19
|
+
*/
|
|
20
|
+
static initializationFailed(sessionId, reason) {
|
|
21
|
+
return new DextoRuntimeError(
|
|
22
|
+
SessionErrorCode.SESSION_INITIALIZATION_FAILED,
|
|
23
|
+
ErrorScope.SESSION,
|
|
24
|
+
ErrorType.SYSTEM,
|
|
25
|
+
`Failed to initialize session '${sessionId}': ${reason}`,
|
|
26
|
+
{ sessionId, reason }
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Maximum number of sessions exceeded
|
|
31
|
+
*/
|
|
32
|
+
static maxSessionsExceeded(currentCount, maxSessions) {
|
|
33
|
+
return new DextoRuntimeError(
|
|
34
|
+
SessionErrorCode.SESSION_MAX_SESSIONS_EXCEEDED,
|
|
35
|
+
ErrorScope.SESSION,
|
|
36
|
+
ErrorType.USER,
|
|
37
|
+
`Maximum sessions (${maxSessions}) reached`,
|
|
38
|
+
{ currentCount, maxSessions },
|
|
39
|
+
"Delete unused sessions or increase maxSessions limit in configuration"
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Session storage failed
|
|
44
|
+
*/
|
|
45
|
+
static storageFailed(sessionId, operation, reason) {
|
|
46
|
+
return new DextoRuntimeError(
|
|
47
|
+
SessionErrorCode.SESSION_STORAGE_FAILED,
|
|
48
|
+
ErrorScope.SESSION,
|
|
49
|
+
ErrorType.SYSTEM,
|
|
50
|
+
`Failed to ${operation} session '${sessionId}': ${reason}`,
|
|
51
|
+
{ sessionId, operation, reason }
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Session reset failed
|
|
56
|
+
*/
|
|
57
|
+
static resetFailed(sessionId, reason) {
|
|
58
|
+
return new DextoRuntimeError(
|
|
59
|
+
SessionErrorCode.SESSION_RESET_FAILED,
|
|
60
|
+
ErrorScope.SESSION,
|
|
61
|
+
ErrorType.SYSTEM,
|
|
62
|
+
`Failed to reset session '${sessionId}': ${reason}`,
|
|
63
|
+
{ sessionId, reason }
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export {
|
|
68
|
+
SessionError
|
|
69
|
+
};
|