@dexto/core 1.4.0 → 1.5.1
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 +36 -0
- package/dist/agent/DextoAgent.cjs +22 -3
- package/dist/agent/DextoAgent.d.ts +19 -2
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +23 -4
- package/dist/agent/index.cjs +4 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +5 -1
- package/dist/agent/schemas.cjs +90 -71
- package/dist/agent/schemas.d.ts +5959 -96
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +87 -66
- package/dist/approval/manager.cjs +165 -1
- package/dist/approval/manager.d.ts +91 -2
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +155 -1
- package/dist/approval/schemas.cjs +39 -3
- package/dist/approval/schemas.d.ts +238 -1
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +35 -3
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +26 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -0
- package/dist/context/compaction/factory.cjs +57 -0
- package/dist/context/compaction/factory.d.ts +17 -0
- package/dist/context/compaction/factory.d.ts.map +1 -0
- package/dist/context/compaction/factory.js +34 -0
- package/dist/context/compaction/index.cjs +49 -0
- package/dist/context/compaction/index.d.ts +11 -0
- package/dist/context/compaction/index.d.ts.map +1 -0
- package/dist/context/compaction/index.js +19 -0
- package/dist/context/{compression → compaction}/overflow.cjs +3 -3
- package/dist/context/{compression → compaction}/overflow.d.ts +4 -4
- package/dist/context/compaction/overflow.d.ts.map +1 -0
- package/dist/context/{compression → compaction}/overflow.js +2 -2
- package/dist/context/compaction/provider.cjs +16 -0
- package/dist/context/compaction/provider.d.ts +48 -0
- package/dist/context/compaction/provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.cjs +48 -0
- package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
- package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.js +24 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
- package/dist/context/compaction/registry.cjs +39 -0
- package/dist/context/compaction/registry.d.ts +19 -0
- package/dist/context/compaction/registry.d.ts.map +1 -0
- package/dist/context/compaction/registry.js +16 -0
- package/dist/context/compaction/schemas.cjs +38 -0
- package/dist/context/compaction/schemas.d.ts +24 -0
- package/dist/context/compaction/schemas.d.ts.map +1 -0
- package/dist/context/compaction/schemas.js +14 -0
- package/dist/context/compaction/strategies/noop.cjs +36 -0
- package/dist/context/compaction/strategies/noop.d.ts +18 -0
- package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
- package/dist/context/compaction/strategies/noop.js +13 -0
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.cjs +3 -3
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.d.ts +6 -6
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.js +4 -4
- package/dist/context/{compression → compaction}/types.d.ts +4 -4
- package/dist/context/compaction/types.d.ts.map +1 -0
- package/dist/context/compaction/types.js +0 -0
- package/dist/context/error-codes.cjs +4 -0
- package/dist/context/error-codes.d.ts +4 -0
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +4 -0
- package/dist/context/errors.cjs +40 -0
- package/dist/context/errors.d.ts +14 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +40 -0
- package/dist/context/index.cjs +3 -1
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +1 -0
- package/dist/context/types.d.ts +6 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/utils.cjs +27 -7
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +27 -7
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +2 -3
- package/dist/events/index.cjs +6 -3
- package/dist/events/index.d.ts +35 -19
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +5 -3
- package/dist/filesystem/filesystem-service.cjs +39 -0
- package/dist/filesystem/filesystem-service.d.ts +32 -0
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +39 -0
- package/dist/filesystem/index.d.ts +1 -1
- package/dist/filesystem/index.d.ts.map +1 -1
- package/dist/filesystem/path-validator.cjs +69 -1
- package/dist/filesystem/path-validator.d.ts +43 -2
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +69 -1
- package/dist/image/define-image.cjs +146 -0
- package/dist/image/define-image.d.ts +71 -0
- package/dist/image/define-image.d.ts.map +1 -0
- package/dist/image/define-image.js +121 -0
- package/dist/image/index.cjs +32 -0
- package/dist/image/index.d.ts +53 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/index.js +7 -0
- package/dist/image/types.cjs +16 -0
- package/dist/image/types.d.ts +231 -0
- package/dist/image/types.d.ts.map +1 -0
- package/dist/image/types.js +0 -0
- package/dist/index.cjs +5 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/llm/error-codes.cjs +1 -0
- package/dist/llm/error-codes.d.ts +1 -0
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +1 -0
- package/dist/llm/errors.cjs +24 -0
- package/dist/llm/errors.d.ts +19 -6
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +24 -0
- package/dist/llm/executor/provider-options.cjs +87 -0
- package/dist/llm/executor/provider-options.d.ts +49 -0
- package/dist/llm/executor/provider-options.d.ts.map +1 -0
- package/dist/llm/executor/provider-options.js +63 -0
- package/dist/llm/executor/stream-processor.cjs +22 -11
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +22 -11
- package/dist/llm/executor/turn-executor.cjs +60 -23
- package/dist/llm/executor/turn-executor.d.ts +7 -5
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +60 -23
- package/dist/llm/formatters/vercel.cjs +15 -3
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +15 -3
- package/dist/llm/index.cjs +18 -1
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +14 -0
- package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
- package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
- package/dist/llm/providers/local/downloader.cjs +291 -0
- package/dist/llm/providers/local/downloader.d.ts +82 -0
- package/dist/llm/providers/local/downloader.d.ts.map +1 -0
- package/dist/llm/providers/local/downloader.js +251 -0
- package/dist/llm/providers/local/error-codes.cjs +57 -0
- package/dist/llm/providers/local/error-codes.d.ts +66 -0
- package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
- package/dist/llm/providers/local/error-codes.js +34 -0
- package/dist/llm/providers/local/errors.cjs +240 -0
- package/dist/llm/providers/local/errors.d.ts +31 -0
- package/dist/llm/providers/local/errors.d.ts.map +1 -0
- package/dist/llm/providers/local/errors.js +217 -0
- package/dist/llm/providers/local/gpu-detector.cjs +214 -0
- package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
- package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
- package/dist/llm/providers/local/gpu-detector.js +178 -0
- package/dist/llm/providers/local/index.cjs +147 -0
- package/dist/llm/providers/local/index.d.ts +21 -0
- package/dist/llm/providers/local/index.d.ts.map +1 -0
- package/dist/llm/providers/local/index.js +126 -0
- package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/node-llama-provider.js +176 -0
- package/dist/llm/providers/local/ollama-provider.cjs +230 -0
- package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
- package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/ollama-provider.js +198 -0
- package/dist/llm/providers/local/registry.cjs +343 -0
- package/dist/llm/providers/local/registry.d.ts +51 -0
- package/dist/llm/providers/local/registry.d.ts.map +1 -0
- package/dist/llm/providers/local/registry.js +312 -0
- package/dist/llm/providers/local/schemas.cjs +169 -0
- package/dist/llm/providers/local/schemas.d.ts +395 -0
- package/dist/llm/providers/local/schemas.d.ts.map +1 -0
- package/dist/llm/providers/local/schemas.js +133 -0
- package/dist/llm/providers/local/types.cjs +16 -0
- package/dist/llm/providers/local/types.d.ts +219 -0
- package/dist/llm/providers/local/types.d.ts.map +1 -0
- package/dist/llm/providers/local/types.js +0 -0
- package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
- package/dist/llm/providers/openrouter-model-registry.js +309 -0
- package/dist/llm/registry.cjs +604 -9
- package/dist/llm/registry.d.ts +35 -0
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +600 -9
- package/dist/llm/resolver.cjs +63 -5
- package/dist/llm/resolver.d.ts +3 -3
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +69 -6
- package/dist/llm/schemas.cjs +107 -81
- package/dist/llm/schemas.d.ts +181 -22
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +107 -81
- package/dist/llm/services/factory.cjs +87 -13
- package/dist/llm/services/factory.d.ts +4 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +85 -12
- package/dist/llm/services/test-utils.integration.cjs +22 -2
- package/dist/llm/services/test-utils.integration.d.ts +7 -1
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +26 -3
- package/dist/llm/services/vercel.cjs +8 -3
- package/dist/llm/services/vercel.d.ts +3 -2
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +8 -3
- package/dist/llm/types.cjs +11 -1
- package/dist/llm/types.d.ts +1 -1
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +11 -1
- package/dist/logger/logger.cjs +7 -3
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +7 -3
- package/dist/mcp/manager.cjs +8 -0
- package/dist/mcp/manager.d.ts +17 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +8 -0
- package/dist/mcp/mcp-client.cjs +0 -3
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +0 -3
- package/dist/memory/schemas.d.ts +3 -3
- package/dist/plugins/error-codes.cjs +3 -0
- package/dist/plugins/error-codes.d.ts +7 -1
- package/dist/plugins/error-codes.d.ts.map +1 -1
- package/dist/plugins/error-codes.js +3 -0
- package/dist/plugins/index.cjs +7 -0
- package/dist/plugins/index.d.ts +4 -2
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +6 -1
- package/dist/plugins/manager.cjs +92 -7
- package/dist/plugins/manager.d.ts +10 -3
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +92 -7
- package/dist/plugins/registry.cjs +63 -0
- package/dist/plugins/registry.d.ts +101 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +39 -0
- package/dist/plugins/schemas.cjs +17 -5
- package/dist/plugins/schemas.d.ts +62 -5
- package/dist/plugins/schemas.d.ts.map +1 -1
- package/dist/plugins/schemas.js +15 -4
- package/dist/providers/base-registry.cjs +147 -0
- package/dist/providers/base-registry.d.ts +147 -0
- package/dist/providers/base-registry.d.ts.map +1 -0
- package/dist/providers/base-registry.js +123 -0
- package/dist/providers/discovery.cjs +109 -0
- package/dist/providers/discovery.d.ts +96 -0
- package/dist/providers/discovery.d.ts.map +1 -0
- package/dist/providers/discovery.js +84 -0
- package/dist/providers/index.cjs +24 -0
- package/dist/providers/index.d.ts +32 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +2 -0
- package/dist/resources/reference-parser.cjs +3 -3
- package/dist/resources/reference-parser.d.ts.map +1 -1
- package/dist/resources/reference-parser.js +3 -3
- package/dist/session/chat-session.cjs +20 -3
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +21 -4
- package/dist/session/history/database.cjs +49 -15
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +49 -15
- package/dist/session/session-manager.cjs +2 -1
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +2 -1
- package/dist/storage/blob/factory.cjs +8 -11
- package/dist/storage/blob/factory.d.ts +32 -6
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -11
- package/dist/storage/blob/index.cjs +56 -0
- package/dist/storage/blob/index.d.ts +45 -0
- package/dist/storage/blob/index.d.ts.map +1 -0
- package/dist/storage/blob/index.js +30 -0
- package/dist/storage/blob/provider.cjs +16 -0
- package/dist/storage/blob/provider.d.ts +50 -0
- package/dist/storage/blob/provider.d.ts.map +1 -0
- package/dist/storage/blob/provider.js +0 -0
- package/dist/storage/blob/providers/index.cjs +31 -0
- package/dist/storage/blob/providers/index.d.ts +8 -0
- package/dist/storage/blob/providers/index.d.ts.map +1 -0
- package/dist/storage/blob/providers/index.js +7 -0
- package/dist/storage/blob/providers/local.cjs +39 -0
- package/dist/storage/blob/providers/local.d.ts +17 -0
- package/dist/storage/blob/providers/local.d.ts.map +1 -0
- package/dist/storage/blob/providers/local.js +16 -0
- package/dist/storage/blob/providers/memory.cjs +39 -0
- package/dist/storage/blob/providers/memory.d.ts +17 -0
- package/dist/storage/blob/providers/memory.d.ts.map +1 -0
- package/dist/storage/blob/providers/memory.js +16 -0
- package/dist/storage/blob/registry.cjs +50 -0
- package/dist/storage/blob/registry.d.ts +42 -0
- package/dist/storage/blob/registry.d.ts.map +1 -0
- package/dist/storage/blob/registry.js +26 -0
- package/dist/storage/blob/schemas.cjs +9 -12
- package/dist/storage/blob/schemas.d.ts +39 -34
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +6 -11
- package/dist/storage/cache/factory.cjs +8 -36
- package/dist/storage/cache/factory.d.ts +32 -7
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +8 -26
- package/dist/storage/cache/index.cjs +53 -0
- package/dist/storage/cache/index.d.ts +44 -0
- package/dist/storage/cache/index.d.ts.map +1 -0
- package/dist/storage/cache/index.js +28 -0
- package/dist/storage/cache/provider.cjs +16 -0
- package/dist/storage/cache/provider.d.ts +56 -0
- package/dist/storage/cache/provider.d.ts.map +1 -0
- package/dist/storage/cache/provider.js +0 -0
- package/dist/storage/cache/providers/index.cjs +31 -0
- package/dist/storage/cache/providers/index.d.ts +8 -0
- package/dist/storage/cache/providers/index.d.ts.map +1 -0
- package/dist/storage/cache/providers/index.js +7 -0
- package/dist/storage/cache/providers/memory.cjs +40 -0
- package/dist/storage/cache/providers/memory.d.ts +17 -0
- package/dist/storage/cache/providers/memory.d.ts.map +1 -0
- package/dist/storage/cache/providers/memory.js +17 -0
- package/dist/storage/cache/providers/redis.cjs +66 -0
- package/dist/storage/cache/providers/redis.d.ts +20 -0
- package/dist/storage/cache/providers/redis.d.ts.map +1 -0
- package/dist/storage/cache/providers/redis.js +33 -0
- package/dist/storage/cache/registry.cjs +50 -0
- package/dist/storage/cache/registry.d.ts +42 -0
- package/dist/storage/cache/registry.d.ts.map +1 -0
- package/dist/storage/cache/registry.js +26 -0
- package/dist/storage/cache/schemas.cjs +6 -2
- package/dist/storage/cache/schemas.d.ts +2 -3
- package/dist/storage/cache/schemas.d.ts.map +1 -1
- package/dist/storage/cache/schemas.js +3 -1
- package/dist/storage/database/factory.cjs +8 -47
- package/dist/storage/database/factory.d.ts +34 -8
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +8 -37
- package/dist/storage/database/index.cjs +58 -0
- package/dist/storage/database/index.d.ts +45 -0
- package/dist/storage/database/index.d.ts.map +1 -0
- package/dist/storage/database/index.js +37 -0
- package/dist/storage/database/postgres-store.cjs +174 -78
- package/dist/storage/database/postgres-store.d.ts +19 -0
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +174 -78
- package/dist/storage/database/provider.cjs +16 -0
- package/dist/storage/database/provider.d.ts +56 -0
- package/dist/storage/database/provider.d.ts.map +1 -0
- package/dist/storage/database/provider.js +0 -0
- package/dist/storage/database/providers/index.cjs +34 -0
- package/dist/storage/database/providers/index.d.ts +9 -0
- package/dist/storage/database/providers/index.d.ts.map +1 -0
- package/dist/storage/database/providers/index.js +9 -0
- package/dist/storage/database/providers/memory.cjs +40 -0
- package/dist/storage/database/providers/memory.d.ts +16 -0
- package/dist/storage/database/providers/memory.d.ts.map +1 -0
- package/dist/storage/database/providers/memory.js +17 -0
- package/dist/storage/database/providers/postgres.cjs +62 -0
- package/dist/storage/database/providers/postgres.d.ts +19 -0
- package/dist/storage/database/providers/postgres.d.ts.map +1 -0
- package/dist/storage/database/providers/postgres.js +29 -0
- package/dist/storage/database/providers/sqlite.cjs +66 -0
- package/dist/storage/database/providers/sqlite.d.ts +20 -0
- package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
- package/dist/storage/database/providers/sqlite.js +33 -0
- package/dist/storage/database/registry.cjs +50 -0
- package/dist/storage/database/registry.d.ts +42 -0
- package/dist/storage/database/registry.d.ts.map +1 -0
- package/dist/storage/database/registry.js +26 -0
- package/dist/storage/database/schemas.cjs +12 -3
- package/dist/storage/database/schemas.d.ts +11 -4
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +8 -2
- package/dist/storage/error-codes.cjs +6 -0
- package/dist/storage/error-codes.d.ts +7 -1
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +6 -0
- package/dist/storage/errors.cjs +80 -0
- package/dist/storage/errors.d.ts +24 -0
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +80 -0
- package/dist/storage/index.cjs +47 -4
- package/dist/storage/index.d.ts +34 -8
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +32 -3
- package/dist/storage/schemas.cjs +4 -0
- package/dist/storage/schemas.d.ts +24 -50
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +5 -1
- package/dist/storage/storage-manager.cjs +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +3 -3
- package/dist/systemPrompt/in-built-prompts.cjs +7 -6
- package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +6 -5
- package/dist/systemPrompt/registry.cjs +2 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +2 -2
- package/dist/systemPrompt/schemas.cjs +2 -2
- package/dist/systemPrompt/schemas.d.ts +13 -13
- package/dist/systemPrompt/schemas.js +2 -2
- package/dist/tools/custom-tool-registry.cjs +64 -0
- package/dist/tools/custom-tool-registry.d.ts +126 -0
- package/dist/tools/custom-tool-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-registry.js +40 -0
- package/dist/tools/custom-tool-schema-registry.cjs +164 -0
- package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
- package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-schema-registry.js +140 -0
- package/dist/tools/error-codes.cjs +3 -0
- package/dist/tools/error-codes.d.ts +4 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +3 -0
- package/dist/tools/errors.cjs +41 -0
- package/dist/tools/errors.d.ts +17 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +41 -0
- package/dist/tools/index.cjs +13 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -1
- package/dist/tools/internal-tools/constants.cjs +3 -9
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +3 -9
- package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
- package/dist/tools/internal-tools/provider.cjs +153 -23
- package/dist/tools/internal-tools/provider.d.ts +55 -10
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +153 -23
- package/dist/tools/internal-tools/registry.cjs +18 -43
- package/dist/tools/internal-tools/registry.d.ts +4 -4
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +18 -43
- package/dist/tools/schemas.cjs +20 -0
- package/dist/tools/schemas.d.ts +43 -1
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +16 -0
- package/dist/tools/tool-manager.cjs +140 -13
- package/dist/tools/tool-manager.d.ts +22 -3
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +140 -13
- package/dist/tools/types.d.ts +43 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.cjs +19 -1
- package/dist/utils/api-key-resolver.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +19 -1
- package/dist/utils/index.cjs +0 -2
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/redactor.cjs +18 -3
- package/dist/utils/redactor.d.ts +0 -7
- package/dist/utils/redactor.d.ts.map +1 -1
- package/dist/utils/redactor.js +18 -3
- package/dist/utils/service-initializer.cjs +9 -35
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +9 -35
- package/package.json +5 -2
- package/dist/context/compression/overflow.d.ts.map +0 -1
- package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
- package/dist/context/compression/types.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
- package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
- package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
- package/dist/utils/env-file.cjs +0 -118
- package/dist/utils/env-file.d.ts +0 -5
- package/dist/utils/env-file.d.ts.map +0 -1
- package/dist/utils/env-file.js +0 -85
- /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
- /package/dist/context/{compression → compaction}/types.cjs +0 -0
|
@@ -115,9 +115,9 @@ function formatResourceContent(resourceUri, resourceName, content) {
|
|
|
115
115
|
contentParts.push(`
|
|
116
116
|
--- Content from resource: ${resourceName} (${resourceUri}) ---`);
|
|
117
117
|
for (const item of content.contents) {
|
|
118
|
-
if (item.text && typeof item.text === "string") {
|
|
118
|
+
if ("text" in item && item.text && typeof item.text === "string") {
|
|
119
119
|
contentParts.push(item.text);
|
|
120
|
-
} else if (item.blob) {
|
|
120
|
+
} else if ("blob" in item && item.blob) {
|
|
121
121
|
const blobSize = typeof item.blob === "string" ? item.blob.length : "unknown";
|
|
122
122
|
contentParts.push(`[Binary content: ${item.mimeType || "unknown"}, ${blobSize} bytes]`);
|
|
123
123
|
}
|
|
@@ -147,7 +147,7 @@ async function expandMessageReferences(message, availableResources, resourceRead
|
|
|
147
147
|
const resource = availableResources[ref.resourceUri];
|
|
148
148
|
let isImageResource = false;
|
|
149
149
|
for (const item of content.contents) {
|
|
150
|
-
if (item.blob && item.mimeType && item.mimeType.startsWith("image/") && typeof item.blob === "string") {
|
|
150
|
+
if ("blob" in item && item.blob && item.mimeType && item.mimeType.startsWith("image/") && typeof item.blob === "string") {
|
|
151
151
|
extractedImages.push({
|
|
152
152
|
image: item.blob,
|
|
153
153
|
mimeType: item.mimeType,
|
|
@@ -23,6 +23,7 @@ __export(chat_session_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(chat_session_exports);
|
|
24
24
|
var import_factory = require("./history/factory.js");
|
|
25
25
|
var import_factory2 = require("../llm/services/factory.js");
|
|
26
|
+
var import_compaction = require("../context/compaction/index.js");
|
|
26
27
|
var import_events = require("../events/index.js");
|
|
27
28
|
var import_types = require("../logger/v2/types.js");
|
|
28
29
|
var import_errors = require("../errors/index.js");
|
|
@@ -143,12 +144,18 @@ class ChatSession {
|
|
|
143
144
|
* Initializes session-specific services.
|
|
144
145
|
*/
|
|
145
146
|
async initializeServices() {
|
|
146
|
-
const
|
|
147
|
+
const runtimeConfig = this.services.stateManager.getRuntimeConfig(this.id);
|
|
148
|
+
const llmConfig = runtimeConfig.llm;
|
|
147
149
|
this.historyProvider = (0, import_factory.createDatabaseHistoryProvider)(
|
|
148
150
|
this.services.storageManager.getDatabase(),
|
|
149
151
|
this.id,
|
|
150
152
|
this.logger
|
|
151
153
|
);
|
|
154
|
+
const model = (0, import_factory2.createVercelModel)(llmConfig);
|
|
155
|
+
const compactionStrategy = await (0, import_compaction.createCompactionStrategy)(runtimeConfig.compaction, {
|
|
156
|
+
logger: this.logger,
|
|
157
|
+
model
|
|
158
|
+
});
|
|
152
159
|
this.llmService = (0, import_factory2.createLLMService)(
|
|
153
160
|
llmConfig,
|
|
154
161
|
this.services.toolManager,
|
|
@@ -160,8 +167,10 @@ class ChatSession {
|
|
|
160
167
|
this.id,
|
|
161
168
|
this.services.resourceManager,
|
|
162
169
|
// Pass ResourceManager for blob storage
|
|
163
|
-
this.logger
|
|
170
|
+
this.logger,
|
|
164
171
|
// Pass logger for dependency injection
|
|
172
|
+
compactionStrategy
|
|
173
|
+
// Pass compaction strategy
|
|
165
174
|
);
|
|
166
175
|
this.logger.debug(`ChatSession ${this.id}: Services initialized with storage`);
|
|
167
176
|
}
|
|
@@ -429,6 +438,12 @@ class ChatSession {
|
|
|
429
438
|
*/
|
|
430
439
|
async switchLLM(newLLMConfig) {
|
|
431
440
|
try {
|
|
441
|
+
const runtimeConfig = this.services.stateManager.getRuntimeConfig(this.id);
|
|
442
|
+
const model = (0, import_factory2.createVercelModel)(newLLMConfig);
|
|
443
|
+
const compactionStrategy = await (0, import_compaction.createCompactionStrategy)(runtimeConfig.compaction, {
|
|
444
|
+
logger: this.logger,
|
|
445
|
+
model
|
|
446
|
+
});
|
|
432
447
|
const newLLMService = (0, import_factory2.createLLMService)(
|
|
433
448
|
newLLMConfig,
|
|
434
449
|
this.services.toolManager,
|
|
@@ -439,7 +454,9 @@ class ChatSession {
|
|
|
439
454
|
// Use session event bus
|
|
440
455
|
this.id,
|
|
441
456
|
this.services.resourceManager,
|
|
442
|
-
this.logger
|
|
457
|
+
this.logger,
|
|
458
|
+
compactionStrategy
|
|
459
|
+
// Pass compaction strategy
|
|
443
460
|
);
|
|
444
461
|
this.llmService = newLLMService;
|
|
445
462
|
this.logger.info(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session.d.ts","sourceRoot":"","sources":["../../src/session/chat-session.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chat-session.d.ts","sourceRoot":"","sources":["../../src/session/chat-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import { createDatabaseHistoryProvider } from "./history/factory.js";
|
|
3
|
-
import { createLLMService } from "../llm/services/factory.js";
|
|
3
|
+
import { createLLMService, createVercelModel } from "../llm/services/factory.js";
|
|
4
|
+
import { createCompactionStrategy } from "../context/compaction/index.js";
|
|
4
5
|
import {
|
|
5
6
|
SessionEventBus,
|
|
6
7
|
SessionEventNames
|
|
@@ -124,12 +125,18 @@ class ChatSession {
|
|
|
124
125
|
* Initializes session-specific services.
|
|
125
126
|
*/
|
|
126
127
|
async initializeServices() {
|
|
127
|
-
const
|
|
128
|
+
const runtimeConfig = this.services.stateManager.getRuntimeConfig(this.id);
|
|
129
|
+
const llmConfig = runtimeConfig.llm;
|
|
128
130
|
this.historyProvider = createDatabaseHistoryProvider(
|
|
129
131
|
this.services.storageManager.getDatabase(),
|
|
130
132
|
this.id,
|
|
131
133
|
this.logger
|
|
132
134
|
);
|
|
135
|
+
const model = createVercelModel(llmConfig);
|
|
136
|
+
const compactionStrategy = await createCompactionStrategy(runtimeConfig.compaction, {
|
|
137
|
+
logger: this.logger,
|
|
138
|
+
model
|
|
139
|
+
});
|
|
133
140
|
this.llmService = createLLMService(
|
|
134
141
|
llmConfig,
|
|
135
142
|
this.services.toolManager,
|
|
@@ -141,8 +148,10 @@ class ChatSession {
|
|
|
141
148
|
this.id,
|
|
142
149
|
this.services.resourceManager,
|
|
143
150
|
// Pass ResourceManager for blob storage
|
|
144
|
-
this.logger
|
|
151
|
+
this.logger,
|
|
145
152
|
// Pass logger for dependency injection
|
|
153
|
+
compactionStrategy
|
|
154
|
+
// Pass compaction strategy
|
|
146
155
|
);
|
|
147
156
|
this.logger.debug(`ChatSession ${this.id}: Services initialized with storage`);
|
|
148
157
|
}
|
|
@@ -410,6 +419,12 @@ class ChatSession {
|
|
|
410
419
|
*/
|
|
411
420
|
async switchLLM(newLLMConfig) {
|
|
412
421
|
try {
|
|
422
|
+
const runtimeConfig = this.services.stateManager.getRuntimeConfig(this.id);
|
|
423
|
+
const model = createVercelModel(newLLMConfig);
|
|
424
|
+
const compactionStrategy = await createCompactionStrategy(runtimeConfig.compaction, {
|
|
425
|
+
logger: this.logger,
|
|
426
|
+
model
|
|
427
|
+
});
|
|
413
428
|
const newLLMService = createLLMService(
|
|
414
429
|
newLLMConfig,
|
|
415
430
|
this.services.toolManager,
|
|
@@ -420,7 +435,9 @@ class ChatSession {
|
|
|
420
435
|
// Use session event bus
|
|
421
436
|
this.id,
|
|
422
437
|
this.services.resourceManager,
|
|
423
|
-
this.logger
|
|
438
|
+
this.logger,
|
|
439
|
+
compactionStrategy
|
|
440
|
+
// Pass compaction strategy
|
|
424
441
|
);
|
|
425
442
|
this.llmService = newLLMService;
|
|
426
443
|
this.logger.info(
|
|
@@ -42,10 +42,37 @@ class DatabaseHistoryProvider {
|
|
|
42
42
|
if (this.cache === null) {
|
|
43
43
|
const key = this.getMessagesKey();
|
|
44
44
|
try {
|
|
45
|
-
|
|
46
|
-
this.
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
const limit = 1e4;
|
|
46
|
+
const rawMessages = await this.database.getRange(key, 0, limit);
|
|
47
|
+
if (rawMessages.length === limit) {
|
|
48
|
+
this.logger.warn(
|
|
49
|
+
`DatabaseHistoryProvider: Session ${this.sessionId} hit message limit (${limit}), history may be truncated`
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
const seen = /* @__PURE__ */ new Set();
|
|
53
|
+
this.cache = [];
|
|
54
|
+
let duplicateCount = 0;
|
|
55
|
+
for (const msg of rawMessages) {
|
|
56
|
+
if (msg.id && seen.has(msg.id)) {
|
|
57
|
+
duplicateCount++;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (msg.id) {
|
|
61
|
+
seen.add(msg.id);
|
|
62
|
+
}
|
|
63
|
+
this.cache.push(msg);
|
|
64
|
+
}
|
|
65
|
+
if (duplicateCount > 0) {
|
|
66
|
+
this.logger.warn(
|
|
67
|
+
`DatabaseHistoryProvider: Found ${duplicateCount} duplicate messages for session ${this.sessionId}, deduped to ${this.cache.length}`
|
|
68
|
+
);
|
|
69
|
+
this.dirty = true;
|
|
70
|
+
this.scheduleFlush();
|
|
71
|
+
} else {
|
|
72
|
+
this.logger.debug(
|
|
73
|
+
`DatabaseHistoryProvider: Loaded ${this.cache.length} messages for session ${this.sessionId}`
|
|
74
|
+
);
|
|
75
|
+
}
|
|
49
76
|
} catch (error) {
|
|
50
77
|
this.logger.error(
|
|
51
78
|
`DatabaseHistoryProvider: Error loading messages for session ${this.sessionId}: ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -64,15 +91,17 @@ class DatabaseHistoryProvider {
|
|
|
64
91
|
if (this.cache === null) {
|
|
65
92
|
await this.getHistory();
|
|
66
93
|
}
|
|
94
|
+
if (message.id && this.cache.some((m) => m.id === message.id)) {
|
|
95
|
+
this.logger.debug(
|
|
96
|
+
`DatabaseHistoryProvider: Message ${message.id} already exists, skipping`
|
|
97
|
+
);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
67
100
|
this.cache.push(message);
|
|
68
101
|
try {
|
|
69
102
|
await this.database.append(key, message);
|
|
70
103
|
this.logger.debug(
|
|
71
|
-
`DatabaseHistoryProvider: Saved message for session ${this.sessionId}
|
|
72
|
-
{
|
|
73
|
-
role: message.role,
|
|
74
|
-
id: message.id
|
|
75
|
-
}
|
|
104
|
+
`DatabaseHistoryProvider: Saved message ${message.id} (${message.role}) for session ${this.sessionId}`
|
|
76
105
|
);
|
|
77
106
|
} catch (error) {
|
|
78
107
|
this.cache.pop();
|
|
@@ -159,18 +188,23 @@ class DatabaseHistoryProvider {
|
|
|
159
188
|
return;
|
|
160
189
|
}
|
|
161
190
|
const key = this.getMessagesKey();
|
|
162
|
-
const
|
|
191
|
+
const snapshot = [...this.cache];
|
|
192
|
+
const messageCount = snapshot.length;
|
|
193
|
+
this.logger.debug(
|
|
194
|
+
`DatabaseHistoryProvider: FLUSH START key=${key} snapshotSize=${messageCount} ids=[${snapshot.map((m) => m.id).join(",")}]`
|
|
195
|
+
);
|
|
163
196
|
try {
|
|
164
197
|
await this.database.delete(key);
|
|
165
|
-
|
|
198
|
+
this.logger.debug(`DatabaseHistoryProvider: FLUSH DELETED key=${key}`);
|
|
199
|
+
for (const msg of snapshot) {
|
|
166
200
|
await this.database.append(key, msg);
|
|
167
201
|
}
|
|
202
|
+
this.logger.debug(
|
|
203
|
+
`DatabaseHistoryProvider: FLUSH REAPPENDED key=${key} count=${messageCount}`
|
|
204
|
+
);
|
|
168
205
|
if (!this.flushTimer) {
|
|
169
206
|
this.dirty = false;
|
|
170
207
|
}
|
|
171
|
-
this.logger.debug(
|
|
172
|
-
`DatabaseHistoryProvider: Flushed ${messageCount} messages to DB for session ${this.sessionId}`
|
|
173
|
-
);
|
|
174
208
|
} catch (error) {
|
|
175
209
|
this.logger.error(
|
|
176
210
|
`DatabaseHistoryProvider: Error flushing messages for session ${this.sessionId}: ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -192,7 +226,7 @@ class DatabaseHistoryProvider {
|
|
|
192
226
|
}
|
|
193
227
|
this.flushTimer = setTimeout(() => {
|
|
194
228
|
this.flushTimer = null;
|
|
195
|
-
this.
|
|
229
|
+
this.flush().catch(() => {
|
|
196
230
|
});
|
|
197
231
|
}, DatabaseHistoryProvider.FLUSH_DELAY_MS);
|
|
198
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/session/history/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,uBAAwB,YAAW,4BAA4B;IAapE,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAbpB,OAAO,CAAC,MAAM,CAAe;IAG7B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,YAAY,CAA8B;IAGlD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAO;gBAGjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAC1B,MAAM,EAAE,YAAY;IAKlB,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../src/session/history/database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,uBAAwB,YAAW,4BAA4B;IAapE,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,QAAQ;IAbpB,OAAO,CAAC,MAAM,CAAe;IAG7B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,YAAY,CAA8B;IAGlD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAO;gBAGjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,QAAQ,EAC1B,MAAM,EAAE,YAAY;IAKlB,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA2DxC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCpD,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCtD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BnC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB5B;;;OAGG;YACW,OAAO;IA+CrB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;CAGzB"}
|
|
@@ -20,10 +20,37 @@ class DatabaseHistoryProvider {
|
|
|
20
20
|
if (this.cache === null) {
|
|
21
21
|
const key = this.getMessagesKey();
|
|
22
22
|
try {
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
const limit = 1e4;
|
|
24
|
+
const rawMessages = await this.database.getRange(key, 0, limit);
|
|
25
|
+
if (rawMessages.length === limit) {
|
|
26
|
+
this.logger.warn(
|
|
27
|
+
`DatabaseHistoryProvider: Session ${this.sessionId} hit message limit (${limit}), history may be truncated`
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
const seen = /* @__PURE__ */ new Set();
|
|
31
|
+
this.cache = [];
|
|
32
|
+
let duplicateCount = 0;
|
|
33
|
+
for (const msg of rawMessages) {
|
|
34
|
+
if (msg.id && seen.has(msg.id)) {
|
|
35
|
+
duplicateCount++;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (msg.id) {
|
|
39
|
+
seen.add(msg.id);
|
|
40
|
+
}
|
|
41
|
+
this.cache.push(msg);
|
|
42
|
+
}
|
|
43
|
+
if (duplicateCount > 0) {
|
|
44
|
+
this.logger.warn(
|
|
45
|
+
`DatabaseHistoryProvider: Found ${duplicateCount} duplicate messages for session ${this.sessionId}, deduped to ${this.cache.length}`
|
|
46
|
+
);
|
|
47
|
+
this.dirty = true;
|
|
48
|
+
this.scheduleFlush();
|
|
49
|
+
} else {
|
|
50
|
+
this.logger.debug(
|
|
51
|
+
`DatabaseHistoryProvider: Loaded ${this.cache.length} messages for session ${this.sessionId}`
|
|
52
|
+
);
|
|
53
|
+
}
|
|
27
54
|
} catch (error) {
|
|
28
55
|
this.logger.error(
|
|
29
56
|
`DatabaseHistoryProvider: Error loading messages for session ${this.sessionId}: ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -42,15 +69,17 @@ class DatabaseHistoryProvider {
|
|
|
42
69
|
if (this.cache === null) {
|
|
43
70
|
await this.getHistory();
|
|
44
71
|
}
|
|
72
|
+
if (message.id && this.cache.some((m) => m.id === message.id)) {
|
|
73
|
+
this.logger.debug(
|
|
74
|
+
`DatabaseHistoryProvider: Message ${message.id} already exists, skipping`
|
|
75
|
+
);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
45
78
|
this.cache.push(message);
|
|
46
79
|
try {
|
|
47
80
|
await this.database.append(key, message);
|
|
48
81
|
this.logger.debug(
|
|
49
|
-
`DatabaseHistoryProvider: Saved message for session ${this.sessionId}
|
|
50
|
-
{
|
|
51
|
-
role: message.role,
|
|
52
|
-
id: message.id
|
|
53
|
-
}
|
|
82
|
+
`DatabaseHistoryProvider: Saved message ${message.id} (${message.role}) for session ${this.sessionId}`
|
|
54
83
|
);
|
|
55
84
|
} catch (error) {
|
|
56
85
|
this.cache.pop();
|
|
@@ -137,18 +166,23 @@ class DatabaseHistoryProvider {
|
|
|
137
166
|
return;
|
|
138
167
|
}
|
|
139
168
|
const key = this.getMessagesKey();
|
|
140
|
-
const
|
|
169
|
+
const snapshot = [...this.cache];
|
|
170
|
+
const messageCount = snapshot.length;
|
|
171
|
+
this.logger.debug(
|
|
172
|
+
`DatabaseHistoryProvider: FLUSH START key=${key} snapshotSize=${messageCount} ids=[${snapshot.map((m) => m.id).join(",")}]`
|
|
173
|
+
);
|
|
141
174
|
try {
|
|
142
175
|
await this.database.delete(key);
|
|
143
|
-
|
|
176
|
+
this.logger.debug(`DatabaseHistoryProvider: FLUSH DELETED key=${key}`);
|
|
177
|
+
for (const msg of snapshot) {
|
|
144
178
|
await this.database.append(key, msg);
|
|
145
179
|
}
|
|
180
|
+
this.logger.debug(
|
|
181
|
+
`DatabaseHistoryProvider: FLUSH REAPPENDED key=${key} count=${messageCount}`
|
|
182
|
+
);
|
|
146
183
|
if (!this.flushTimer) {
|
|
147
184
|
this.dirty = false;
|
|
148
185
|
}
|
|
149
|
-
this.logger.debug(
|
|
150
|
-
`DatabaseHistoryProvider: Flushed ${messageCount} messages to DB for session ${this.sessionId}`
|
|
151
|
-
);
|
|
152
186
|
} catch (error) {
|
|
153
187
|
this.logger.error(
|
|
154
188
|
`DatabaseHistoryProvider: Error flushing messages for session ${this.sessionId}: ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -170,7 +204,7 @@ class DatabaseHistoryProvider {
|
|
|
170
204
|
}
|
|
171
205
|
this.flushTimer = setTimeout(() => {
|
|
172
206
|
this.flushTimer = null;
|
|
173
|
-
this.
|
|
207
|
+
this.flush().catch(() => {
|
|
174
208
|
});
|
|
175
209
|
}, DatabaseHistoryProvider.FLUSH_DELAY_MS);
|
|
176
210
|
}
|
|
@@ -245,13 +245,14 @@ class SessionManager {
|
|
|
245
245
|
await this.ensureInitialized();
|
|
246
246
|
const session = await this.getSession(sessionId);
|
|
247
247
|
if (session) {
|
|
248
|
-
await session.reset();
|
|
249
248
|
await session.cleanup();
|
|
250
249
|
this.sessions.delete(sessionId);
|
|
251
250
|
}
|
|
252
251
|
const sessionKey = `session:${sessionId}`;
|
|
253
252
|
await this.services.storageManager.getDatabase().delete(sessionKey);
|
|
254
253
|
await this.services.storageManager.getCache().delete(sessionKey);
|
|
254
|
+
const messagesKey = `messages:${sessionId}`;
|
|
255
|
+
await this.services.storageManager.getDatabase().delete(messagesKey);
|
|
255
256
|
this.logger.debug(`Deleted session and conversation history: ${sessionId}`);
|
|
256
257
|
}
|
|
257
258
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -223,13 +223,14 @@ class SessionManager {
|
|
|
223
223
|
await this.ensureInitialized();
|
|
224
224
|
const session = await this.getSession(sessionId);
|
|
225
225
|
if (session) {
|
|
226
|
-
await session.reset();
|
|
227
226
|
await session.cleanup();
|
|
228
227
|
this.sessions.delete(sessionId);
|
|
229
228
|
}
|
|
230
229
|
const sessionKey = `session:${sessionId}`;
|
|
231
230
|
await this.services.storageManager.getDatabase().delete(sessionKey);
|
|
232
231
|
await this.services.storageManager.getCache().delete(sessionKey);
|
|
232
|
+
const messagesKey = `messages:${sessionId}`;
|
|
233
|
+
await this.services.storageManager.getDatabase().delete(messagesKey);
|
|
233
234
|
this.logger.debug(`Deleted session and conversation history: ${sessionId}`);
|
|
234
235
|
}
|
|
235
236
|
/**
|
|
@@ -21,19 +21,16 @@ __export(factory_exports, {
|
|
|
21
21
|
createBlobStore: () => createBlobStore
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(factory_exports);
|
|
24
|
-
var
|
|
25
|
-
var import_memory_blob_store = require("./memory-blob-store.js");
|
|
24
|
+
var import_registry = require("./registry.js");
|
|
26
25
|
function createBlobStore(config, logger) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
case "local":
|
|
32
|
-
logger.info("Using local file-based blob store");
|
|
33
|
-
return new import_local_blob_store.LocalBlobStore(config, logger);
|
|
34
|
-
default:
|
|
35
|
-
throw new Error(`Unknown blob store type: ${config.type}`);
|
|
26
|
+
const validatedConfig = import_registry.blobStoreRegistry.validateConfig(config);
|
|
27
|
+
const provider = import_registry.blobStoreRegistry.get(validatedConfig.type);
|
|
28
|
+
if (!provider) {
|
|
29
|
+
throw new Error(`Provider '${validatedConfig.type}' not found in registry`);
|
|
36
30
|
}
|
|
31
|
+
const providerName = provider.metadata?.displayName || validatedConfig.type;
|
|
32
|
+
logger.info(`Using ${providerName} blob store`);
|
|
33
|
+
return provider.create(validatedConfig, logger);
|
|
37
34
|
}
|
|
38
35
|
// Annotate the CommonJS export names for ESM import in node:
|
|
39
36
|
0 && (module.exports = {
|
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
import type { BlobStore } from './types.js';
|
|
2
|
-
import type { BlobStoreConfig } from './schemas.js';
|
|
3
2
|
import type { IDextoLogger } from '../../logger/v2/types.js';
|
|
4
3
|
/**
|
|
5
|
-
* Create a blob store based on configuration.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* Create a blob store based on configuration using the provider registry.
|
|
5
|
+
*
|
|
6
|
+
* This factory function:
|
|
7
|
+
* 1. Validates the configuration against the registered provider's schema
|
|
8
|
+
* 2. Looks up the provider in the registry
|
|
9
|
+
* 3. Calls the provider's create method to instantiate the blob store
|
|
10
|
+
*
|
|
11
|
+
* The configuration type is determined at runtime by the 'type' field,
|
|
12
|
+
* which must match a registered provider. Custom providers can be registered
|
|
13
|
+
* via blobStoreRegistry.register() before calling this function.
|
|
14
|
+
*
|
|
15
|
+
* @param config - Blob store configuration with a 'type' discriminator
|
|
16
|
+
* @param logger - Logger instance for the blob store
|
|
17
|
+
* @returns A BlobStore implementation
|
|
18
|
+
* @throws Error if the provider type is not registered or validation fails
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* // Using built-in provider
|
|
23
|
+
* const blob = createBlobStore({ type: 'local', storePath: '/tmp/blobs' }, logger);
|
|
24
|
+
*
|
|
25
|
+
* // Using custom provider (registered beforehand)
|
|
26
|
+
* import { blobStoreRegistry } from '@dexto/core';
|
|
27
|
+
* import { s3Provider } from './storage/s3-provider.js';
|
|
28
|
+
*
|
|
29
|
+
* blobStoreRegistry.register(s3Provider);
|
|
30
|
+
* const blob = createBlobStore({ type: 's3', bucket: 'my-bucket' }, logger);
|
|
31
|
+
* ```
|
|
9
32
|
*/
|
|
10
|
-
export declare function createBlobStore(config:
|
|
33
|
+
export declare function createBlobStore(config: {
|
|
34
|
+
type: string;
|
|
35
|
+
[key: string]: any;
|
|
36
|
+
}, logger: IDextoLogger): BlobStore;
|
|
11
37
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/storage/blob/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/storage/blob/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,eAAe,CAC3B,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5C,MAAM,EAAE,YAAY,GACrB,SAAS,CAgBX"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import "../../chunk-PTJYTZNU.js";
|
|
2
|
-
import {
|
|
3
|
-
import { InMemoryBlobStore } from "./memory-blob-store.js";
|
|
2
|
+
import { blobStoreRegistry } from "./registry.js";
|
|
4
3
|
function createBlobStore(config, logger) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
case "local":
|
|
10
|
-
logger.info("Using local file-based blob store");
|
|
11
|
-
return new LocalBlobStore(config, logger);
|
|
12
|
-
default:
|
|
13
|
-
throw new Error(`Unknown blob store type: ${config.type}`);
|
|
4
|
+
const validatedConfig = blobStoreRegistry.validateConfig(config);
|
|
5
|
+
const provider = blobStoreRegistry.get(validatedConfig.type);
|
|
6
|
+
if (!provider) {
|
|
7
|
+
throw new Error(`Provider '${validatedConfig.type}' not found in registry`);
|
|
14
8
|
}
|
|
9
|
+
const providerName = provider.metadata?.displayName || validatedConfig.type;
|
|
10
|
+
logger.info(`Using ${providerName} blob store`);
|
|
11
|
+
return provider.create(validatedConfig, logger);
|
|
15
12
|
}
|
|
16
13
|
export {
|
|
17
14
|
createBlobStore
|
|
@@ -0,0 +1,56 @@
|
|
|
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 blob_exports = {};
|
|
20
|
+
__export(blob_exports, {
|
|
21
|
+
BLOB_STORE_TYPES: () => import_schemas.BLOB_STORE_TYPES,
|
|
22
|
+
BlobStoreConfigSchema: () => import_schemas.BlobStoreConfigSchema,
|
|
23
|
+
BlobStoreRegistry: () => import_registry2.BlobStoreRegistry,
|
|
24
|
+
InMemoryBlobStore: () => import_memory_blob_store.InMemoryBlobStore,
|
|
25
|
+
InMemoryBlobStoreSchema: () => import_schemas.InMemoryBlobStoreSchema,
|
|
26
|
+
LocalBlobStore: () => import_local_blob_store.LocalBlobStore,
|
|
27
|
+
LocalBlobStoreSchema: () => import_schemas.LocalBlobStoreSchema,
|
|
28
|
+
blobStoreRegistry: () => import_registry2.blobStoreRegistry,
|
|
29
|
+
createBlobStore: () => import_factory.createBlobStore
|
|
30
|
+
});
|
|
31
|
+
module.exports = __toCommonJS(blob_exports);
|
|
32
|
+
var import_registry = require("./registry.js");
|
|
33
|
+
var import_providers = require("./providers/index.js");
|
|
34
|
+
var import_factory = require("./factory.js");
|
|
35
|
+
var import_registry2 = require("./registry.js");
|
|
36
|
+
var import_schemas = require("./schemas.js");
|
|
37
|
+
var import_local_blob_store = require("./local-blob-store.js");
|
|
38
|
+
var import_memory_blob_store = require("./memory-blob-store.js");
|
|
39
|
+
if (!import_registry.blobStoreRegistry.has("local")) {
|
|
40
|
+
import_registry.blobStoreRegistry.register(import_providers.localBlobStoreProvider);
|
|
41
|
+
}
|
|
42
|
+
if (!import_registry.blobStoreRegistry.has("in-memory")) {
|
|
43
|
+
import_registry.blobStoreRegistry.register(import_providers.inMemoryBlobStoreProvider);
|
|
44
|
+
}
|
|
45
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
46
|
+
0 && (module.exports = {
|
|
47
|
+
BLOB_STORE_TYPES,
|
|
48
|
+
BlobStoreConfigSchema,
|
|
49
|
+
BlobStoreRegistry,
|
|
50
|
+
InMemoryBlobStore,
|
|
51
|
+
InMemoryBlobStoreSchema,
|
|
52
|
+
LocalBlobStore,
|
|
53
|
+
LocalBlobStoreSchema,
|
|
54
|
+
blobStoreRegistry,
|
|
55
|
+
createBlobStore
|
|
56
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Blob Storage Module
|
|
3
|
+
*
|
|
4
|
+
* This module provides a flexible blob storage system with support for
|
|
5
|
+
* multiple backends through a provider pattern.
|
|
6
|
+
*
|
|
7
|
+
* ## Built-in Providers
|
|
8
|
+
* - `local`: Store blobs on the local filesystem
|
|
9
|
+
* - `in-memory`: Store blobs in RAM (for testing/development)
|
|
10
|
+
*
|
|
11
|
+
* ## Custom Providers
|
|
12
|
+
* Custom providers (e.g., S3, Azure, Supabase) can be registered at the
|
|
13
|
+
* CLI/server layer before configuration loading.
|
|
14
|
+
*
|
|
15
|
+
* ## Usage
|
|
16
|
+
*
|
|
17
|
+
* ### Using built-in providers
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { createBlobStore } from '@dexto/core';
|
|
20
|
+
*
|
|
21
|
+
* const blob = createBlobStore({ type: 'local', storePath: '/tmp' }, logger);
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* ### Registering custom providers
|
|
25
|
+
* ```typescript
|
|
26
|
+
* import { blobStoreRegistry, type BlobStoreProvider } from '@dexto/core';
|
|
27
|
+
*
|
|
28
|
+
* const s3Provider: BlobStoreProvider<'s3', S3Config> = {
|
|
29
|
+
* type: 's3',
|
|
30
|
+
* configSchema: S3ConfigSchema,
|
|
31
|
+
* create: (config, logger) => new S3BlobStore(config, logger),
|
|
32
|
+
* };
|
|
33
|
+
*
|
|
34
|
+
* blobStoreRegistry.register(s3Provider);
|
|
35
|
+
* const blob = createBlobStore({ type: 's3', bucket: 'my-bucket' }, logger);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export { createBlobStore } from './factory.js';
|
|
39
|
+
export { blobStoreRegistry, BlobStoreRegistry } from './registry.js';
|
|
40
|
+
export type { BlobStoreProvider } from './provider.js';
|
|
41
|
+
export type { BlobStore, BlobInput, BlobMetadata, BlobReference, BlobData, BlobStats, StoredBlobMetadata, } from './types.js';
|
|
42
|
+
export { BLOB_STORE_TYPES, BlobStoreConfigSchema, InMemoryBlobStoreSchema, LocalBlobStoreSchema, type BlobStoreType, type BlobStoreConfig, type InMemoryBlobStoreConfig, type LocalBlobStoreConfig, } from './schemas.js';
|
|
43
|
+
export { LocalBlobStore } from './local-blob-store.js';
|
|
44
|
+
export { InMemoryBlobStore } from './memory-blob-store.js';
|
|
45
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/blob/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAiBH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGvD,YAAY,EACR,SAAS,EACT,SAAS,EACT,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,SAAS,EACT,kBAAkB,GACrB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACH,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|