@dexto/core 1.2.4 → 1.2.5
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 +60 -0
- package/dist/agent/DextoAgent.cjs +579 -345
- package/dist/agent/DextoAgent.d.ts +131 -83
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +573 -336
- package/dist/agent/agentCard.cjs +4 -2
- package/dist/agent/agentCard.d.ts +0 -1
- package/dist/agent/agentCard.d.ts.map +1 -1
- package/dist/agent/agentCard.js +4 -2
- package/dist/agent/index.cjs +3 -7
- package/dist/agent/index.d.ts +3 -3
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +7 -6
- package/dist/agent/schemas.cjs +164 -64
- package/dist/agent/schemas.d.ts +2605 -517
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +167 -64
- package/dist/agent/state-manager.cjs +28 -23
- package/dist/agent/state-manager.d.ts +4 -1
- package/dist/agent/state-manager.d.ts.map +1 -1
- package/dist/agent/state-manager.js +28 -23
- package/dist/{preferences/constants.cjs → agent/types.cjs} +2 -14
- package/dist/agent/types.d.ts +54 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +0 -0
- package/dist/approval/errors.cjs +89 -8
- package/dist/approval/errors.d.ts +5 -3
- package/dist/approval/errors.d.ts.map +1 -1
- package/dist/approval/errors.js +89 -8
- package/dist/approval/{providers/factory.d.ts → factory.d.ts} +2 -2
- package/dist/approval/factory.d.ts.map +1 -0
- package/dist/approval/{providers/factory.js → factory.js} +1 -1
- package/dist/approval/index.cjs +4 -6
- package/dist/approval/index.d.ts +3 -5
- package/dist/approval/index.d.ts.map +1 -1
- package/dist/approval/index.js +4 -5
- package/dist/approval/manager.cjs +140 -37
- package/dist/approval/manager.d.ts +56 -17
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +141 -38
- package/dist/approval/schemas.cjs +9 -1
- package/dist/approval/schemas.d.ts +120 -35
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +9 -2
- package/dist/approval/types.cjs +14 -2
- package/dist/approval/types.d.ts +64 -12
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +12 -1
- package/dist/context/compression/middle-removal.cjs +11 -11
- package/dist/context/compression/middle-removal.d.ts +3 -1
- package/dist/context/compression/middle-removal.d.ts.map +1 -1
- package/dist/context/compression/middle-removal.js +11 -11
- package/dist/context/compression/oldest-removal.cjs +18 -5
- package/dist/context/compression/oldest-removal.d.ts +3 -1
- package/dist/context/compression/oldest-removal.d.ts.map +1 -1
- package/dist/context/compression/oldest-removal.js +18 -5
- package/dist/context/manager.cjs +94 -67
- package/dist/context/manager.d.ts +13 -10
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +94 -67
- package/dist/context/utils.cjs +79 -65
- package/dist/context/utils.d.ts +15 -12
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +45 -31
- package/dist/errors/DextoRuntimeError.d.ts +5 -5
- package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts +5 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +1 -2
- package/dist/errors/types.cjs +1 -2
- package/dist/errors/types.d.ts +5 -8
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +1 -2
- package/dist/events/index.cjs +125 -55
- package/dist/events/index.d.ts +204 -97
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +123 -55
- package/dist/filesystem/filesystem-service.cjs +40 -30
- package/dist/filesystem/filesystem-service.d.ts +9 -1
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +40 -30
- package/dist/filesystem/path-validator.cjs +4 -3
- package/dist/filesystem/path-validator.d.ts +3 -1
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +4 -3
- package/dist/filesystem/types.d.ts +3 -3
- package/dist/filesystem/types.d.ts.map +1 -1
- package/dist/index.browser.cjs +7 -0
- package/dist/index.browser.d.ts +2 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +4 -0
- package/dist/index.cjs +0 -7
- package/dist/index.d.ts +12 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/llm/formatters/anthropic.cjs +32 -21
- package/dist/llm/formatters/anthropic.d.ts +3 -0
- package/dist/llm/formatters/anthropic.d.ts.map +1 -1
- package/dist/llm/formatters/anthropic.js +32 -21
- package/dist/llm/formatters/factory.cjs +6 -7
- package/dist/llm/formatters/factory.d.ts +2 -1
- package/dist/llm/formatters/factory.d.ts.map +1 -1
- package/dist/llm/formatters/factory.js +4 -5
- package/dist/llm/formatters/openai.cjs +38 -9
- package/dist/llm/formatters/openai.d.ts +3 -0
- package/dist/llm/formatters/openai.d.ts.map +1 -1
- package/dist/llm/formatters/openai.js +38 -9
- package/dist/llm/formatters/vercel.cjs +49 -8
- package/dist/llm/formatters/vercel.d.ts +3 -0
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +49 -8
- package/dist/llm/registry.cjs +153 -17
- package/dist/llm/registry.d.ts +5 -2
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +143 -7
- package/dist/llm/resolver.cjs +4 -4
- package/dist/llm/resolver.d.ts +3 -2
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +4 -4
- package/dist/llm/schemas.cjs +6 -3
- package/dist/llm/schemas.d.ts +51 -17
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -3
- package/dist/llm/services/anthropic.cjs +216 -183
- package/dist/llm/services/anthropic.d.ts +3 -1
- package/dist/llm/services/anthropic.d.ts.map +1 -1
- package/dist/llm/services/anthropic.js +217 -184
- package/dist/llm/services/factory.cjs +15 -9
- package/dist/llm/services/factory.d.ts +2 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +15 -9
- package/dist/llm/services/openai.cjs +262 -225
- package/dist/llm/services/openai.d.ts +3 -1
- package/dist/llm/services/openai.d.ts.map +1 -1
- package/dist/llm/services/openai.js +263 -226
- package/dist/llm/services/test-utils.integration.cjs +58 -12
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +58 -12
- package/dist/llm/services/types.d.ts +9 -0
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +163 -111
- package/dist/llm/services/vercel.d.ts +3 -1
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +157 -105
- package/dist/llm/tokenizer/factory.cjs +2 -2
- package/dist/llm/tokenizer/factory.d.ts +3 -1
- package/dist/llm/tokenizer/factory.d.ts.map +1 -1
- package/dist/llm/tokenizer/factory.js +2 -2
- package/dist/llm/tokenizer/openai.cjs +16 -9
- package/dist/llm/tokenizer/openai.d.ts +4 -1
- package/dist/llm/tokenizer/openai.d.ts.map +1 -1
- package/dist/llm/tokenizer/openai.js +16 -9
- package/dist/llm/validation.cjs +8 -9
- package/dist/llm/validation.d.ts +3 -1
- package/dist/llm/validation.d.ts.map +1 -1
- package/dist/llm/validation.js +5 -6
- package/dist/logger/factory.cjs +54 -0
- package/dist/logger/factory.d.ts +36 -0
- package/dist/logger/factory.d.ts.map +1 -0
- package/dist/logger/factory.js +31 -0
- package/dist/logger/index.cjs +42 -3
- package/dist/logger/index.d.ts +17 -1
- package/dist/logger/index.d.ts.map +1 -1
- package/dist/logger/index.js +26 -1
- package/dist/logger/logger.cjs +30 -17
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +30 -17
- package/dist/logger/v2/dexto-logger.cjs +141 -0
- package/dist/logger/v2/dexto-logger.d.ts +54 -0
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -0
- package/dist/logger/v2/dexto-logger.js +118 -0
- package/dist/{preferences → logger/v2}/error-codes.cjs +11 -10
- package/dist/logger/v2/error-codes.d.ts +13 -0
- package/dist/logger/v2/error-codes.d.ts.map +1 -0
- package/dist/logger/v2/error-codes.js +13 -0
- package/dist/logger/v2/errors.cjs +107 -0
- package/dist/logger/v2/errors.d.ts +32 -0
- package/dist/logger/v2/errors.d.ts.map +1 -0
- package/dist/logger/v2/errors.js +84 -0
- package/dist/logger/v2/schemas.cjs +57 -0
- package/dist/logger/v2/schemas.d.ts +147 -0
- package/dist/logger/v2/schemas.d.ts.map +1 -0
- package/dist/logger/v2/schemas.js +33 -0
- package/dist/logger/v2/transport-factory.cjs +53 -0
- package/dist/logger/v2/transport-factory.d.ts +21 -0
- package/dist/logger/v2/transport-factory.d.ts.map +1 -0
- package/dist/logger/v2/transport-factory.js +29 -0
- package/dist/logger/v2/transports/console-transport.cjs +79 -0
- package/dist/logger/v2/transports/console-transport.d.ts +23 -0
- package/dist/logger/v2/transports/console-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/console-transport.js +46 -0
- package/dist/logger/v2/transports/file-transport.cjs +161 -0
- package/dist/logger/v2/transports/file-transport.d.ts +46 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -0
- package/dist/logger/v2/transports/file-transport.js +128 -0
- package/dist/logger/v2/types.cjs +49 -0
- package/dist/logger/v2/types.d.ts +123 -0
- package/dist/logger/v2/types.d.ts.map +1 -0
- package/dist/logger/v2/types.js +26 -0
- package/dist/mcp/manager.cjs +88 -78
- package/dist/mcp/manager.d.ts +3 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +88 -78
- package/dist/mcp/mcp-client.cjs +109 -79
- package/dist/mcp/mcp-client.d.ts +3 -0
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +102 -72
- package/dist/memory/manager.cjs +9 -7
- package/dist/memory/manager.d.ts +3 -1
- package/dist/memory/manager.d.ts.map +1 -1
- package/dist/memory/manager.js +9 -7
- package/dist/memory/schemas.d.ts +6 -6
- package/dist/plugins/manager.cjs +21 -19
- package/dist/plugins/manager.d.ts +3 -1
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +21 -19
- package/dist/plugins/schemas.d.ts +9 -9
- package/dist/plugins/types.d.ts +2 -2
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.cjs +30 -20
- package/dist/process/command-validator.d.ts +4 -1
- package/dist/process/command-validator.d.ts.map +1 -1
- package/dist/process/command-validator.js +30 -20
- package/dist/process/process-service.cjs +23 -21
- package/dist/process/process-service.d.ts +3 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +23 -21
- package/dist/prompts/prompt-manager.cjs +25 -18
- package/dist/prompts/prompt-manager.d.ts +3 -1
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +25 -18
- package/dist/prompts/providers/custom-prompt-provider.cjs +11 -7
- package/dist/prompts/providers/custom-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/custom-prompt-provider.js +11 -7
- package/dist/prompts/providers/file-prompt-provider.cjs +14 -12
- package/dist/prompts/providers/file-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/file-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/file-prompt-provider.js +14 -12
- package/dist/prompts/providers/mcp-prompt-provider.cjs +7 -6
- package/dist/prompts/providers/mcp-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +7 -6
- package/dist/prompts/providers/starter-prompt-provider.cjs +7 -5
- package/dist/prompts/providers/starter-prompt-provider.d.ts +3 -1
- package/dist/prompts/providers/starter-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/starter-prompt-provider.js +7 -5
- package/dist/prompts/schemas.d.ts +3 -3
- package/dist/resources/handlers/blob-handler.cjs +15 -11
- package/dist/resources/handlers/blob-handler.d.ts +3 -1
- package/dist/resources/handlers/blob-handler.d.ts.map +1 -1
- package/dist/resources/handlers/blob-handler.js +15 -11
- package/dist/resources/handlers/factory.cjs +3 -3
- package/dist/resources/handlers/factory.d.ts +2 -1
- package/dist/resources/handlers/factory.d.ts.map +1 -1
- package/dist/resources/handlers/factory.js +3 -3
- package/dist/resources/handlers/filesystem-handler.cjs +10 -8
- package/dist/resources/handlers/filesystem-handler.d.ts +3 -1
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +10 -8
- package/dist/resources/internal-provider.cjs +28 -20
- package/dist/resources/internal-provider.d.ts +3 -1
- package/dist/resources/internal-provider.d.ts.map +1 -1
- package/dist/resources/internal-provider.js +28 -20
- package/dist/resources/manager.cjs +34 -25
- package/dist/resources/manager.d.ts +3 -1
- package/dist/resources/manager.d.ts.map +1 -1
- package/dist/resources/manager.js +34 -25
- package/dist/resources/schemas.d.ts +6 -6
- package/dist/search/search-service.cjs +8 -6
- package/dist/search/search-service.d.ts +3 -1
- package/dist/search/search-service.d.ts.map +1 -1
- package/dist/search/search-service.js +8 -6
- package/dist/session/chat-session.cjs +40 -27
- package/dist/session/chat-session.d.ts +10 -7
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +40 -27
- package/dist/session/history/database.cjs +18 -11
- package/dist/session/history/database.d.ts +3 -1
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +18 -11
- package/dist/session/history/factory.cjs +2 -2
- package/dist/session/history/factory.d.ts +5 -1
- package/dist/session/history/factory.d.ts.map +1 -1
- package/dist/session/history/factory.js +2 -2
- package/dist/session/session-manager.cjs +37 -53
- package/dist/session/session-manager.d.ts +3 -17
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +37 -53
- package/dist/session/title-generator.cjs +3 -2
- package/dist/session/title-generator.d.ts +2 -1
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +3 -2
- package/dist/storage/blob/factory.cjs +9 -18
- package/dist/storage/blob/factory.d.ts +5 -4
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -17
- package/dist/storage/blob/local-blob-store.cjs +25 -32
- package/dist/storage/blob/local-blob-store.d.ts +3 -2
- package/dist/storage/blob/local-blob-store.d.ts.map +1 -1
- package/dist/storage/blob/local-blob-store.js +25 -32
- package/dist/storage/blob/memory-blob-store.cjs +326 -0
- package/dist/storage/blob/memory-blob-store.d.ts +66 -0
- package/dist/storage/blob/memory-blob-store.d.ts.map +1 -0
- package/dist/storage/blob/memory-blob-store.js +303 -0
- package/dist/storage/blob/schemas.cjs +3 -1
- package/dist/storage/blob/schemas.d.ts +6 -6
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +3 -1
- package/dist/storage/cache/factory.cjs +7 -8
- package/dist/storage/cache/factory.d.ts +4 -1
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +4 -5
- package/dist/storage/cache/redis-store.cjs +4 -1
- package/dist/storage/cache/redis-store.d.ts +3 -1
- package/dist/storage/cache/redis-store.d.ts.map +1 -1
- package/dist/storage/cache/redis-store.js +4 -1
- package/dist/storage/database/factory.cjs +13 -16
- package/dist/storage/database/factory.d.ts +5 -3
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +9 -12
- package/dist/storage/database/postgres-store.cjs +4 -1
- package/dist/storage/database/postgres-store.d.ts +3 -1
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +4 -1
- package/dist/storage/database/schemas.cjs +3 -4
- package/dist/storage/database/schemas.d.ts +8 -16
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +3 -4
- package/dist/storage/database/sqlite-store.cjs +17 -45
- package/dist/storage/database/sqlite-store.d.ts +3 -3
- package/dist/storage/database/sqlite-store.d.ts.map +1 -1
- package/dist/storage/database/sqlite-store.js +17 -45
- package/dist/storage/schemas.cjs +3 -1
- package/dist/storage/schemas.d.ts +16 -23
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +3 -1
- package/dist/storage/storage-manager.cjs +15 -15
- package/dist/storage/storage-manager.d.ts +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +15 -15
- package/dist/systemPrompt/contributors.cjs +15 -15
- package/dist/systemPrompt/contributors.d.ts +5 -3
- package/dist/systemPrompt/contributors.d.ts.map +1 -1
- package/dist/systemPrompt/contributors.js +15 -15
- package/dist/systemPrompt/manager.cjs +11 -8
- package/dist/systemPrompt/manager.d.ts +4 -2
- package/dist/systemPrompt/manager.d.ts.map +1 -1
- package/dist/systemPrompt/manager.js +11 -8
- package/dist/systemPrompt/schemas.cjs +21 -1
- package/dist/systemPrompt/schemas.d.ts +53 -53
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +11 -1
- package/dist/telemetry/decorators.cjs +54 -15
- package/dist/telemetry/decorators.d.ts.map +1 -1
- package/dist/telemetry/decorators.js +54 -15
- package/dist/telemetry/utils.cjs +21 -14
- package/dist/telemetry/utils.d.ts +7 -3
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/telemetry/utils.js +21 -14
- package/dist/tools/confirmation/allowed-tools-provider/factory.cjs +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts +2 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +2 -2
- package/dist/tools/confirmation/allowed-tools-provider/storage.cjs +7 -6
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts +3 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.d.ts.map +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +7 -6
- package/dist/tools/errors.cjs +2 -1
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +2 -1
- package/dist/tools/internal-tools/constants.cjs +2 -1
- 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 +2 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.cjs +192 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts +33 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +169 -0
- package/dist/tools/internal-tools/provider.cjs +21 -17
- package/dist/tools/internal-tools/provider.d.ts +3 -1
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +21 -17
- package/dist/tools/internal-tools/registry.cjs +5 -0
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -0
- package/dist/tools/schemas.cjs +16 -4
- package/dist/tools/schemas.d.ts +21 -9
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +15 -4
- package/dist/tools/tool-manager.cjs +64 -47
- package/dist/tools/tool-manager.d.ts +4 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +61 -44
- package/dist/tools/types.d.ts +0 -4
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/env-file.cjs +118 -0
- package/dist/utils/env-file.d.ts +5 -0
- package/dist/utils/env-file.d.ts.map +1 -0
- package/dist/utils/env-file.js +85 -0
- package/dist/utils/error-conversion.cjs +23 -1
- package/dist/utils/error-conversion.d.ts +2 -1
- package/dist/utils/error-conversion.d.ts.map +1 -1
- package/dist/utils/error-conversion.js +23 -1
- package/dist/utils/execution-context.d.ts.map +1 -1
- package/dist/utils/fs-walk.d.ts.map +1 -1
- package/dist/utils/index.cjs +7 -9
- package/dist/utils/index.d.ts +3 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -4
- package/dist/utils/path.cjs +22 -57
- package/dist/utils/path.d.ts +8 -7
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +21 -54
- package/dist/utils/result.cjs +37 -14
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +37 -14
- package/dist/utils/schema.cjs +2 -3
- package/dist/utils/schema.d.ts +2 -1
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +1 -2
- package/dist/utils/service-initializer.cjs +87 -61
- package/dist/utils/service-initializer.d.ts +4 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +69 -43
- package/package.json +7 -3
- package/dist/Dexto.cjs +0 -251
- package/dist/Dexto.d.ts +0 -191
- package/dist/Dexto.d.ts.map +0 -1
- package/dist/Dexto.js +0 -228
- package/dist/agent/registry/error-codes.cjs +0 -44
- package/dist/agent/registry/error-codes.d.ts +0 -21
- package/dist/agent/registry/error-codes.d.ts.map +0 -1
- package/dist/agent/registry/error-codes.js +0 -21
- package/dist/agent/registry/errors.cjs +0 -188
- package/dist/agent/registry/errors.d.ts +0 -63
- package/dist/agent/registry/errors.d.ts.map +0 -1
- package/dist/agent/registry/errors.js +0 -165
- package/dist/agent/registry/registry.cjs +0 -479
- package/dist/agent/registry/registry.d.ts +0 -130
- package/dist/agent/registry/registry.d.ts.map +0 -1
- package/dist/agent/registry/registry.js +0 -453
- package/dist/agent/registry/types.cjs +0 -74
- package/dist/agent/registry/types.d.ts +0 -142
- package/dist/agent/registry/types.d.ts.map +0 -1
- package/dist/agent/registry/types.js +0 -48
- package/dist/agent/registry/user-registry.cjs +0 -140
- package/dist/agent/registry/user-registry.d.ts +0 -34
- package/dist/agent/registry/user-registry.d.ts.map +0 -1
- package/dist/agent/registry/user-registry.js +0 -105
- package/dist/approval/providers/event-based-approval-provider.cjs +0 -156
- package/dist/approval/providers/event-based-approval-provider.d.ts +0 -39
- package/dist/approval/providers/event-based-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/event-based-approval-provider.js +0 -133
- package/dist/approval/providers/factory.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.cjs +0 -54
- package/dist/approval/providers/noop-approval-provider.d.ts +0 -18
- package/dist/approval/providers/noop-approval-provider.d.ts.map +0 -1
- package/dist/approval/providers/noop-approval-provider.js +0 -31
- package/dist/config/agent-resolver.cjs +0 -153
- package/dist/config/agent-resolver.d.ts +0 -14
- package/dist/config/agent-resolver.d.ts.map +0 -1
- package/dist/config/agent-resolver.js +0 -123
- package/dist/config/error-codes.cjs +0 -39
- package/dist/config/error-codes.d.ts +0 -16
- package/dist/config/error-codes.d.ts.map +0 -1
- package/dist/config/error-codes.js +0 -16
- package/dist/config/errors.cjs +0 -126
- package/dist/config/errors.d.ts +0 -34
- package/dist/config/errors.d.ts.map +0 -1
- package/dist/config/errors.js +0 -103
- package/dist/config/index.cjs +0 -26
- package/dist/config/index.d.ts +0 -4
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -3
- package/dist/config/loader.cjs +0 -119
- package/dist/config/loader.d.ts +0 -16
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -86
- package/dist/config/writer.cjs +0 -182
- package/dist/config/writer.d.ts +0 -35
- package/dist/config/writer.d.ts.map +0 -1
- package/dist/config/writer.js +0 -147
- package/dist/preferences/constants.d.ts +0 -2
- package/dist/preferences/constants.d.ts.map +0 -1
- package/dist/preferences/constants.js +0 -5
- package/dist/preferences/error-codes.d.ts +0 -8
- package/dist/preferences/error-codes.d.ts.map +0 -1
- package/dist/preferences/error-codes.js +0 -12
- package/dist/preferences/errors.cjs +0 -75
- package/dist/preferences/errors.d.ts +0 -18
- package/dist/preferences/errors.d.ts.map +0 -1
- package/dist/preferences/errors.js +0 -51
- package/dist/preferences/index.cjs +0 -55
- package/dist/preferences/index.d.ts +0 -6
- package/dist/preferences/index.d.ts.map +0 -1
- package/dist/preferences/index.js +0 -32
- package/dist/preferences/loader.cjs +0 -138
- package/dist/preferences/loader.d.ts +0 -51
- package/dist/preferences/loader.d.ts.map +0 -1
- package/dist/preferences/loader.js +0 -110
- package/dist/preferences/schemas.cjs +0 -75
- package/dist/preferences/schemas.d.ts +0 -110
- package/dist/preferences/schemas.d.ts.map +0 -1
- package/dist/preferences/schemas.js +0 -49
- package/dist/utils/api-key-store.cjs +0 -56
- package/dist/utils/api-key-store.d.ts +0 -24
- package/dist/utils/api-key-store.d.ts.map +0 -1
- package/dist/utils/api-key-store.js +0 -31
- package/dist/utils/env.cjs +0 -154
- package/dist/utils/env.d.ts +0 -28
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/env.js +0 -119
- package/dist/utils/port-utils.cjs +0 -37
- package/dist/utils/port-utils.d.ts +0 -10
- package/dist/utils/port-utils.d.ts.map +0 -1
- package/dist/utils/port-utils.js +0 -14
- package/dist/utils/port-utils.spec.cjs +0 -26
- package/dist/utils/port-utils.spec.js +0 -25
- /package/dist/approval/{providers/factory.cjs → factory.cjs} +0 -0
package/dist/context/utils.cjs
CHANGED
|
@@ -40,7 +40,6 @@ __export(utils_exports, {
|
|
|
40
40
|
toTextForToolMessage: () => toTextForToolMessage
|
|
41
41
|
});
|
|
42
42
|
module.exports = __toCommonJS(utils_exports);
|
|
43
|
-
var import_logger = require("../logger/index.cjs");
|
|
44
43
|
var import_registry = require("../llm/registry.cjs");
|
|
45
44
|
var import_errors = require("./errors.js");
|
|
46
45
|
var import_safe_stringify = require("../utils/safe-stringify.cjs");
|
|
@@ -278,7 +277,7 @@ function buildToolBlobName(kind, mimeType, options, preferredName) {
|
|
|
278
277
|
const unique = generateUniqueSuffix();
|
|
279
278
|
return `${parts.join("-")}-${unique}.${ext}`;
|
|
280
279
|
}
|
|
281
|
-
async function resolveBlobReferenceToParts(resourceUri, resourceManager, allowedMediaTypes) {
|
|
280
|
+
async function resolveBlobReferenceToParts(resourceUri, resourceManager, logger, allowedMediaTypes) {
|
|
282
281
|
try {
|
|
283
282
|
const result = await resourceManager.read(resourceUri);
|
|
284
283
|
if (allowedMediaTypes) {
|
|
@@ -339,13 +338,13 @@ async function resolveBlobReferenceToParts(resourceUri, resourceManager, allowed
|
|
|
339
338
|
}
|
|
340
339
|
return parts;
|
|
341
340
|
} catch (error) {
|
|
342
|
-
|
|
341
|
+
logger.warn(`Failed to resolve blob reference ${resourceUri}: ${String(error)}`);
|
|
343
342
|
return [{ type: "text", text: `[Attachment unavailable: ${resourceUri}]` }];
|
|
344
343
|
}
|
|
345
344
|
}
|
|
346
|
-
function countMessagesTokens(history, tokenizer, overheadPerMessage = DEFAULT_OVERHEAD_PER_MESSAGE) {
|
|
345
|
+
function countMessagesTokens(history, tokenizer, overheadPerMessage = DEFAULT_OVERHEAD_PER_MESSAGE, logger) {
|
|
347
346
|
let total = 0;
|
|
348
|
-
|
|
347
|
+
logger.debug(`Counting tokens for ${history.length} messages`);
|
|
349
348
|
try {
|
|
350
349
|
for (const message of history) {
|
|
351
350
|
if (message.content) {
|
|
@@ -398,14 +397,14 @@ function countMessagesTokens(history, tokenizer, overheadPerMessage = DEFAULT_OV
|
|
|
398
397
|
total += overheadPerMessage;
|
|
399
398
|
}
|
|
400
399
|
} catch (error) {
|
|
401
|
-
|
|
400
|
+
logger.error(
|
|
402
401
|
`countMessagesTokens failed: ${error instanceof Error ? error.message : String(error)}`
|
|
403
402
|
);
|
|
404
403
|
throw import_errors.ContextError.tokenCountFailed(error instanceof Error ? error.message : String(error));
|
|
405
404
|
}
|
|
406
405
|
return total;
|
|
407
406
|
}
|
|
408
|
-
function getImageData(imagePart) {
|
|
407
|
+
function getImageData(imagePart, logger) {
|
|
409
408
|
const { image } = imagePart;
|
|
410
409
|
if (typeof image === "string") {
|
|
411
410
|
return image;
|
|
@@ -418,10 +417,10 @@ function getImageData(imagePart) {
|
|
|
418
417
|
} else if (image instanceof URL) {
|
|
419
418
|
return image.toString();
|
|
420
419
|
}
|
|
421
|
-
|
|
420
|
+
logger.warn(`Unexpected image data type in getImageData: ${typeof image}`);
|
|
422
421
|
return "";
|
|
423
422
|
}
|
|
424
|
-
function getFileData(filePart) {
|
|
423
|
+
function getFileData(filePart, logger) {
|
|
425
424
|
const { data } = filePart;
|
|
426
425
|
if (typeof data === "string") {
|
|
427
426
|
return data;
|
|
@@ -434,10 +433,10 @@ function getFileData(filePart) {
|
|
|
434
433
|
} else if (data instanceof URL) {
|
|
435
434
|
return data.toString();
|
|
436
435
|
}
|
|
437
|
-
|
|
436
|
+
logger.warn(`Unexpected file data type in getFileData: ${typeof data}`);
|
|
438
437
|
return "";
|
|
439
438
|
}
|
|
440
|
-
async function getImageDataWithBlobSupport(imagePart, resourceManager) {
|
|
439
|
+
async function getImageDataWithBlobSupport(imagePart, resourceManager, logger) {
|
|
441
440
|
const { image } = imagePart;
|
|
442
441
|
if (typeof image === "string" && image.startsWith("@blob:")) {
|
|
443
442
|
try {
|
|
@@ -447,14 +446,14 @@ async function getImageDataWithBlobSupport(imagePart, resourceManager) {
|
|
|
447
446
|
if (result.contents[0]?.blob && typeof result.contents[0].blob === "string") {
|
|
448
447
|
return result.contents[0].blob;
|
|
449
448
|
}
|
|
450
|
-
|
|
449
|
+
logger.warn(`Blob reference ${image} did not contain blob data`);
|
|
451
450
|
} catch (error) {
|
|
452
|
-
|
|
451
|
+
logger.warn(`Failed to resolve blob reference ${image}: ${String(error)}`);
|
|
453
452
|
}
|
|
454
453
|
}
|
|
455
|
-
return getImageData(imagePart);
|
|
454
|
+
return getImageData(imagePart, logger);
|
|
456
455
|
}
|
|
457
|
-
async function getFileDataWithBlobSupport(filePart, resourceManager) {
|
|
456
|
+
async function getFileDataWithBlobSupport(filePart, resourceManager, logger) {
|
|
458
457
|
const { data } = filePart;
|
|
459
458
|
if (typeof data === "string" && data.startsWith("@blob:")) {
|
|
460
459
|
try {
|
|
@@ -464,14 +463,14 @@ async function getFileDataWithBlobSupport(filePart, resourceManager) {
|
|
|
464
463
|
if (result.contents[0]?.blob && typeof result.contents[0].blob === "string") {
|
|
465
464
|
return result.contents[0].blob;
|
|
466
465
|
}
|
|
467
|
-
|
|
466
|
+
logger.warn(`Blob reference ${data} did not contain blob data`);
|
|
468
467
|
} catch (error) {
|
|
469
|
-
|
|
468
|
+
logger.warn(`Failed to resolve blob reference ${data}: ${String(error)}`);
|
|
470
469
|
}
|
|
471
470
|
}
|
|
472
|
-
return getFileData(filePart);
|
|
471
|
+
return getFileData(filePart, logger);
|
|
473
472
|
}
|
|
474
|
-
async function expandBlobReferences(content, resourceManager, allowedMediaTypes) {
|
|
473
|
+
async function expandBlobReferences(content, resourceManager, logger, allowedMediaTypes) {
|
|
475
474
|
if (typeof content === "string") {
|
|
476
475
|
const blobRefPattern = /@blob:[a-f0-9]+/g;
|
|
477
476
|
const matches = [...content.matchAll(blobRefPattern)];
|
|
@@ -497,6 +496,7 @@ async function expandBlobReferences(content, resourceManager, allowedMediaTypes)
|
|
|
497
496
|
resolvedParts = await resolveBlobReferenceToParts(
|
|
498
497
|
resourceUri,
|
|
499
498
|
resourceManager,
|
|
499
|
+
logger,
|
|
500
500
|
allowedMediaTypes
|
|
501
501
|
);
|
|
502
502
|
resolvedCache.set(resourceUri, resolvedParts);
|
|
@@ -529,6 +529,7 @@ async function expandBlobReferences(content, resourceManager, allowedMediaTypes)
|
|
|
529
529
|
const resolved = await resolveBlobReferenceToParts(
|
|
530
530
|
resourceUri,
|
|
531
531
|
resourceManager,
|
|
532
|
+
logger,
|
|
532
533
|
allowedMediaTypes
|
|
533
534
|
);
|
|
534
535
|
if (resolved.length > 0) {
|
|
@@ -544,6 +545,7 @@ async function expandBlobReferences(content, resourceManager, allowedMediaTypes)
|
|
|
544
545
|
const resolved = await resolveBlobReferenceToParts(
|
|
545
546
|
resourceUri,
|
|
546
547
|
resourceManager,
|
|
548
|
+
logger,
|
|
547
549
|
allowedMediaTypes
|
|
548
550
|
);
|
|
549
551
|
if (resolved.length > 0) {
|
|
@@ -552,11 +554,12 @@ async function expandBlobReferences(content, resourceManager, allowedMediaTypes)
|
|
|
552
554
|
try {
|
|
553
555
|
const resolvedData = await getFileDataWithBlobSupport(
|
|
554
556
|
part,
|
|
555
|
-
resourceManager
|
|
557
|
+
resourceManager,
|
|
558
|
+
logger
|
|
556
559
|
);
|
|
557
560
|
expandedParts.push({ ...part, data: resolvedData });
|
|
558
561
|
} catch (error) {
|
|
559
|
-
|
|
562
|
+
logger.warn(`Failed to resolve file blob reference: ${String(error)}`);
|
|
560
563
|
expandedParts.push(part);
|
|
561
564
|
}
|
|
562
565
|
}
|
|
@@ -566,6 +569,7 @@ async function expandBlobReferences(content, resourceManager, allowedMediaTypes)
|
|
|
566
569
|
const expanded = await expandBlobReferences(
|
|
567
570
|
part.text,
|
|
568
571
|
resourceManager,
|
|
572
|
+
logger,
|
|
569
573
|
allowedMediaTypes
|
|
570
574
|
);
|
|
571
575
|
if (typeof expanded === "string") {
|
|
@@ -583,7 +587,7 @@ async function expandBlobReferences(content, resourceManager, allowedMediaTypes)
|
|
|
583
587
|
}
|
|
584
588
|
return content;
|
|
585
589
|
}
|
|
586
|
-
function filterMessagesByLLMCapabilities(messages, config) {
|
|
590
|
+
function filterMessagesByLLMCapabilities(messages, config, logger) {
|
|
587
591
|
try {
|
|
588
592
|
return messages.map((message) => {
|
|
589
593
|
if (message.role !== "user" || !Array.isArray(message.content)) {
|
|
@@ -615,7 +619,7 @@ function filterMessagesByLLMCapabilities(messages, config) {
|
|
|
615
619
|
};
|
|
616
620
|
});
|
|
617
621
|
} catch (error) {
|
|
618
|
-
|
|
622
|
+
logger.warn(`Failed to filter messages by LLM capabilities: ${String(error)}`);
|
|
619
623
|
return messages;
|
|
620
624
|
}
|
|
621
625
|
}
|
|
@@ -657,7 +661,7 @@ function matchesMimePattern(mimeType, pattern) {
|
|
|
657
661
|
function matchesAnyMimePattern(mimeType, patterns) {
|
|
658
662
|
return patterns.some((pattern) => matchesMimePattern(mimeType, pattern));
|
|
659
663
|
}
|
|
660
|
-
function fileTypesToMimePatterns(fileTypes) {
|
|
664
|
+
function fileTypesToMimePatterns(fileTypes, logger) {
|
|
661
665
|
const patterns = [];
|
|
662
666
|
for (const fileType of fileTypes) {
|
|
663
667
|
switch (fileType) {
|
|
@@ -674,7 +678,7 @@ function fileTypesToMimePatterns(fileTypes) {
|
|
|
674
678
|
patterns.push("video/*");
|
|
675
679
|
break;
|
|
676
680
|
default:
|
|
677
|
-
|
|
681
|
+
logger.warn(`Unknown file type in registry: ${fileType}`);
|
|
678
682
|
}
|
|
679
683
|
}
|
|
680
684
|
return patterns;
|
|
@@ -696,30 +700,35 @@ function generateMediaPlaceholder(metadata) {
|
|
|
696
700
|
const name = metadata.originalName || "unknown";
|
|
697
701
|
return `[${typeLabel}: ${name} (${size})]`;
|
|
698
702
|
}
|
|
699
|
-
function sanitizeDeepObject(obj) {
|
|
703
|
+
function sanitizeDeepObject(obj, logger) {
|
|
700
704
|
if (obj == null) return obj;
|
|
701
705
|
if (typeof obj === "string") {
|
|
702
706
|
if (isLikelyBase64String(obj)) {
|
|
703
707
|
const approxBytes = Math.floor(obj.length * 3 / 4);
|
|
704
|
-
|
|
708
|
+
logger.debug(
|
|
705
709
|
`sanitizeDeepObject: replaced large base64 string (~${approxBytes} bytes) with placeholder`
|
|
706
710
|
);
|
|
707
711
|
return `[binary data omitted ~${approxBytes} bytes]`;
|
|
708
712
|
}
|
|
709
713
|
return obj;
|
|
710
714
|
}
|
|
711
|
-
if (Array.isArray(obj)) return obj.map((x) => sanitizeDeepObject(x));
|
|
715
|
+
if (Array.isArray(obj)) return obj.map((x) => sanitizeDeepObject(x, logger));
|
|
712
716
|
if (typeof obj === "object") {
|
|
713
717
|
const out = {};
|
|
714
718
|
for (const [k, v] of Object.entries(obj)) {
|
|
715
|
-
out[k] = sanitizeDeepObject(v);
|
|
719
|
+
out[k] = sanitizeDeepObject(v, logger);
|
|
716
720
|
}
|
|
717
721
|
return out;
|
|
718
722
|
}
|
|
719
723
|
return obj;
|
|
720
724
|
}
|
|
721
|
-
async function normalizeToolResult(result) {
|
|
722
|
-
const content = await sanitizeToolResultToContentWithBlobs(
|
|
725
|
+
async function normalizeToolResult(result, logger) {
|
|
726
|
+
const content = await sanitizeToolResultToContentWithBlobs(
|
|
727
|
+
result,
|
|
728
|
+
logger,
|
|
729
|
+
void 0,
|
|
730
|
+
void 0
|
|
731
|
+
);
|
|
723
732
|
const parts = coerceContentToParts(content);
|
|
724
733
|
const inlineMedia = [];
|
|
725
734
|
parts.forEach((part, index) => {
|
|
@@ -740,7 +749,7 @@ function shouldPersistInlineMedia(hint) {
|
|
|
740
749
|
}
|
|
741
750
|
return hint.approxBytes >= MIN_TOOL_INLINE_MEDIA_BYTES;
|
|
742
751
|
}
|
|
743
|
-
async function persistToolMedia(normalized, options) {
|
|
752
|
+
async function persistToolMedia(normalized, options, logger) {
|
|
744
753
|
const parts = normalized.parts.map((part) => clonePart(part));
|
|
745
754
|
const blobStore = options.blobStore;
|
|
746
755
|
const namingOptions = options.toolName || options.toolCallId ? {
|
|
@@ -772,7 +781,7 @@ async function persistToolMedia(normalized, options) {
|
|
|
772
781
|
parts[hint.index] = createBlobFilePart(resourceUri, resolvedMimeType, filename);
|
|
773
782
|
}
|
|
774
783
|
} catch (error) {
|
|
775
|
-
|
|
784
|
+
logger.warn(
|
|
776
785
|
`Failed to persist tool media: ${error instanceof Error ? error.message : String(error)}`
|
|
777
786
|
);
|
|
778
787
|
}
|
|
@@ -784,20 +793,20 @@ async function persistToolMedia(normalized, options) {
|
|
|
784
793
|
...resources ? { resources } : {}
|
|
785
794
|
};
|
|
786
795
|
}
|
|
787
|
-
async function sanitizeToolResultToContentWithBlobs(result, blobStore, namingOptions) {
|
|
796
|
+
async function sanitizeToolResultToContentWithBlobs(result, logger, blobStore, namingOptions) {
|
|
788
797
|
try {
|
|
789
798
|
if (typeof result === "string") {
|
|
790
799
|
const dataUri = parseDataUri(result);
|
|
791
800
|
if (dataUri) {
|
|
792
801
|
const mediaType = dataUri.mediaType;
|
|
793
|
-
|
|
802
|
+
logger.debug(
|
|
794
803
|
`sanitizeToolResultToContentWithBlobs: detected data URI (${mediaType})`
|
|
795
804
|
);
|
|
796
805
|
const approxSize = Math.floor(dataUri.base64.length * 3 / 4);
|
|
797
806
|
const shouldStoreAsBlob = blobStore && approxSize > 1024;
|
|
798
807
|
if (shouldStoreAsBlob) {
|
|
799
808
|
try {
|
|
800
|
-
|
|
809
|
+
logger.debug(
|
|
801
810
|
`Storing data URI as blob (${approxSize} bytes, ${mediaType})`
|
|
802
811
|
);
|
|
803
812
|
const blobRef = await blobStore.store(result, {
|
|
@@ -805,13 +814,13 @@ async function sanitizeToolResultToContentWithBlobs(result, blobStore, namingOpt
|
|
|
805
814
|
source: "tool",
|
|
806
815
|
originalName: buildToolBlobName("output", mediaType, namingOptions)
|
|
807
816
|
});
|
|
808
|
-
|
|
817
|
+
logger.debug(`Stored blob: ${blobRef.uri} (${approxSize} bytes)`);
|
|
809
818
|
if (mediaType.startsWith("image/")) {
|
|
810
819
|
return [createBlobImagePart(blobRef.uri, mediaType)];
|
|
811
820
|
}
|
|
812
821
|
return [createBlobFilePart(blobRef.uri, mediaType, void 0)];
|
|
813
822
|
} catch (error) {
|
|
814
|
-
|
|
823
|
+
logger.warn(
|
|
815
824
|
`Failed to store blob, falling back to inline: ${String(error)}`
|
|
816
825
|
);
|
|
817
826
|
}
|
|
@@ -828,7 +837,7 @@ async function sanitizeToolResultToContentWithBlobs(result, blobStore, namingOpt
|
|
|
828
837
|
];
|
|
829
838
|
}
|
|
830
839
|
if (isLikelyBase64String(result)) {
|
|
831
|
-
|
|
840
|
+
logger.debug("sanitizeToolResultToContentWithBlobs: detected base64-like string");
|
|
832
841
|
const approxSize = Math.floor(result.length * 3 / 4);
|
|
833
842
|
const shouldStoreAsBlob = blobStore && approxSize > 1024;
|
|
834
843
|
if (shouldStoreAsBlob) {
|
|
@@ -838,7 +847,7 @@ async function sanitizeToolResultToContentWithBlobs(result, blobStore, namingOpt
|
|
|
838
847
|
source: "tool",
|
|
839
848
|
originalName: buildToolBlobName("output", void 0, namingOptions)
|
|
840
849
|
});
|
|
841
|
-
|
|
850
|
+
logger.debug(
|
|
842
851
|
`Stored tool result as blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
843
852
|
);
|
|
844
853
|
return [
|
|
@@ -849,7 +858,7 @@ async function sanitizeToolResultToContentWithBlobs(result, blobStore, namingOpt
|
|
|
849
858
|
)
|
|
850
859
|
];
|
|
851
860
|
} catch (error) {
|
|
852
|
-
|
|
861
|
+
logger.warn(
|
|
853
862
|
`Failed to store blob, falling back to inline: ${String(error)}`
|
|
854
863
|
);
|
|
855
864
|
}
|
|
@@ -866,7 +875,7 @@ async function sanitizeToolResultToContentWithBlobs(result, blobStore, namingOpt
|
|
|
866
875
|
if (result.length > MAX_TOOL_TEXT_CHARS) {
|
|
867
876
|
const head = result.slice(0, 4e3);
|
|
868
877
|
const tail = result.slice(-1e3);
|
|
869
|
-
|
|
878
|
+
logger.debug(
|
|
870
879
|
`sanitizeToolResultToContentWithBlobs: truncating long text tool output (len=${result.length})`
|
|
871
880
|
);
|
|
872
881
|
return `${head}
|
|
@@ -881,6 +890,7 @@ ${tail}`;
|
|
|
881
890
|
if (item == null) continue;
|
|
882
891
|
const processedItem = await sanitizeToolResultToContentWithBlobs(
|
|
883
892
|
item,
|
|
893
|
+
logger,
|
|
884
894
|
blobStore,
|
|
885
895
|
namingOptions
|
|
886
896
|
);
|
|
@@ -895,7 +905,7 @@ ${tail}`;
|
|
|
895
905
|
if (result && typeof result === "object") {
|
|
896
906
|
const anyObj = result;
|
|
897
907
|
if ("content" in anyObj && Array.isArray(anyObj.content)) {
|
|
898
|
-
|
|
908
|
+
logger.debug(
|
|
899
909
|
`Processing MCP tool result with ${anyObj.content.length} content items`
|
|
900
910
|
);
|
|
901
911
|
const processedContent = [];
|
|
@@ -910,7 +920,7 @@ ${tail}`;
|
|
|
910
920
|
const shouldStoreAsBlob = blobStore && approxSize > 1024;
|
|
911
921
|
if (shouldStoreAsBlob) {
|
|
912
922
|
try {
|
|
913
|
-
|
|
923
|
+
logger.debug(
|
|
914
924
|
`Storing MCP resource as blob (${approxSize} bytes, ${mimeType})`
|
|
915
925
|
);
|
|
916
926
|
const blobRef = await blobStore.store(fileData, {
|
|
@@ -923,7 +933,7 @@ ${tail}`;
|
|
|
923
933
|
resource.title
|
|
924
934
|
)
|
|
925
935
|
});
|
|
926
|
-
|
|
936
|
+
logger.debug(
|
|
927
937
|
`Stored MCP resource blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
928
938
|
);
|
|
929
939
|
if (mimeType.startsWith("image/")) {
|
|
@@ -941,7 +951,7 @@ ${tail}`;
|
|
|
941
951
|
}
|
|
942
952
|
continue;
|
|
943
953
|
} catch (error) {
|
|
944
|
-
|
|
954
|
+
logger.warn(
|
|
945
955
|
`Failed to store MCP resource blob, falling back to inline: ${String(error)}`
|
|
946
956
|
);
|
|
947
957
|
}
|
|
@@ -971,13 +981,13 @@ ${tail}`;
|
|
|
971
981
|
}
|
|
972
982
|
}
|
|
973
983
|
if ("data" in item && item.mimeType) {
|
|
974
|
-
const fileData = getFileData({ data: item.data });
|
|
984
|
+
const fileData = getFileData({ data: item.data }, logger);
|
|
975
985
|
const mimeType = item.mimeType;
|
|
976
986
|
const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
|
|
977
987
|
const shouldStoreAsBlob = blobStore && approxSize > 1024;
|
|
978
988
|
if (shouldStoreAsBlob) {
|
|
979
989
|
try {
|
|
980
|
-
|
|
990
|
+
logger.debug(
|
|
981
991
|
`Storing MCP content item as blob (${approxSize} bytes, ${mimeType})`
|
|
982
992
|
);
|
|
983
993
|
const blobRef = await blobStore.store(fileData, {
|
|
@@ -990,7 +1000,7 @@ ${tail}`;
|
|
|
990
1000
|
item.filename
|
|
991
1001
|
)
|
|
992
1002
|
});
|
|
993
|
-
|
|
1003
|
+
logger.debug(
|
|
994
1004
|
`Stored MCP blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
995
1005
|
);
|
|
996
1006
|
if (item.type === "image") {
|
|
@@ -1004,7 +1014,7 @@ ${tail}`;
|
|
|
1004
1014
|
}
|
|
1005
1015
|
continue;
|
|
1006
1016
|
} catch (error) {
|
|
1007
|
-
|
|
1017
|
+
logger.warn(
|
|
1008
1018
|
`Failed to store MCP blob, falling back to inline: ${String(error)}`
|
|
1009
1019
|
);
|
|
1010
1020
|
}
|
|
@@ -1031,7 +1041,7 @@ ${tail}`;
|
|
|
1031
1041
|
return processedContent;
|
|
1032
1042
|
}
|
|
1033
1043
|
if ("image" in anyObj) {
|
|
1034
|
-
const imageData = getImageData({ image: anyObj.image });
|
|
1044
|
+
const imageData = getImageData({ image: anyObj.image }, logger);
|
|
1035
1045
|
const mimeType = anyObj.mimeType || "image/jpeg";
|
|
1036
1046
|
const approxSize = typeof imageData === "string" ? Math.floor(imageData.length * 3 / 4) : 0;
|
|
1037
1047
|
const shouldStoreAsBlob = blobStore && approxSize > 1024;
|
|
@@ -1042,12 +1052,12 @@ ${tail}`;
|
|
|
1042
1052
|
source: "tool",
|
|
1043
1053
|
originalName: buildToolBlobName("image", mimeType, namingOptions)
|
|
1044
1054
|
});
|
|
1045
|
-
|
|
1055
|
+
logger.debug(
|
|
1046
1056
|
`Stored tool image as blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
1047
1057
|
);
|
|
1048
1058
|
return [createBlobImagePart(blobRef.uri, mimeType)];
|
|
1049
1059
|
} catch (error) {
|
|
1050
|
-
|
|
1060
|
+
logger.warn(
|
|
1051
1061
|
`Failed to store image blob, falling back to inline: ${String(error)}`
|
|
1052
1062
|
);
|
|
1053
1063
|
}
|
|
@@ -1061,7 +1071,7 @@ ${tail}`;
|
|
|
1061
1071
|
];
|
|
1062
1072
|
}
|
|
1063
1073
|
if ("data" in anyObj && anyObj.mimeType) {
|
|
1064
|
-
const fileData = getFileData({ data: anyObj.data });
|
|
1074
|
+
const fileData = getFileData({ data: anyObj.data }, logger);
|
|
1065
1075
|
const mimeType = anyObj.mimeType;
|
|
1066
1076
|
const approxSize = typeof fileData === "string" ? Math.floor(fileData.length * 3 / 4) : 0;
|
|
1067
1077
|
const shouldStoreAsBlob = blobStore && approxSize > 1024;
|
|
@@ -1077,12 +1087,12 @@ ${tail}`;
|
|
|
1077
1087
|
anyObj.filename
|
|
1078
1088
|
)
|
|
1079
1089
|
});
|
|
1080
|
-
|
|
1090
|
+
logger.debug(
|
|
1081
1091
|
`Stored tool file as blob: ${blobRef.uri} (${approxSize} bytes)`
|
|
1082
1092
|
);
|
|
1083
1093
|
return [createBlobFilePart(blobRef.uri, mimeType, anyObj.filename)];
|
|
1084
1094
|
} catch (error) {
|
|
1085
|
-
|
|
1095
|
+
logger.warn(
|
|
1086
1096
|
`Failed to store file blob, falling back to inline: ${String(error)}`
|
|
1087
1097
|
);
|
|
1088
1098
|
}
|
|
@@ -1096,12 +1106,12 @@ ${tail}`;
|
|
|
1096
1106
|
}
|
|
1097
1107
|
];
|
|
1098
1108
|
}
|
|
1099
|
-
const cleaned = sanitizeDeepObject(anyObj);
|
|
1109
|
+
const cleaned = sanitizeDeepObject(anyObj, logger);
|
|
1100
1110
|
return (0, import_safe_stringify.safeStringify)(cleaned);
|
|
1101
1111
|
}
|
|
1102
1112
|
return (0, import_safe_stringify.safeStringify)(result ?? "");
|
|
1103
1113
|
} catch (err) {
|
|
1104
|
-
|
|
1114
|
+
logger.warn(
|
|
1105
1115
|
`sanitizeToolResultToContentWithBlobs failed, falling back to string: ${String(err)}`
|
|
1106
1116
|
);
|
|
1107
1117
|
try {
|
|
@@ -1150,13 +1160,17 @@ function extractResourceDescriptors(parts) {
|
|
|
1150
1160
|
}
|
|
1151
1161
|
return resources.length > 0 ? resources : void 0;
|
|
1152
1162
|
}
|
|
1153
|
-
async function sanitizeToolResult(result, options) {
|
|
1154
|
-
const normalized = await normalizeToolResult(result);
|
|
1155
|
-
const persisted = await persistToolMedia(
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1163
|
+
async function sanitizeToolResult(result, options, logger) {
|
|
1164
|
+
const normalized = await normalizeToolResult(result, logger);
|
|
1165
|
+
const persisted = await persistToolMedia(
|
|
1166
|
+
normalized,
|
|
1167
|
+
{
|
|
1168
|
+
...options.blobStore ? { blobStore: options.blobStore } : {},
|
|
1169
|
+
toolName: options.toolName,
|
|
1170
|
+
toolCallId: options.toolCallId
|
|
1171
|
+
},
|
|
1172
|
+
logger
|
|
1173
|
+
);
|
|
1160
1174
|
const fallbackContent = [{ type: "text", text: "" }];
|
|
1161
1175
|
const content = persisted.parts.length > 0 ? persisted.parts : fallbackContent;
|
|
1162
1176
|
return {
|
package/dist/context/utils.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InternalMessage, TextPart, ImagePart, FilePart, SanitizedToolResult } from './types.js';
|
|
2
2
|
import { ITokenizer } from '../llm/tokenizer/types.js';
|
|
3
|
+
import type { IDextoLogger } from '../logger/v2/types.js';
|
|
3
4
|
import { LLMContext } from '../llm/types.js';
|
|
4
5
|
import { getFileMediaKind, getResourceKind } from './media-helpers.js';
|
|
5
6
|
type ToolBlobNamingOptions = {
|
|
@@ -44,7 +45,7 @@ interface PersistToolMediaResult {
|
|
|
44
45
|
* @returns The total token count.
|
|
45
46
|
* @throws Error if token counting fails within the tokenizer.
|
|
46
47
|
*/
|
|
47
|
-
export declare function countMessagesTokens(history: InternalMessage[], tokenizer: ITokenizer, overheadPerMessage
|
|
48
|
+
export declare function countMessagesTokens(history: InternalMessage[], tokenizer: ITokenizer, overheadPerMessage: number | undefined, logger: IDextoLogger): number;
|
|
48
49
|
/**
|
|
49
50
|
* Extracts image data (base64 or URL) from an ImagePart or raw buffer.
|
|
50
51
|
* @param imagePart The image part containing image data
|
|
@@ -52,25 +53,27 @@ export declare function countMessagesTokens(history: InternalMessage[], tokenize
|
|
|
52
53
|
*/
|
|
53
54
|
export declare function getImageData(imagePart: {
|
|
54
55
|
image: string | Uint8Array | Buffer | ArrayBuffer | URL;
|
|
55
|
-
}): string;
|
|
56
|
+
}, logger: IDextoLogger): string;
|
|
56
57
|
/**
|
|
57
58
|
* Extracts file data (base64 or URL) from a FilePart or raw buffer.
|
|
58
59
|
* @param filePart The file part containing file data
|
|
60
|
+
* @param logger Optional logger instance
|
|
59
61
|
* @returns Base64-encoded string or URL string
|
|
60
62
|
*/
|
|
61
63
|
export declare function getFileData(filePart: {
|
|
62
64
|
data: string | Uint8Array | Buffer | ArrayBuffer | URL;
|
|
63
|
-
}): string;
|
|
65
|
+
}, logger: IDextoLogger): string;
|
|
64
66
|
/**
|
|
65
67
|
* Extracts image data with blob resolution support.
|
|
66
68
|
* If the image is a blob reference, resolves it from the resource manager.
|
|
67
69
|
* @param imagePart The image part containing image data or blob reference
|
|
68
70
|
* @param resourceManager Resource manager for resolving blob references
|
|
71
|
+
* @param logger Optional logger instance
|
|
69
72
|
* @returns Promise<Base64-encoded string or URL string>
|
|
70
73
|
*/
|
|
71
74
|
export declare function getImageDataWithBlobSupport(imagePart: {
|
|
72
75
|
image: string | Uint8Array | Buffer | ArrayBuffer | URL;
|
|
73
|
-
}, resourceManager: import('../resources/index.js').ResourceManager): Promise<string>;
|
|
76
|
+
}, resourceManager: import('../resources/index.js').ResourceManager, logger: IDextoLogger): Promise<string>;
|
|
74
77
|
/**
|
|
75
78
|
* Extracts file data with blob resolution support.
|
|
76
79
|
* If the data is a blob reference, resolves it from the resource manager.
|
|
@@ -80,7 +83,7 @@ export declare function getImageDataWithBlobSupport(imagePart: {
|
|
|
80
83
|
*/
|
|
81
84
|
export declare function getFileDataWithBlobSupport(filePart: {
|
|
82
85
|
data: string | Uint8Array | Buffer | ArrayBuffer | URL;
|
|
83
|
-
}, resourceManager: import('../resources/index.js').ResourceManager): Promise<string>;
|
|
86
|
+
}, resourceManager: import('../resources/index.js').ResourceManager, logger: IDextoLogger): Promise<string>;
|
|
84
87
|
/**
|
|
85
88
|
* Resolves blob references in message content to actual data.
|
|
86
89
|
* Expands @blob:id references to their actual base64 content for LLM consumption.
|
|
@@ -93,7 +96,7 @@ export declare function getFileDataWithBlobSupport(filePart: {
|
|
|
93
96
|
* If omitted, all blobs are expanded (legacy behavior).
|
|
94
97
|
* @returns Promise<Resolved content with blob references expanded or replaced with placeholders>
|
|
95
98
|
*/
|
|
96
|
-
export declare function expandBlobReferences(content: InternalMessage['content'], resourceManager: import('../resources/index.js').ResourceManager, allowedMediaTypes?: string[]): Promise<InternalMessage['content']>;
|
|
99
|
+
export declare function expandBlobReferences(content: InternalMessage['content'], resourceManager: import('../resources/index.js').ResourceManager, logger: IDextoLogger, allowedMediaTypes?: string[]): Promise<InternalMessage['content']>;
|
|
97
100
|
/**
|
|
98
101
|
* Filters message content based on LLM capabilities.
|
|
99
102
|
* Removes unsupported file attachments while preserving supported content.
|
|
@@ -102,7 +105,7 @@ export declare function expandBlobReferences(content: InternalMessage['content']
|
|
|
102
105
|
* @param config The LLM configuration (provider and optional model)
|
|
103
106
|
* @returns Filtered messages with unsupported content removed
|
|
104
107
|
*/
|
|
105
|
-
export declare function filterMessagesByLLMCapabilities(messages: InternalMessage[], config: LLMContext): InternalMessage[];
|
|
108
|
+
export declare function filterMessagesByLLMCapabilities(messages: InternalMessage[], config: LLMContext, logger: IDextoLogger): InternalMessage[];
|
|
106
109
|
/**
|
|
107
110
|
* Detect if a string is likely a Base64 blob (not a typical sentence/text).
|
|
108
111
|
* Uses a length threshold and character set heuristic.
|
|
@@ -143,9 +146,9 @@ export declare function matchesAnyMimePattern(mimeType: string | undefined, patt
|
|
|
143
146
|
* @param fileTypes Array of supported file types from LLM registry (e.g., ['image', 'pdf', 'audio'])
|
|
144
147
|
* @returns Array of MIME type patterns (e.g., ['image/*', 'application/pdf', 'audio/*'])
|
|
145
148
|
*/
|
|
146
|
-
export declare function fileTypesToMimePatterns(fileTypes: string[]): string[];
|
|
147
|
-
export declare function normalizeToolResult(result: unknown): Promise<NormalizedToolResult>;
|
|
148
|
-
export declare function persistToolMedia(normalized: NormalizedToolResult, options: PersistToolMediaOptions): Promise<PersistToolMediaResult>;
|
|
149
|
+
export declare function fileTypesToMimePatterns(fileTypes: string[], logger: IDextoLogger): string[];
|
|
150
|
+
export declare function normalizeToolResult(result: unknown, logger: IDextoLogger): Promise<NormalizedToolResult>;
|
|
151
|
+
export declare function persistToolMedia(normalized: NormalizedToolResult, options: PersistToolMediaOptions, logger: IDextoLogger): Promise<PersistToolMediaResult>;
|
|
149
152
|
/**
|
|
150
153
|
* Convert an arbitrary tool result into safe InternalMessage content with optional blob storage.
|
|
151
154
|
* - Automatically stores large media in blob store and returns resource references
|
|
@@ -153,13 +156,13 @@ export declare function persistToolMedia(normalized: NormalizedToolResult, optio
|
|
|
153
156
|
* - Removes huge binary blobs inside objects
|
|
154
157
|
* - Truncates extremely long raw text
|
|
155
158
|
*/
|
|
156
|
-
export declare function sanitizeToolResultToContentWithBlobs(result: unknown, blobStore?: import('../storage/blob/types.js').BlobStore, namingOptions?: ToolBlobNamingOptions): Promise<InternalMessage['content']>;
|
|
159
|
+
export declare function sanitizeToolResultToContentWithBlobs(result: unknown, logger: IDextoLogger, blobStore?: import('../storage/blob/types.js').BlobStore, namingOptions?: ToolBlobNamingOptions): Promise<InternalMessage['content']>;
|
|
157
160
|
export declare function sanitizeToolResult(result: unknown, options: {
|
|
158
161
|
blobStore?: import('../storage/blob/types.js').BlobStore;
|
|
159
162
|
toolName: string;
|
|
160
163
|
toolCallId: string;
|
|
161
164
|
success?: boolean;
|
|
162
|
-
}): Promise<SanitizedToolResult>;
|
|
165
|
+
}, logger: IDextoLogger): Promise<SanitizedToolResult>;
|
|
163
166
|
/**
|
|
164
167
|
* Produce a short textual summary for tool content, to be used with providers
|
|
165
168
|
* that only accept text for tool messages (e.g., OpenAI/Anthropic tool role).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/context/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/context/utils.ts"],"names":[],"mappings":"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"}
|