@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,78 @@
|
|
|
1
|
+
import { InternalMessage } from '../context/types.js';
|
|
2
|
+
import '../llm/types.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Options for searching messages
|
|
6
|
+
*/
|
|
7
|
+
interface SearchOptions {
|
|
8
|
+
/** Limit search to a specific session */
|
|
9
|
+
sessionId?: string;
|
|
10
|
+
/** Filter by message role */
|
|
11
|
+
role?: 'user' | 'assistant' | 'system' | 'tool';
|
|
12
|
+
/** Maximum number of results to return */
|
|
13
|
+
limit?: number;
|
|
14
|
+
/** Offset for pagination */
|
|
15
|
+
offset?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result of a message search
|
|
19
|
+
*/
|
|
20
|
+
interface SearchResult {
|
|
21
|
+
/** Session ID where the message was found */
|
|
22
|
+
sessionId: string;
|
|
23
|
+
/** The message that matched the search */
|
|
24
|
+
message: InternalMessage;
|
|
25
|
+
/** The specific text that matched the search query */
|
|
26
|
+
matchedText: string;
|
|
27
|
+
/** Context around the match for preview */
|
|
28
|
+
context: string;
|
|
29
|
+
/** Index of the message within the session */
|
|
30
|
+
messageIndex: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result of a session search
|
|
34
|
+
*/
|
|
35
|
+
interface SessionSearchResult {
|
|
36
|
+
/** Session ID */
|
|
37
|
+
sessionId: string;
|
|
38
|
+
/** Number of messages that matched in this session */
|
|
39
|
+
matchCount: number;
|
|
40
|
+
/** Preview of the first matching message */
|
|
41
|
+
firstMatch: SearchResult;
|
|
42
|
+
/** Session metadata */
|
|
43
|
+
metadata: {
|
|
44
|
+
createdAt: number;
|
|
45
|
+
lastActivity: number;
|
|
46
|
+
messageCount: number;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Response format for search API
|
|
51
|
+
*/
|
|
52
|
+
interface SearchResponse {
|
|
53
|
+
/** Array of search results */
|
|
54
|
+
results: SearchResult[];
|
|
55
|
+
/** Total number of results available */
|
|
56
|
+
total: number;
|
|
57
|
+
/** Whether there are more results beyond the current page */
|
|
58
|
+
hasMore: boolean;
|
|
59
|
+
/** Query that was searched */
|
|
60
|
+
query: string;
|
|
61
|
+
/** Options used for the search */
|
|
62
|
+
options: SearchOptions;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Response format for session search API
|
|
66
|
+
*/
|
|
67
|
+
interface SessionSearchResponse {
|
|
68
|
+
/** Array of session search results */
|
|
69
|
+
results: SessionSearchResult[];
|
|
70
|
+
/** Total number of sessions with matches */
|
|
71
|
+
total: number;
|
|
72
|
+
/** Whether there are more results beyond the current page */
|
|
73
|
+
hasMore: boolean;
|
|
74
|
+
/** Query that was searched */
|
|
75
|
+
query: string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export type { SearchOptions, SearchResponse, SearchResult, SessionSearchResponse, SessionSearchResult };
|
|
File without changes
|
|
@@ -0,0 +1,354 @@
|
|
|
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 chat_session_exports = {};
|
|
20
|
+
__export(chat_session_exports, {
|
|
21
|
+
ChatSession: () => ChatSession
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(chat_session_exports);
|
|
24
|
+
var import_factory = require("./history/factory.js");
|
|
25
|
+
var import_factory2 = require("../llm/services/factory.js");
|
|
26
|
+
var import_events = require("../events/index.js");
|
|
27
|
+
var import_logger = require("../logger/index.js");
|
|
28
|
+
class ChatSession {
|
|
29
|
+
/**
|
|
30
|
+
* Creates a new ChatSession instance.
|
|
31
|
+
*
|
|
32
|
+
* Each session creates its own isolated services:
|
|
33
|
+
* - ConversationHistoryProvider (with session-specific storage, shared across LLM switches)
|
|
34
|
+
* - LLMService (creates its own properly-typed ContextManager internally)
|
|
35
|
+
* - SessionEventBus (session-local event handling with forwarding)
|
|
36
|
+
*
|
|
37
|
+
* @param services - The shared services from the agent (state manager, prompt, client managers, etc.)
|
|
38
|
+
* @param id - Unique identifier for this session
|
|
39
|
+
*/
|
|
40
|
+
constructor(services, id) {
|
|
41
|
+
this.services = services;
|
|
42
|
+
this.id = id;
|
|
43
|
+
this.eventBus = new import_events.SessionEventBus();
|
|
44
|
+
this.setupEventForwarding();
|
|
45
|
+
import_logger.logger.debug(`ChatSession ${this.id}: Created, awaiting initialization`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Session-scoped event emitter for handling conversation events.
|
|
49
|
+
*
|
|
50
|
+
* This is a session-local SessionEventBus instance that forwards events
|
|
51
|
+
* to the global agent event bus.
|
|
52
|
+
*
|
|
53
|
+
* Events emitted include:
|
|
54
|
+
* - `llmservice:thinking` - AI model is processing
|
|
55
|
+
* - `llmservice:toolCall` - Tool execution requested
|
|
56
|
+
* - `llmservice:response` - Final response generated
|
|
57
|
+
*/
|
|
58
|
+
eventBus;
|
|
59
|
+
/**
|
|
60
|
+
* History provider that persists conversation messages.
|
|
61
|
+
* Shared across LLM switches to maintain conversation continuity.
|
|
62
|
+
*/
|
|
63
|
+
historyProvider;
|
|
64
|
+
/**
|
|
65
|
+
* Handles AI model interactions, tool execution, and response generation for this session.
|
|
66
|
+
*
|
|
67
|
+
* Each session has its own LLMService instance that uses the session's
|
|
68
|
+
* ContextManager and event bus.
|
|
69
|
+
*/
|
|
70
|
+
llmService;
|
|
71
|
+
/**
|
|
72
|
+
* Map of event forwarder functions for cleanup.
|
|
73
|
+
* Stores the bound functions so they can be removed from the event bus.
|
|
74
|
+
*/
|
|
75
|
+
forwarders = /* @__PURE__ */ new Map();
|
|
76
|
+
/**
|
|
77
|
+
* AbortController for the currently running turn, if any.
|
|
78
|
+
* Calling cancel() aborts the in-flight LLM request and tool execution checks.
|
|
79
|
+
*/
|
|
80
|
+
currentRunController = null;
|
|
81
|
+
/**
|
|
82
|
+
* Initialize the session services asynchronously.
|
|
83
|
+
* This must be called after construction to set up the storage-backed services.
|
|
84
|
+
*/
|
|
85
|
+
async init() {
|
|
86
|
+
await this.initializeServices();
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Sets up event forwarding from session bus to global agent bus.
|
|
90
|
+
*
|
|
91
|
+
* All session events are automatically forwarded to the global bus with the same
|
|
92
|
+
* event names, but with session context added to the payload. This allows the app
|
|
93
|
+
* layer to continue listening to standard events while having access to session
|
|
94
|
+
* information when needed.
|
|
95
|
+
*/
|
|
96
|
+
setupEventForwarding() {
|
|
97
|
+
import_events.SessionEventNames.forEach((eventName) => {
|
|
98
|
+
const forwarder = (payload) => {
|
|
99
|
+
const payloadWithSession = payload && typeof payload === "object" ? { ...payload, sessionId: this.id } : { sessionId: this.id };
|
|
100
|
+
import_logger.logger.silly(
|
|
101
|
+
`Forwarding session event ${eventName} to agent bus with session context: ${JSON.stringify(payloadWithSession, null, 2)}`
|
|
102
|
+
);
|
|
103
|
+
this.services.agentEventBus.emit(eventName, payloadWithSession);
|
|
104
|
+
};
|
|
105
|
+
this.forwarders.set(eventName, forwarder);
|
|
106
|
+
this.eventBus.on(eventName, forwarder);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Initializes session-specific services.
|
|
111
|
+
*/
|
|
112
|
+
async initializeServices() {
|
|
113
|
+
const llmConfig = this.services.stateManager.getLLMConfig(this.id);
|
|
114
|
+
this.historyProvider = (0, import_factory.createDatabaseHistoryProvider)(
|
|
115
|
+
this.services.storage.database,
|
|
116
|
+
this.id
|
|
117
|
+
);
|
|
118
|
+
this.llmService = (0, import_factory2.createLLMService)(
|
|
119
|
+
llmConfig,
|
|
120
|
+
llmConfig.router,
|
|
121
|
+
this.services.toolManager,
|
|
122
|
+
this.services.promptManager,
|
|
123
|
+
this.historyProvider,
|
|
124
|
+
// Pass history provider for service to use
|
|
125
|
+
this.eventBus,
|
|
126
|
+
// Use session event bus
|
|
127
|
+
this.id
|
|
128
|
+
);
|
|
129
|
+
import_logger.logger.debug(`ChatSession ${this.id}: Services initialized with storage`);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Processes user input through the session's LLM service and returns the response.
|
|
133
|
+
*
|
|
134
|
+
* This method:
|
|
135
|
+
* 1. Takes user input (text, optionally with image or file data)
|
|
136
|
+
* 2. Passes it to the LLM service for processing
|
|
137
|
+
* 3. Returns the AI's response text
|
|
138
|
+
*
|
|
139
|
+
* The method handles both text-only and multimodal input (text + images/files).
|
|
140
|
+
* Tool calls and conversation management are handled internally by the LLM service.
|
|
141
|
+
*
|
|
142
|
+
* @param input - The user's text input
|
|
143
|
+
* @param imageDataInput - Optional image data for multimodal input
|
|
144
|
+
* @param fileDataInput - Optional file data for file input
|
|
145
|
+
* @param stream - Optional flag to enable streaming responses
|
|
146
|
+
* @returns Promise that resolves to the AI's response text
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const response = await session.run('What is the weather like today?');
|
|
151
|
+
* console.log(response); // "I'll check the weather for you..."
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
async run(input, imageDataInput, fileDataInput, stream) {
|
|
155
|
+
import_logger.logger.debug(
|
|
156
|
+
`Running session ${this.id} with input: ${input}, imageDataInput: ${imageDataInput}, fileDataInput: ${fileDataInput}`
|
|
157
|
+
);
|
|
158
|
+
this.currentRunController = new AbortController();
|
|
159
|
+
const signal = this.currentRunController.signal;
|
|
160
|
+
try {
|
|
161
|
+
const response = await this.llmService.completeTask(
|
|
162
|
+
input,
|
|
163
|
+
{ signal },
|
|
164
|
+
imageDataInput,
|
|
165
|
+
fileDataInput,
|
|
166
|
+
stream
|
|
167
|
+
);
|
|
168
|
+
return response;
|
|
169
|
+
} catch (error) {
|
|
170
|
+
const aborted = error instanceof Error && error.name === "AbortError" || typeof error === "object" && error !== null && error.aborted === true;
|
|
171
|
+
if (aborted) {
|
|
172
|
+
this.eventBus.emit("llmservice:error", {
|
|
173
|
+
error: new Error("Run cancelled"),
|
|
174
|
+
context: "user_cancelled",
|
|
175
|
+
recoverable: true
|
|
176
|
+
});
|
|
177
|
+
return "";
|
|
178
|
+
}
|
|
179
|
+
throw error;
|
|
180
|
+
} finally {
|
|
181
|
+
this.currentRunController = null;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Retrieves the complete conversation history for this session.
|
|
186
|
+
*
|
|
187
|
+
* Returns a read-only copy of all messages in the conversation, including:
|
|
188
|
+
* - User messages
|
|
189
|
+
* - Assistant responses
|
|
190
|
+
* - Tool call results
|
|
191
|
+
* - System messages
|
|
192
|
+
*
|
|
193
|
+
* The history is formatted as internal messages and may include multimodal
|
|
194
|
+
* content (text and images).
|
|
195
|
+
*
|
|
196
|
+
* @returns Promise that resolves to a read-only array of conversation messages in chronological order
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* const history = await session.getHistory();
|
|
201
|
+
* console.log(`Conversation has ${history.length} messages`);
|
|
202
|
+
* history.forEach(msg => console.log(`${msg.role}: ${msg.content}`));
|
|
203
|
+
* ```
|
|
204
|
+
*/
|
|
205
|
+
async getHistory() {
|
|
206
|
+
return await this.historyProvider.getHistory();
|
|
207
|
+
}
|
|
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
|
+
async reset() {
|
|
230
|
+
await this.historyProvider.clearHistory();
|
|
231
|
+
this.services.agentEventBus.emit("dexto:conversationReset", {
|
|
232
|
+
sessionId: this.id
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Gets the session's ContextManager instance.
|
|
237
|
+
*
|
|
238
|
+
* @returns The ContextManager for this session
|
|
239
|
+
*/
|
|
240
|
+
getContextManager() {
|
|
241
|
+
return this.llmService.getContextManager();
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Gets the session's LLMService instance.
|
|
245
|
+
*
|
|
246
|
+
* @returns The LLMService for this session
|
|
247
|
+
*/
|
|
248
|
+
getLLMService() {
|
|
249
|
+
return this.llmService;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Switches the LLM service for this session while preserving conversation history.
|
|
253
|
+
*
|
|
254
|
+
* This method creates a new LLM service with the specified configuration and router,
|
|
255
|
+
* while maintaining the existing ContextManager and conversation history. This allows
|
|
256
|
+
* users to change AI models mid-conversation without losing context.
|
|
257
|
+
*
|
|
258
|
+
* @param newLLMConfig The new LLM configuration to use (includes router)
|
|
259
|
+
*
|
|
260
|
+
* @example
|
|
261
|
+
* ```typescript
|
|
262
|
+
* // Switch from Claude to GPT-4 while keeping conversation history
|
|
263
|
+
* session.switchLLM({
|
|
264
|
+
* provider: 'openai',
|
|
265
|
+
* model: 'gpt-4',
|
|
266
|
+
* apiKey: process.env.OPENAI_API_KEY,
|
|
267
|
+
* router: 'in-built'
|
|
268
|
+
* });
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
async switchLLM(newLLMConfig) {
|
|
272
|
+
try {
|
|
273
|
+
const router = newLLMConfig.router;
|
|
274
|
+
const newLLMService = (0, import_factory2.createLLMService)(
|
|
275
|
+
newLLMConfig,
|
|
276
|
+
router,
|
|
277
|
+
this.services.toolManager,
|
|
278
|
+
this.services.promptManager,
|
|
279
|
+
this.historyProvider,
|
|
280
|
+
// Pass the SAME history provider - preserves conversation!
|
|
281
|
+
this.eventBus,
|
|
282
|
+
// Use session event bus
|
|
283
|
+
this.id
|
|
284
|
+
);
|
|
285
|
+
this.llmService = newLLMService;
|
|
286
|
+
import_logger.logger.info(
|
|
287
|
+
`ChatSession ${this.id}: LLM switched to ${newLLMConfig.provider}/${newLLMConfig.model}`
|
|
288
|
+
);
|
|
289
|
+
this.eventBus.emit("llmservice:switched", {
|
|
290
|
+
newConfig: newLLMConfig,
|
|
291
|
+
router,
|
|
292
|
+
historyRetained: true
|
|
293
|
+
});
|
|
294
|
+
} catch (error) {
|
|
295
|
+
import_logger.logger.error(
|
|
296
|
+
`Error during ChatSession.switchLLM for session ${this.id}: ${error instanceof Error ? error.message : String(error)}`
|
|
297
|
+
);
|
|
298
|
+
throw error;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Cleanup the session and its in-memory resources.
|
|
303
|
+
* This method should be called when the session is being removed from memory.
|
|
304
|
+
* Chat history is preserved in storage and can be restored later.
|
|
305
|
+
*/
|
|
306
|
+
async cleanup() {
|
|
307
|
+
try {
|
|
308
|
+
this.dispose();
|
|
309
|
+
import_logger.logger.debug(
|
|
310
|
+
`ChatSession ${this.id}: Memory cleanup completed (chat history preserved)`
|
|
311
|
+
);
|
|
312
|
+
} catch (error) {
|
|
313
|
+
import_logger.logger.error(
|
|
314
|
+
`Error during ChatSession cleanup for session ${this.id}: ${error instanceof Error ? error.message : String(error)}`
|
|
315
|
+
);
|
|
316
|
+
throw error;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Cleans up listeners and other resources to prevent memory leaks.
|
|
321
|
+
*
|
|
322
|
+
* This method should be called when the session is being discarded to ensure
|
|
323
|
+
* that event listeners are properly removed from the global event bus.
|
|
324
|
+
* Without this cleanup, sessions would remain in memory due to listener references.
|
|
325
|
+
*/
|
|
326
|
+
dispose() {
|
|
327
|
+
import_logger.logger.debug(`Disposing session ${this.id} - cleaning up event listeners`);
|
|
328
|
+
this.forwarders.forEach((forwarder, eventName) => {
|
|
329
|
+
this.eventBus.off(eventName, forwarder);
|
|
330
|
+
});
|
|
331
|
+
this.forwarders.clear();
|
|
332
|
+
import_logger.logger.debug(`Session ${this.id} disposed successfully`);
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Cancel the currently running turn for this session, if any.
|
|
336
|
+
* Returns true if a run was in progress and was signaled to abort.
|
|
337
|
+
*/
|
|
338
|
+
cancel() {
|
|
339
|
+
const controller = this.currentRunController;
|
|
340
|
+
if (!controller || controller.signal.aborted) {
|
|
341
|
+
return false;
|
|
342
|
+
}
|
|
343
|
+
try {
|
|
344
|
+
controller.abort();
|
|
345
|
+
return true;
|
|
346
|
+
} catch {
|
|
347
|
+
return false;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
352
|
+
0 && (module.exports = {
|
|
353
|
+
ChatSession
|
|
354
|
+
});
|