@dexto/core 1.3.0 → 1.5.0
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 +53 -9
- package/dist/agent/DextoAgent.cjs +570 -210
- package/dist/agent/DextoAgent.d.ts +175 -35
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +568 -208
- package/dist/agent/agentCard.js +1 -1
- package/dist/agent/error-codes.cjs +1 -0
- package/dist/agent/error-codes.d.ts +2 -1
- package/dist/agent/error-codes.d.ts.map +1 -1
- package/dist/agent/error-codes.js +2 -1
- package/dist/agent/errors.cjs +13 -0
- package/dist/agent/errors.d.ts +4 -0
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/errors.js +14 -1
- package/dist/agent/index.cjs +4 -1
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +6 -2
- package/dist/agent/schemas.cjs +90 -68
- package/dist/agent/schemas.d.ts +5998 -146
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +90 -65
- package/dist/agent/state-manager.cjs +5 -5
- package/dist/agent/state-manager.d.ts +4 -4
- package/dist/agent/state-manager.js +6 -6
- package/dist/agent/types.d.ts +24 -10
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/approval/error-codes.js +1 -1
- package/dist/approval/errors.js +1 -1
- package/dist/approval/factory.js +1 -1
- package/dist/approval/index.js +1 -1
- package/dist/approval/manager.cjs +234 -4
- package/dist/approval/manager.d.ts +131 -4
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +225 -5
- package/dist/approval/schemas.cjs +57 -7
- package/dist/approval/schemas.d.ts +344 -33
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +54 -8
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +32 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +2 -1
- package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
- 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/compaction/overflow.cjs +43 -0
- package/dist/context/compaction/overflow.d.ts +33 -0
- package/dist/context/compaction/overflow.d.ts.map +1 -0
- package/dist/context/compaction/overflow.js +19 -0
- 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/{llm/tokenizer/factory.cjs → context/compaction/registry.cjs} +15 -20
- 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/{llm/tokenizer/types.cjs → context/compaction/strategies/noop.cjs} +12 -9
- 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/compaction/strategies/reactive-overflow.cjs +201 -0
- package/dist/context/compaction/strategies/reactive-overflow.d.ts +81 -0
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
- package/dist/context/compaction/strategies/reactive-overflow.js +178 -0
- package/dist/context/compaction/types.d.ts +20 -0
- package/dist/context/compaction/types.d.ts.map +1 -0
- package/dist/context/error-codes.cjs +7 -0
- package/dist/context/error-codes.d.ts +8 -1
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +8 -1
- package/dist/context/errors.cjs +68 -0
- package/dist/context/errors.d.ts +21 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +69 -1
- 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 +2 -1
- package/dist/context/manager.cjs +280 -323
- package/dist/context/manager.d.ts +65 -111
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +280 -328
- package/dist/context/media-helpers.js +1 -1
- package/dist/context/types.cjs +49 -0
- package/dist/context/types.d.ts +187 -72
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +35 -0
- package/dist/context/utils.cjs +293 -290
- package/dist/context/utils.d.ts +32 -18
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +293 -290
- package/dist/errors/DextoBaseError.js +1 -1
- package/dist/errors/DextoRuntimeError.js +1 -1
- package/dist/errors/DextoValidationError.js +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +3 -4
- package/dist/errors/types.js +1 -1
- package/dist/events/index.cjs +18 -1
- package/dist/events/index.d.ts +149 -12
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +19 -2
- package/dist/filesystem/error-codes.js +1 -1
- package/dist/filesystem/errors.js +1 -1
- 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 +40 -1
- package/dist/filesystem/index.d.ts +1 -1
- package/dist/filesystem/index.d.ts.map +1 -1
- package/dist/filesystem/index.js +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 +70 -2
- 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/{llm/tokenizer/default.cjs → image/index.cjs} +10 -19
- 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.d.ts +231 -0
- package/dist/image/types.d.ts.map +1 -0
- package/dist/image/types.js +0 -0
- package/dist/index.browser.cjs +23 -8
- package/dist/index.browser.d.ts +4 -3
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +20 -3
- 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 +3 -1
- package/dist/llm/error-codes.cjs +1 -1
- package/dist/llm/error-codes.d.ts +1 -1
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +2 -2
- package/dist/llm/errors.cjs +34 -10
- package/dist/llm/errors.d.ts +23 -11
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +36 -12
- package/dist/llm/executor/stream-processor.cjs +375 -0
- package/dist/llm/executor/stream-processor.d.ts +55 -0
- package/dist/llm/executor/stream-processor.d.ts.map +1 -0
- package/dist/llm/executor/stream-processor.js +352 -0
- package/dist/llm/executor/tool-output-truncator.cjs +75 -0
- package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
- package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
- package/dist/llm/executor/tool-output-truncator.js +48 -0
- package/dist/llm/executor/turn-executor.cjs +780 -0
- package/dist/llm/executor/turn-executor.d.ts +167 -0
- package/dist/llm/executor/turn-executor.d.ts.map +1 -0
- package/dist/llm/executor/turn-executor.js +711 -0
- package/dist/llm/executor/types.cjs +16 -0
- package/dist/llm/executor/types.d.ts +27 -0
- package/dist/llm/executor/types.d.ts.map +1 -0
- package/dist/llm/executor/types.js +0 -0
- package/dist/llm/formatters/vercel.cjs +26 -188
- package/dist/llm/formatters/vercel.d.ts +2 -14
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +25 -187
- 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 +569 -52
- package/dist/llm/registry.d.ts +79 -39
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +564 -49
- package/dist/llm/resolver.cjs +62 -34
- package/dist/llm/resolver.d.ts +3 -3
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +69 -38
- package/dist/llm/schemas.cjs +92 -97
- package/dist/llm/schemas.d.ts +162 -39
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +93 -100
- package/dist/llm/services/factory.cjs +88 -103
- package/dist/llm/services/factory.d.ts +17 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +87 -93
- package/dist/llm/services/test-utils.integration.cjs +28 -10
- 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 +33 -12
- package/dist/llm/services/types.d.ts +1 -28
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +58 -469
- package/dist/llm/services/vercel.d.ts +39 -21
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +60 -476
- package/dist/llm/types.cjs +11 -4
- package/dist/llm/types.d.ts +9 -9
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +12 -4
- package/dist/llm/validation.js +1 -1
- package/dist/logger/browser.js +1 -1
- package/dist/logger/factory.js +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/logger/logger.js +1 -1
- package/dist/logger/v2/dexto-logger.cjs +34 -6
- package/dist/logger/v2/dexto-logger.d.ts +20 -2
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/dexto-logger.js +35 -7
- package/dist/logger/v2/error-codes.js +1 -1
- package/dist/logger/v2/errors.js +1 -1
- package/dist/logger/v2/schemas.js +1 -1
- package/dist/logger/v2/test-utils.cjs +70 -0
- package/dist/logger/v2/test-utils.d.ts +17 -0
- package/dist/logger/v2/test-utils.d.ts.map +1 -0
- package/dist/logger/v2/test-utils.js +46 -0
- package/dist/logger/v2/transport-factory.js +1 -1
- package/dist/logger/v2/transports/console-transport.js +1 -1
- package/dist/logger/v2/transports/file-transport.cjs +6 -0
- package/dist/logger/v2/transports/file-transport.d.ts +4 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/file-transport.js +7 -1
- package/dist/logger/v2/types.cjs +1 -0
- package/dist/logger/v2/types.d.ts +18 -2
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/logger/v2/types.js +2 -1
- package/dist/mcp/error-codes.cjs +1 -0
- package/dist/mcp/error-codes.d.ts +1 -0
- package/dist/mcp/error-codes.d.ts.map +1 -1
- package/dist/mcp/error-codes.js +2 -1
- package/dist/mcp/errors.cjs +13 -0
- package/dist/mcp/errors.d.ts +7 -0
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/errors.js +14 -1
- package/dist/mcp/manager.cjs +12 -0
- package/dist/mcp/manager.d.ts +17 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +13 -1
- package/dist/mcp/mcp-client.cjs +0 -3
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +1 -4
- package/dist/mcp/resolver.js +1 -1
- package/dist/mcp/schemas.cjs +6 -0
- package/dist/mcp/schemas.d.ts +52 -0
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +6 -1
- package/dist/memory/error-codes.js +1 -1
- package/dist/memory/errors.js +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/manager.js +1 -1
- package/dist/memory/schemas.d.ts +3 -3
- package/dist/memory/schemas.js +1 -1
- package/dist/plugins/builtins/content-policy.js +1 -1
- package/dist/plugins/builtins/response-sanitizer.js +1 -1
- 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 +4 -1
- 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 +7 -2
- package/dist/plugins/loader.js +1 -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 +93 -8
- package/dist/plugins/registrations/builtins.js +1 -1
- 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 +65 -8
- package/dist/plugins/schemas.d.ts.map +1 -1
- package/dist/plugins/schemas.js +16 -5
- package/dist/plugins/types.d.ts +0 -1
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.js +1 -1
- package/dist/process/error-codes.js +1 -1
- package/dist/process/errors.js +1 -1
- package/dist/process/index.js +1 -1
- package/dist/process/process-service.cjs +78 -26
- package/dist/process/process-service.d.ts +6 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +79 -27
- package/dist/process/types.d.ts +2 -2
- package/dist/process/types.d.ts.map +1 -1
- package/dist/prompts/error-codes.cjs +1 -0
- package/dist/prompts/error-codes.d.ts +2 -1
- package/dist/prompts/error-codes.d.ts.map +1 -1
- package/dist/prompts/error-codes.js +2 -1
- package/dist/prompts/errors.cjs +15 -0
- package/dist/prompts/errors.d.ts +4 -0
- package/dist/prompts/errors.d.ts.map +1 -1
- package/dist/prompts/errors.js +16 -1
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/name-validation.js +1 -1
- package/dist/prompts/prompt-manager.cjs +13 -2
- package/dist/prompts/prompt-manager.d.ts +7 -0
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +14 -3
- package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
- package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +13 -4
- package/dist/prompts/providers/custom-prompt-provider.js +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
- package/dist/prompts/schemas.d.ts +12 -0
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +1 -1
- package/dist/prompts/types.d.ts +2 -0
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/prompts/utils.js +1 -1
- 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 +95 -0
- package/dist/providers/discovery.d.ts +94 -0
- package/dist/providers/discovery.d.ts.map +1 -0
- package/dist/providers/discovery.js +70 -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/error-codes.js +1 -1
- package/dist/resources/errors.js +1 -1
- package/dist/resources/handlers/blob-handler.js +1 -1
- package/dist/resources/handlers/factory.js +1 -1
- package/dist/resources/handlers/filesystem-handler.js +1 -1
- package/dist/resources/index.js +1 -1
- package/dist/resources/internal-provider.js +1 -1
- package/dist/resources/manager.js +1 -1
- package/dist/resources/reference-parser.cjs +3 -3
- package/dist/resources/reference-parser.d.ts.map +1 -1
- package/dist/resources/reference-parser.js +4 -4
- package/dist/resources/schemas.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/search/search-service.js +1 -1
- package/dist/session/chat-session.cjs +169 -54
- package/dist/session/chat-session.d.ts +69 -29
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +171 -56
- package/dist/session/error-codes.js +1 -1
- package/dist/session/errors.js +1 -1
- package/dist/session/history/database.cjs +134 -21
- package/dist/session/history/database.d.ts +37 -8
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +135 -22
- package/dist/session/history/factory.js +1 -1
- package/dist/session/history/memory.cjs +18 -0
- package/dist/session/history/memory.d.ts +8 -0
- package/dist/session/history/memory.d.ts.map +1 -1
- package/dist/session/history/memory.js +19 -1
- package/dist/session/history/types.d.ts +13 -1
- package/dist/session/history/types.d.ts.map +1 -1
- package/dist/session/index.cjs +3 -0
- package/dist/session/index.d.ts +3 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +3 -1
- package/dist/session/message-queue.cjs +201 -0
- package/dist/session/message-queue.d.ts +114 -0
- package/dist/session/message-queue.d.ts.map +1 -0
- package/dist/session/message-queue.js +178 -0
- package/dist/session/schemas.js +1 -1
- package/dist/session/session-manager.cjs +57 -7
- package/dist/session/session-manager.d.ts +18 -0
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +58 -8
- package/dist/session/title-generator.cjs +4 -8
- package/dist/session/title-generator.d.ts +1 -2
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +5 -9
- package/dist/session/types.cjs +16 -0
- package/dist/session/types.d.ts +14 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +0 -0
- 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 +9 -12
- 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/local-blob-store.js +1 -1
- package/dist/storage/blob/memory-blob-store.js +1 -1
- 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 +7 -12
- 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 +9 -27
- 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/memory-cache-store.js +1 -1
- 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/redis-store.js +1 -1
- package/dist/{llm/tokenizer/google.cjs → storage/cache/registry.cjs} +23 -25
- 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 +4 -2
- 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 +9 -38
- 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/memory-database-store.js +1 -1
- package/dist/storage/database/postgres-store.cjs +12 -0
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +13 -1
- 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 +8 -2
- package/dist/storage/database/schemas.d.ts +3 -4
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +5 -2
- package/dist/storage/database/sqlite-store.js +1 -1
- 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 +7 -1
- 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 +81 -1
- 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 +33 -4
- package/dist/storage/schemas.cjs +4 -0
- package/dist/storage/schemas.d.ts +17 -50
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +6 -2
- package/dist/storage/storage-manager.cjs +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +4 -4
- package/dist/systemPrompt/contributors.js +1 -1
- package/dist/systemPrompt/error-codes.js +1 -1
- package/dist/systemPrompt/errors.js +1 -1
- 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 +7 -6
- package/dist/systemPrompt/index.js +1 -1
- package/dist/systemPrompt/manager.js +1 -1
- 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 +3 -3
- package/dist/systemPrompt/schemas.cjs +2 -2
- package/dist/systemPrompt/schemas.d.ts +18 -18
- package/dist/systemPrompt/schemas.js +3 -3
- package/dist/telemetry/decorators.js +1 -1
- package/dist/telemetry/error-codes.js +1 -1
- package/dist/telemetry/errors.js +1 -1
- package/dist/telemetry/exporters.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/telemetry/telemetry.js +1 -1
- package/dist/telemetry/utils.js +1 -1
- package/dist/tools/bash-pattern-utils.cjs +91 -0
- package/dist/tools/bash-pattern-utils.d.ts +58 -0
- package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
- package/dist/tools/bash-pattern-utils.js +64 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
- package/dist/tools/custom-tool-registry.cjs +64 -0
- package/dist/tools/custom-tool-registry.d.ts +120 -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/display-types.cjs +60 -0
- package/dist/tools/display-types.d.ts +133 -0
- package/dist/tools/display-types.d.ts.map +1 -0
- package/dist/tools/display-types.js +32 -0
- package/dist/tools/error-codes.cjs +5 -0
- package/dist/tools/error-codes.d.ts +6 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +6 -1
- package/dist/tools/errors.cjs +71 -0
- package/dist/tools/errors.d.ts +33 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +72 -1
- package/dist/tools/index.cjs +15 -1
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +13 -2
- 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 +4 -10
- package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
- 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/implementations/search-history-tool.js +1 -1
- package/dist/tools/internal-tools/provider.cjs +175 -31
- package/dist/tools/internal-tools/provider.d.ts +62 -14
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +176 -32
- package/dist/tools/internal-tools/registry.cjs +19 -43
- package/dist/tools/internal-tools/registry.d.ts +32 -11
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +20 -44
- package/dist/tools/schemas.cjs +36 -6
- package/dist/tools/schemas.d.ts +74 -5
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +30 -6
- package/dist/tools/tool-manager.cjs +279 -30
- package/dist/tools/tool-manager.d.ts +45 -4
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +284 -31
- package/dist/tools/types.d.ts +63 -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 +20 -2
- package/dist/utils/async-context.js +1 -1
- package/dist/utils/debug.js +1 -1
- package/dist/{llm/tokenizer/anthropic.cjs → utils/defer.cjs} +19 -20
- package/dist/utils/defer.d.ts +63 -0
- package/dist/utils/defer.d.ts.map +1 -0
- package/dist/utils/defer.js +19 -0
- package/dist/utils/error-conversion.js +1 -1
- package/dist/utils/execution-context.js +1 -1
- package/dist/utils/fs-walk.js +1 -1
- package/dist/utils/index.cjs +3 -3
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/path.js +1 -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 +19 -4
- package/dist/utils/result.js +1 -1
- package/dist/utils/safe-stringify.js +1 -1
- package/dist/utils/schema-metadata.js +1 -1
- package/dist/utils/schema.js +1 -1
- package/dist/utils/service-initializer.cjs +15 -37
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +16 -38
- package/dist/utils/user-info.js +1 -1
- package/dist/utils/zod-schema-converter.js +1 -1
- package/package.json +10 -8
- package/dist/context/compression/middle-removal.cjs +0 -95
- package/dist/context/compression/middle-removal.d.ts +0 -47
- package/dist/context/compression/middle-removal.d.ts.map +0 -1
- package/dist/context/compression/middle-removal.js +0 -72
- package/dist/context/compression/oldest-removal.cjs +0 -83
- package/dist/context/compression/oldest-removal.d.ts +0 -42
- package/dist/context/compression/oldest-removal.d.ts.map +0 -1
- package/dist/context/compression/oldest-removal.js +0 -60
- package/dist/context/compression/types.d.ts +0 -18
- package/dist/context/compression/types.d.ts.map +0 -1
- package/dist/llm/formatters/anthropic.cjs +0 -257
- package/dist/llm/formatters/anthropic.d.ts +0 -46
- package/dist/llm/formatters/anthropic.d.ts.map +0 -1
- package/dist/llm/formatters/anthropic.js +0 -239
- package/dist/llm/formatters/factory.cjs +0 -50
- package/dist/llm/formatters/factory.d.ts +0 -10
- package/dist/llm/formatters/factory.d.ts.map +0 -1
- package/dist/llm/formatters/factory.js +0 -27
- package/dist/llm/formatters/openai.cjs +0 -203
- package/dist/llm/formatters/openai.d.ts +0 -39
- package/dist/llm/formatters/openai.d.ts.map +0 -1
- package/dist/llm/formatters/openai.js +0 -184
- package/dist/llm/formatters/types.d.ts +0 -41
- package/dist/llm/formatters/types.d.ts.map +0 -1
- package/dist/llm/services/anthropic.cjs +0 -511
- package/dist/llm/services/anthropic.d.ts +0 -48
- package/dist/llm/services/anthropic.d.ts.map +0 -1
- package/dist/llm/services/anthropic.js +0 -447
- package/dist/llm/services/openai.cjs +0 -611
- package/dist/llm/services/openai.d.ts +0 -48
- package/dist/llm/services/openai.d.ts.map +0 -1
- package/dist/llm/services/openai.js +0 -547
- package/dist/llm/tokenizer/anthropic.d.ts +0 -19
- package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
- package/dist/llm/tokenizer/anthropic.js +0 -20
- package/dist/llm/tokenizer/default.d.ts +0 -14
- package/dist/llm/tokenizer/default.d.ts.map +0 -1
- package/dist/llm/tokenizer/default.js +0 -18
- package/dist/llm/tokenizer/factory.d.ts +0 -12
- package/dist/llm/tokenizer/factory.d.ts.map +0 -1
- package/dist/llm/tokenizer/factory.js +0 -21
- package/dist/llm/tokenizer/google.d.ts +0 -29
- package/dist/llm/tokenizer/google.d.ts.map +0 -1
- package/dist/llm/tokenizer/google.js +0 -29
- package/dist/llm/tokenizer/openai.cjs +0 -115
- package/dist/llm/tokenizer/openai.d.ts +0 -41
- package/dist/llm/tokenizer/openai.d.ts.map +0 -1
- package/dist/llm/tokenizer/openai.js +0 -91
- package/dist/llm/tokenizer/types.d.ts +0 -18
- package/dist/llm/tokenizer/types.d.ts.map +0 -1
- package/dist/llm/tokenizer/types.js +0 -10
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -106
- 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 -73
- 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 -62
- 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 -39
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -57
- 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 -34
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -71
- 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 -48
- 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 -55
- 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 -32
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -56
- 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 -33
- 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
- /package/dist/{llm/formatters → context/compaction}/types.js +0 -0
- /package/dist/{llm/formatters → image}/types.cjs +0 -0
|
@@ -0,0 +1,201 @@
|
|
|
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 reactive_overflow_exports = {};
|
|
20
|
+
__export(reactive_overflow_exports, {
|
|
21
|
+
ReactiveOverflowStrategy: () => ReactiveOverflowStrategy
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(reactive_overflow_exports);
|
|
24
|
+
var import_ai = require("ai");
|
|
25
|
+
var import_types = require("../../types.js");
|
|
26
|
+
const DEFAULT_OPTIONS = {
|
|
27
|
+
preserveLastNTurns: 2,
|
|
28
|
+
maxSummaryTokens: 2e3,
|
|
29
|
+
summaryPrompt: `You are a conversation summarizer. Summarize the following conversation history concisely, focusing on:
|
|
30
|
+
- What tasks were attempted and their outcomes
|
|
31
|
+
- Current state and context the assistant needs to remember
|
|
32
|
+
- Any important decisions or information discovered
|
|
33
|
+
- What the user was trying to accomplish
|
|
34
|
+
|
|
35
|
+
Be concise but preserve essential context. Output only the summary, no preamble.
|
|
36
|
+
|
|
37
|
+
Conversation:
|
|
38
|
+
{conversation}`
|
|
39
|
+
};
|
|
40
|
+
class ReactiveOverflowStrategy {
|
|
41
|
+
name = "reactive-overflow";
|
|
42
|
+
model;
|
|
43
|
+
options;
|
|
44
|
+
logger;
|
|
45
|
+
constructor(model, options = {}, logger) {
|
|
46
|
+
this.model = model;
|
|
47
|
+
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
48
|
+
this.logger = logger;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Generate a summary message for the old portion of history.
|
|
52
|
+
*
|
|
53
|
+
* IMPORTANT: This does NOT replace history. It returns a summary message
|
|
54
|
+
* that the caller should ADD to history via contextManager.addMessage().
|
|
55
|
+
* Read-time filtering (filterCompacted) will then exclude pre-summary
|
|
56
|
+
* messages when formatting for LLM.
|
|
57
|
+
*
|
|
58
|
+
* @param history The full conversation history
|
|
59
|
+
* @returns Array with single summary message to add, or empty if nothing to summarize
|
|
60
|
+
*/
|
|
61
|
+
async compact(history) {
|
|
62
|
+
if (history.length <= 2) {
|
|
63
|
+
this.logger.debug("ReactiveOverflowStrategy: History too short, skipping compaction");
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
const { toSummarize, toKeep } = this.splitHistory(history);
|
|
67
|
+
if (toSummarize.length === 0) {
|
|
68
|
+
this.logger.debug("ReactiveOverflowStrategy: No messages to summarize");
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
this.logger.info(
|
|
72
|
+
`ReactiveOverflowStrategy: Summarizing ${toSummarize.length} messages, keeping ${toKeep.length}`
|
|
73
|
+
);
|
|
74
|
+
const summary = await this.generateSummary(toSummarize);
|
|
75
|
+
const summaryMessage = {
|
|
76
|
+
role: "assistant",
|
|
77
|
+
content: [{ type: "text", text: summary }],
|
|
78
|
+
timestamp: Date.now(),
|
|
79
|
+
metadata: {
|
|
80
|
+
isSummary: true,
|
|
81
|
+
summarizedAt: Date.now(),
|
|
82
|
+
summarizedMessageCount: toSummarize.length,
|
|
83
|
+
originalFirstTimestamp: toSummarize[0]?.timestamp,
|
|
84
|
+
originalLastTimestamp: toSummarize[toSummarize.length - 1]?.timestamp
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
return [summaryMessage];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Split history into messages to summarize and messages to keep.
|
|
91
|
+
* Keeps the last N turns (user + assistant pairs) intact.
|
|
92
|
+
*/
|
|
93
|
+
splitHistory(history) {
|
|
94
|
+
const turnsToKeep = this.options.preserveLastNTurns;
|
|
95
|
+
const userMessageIndices = [];
|
|
96
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
97
|
+
if (history[i]?.role === "user") {
|
|
98
|
+
userMessageIndices.unshift(i);
|
|
99
|
+
if (userMessageIndices.length >= turnsToKeep) {
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (userMessageIndices.length > 0) {
|
|
105
|
+
const splitIndex = userMessageIndices[0];
|
|
106
|
+
if (splitIndex !== void 0) {
|
|
107
|
+
if (splitIndex === 0) {
|
|
108
|
+
return {
|
|
109
|
+
toSummarize: [],
|
|
110
|
+
toKeep: history
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
toSummarize: history.slice(0, splitIndex),
|
|
115
|
+
toKeep: history.slice(splitIndex)
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const keepCount = Math.min(4, history.length);
|
|
120
|
+
return {
|
|
121
|
+
toSummarize: history.slice(0, -keepCount),
|
|
122
|
+
toKeep: history.slice(-keepCount)
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Generate an LLM summary of the messages.
|
|
127
|
+
*/
|
|
128
|
+
async generateSummary(messages) {
|
|
129
|
+
const formattedConversation = this.formatMessagesForSummary(messages);
|
|
130
|
+
const prompt = this.options.summaryPrompt.replace("{conversation}", formattedConversation);
|
|
131
|
+
try {
|
|
132
|
+
const result = await (0, import_ai.generateText)({
|
|
133
|
+
model: this.model,
|
|
134
|
+
prompt,
|
|
135
|
+
maxOutputTokens: this.options.maxSummaryTokens
|
|
136
|
+
});
|
|
137
|
+
return `[Previous conversation summary]
|
|
138
|
+
${result.text}`;
|
|
139
|
+
} catch (error) {
|
|
140
|
+
this.logger.error("ReactiveOverflowStrategy: Failed to generate summary", { error });
|
|
141
|
+
return this.createFallbackSummary(messages);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Format messages for the summary prompt.
|
|
146
|
+
*/
|
|
147
|
+
formatMessagesForSummary(messages) {
|
|
148
|
+
return messages.map((msg) => {
|
|
149
|
+
const role = msg.role.toUpperCase();
|
|
150
|
+
let content;
|
|
151
|
+
if (typeof msg.content === "string") {
|
|
152
|
+
content = msg.content;
|
|
153
|
+
} else if (Array.isArray(msg.content)) {
|
|
154
|
+
content = msg.content.filter(
|
|
155
|
+
(part) => part.type === "text"
|
|
156
|
+
).map((part) => part.text).join("\n");
|
|
157
|
+
} else {
|
|
158
|
+
content = "[no content]";
|
|
159
|
+
}
|
|
160
|
+
if (content.length > 2e3) {
|
|
161
|
+
content = content.slice(0, 2e3) + "... [truncated]";
|
|
162
|
+
}
|
|
163
|
+
if ((0, import_types.isAssistantMessage)(msg) && msg.toolCalls && msg.toolCalls.length > 0) {
|
|
164
|
+
const toolNames = msg.toolCalls.map((tc) => tc.function.name).join(", ");
|
|
165
|
+
content += `
|
|
166
|
+
[Used tools: ${toolNames}]`;
|
|
167
|
+
}
|
|
168
|
+
if ((0, import_types.isToolMessage)(msg)) {
|
|
169
|
+
return `TOOL (${msg.name}): ${content.slice(0, 500)}${content.length > 500 ? "..." : ""}`;
|
|
170
|
+
}
|
|
171
|
+
return `${role}: ${content}`;
|
|
172
|
+
}).join("\n\n");
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Create a fallback summary if LLM call fails.
|
|
176
|
+
*/
|
|
177
|
+
createFallbackSummary(messages) {
|
|
178
|
+
const userMessages = messages.filter((m) => m.role === "user");
|
|
179
|
+
const assistantWithTools = messages.filter(
|
|
180
|
+
(m) => (0, import_types.isAssistantMessage)(m) && !!m.toolCalls && m.toolCalls.length > 0
|
|
181
|
+
);
|
|
182
|
+
const userTopics = userMessages.slice(-3).map((m) => {
|
|
183
|
+
const text = typeof m.content === "string" ? m.content : Array.isArray(m.content) ? m.content.filter(
|
|
184
|
+
(p) => p.type === "text"
|
|
185
|
+
).map((p) => p.text).join(" ") : "";
|
|
186
|
+
return text.slice(0, 100);
|
|
187
|
+
}).join("; ");
|
|
188
|
+
const toolsUsed = [
|
|
189
|
+
...new Set(
|
|
190
|
+
assistantWithTools.flatMap((m) => m.toolCalls.map((tc) => tc.function.name))
|
|
191
|
+
)
|
|
192
|
+
].join(", ");
|
|
193
|
+
return `[Previous conversation summary - fallback]
|
|
194
|
+
User discussed: ${userTopics || "various topics"}
|
|
195
|
+
Tools used: ${toolsUsed || "none"}`;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
199
|
+
0 && (module.exports = {
|
|
200
|
+
ReactiveOverflowStrategy
|
|
201
|
+
});
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type LanguageModel } from 'ai';
|
|
2
|
+
import type { ICompactionStrategy } from '../types.js';
|
|
3
|
+
import type { InternalMessage } from '../../types.js';
|
|
4
|
+
import type { IDextoLogger } from '../../../logger/v2/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration options for ReactiveOverflowStrategy.
|
|
7
|
+
*/
|
|
8
|
+
export interface ReactiveOverflowOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Number of recent turns to preserve (not summarize).
|
|
11
|
+
* A "turn" is a user message + assistant response pair.
|
|
12
|
+
* Default: 2
|
|
13
|
+
*/
|
|
14
|
+
preserveLastNTurns?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Maximum tokens for the summary output.
|
|
17
|
+
* Default: 2000
|
|
18
|
+
*/
|
|
19
|
+
maxSummaryTokens?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Custom summary prompt template.
|
|
22
|
+
* Use {conversation} as placeholder for formatted messages.
|
|
23
|
+
*/
|
|
24
|
+
summaryPrompt?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* ReactiveOverflowStrategy implements reactive compaction.
|
|
28
|
+
*
|
|
29
|
+
* Key behaviors:
|
|
30
|
+
* - Triggers on overflow (after actual tokens exceed context limit)
|
|
31
|
+
* - Uses LLM to generate intelligent summary of older messages
|
|
32
|
+
* - Returns summary message to ADD to history (not replace)
|
|
33
|
+
* - Read-time filtering via filterCompacted() excludes pre-summary messages
|
|
34
|
+
*
|
|
35
|
+
* This strategy is designed to work with TurnExecutor's main loop:
|
|
36
|
+
* 1. After each step, check if overflow occurred
|
|
37
|
+
* 2. If yes, generate summary and ADD it to history
|
|
38
|
+
* 3. filterCompacted() in getFormattedMessages() excludes old messages
|
|
39
|
+
* 4. Continue with fresh context (summary + recent messages)
|
|
40
|
+
*
|
|
41
|
+
* NOTE: This does NOT replace history. The summary message is ADDED,
|
|
42
|
+
* and filterCompacted() handles excluding old messages at read-time.
|
|
43
|
+
* This preserves full history for audit/recovery purposes.
|
|
44
|
+
*/
|
|
45
|
+
export declare class ReactiveOverflowStrategy implements ICompactionStrategy {
|
|
46
|
+
readonly name = "reactive-overflow";
|
|
47
|
+
private readonly model;
|
|
48
|
+
private readonly options;
|
|
49
|
+
private readonly logger;
|
|
50
|
+
constructor(model: LanguageModel, options: ReactiveOverflowOptions | undefined, logger: IDextoLogger);
|
|
51
|
+
/**
|
|
52
|
+
* Generate a summary message for the old portion of history.
|
|
53
|
+
*
|
|
54
|
+
* IMPORTANT: This does NOT replace history. It returns a summary message
|
|
55
|
+
* that the caller should ADD to history via contextManager.addMessage().
|
|
56
|
+
* Read-time filtering (filterCompacted) will then exclude pre-summary
|
|
57
|
+
* messages when formatting for LLM.
|
|
58
|
+
*
|
|
59
|
+
* @param history The full conversation history
|
|
60
|
+
* @returns Array with single summary message to add, or empty if nothing to summarize
|
|
61
|
+
*/
|
|
62
|
+
compact(history: readonly InternalMessage[]): Promise<InternalMessage[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Split history into messages to summarize and messages to keep.
|
|
65
|
+
* Keeps the last N turns (user + assistant pairs) intact.
|
|
66
|
+
*/
|
|
67
|
+
private splitHistory;
|
|
68
|
+
/**
|
|
69
|
+
* Generate an LLM summary of the messages.
|
|
70
|
+
*/
|
|
71
|
+
private generateSummary;
|
|
72
|
+
/**
|
|
73
|
+
* Format messages for the summary prompt.
|
|
74
|
+
*/
|
|
75
|
+
private formatMessagesForSummary;
|
|
76
|
+
/**
|
|
77
|
+
* Create a fallback summary if LLM call fails.
|
|
78
|
+
*/
|
|
79
|
+
private createFallbackSummary;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=reactive-overflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-overflow.d.ts","sourceRoot":"","sources":["../../../../src/context/compaction/strategies/reactive-overflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAY,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAiBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;IAChE,QAAQ,CAAC,IAAI,uBAAuB;IAEpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,YAAK,EAAE,MAAM,EAAE,YAAY;IAM7F;;;;;;;;;;OAUG;IACG,OAAO,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA0C9E;;;OAGG;IACH,OAAO,CAAC,YAAY;IA2CpB;;OAEG;YACW,eAAe;IAmB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA2ChC;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAiChC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import "../../../chunk-PTJYTZNU.js";
|
|
2
|
+
import { generateText } from "ai";
|
|
3
|
+
import { isAssistantMessage, isToolMessage } from "../../types.js";
|
|
4
|
+
const DEFAULT_OPTIONS = {
|
|
5
|
+
preserveLastNTurns: 2,
|
|
6
|
+
maxSummaryTokens: 2e3,
|
|
7
|
+
summaryPrompt: `You are a conversation summarizer. Summarize the following conversation history concisely, focusing on:
|
|
8
|
+
- What tasks were attempted and their outcomes
|
|
9
|
+
- Current state and context the assistant needs to remember
|
|
10
|
+
- Any important decisions or information discovered
|
|
11
|
+
- What the user was trying to accomplish
|
|
12
|
+
|
|
13
|
+
Be concise but preserve essential context. Output only the summary, no preamble.
|
|
14
|
+
|
|
15
|
+
Conversation:
|
|
16
|
+
{conversation}`
|
|
17
|
+
};
|
|
18
|
+
class ReactiveOverflowStrategy {
|
|
19
|
+
name = "reactive-overflow";
|
|
20
|
+
model;
|
|
21
|
+
options;
|
|
22
|
+
logger;
|
|
23
|
+
constructor(model, options = {}, logger) {
|
|
24
|
+
this.model = model;
|
|
25
|
+
this.options = { ...DEFAULT_OPTIONS, ...options };
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Generate a summary message for the old portion of history.
|
|
30
|
+
*
|
|
31
|
+
* IMPORTANT: This does NOT replace history. It returns a summary message
|
|
32
|
+
* that the caller should ADD to history via contextManager.addMessage().
|
|
33
|
+
* Read-time filtering (filterCompacted) will then exclude pre-summary
|
|
34
|
+
* messages when formatting for LLM.
|
|
35
|
+
*
|
|
36
|
+
* @param history The full conversation history
|
|
37
|
+
* @returns Array with single summary message to add, or empty if nothing to summarize
|
|
38
|
+
*/
|
|
39
|
+
async compact(history) {
|
|
40
|
+
if (history.length <= 2) {
|
|
41
|
+
this.logger.debug("ReactiveOverflowStrategy: History too short, skipping compaction");
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
const { toSummarize, toKeep } = this.splitHistory(history);
|
|
45
|
+
if (toSummarize.length === 0) {
|
|
46
|
+
this.logger.debug("ReactiveOverflowStrategy: No messages to summarize");
|
|
47
|
+
return [];
|
|
48
|
+
}
|
|
49
|
+
this.logger.info(
|
|
50
|
+
`ReactiveOverflowStrategy: Summarizing ${toSummarize.length} messages, keeping ${toKeep.length}`
|
|
51
|
+
);
|
|
52
|
+
const summary = await this.generateSummary(toSummarize);
|
|
53
|
+
const summaryMessage = {
|
|
54
|
+
role: "assistant",
|
|
55
|
+
content: [{ type: "text", text: summary }],
|
|
56
|
+
timestamp: Date.now(),
|
|
57
|
+
metadata: {
|
|
58
|
+
isSummary: true,
|
|
59
|
+
summarizedAt: Date.now(),
|
|
60
|
+
summarizedMessageCount: toSummarize.length,
|
|
61
|
+
originalFirstTimestamp: toSummarize[0]?.timestamp,
|
|
62
|
+
originalLastTimestamp: toSummarize[toSummarize.length - 1]?.timestamp
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
return [summaryMessage];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Split history into messages to summarize and messages to keep.
|
|
69
|
+
* Keeps the last N turns (user + assistant pairs) intact.
|
|
70
|
+
*/
|
|
71
|
+
splitHistory(history) {
|
|
72
|
+
const turnsToKeep = this.options.preserveLastNTurns;
|
|
73
|
+
const userMessageIndices = [];
|
|
74
|
+
for (let i = history.length - 1; i >= 0; i--) {
|
|
75
|
+
if (history[i]?.role === "user") {
|
|
76
|
+
userMessageIndices.unshift(i);
|
|
77
|
+
if (userMessageIndices.length >= turnsToKeep) {
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (userMessageIndices.length > 0) {
|
|
83
|
+
const splitIndex = userMessageIndices[0];
|
|
84
|
+
if (splitIndex !== void 0) {
|
|
85
|
+
if (splitIndex === 0) {
|
|
86
|
+
return {
|
|
87
|
+
toSummarize: [],
|
|
88
|
+
toKeep: history
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
toSummarize: history.slice(0, splitIndex),
|
|
93
|
+
toKeep: history.slice(splitIndex)
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const keepCount = Math.min(4, history.length);
|
|
98
|
+
return {
|
|
99
|
+
toSummarize: history.slice(0, -keepCount),
|
|
100
|
+
toKeep: history.slice(-keepCount)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Generate an LLM summary of the messages.
|
|
105
|
+
*/
|
|
106
|
+
async generateSummary(messages) {
|
|
107
|
+
const formattedConversation = this.formatMessagesForSummary(messages);
|
|
108
|
+
const prompt = this.options.summaryPrompt.replace("{conversation}", formattedConversation);
|
|
109
|
+
try {
|
|
110
|
+
const result = await generateText({
|
|
111
|
+
model: this.model,
|
|
112
|
+
prompt,
|
|
113
|
+
maxOutputTokens: this.options.maxSummaryTokens
|
|
114
|
+
});
|
|
115
|
+
return `[Previous conversation summary]
|
|
116
|
+
${result.text}`;
|
|
117
|
+
} catch (error) {
|
|
118
|
+
this.logger.error("ReactiveOverflowStrategy: Failed to generate summary", { error });
|
|
119
|
+
return this.createFallbackSummary(messages);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Format messages for the summary prompt.
|
|
124
|
+
*/
|
|
125
|
+
formatMessagesForSummary(messages) {
|
|
126
|
+
return messages.map((msg) => {
|
|
127
|
+
const role = msg.role.toUpperCase();
|
|
128
|
+
let content;
|
|
129
|
+
if (typeof msg.content === "string") {
|
|
130
|
+
content = msg.content;
|
|
131
|
+
} else if (Array.isArray(msg.content)) {
|
|
132
|
+
content = msg.content.filter(
|
|
133
|
+
(part) => part.type === "text"
|
|
134
|
+
).map((part) => part.text).join("\n");
|
|
135
|
+
} else {
|
|
136
|
+
content = "[no content]";
|
|
137
|
+
}
|
|
138
|
+
if (content.length > 2e3) {
|
|
139
|
+
content = content.slice(0, 2e3) + "... [truncated]";
|
|
140
|
+
}
|
|
141
|
+
if (isAssistantMessage(msg) && msg.toolCalls && msg.toolCalls.length > 0) {
|
|
142
|
+
const toolNames = msg.toolCalls.map((tc) => tc.function.name).join(", ");
|
|
143
|
+
content += `
|
|
144
|
+
[Used tools: ${toolNames}]`;
|
|
145
|
+
}
|
|
146
|
+
if (isToolMessage(msg)) {
|
|
147
|
+
return `TOOL (${msg.name}): ${content.slice(0, 500)}${content.length > 500 ? "..." : ""}`;
|
|
148
|
+
}
|
|
149
|
+
return `${role}: ${content}`;
|
|
150
|
+
}).join("\n\n");
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Create a fallback summary if LLM call fails.
|
|
154
|
+
*/
|
|
155
|
+
createFallbackSummary(messages) {
|
|
156
|
+
const userMessages = messages.filter((m) => m.role === "user");
|
|
157
|
+
const assistantWithTools = messages.filter(
|
|
158
|
+
(m) => isAssistantMessage(m) && !!m.toolCalls && m.toolCalls.length > 0
|
|
159
|
+
);
|
|
160
|
+
const userTopics = userMessages.slice(-3).map((m) => {
|
|
161
|
+
const text = typeof m.content === "string" ? m.content : Array.isArray(m.content) ? m.content.filter(
|
|
162
|
+
(p) => p.type === "text"
|
|
163
|
+
).map((p) => p.text).join(" ") : "";
|
|
164
|
+
return text.slice(0, 100);
|
|
165
|
+
}).join("; ");
|
|
166
|
+
const toolsUsed = [
|
|
167
|
+
...new Set(
|
|
168
|
+
assistantWithTools.flatMap((m) => m.toolCalls.map((tc) => tc.function.name))
|
|
169
|
+
)
|
|
170
|
+
].join(", ");
|
|
171
|
+
return `[Previous conversation summary - fallback]
|
|
172
|
+
User discussed: ${userTopics || "various topics"}
|
|
173
|
+
Tools used: ${toolsUsed || "none"}`;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
export {
|
|
177
|
+
ReactiveOverflowStrategy
|
|
178
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { InternalMessage } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Compaction strategy interface.
|
|
4
|
+
*
|
|
5
|
+
* Strategies are responsible for reducing conversation history size
|
|
6
|
+
* when context limits are exceeded. The strategy is called by TurnExecutor
|
|
7
|
+
* after detecting overflow via actual token usage from the API.
|
|
8
|
+
*/
|
|
9
|
+
export interface ICompactionStrategy {
|
|
10
|
+
/** Human-readable name for logging/UI */
|
|
11
|
+
readonly name: string;
|
|
12
|
+
/**
|
|
13
|
+
* Compacts the provided message history.
|
|
14
|
+
*
|
|
15
|
+
* @param history The current conversation history.
|
|
16
|
+
* @returns Summary messages to add to history (filterCompacted handles the rest).
|
|
17
|
+
*/
|
|
18
|
+
compact(history: readonly InternalMessage[]): Promise<InternalMessage[]> | InternalMessage[];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/context/compaction/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAChC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,eAAe,EAAE,CAAC;CAChG"}
|
|
@@ -33,6 +33,13 @@ var ContextErrorCode = /* @__PURE__ */ ((ContextErrorCode2) => {
|
|
|
33
33
|
ContextErrorCode2["TOKEN_COUNT_FAILED"] = "context_token_count_failed";
|
|
34
34
|
ContextErrorCode2["PRESERVE_VALUES_NEGATIVE"] = "context_preserve_values_negative";
|
|
35
35
|
ContextErrorCode2["MIN_MESSAGES_NEGATIVE"] = "context_min_messages_negative";
|
|
36
|
+
ContextErrorCode2["COMPACTION_INVALID_TYPE"] = "context_compaction_invalid_type";
|
|
37
|
+
ContextErrorCode2["COMPACTION_VALIDATION"] = "context_compaction_validation";
|
|
38
|
+
ContextErrorCode2["COMPACTION_MISSING_LLM"] = "context_compaction_missing_llm";
|
|
39
|
+
ContextErrorCode2["COMPACTION_PROVIDER_ALREADY_REGISTERED"] = "context_compaction_provider_already_registered";
|
|
40
|
+
ContextErrorCode2["MESSAGE_NOT_FOUND"] = "context_message_not_found";
|
|
41
|
+
ContextErrorCode2["MESSAGE_NOT_ASSISTANT"] = "context_message_not_assistant";
|
|
42
|
+
ContextErrorCode2["ASSISTANT_CONTENT_NOT_STRING"] = "context_assistant_content_not_string";
|
|
36
43
|
return ContextErrorCode2;
|
|
37
44
|
})(ContextErrorCode || {});
|
|
38
45
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -13,6 +13,13 @@ export declare enum ContextErrorCode {
|
|
|
13
13
|
SYSTEM_MESSAGE_CONTENT_INVALID = "context_system_message_content_invalid",
|
|
14
14
|
TOKEN_COUNT_FAILED = "context_token_count_failed",
|
|
15
15
|
PRESERVE_VALUES_NEGATIVE = "context_preserve_values_negative",
|
|
16
|
-
MIN_MESSAGES_NEGATIVE = "context_min_messages_negative"
|
|
16
|
+
MIN_MESSAGES_NEGATIVE = "context_min_messages_negative",
|
|
17
|
+
COMPACTION_INVALID_TYPE = "context_compaction_invalid_type",
|
|
18
|
+
COMPACTION_VALIDATION = "context_compaction_validation",
|
|
19
|
+
COMPACTION_MISSING_LLM = "context_compaction_missing_llm",
|
|
20
|
+
COMPACTION_PROVIDER_ALREADY_REGISTERED = "context_compaction_provider_already_registered",
|
|
21
|
+
MESSAGE_NOT_FOUND = "context_message_not_found",
|
|
22
|
+
MESSAGE_NOT_ASSISTANT = "context_message_not_assistant",
|
|
23
|
+
ASSISTANT_CONTENT_NOT_STRING = "context_assistant_content_not_string"
|
|
17
24
|
}
|
|
18
25
|
//# sourceMappingURL=error-codes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/context/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,gBAAgB;IAExB,oBAAoB,iCAAiC;IACrD,qBAAqB,kCAAkC;IAGvD,4BAA4B,yCAAyC;IAGrE,2CAA2C,wDAAwD;IACnG,oCAAoC,iDAAiD;IAGrF,2BAA2B,wCAAwC;IACnE,0BAA0B,uCAAuC;IAGjE,8BAA8B,2CAA2C;IAEzE,kBAAkB,+BAA+B;IAMjD,wBAAwB,qCAAqC;IAC7D,qBAAqB,kCAAkC;
|
|
1
|
+
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/context/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,gBAAgB;IAExB,oBAAoB,iCAAiC;IACrD,qBAAqB,kCAAkC;IAGvD,4BAA4B,yCAAyC;IAGrE,2CAA2C,wDAAwD;IACnG,oCAAoC,iDAAiD;IAGrF,2BAA2B,wCAAwC;IACnE,0BAA0B,uCAAuC;IAGjE,8BAA8B,2CAA2C;IAEzE,kBAAkB,+BAA+B;IAMjD,wBAAwB,qCAAqC;IAC7D,qBAAqB,kCAAkC;IACvD,uBAAuB,oCAAoC;IAC3D,qBAAqB,kCAAkC;IACvD,sBAAsB,mCAAmC;IACzD,sCAAsC,mDAAmD;IAGzF,iBAAiB,8BAA8B;IAC/C,qBAAqB,kCAAkC;IACvD,4BAA4B,yCAAyC;CACxE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
var ContextErrorCode = /* @__PURE__ */ ((ContextErrorCode2) => {
|
|
3
3
|
ContextErrorCode2["MESSAGE_ROLE_MISSING"] = "context_message_role_missing";
|
|
4
4
|
ContextErrorCode2["MESSAGE_CONTENT_EMPTY"] = "context_message_content_empty";
|
|
@@ -11,6 +11,13 @@ var ContextErrorCode = /* @__PURE__ */ ((ContextErrorCode2) => {
|
|
|
11
11
|
ContextErrorCode2["TOKEN_COUNT_FAILED"] = "context_token_count_failed";
|
|
12
12
|
ContextErrorCode2["PRESERVE_VALUES_NEGATIVE"] = "context_preserve_values_negative";
|
|
13
13
|
ContextErrorCode2["MIN_MESSAGES_NEGATIVE"] = "context_min_messages_negative";
|
|
14
|
+
ContextErrorCode2["COMPACTION_INVALID_TYPE"] = "context_compaction_invalid_type";
|
|
15
|
+
ContextErrorCode2["COMPACTION_VALIDATION"] = "context_compaction_validation";
|
|
16
|
+
ContextErrorCode2["COMPACTION_MISSING_LLM"] = "context_compaction_missing_llm";
|
|
17
|
+
ContextErrorCode2["COMPACTION_PROVIDER_ALREADY_REGISTERED"] = "context_compaction_provider_already_registered";
|
|
18
|
+
ContextErrorCode2["MESSAGE_NOT_FOUND"] = "context_message_not_found";
|
|
19
|
+
ContextErrorCode2["MESSAGE_NOT_ASSISTANT"] = "context_message_not_assistant";
|
|
20
|
+
ContextErrorCode2["ASSISTANT_CONTENT_NOT_STRING"] = "context_assistant_content_not_string";
|
|
14
21
|
return ContextErrorCode2;
|
|
15
22
|
})(ContextErrorCode || {});
|
|
16
23
|
export {
|
package/dist/context/errors.cjs
CHANGED
|
@@ -139,6 +139,74 @@ class ContextError {
|
|
|
139
139
|
"Set minMessagesToKeep to zero or positive value"
|
|
140
140
|
);
|
|
141
141
|
}
|
|
142
|
+
static compactionInvalidType(type, available) {
|
|
143
|
+
return new import_errors.DextoRuntimeError(
|
|
144
|
+
import_error_codes.ContextErrorCode.COMPACTION_INVALID_TYPE,
|
|
145
|
+
import_types.ErrorScope.CONTEXT,
|
|
146
|
+
import_types.ErrorType.USER,
|
|
147
|
+
`Unknown compaction provider type: '${type}'`,
|
|
148
|
+
{ type, available },
|
|
149
|
+
`Use one of the available types: ${available.join(", ")}`
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
static compactionValidation(type, errors) {
|
|
153
|
+
return new import_errors.DextoRuntimeError(
|
|
154
|
+
import_error_codes.ContextErrorCode.COMPACTION_VALIDATION,
|
|
155
|
+
import_types.ErrorScope.CONTEXT,
|
|
156
|
+
import_types.ErrorType.USER,
|
|
157
|
+
`Invalid configuration for compaction provider '${type}'`,
|
|
158
|
+
{ type, errors },
|
|
159
|
+
"Check the configuration schema for this provider"
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
static compactionMissingLLM(type) {
|
|
163
|
+
return new import_errors.DextoRuntimeError(
|
|
164
|
+
import_error_codes.ContextErrorCode.COMPACTION_MISSING_LLM,
|
|
165
|
+
import_types.ErrorScope.CONTEXT,
|
|
166
|
+
import_types.ErrorType.USER,
|
|
167
|
+
`Compaction provider '${type}' requires LLM service but none provided`,
|
|
168
|
+
{ type },
|
|
169
|
+
"Ensure LLM service is initialized before creating this compaction provider"
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
static compactionProviderAlreadyRegistered(type) {
|
|
173
|
+
return new import_errors.DextoRuntimeError(
|
|
174
|
+
import_error_codes.ContextErrorCode.COMPACTION_PROVIDER_ALREADY_REGISTERED,
|
|
175
|
+
import_types.ErrorScope.CONTEXT,
|
|
176
|
+
import_types.ErrorType.USER,
|
|
177
|
+
`Compaction provider '${type}' is already registered`,
|
|
178
|
+
{ type },
|
|
179
|
+
"Each provider type can only be registered once"
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
// Message lookup errors
|
|
183
|
+
static messageNotFound(messageId) {
|
|
184
|
+
return new import_errors.DextoRuntimeError(
|
|
185
|
+
import_error_codes.ContextErrorCode.MESSAGE_NOT_FOUND,
|
|
186
|
+
import_types.ErrorScope.CONTEXT,
|
|
187
|
+
import_types.ErrorType.NOT_FOUND,
|
|
188
|
+
`Message with ID ${messageId} not found`,
|
|
189
|
+
{ messageId }
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
static messageNotAssistant(messageId) {
|
|
193
|
+
return new import_errors.DextoRuntimeError(
|
|
194
|
+
import_error_codes.ContextErrorCode.MESSAGE_NOT_ASSISTANT,
|
|
195
|
+
import_types.ErrorScope.CONTEXT,
|
|
196
|
+
import_types.ErrorType.USER,
|
|
197
|
+
`Message with ID ${messageId} is not an assistant message`,
|
|
198
|
+
{ messageId }
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
static assistantContentNotString() {
|
|
202
|
+
return new import_errors.DextoRuntimeError(
|
|
203
|
+
import_error_codes.ContextErrorCode.ASSISTANT_CONTENT_NOT_STRING,
|
|
204
|
+
import_types.ErrorScope.CONTEXT,
|
|
205
|
+
import_types.ErrorType.USER,
|
|
206
|
+
"Cannot append text to non-string assistant message content",
|
|
207
|
+
{}
|
|
208
|
+
);
|
|
209
|
+
}
|
|
142
210
|
}
|
|
143
211
|
// Annotate the CommonJS export names for ESM import in node:
|
|
144
212
|
0 && (module.exports = {
|
package/dist/context/errors.d.ts
CHANGED
|
@@ -17,5 +17,26 @@ export declare class ContextError {
|
|
|
17
17
|
cause: string;
|
|
18
18
|
}>;
|
|
19
19
|
static minMessagesNegative(): DextoRuntimeError<{}>;
|
|
20
|
+
static compactionInvalidType(type: string, available: string[]): DextoRuntimeError<{
|
|
21
|
+
type: string;
|
|
22
|
+
available: string[];
|
|
23
|
+
}>;
|
|
24
|
+
static compactionValidation(type: string, errors: unknown): DextoRuntimeError<{
|
|
25
|
+
type: string;
|
|
26
|
+
errors: unknown;
|
|
27
|
+
}>;
|
|
28
|
+
static compactionMissingLLM(type: string): DextoRuntimeError<{
|
|
29
|
+
type: string;
|
|
30
|
+
}>;
|
|
31
|
+
static compactionProviderAlreadyRegistered(type: string): DextoRuntimeError<{
|
|
32
|
+
type: string;
|
|
33
|
+
}>;
|
|
34
|
+
static messageNotFound(messageId: string): DextoRuntimeError<{
|
|
35
|
+
messageId: string;
|
|
36
|
+
}>;
|
|
37
|
+
static messageNotAssistant(messageId: string): DextoRuntimeError<{
|
|
38
|
+
messageId: string;
|
|
39
|
+
}>;
|
|
40
|
+
static assistantContentNotString(): DextoRuntimeError<{}>;
|
|
20
41
|
}
|
|
21
42
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/context/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;GAGG;AACH,qBAAa,YAAY;IAErB,MAAM,CAAC,kBAAkB;IAWzB,MAAM,CAAC,yBAAyB;IAWhC,MAAM,CAAC,sCAAsC;IAW7C,MAAM,CAAC,gCAAgC;IAWvC,MAAM,CAAC,wBAAwB;IAW/B,MAAM,CAAC,2BAA2B;IAWlC,MAAM,CAAC,uBAAuB;IAW9B,MAAM,CAAC,sBAAsB;IAe7B,MAAM,CAAC,sBAAsB;IAW7B,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;IAWrC,MAAM,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/context/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;;GAGG;AACH,qBAAa,YAAY;IAErB,MAAM,CAAC,kBAAkB;IAWzB,MAAM,CAAC,yBAAyB;IAWhC,MAAM,CAAC,sCAAsC;IAW7C,MAAM,CAAC,gCAAgC;IAWvC,MAAM,CAAC,wBAAwB;IAW/B,MAAM,CAAC,2BAA2B;IAWlC,MAAM,CAAC,uBAAuB;IAW9B,MAAM,CAAC,sBAAsB;IAe7B,MAAM,CAAC,sBAAsB;IAW7B,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM;;;IAWrC,MAAM,CAAC,mBAAmB;IAW1B,MAAM,CAAC,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;;;;IAW9D,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;;;;IAWzD,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM;;;IAWxC,MAAM,CAAC,mCAAmC,CAAC,IAAI,EAAE,MAAM;;;IAYvD,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM;;;IAUxC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM;;;IAU5C,MAAM,CAAC,yBAAyB;CASnC"}
|