@dexto/core 1.3.0 → 1.4.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 +17 -9
- package/dist/agent/DextoAgent.cjs +548 -207
- package/dist/agent/DextoAgent.d.ts +156 -33
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +545 -204
- 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.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +1 -1
- package/dist/agent/schemas.cjs +3 -0
- package/dist/agent/schemas.d.ts +92 -55
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +6 -2
- 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 +69 -3
- package/dist/approval/manager.d.ts +41 -3
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +70 -4
- package/dist/approval/schemas.cjs +18 -4
- package/dist/approval/schemas.d.ts +106 -32
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +19 -5
- package/dist/approval/types.d.ts +6 -0
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -1
- package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
- package/dist/{llm/tokenizer/default.cjs → context/compression/overflow.cjs} +20 -18
- package/dist/context/compression/overflow.d.ts +33 -0
- package/dist/context/compression/overflow.d.ts.map +1 -0
- package/dist/context/compression/overflow.js +19 -0
- package/dist/context/compression/reactive-overflow.cjs +201 -0
- package/dist/context/compression/reactive-overflow.d.ts +81 -0
- package/dist/context/compression/reactive-overflow.d.ts.map +1 -0
- package/dist/context/compression/reactive-overflow.js +178 -0
- package/dist/context/compression/types.d.ts +9 -7
- package/dist/context/compression/types.d.ts.map +1 -1
- package/dist/context/error-codes.cjs +3 -0
- package/dist/context/error-codes.d.ts +4 -1
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +4 -1
- package/dist/context/errors.cjs +28 -0
- package/dist/context/errors.d.ts +7 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +29 -1
- package/dist/context/index.js +1 -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 +181 -72
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +35 -0
- package/dist/context/utils.cjs +266 -283
- package/dist/context/utils.d.ts +32 -18
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +266 -283
- 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.js +1 -1
- 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.js +1 -1
- package/dist/filesystem/index.js +1 -1
- package/dist/filesystem/path-validator.js +1 -1
- 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.js +1 -1
- package/dist/llm/error-codes.cjs +0 -1
- package/dist/llm/error-codes.d.ts +0 -1
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +1 -2
- package/dist/llm/errors.cjs +10 -10
- package/dist/llm/errors.d.ts +5 -6
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +12 -12
- package/dist/llm/executor/stream-processor.cjs +367 -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 +344 -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 +753 -0
- package/dist/llm/executor/turn-executor.d.ts +166 -0
- package/dist/llm/executor/turn-executor.d.ts.map +1 -0
- package/dist/llm/executor/turn-executor.js +684 -0
- package/dist/llm/executor/types.d.ts +27 -0
- package/dist/llm/executor/types.d.ts.map +1 -0
- package/dist/llm/formatters/vercel.cjs +20 -186
- 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 +19 -185
- package/dist/llm/registry.cjs +36 -45
- package/dist/llm/registry.d.ts +53 -39
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +34 -42
- package/dist/llm/resolver.cjs +1 -31
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +2 -34
- package/dist/llm/schemas.cjs +2 -17
- package/dist/llm/schemas.d.ts +10 -23
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +5 -22
- package/dist/llm/services/factory.cjs +3 -92
- package/dist/llm/services/factory.d.ts +14 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +4 -83
- package/dist/llm/services/test-utils.integration.cjs +6 -8
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +7 -9
- 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 +54 -468
- package/dist/llm/services/vercel.d.ts +38 -21
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +56 -475
- package/dist/llm/types.cjs +0 -3
- package/dist/llm/types.d.ts +8 -8
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +1 -3
- 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 +4 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +5 -1
- package/dist/mcp/mcp-client.js +1 -1
- 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 +2 -2
- 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.js +1 -1
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/loader.js +1 -1
- package/dist/plugins/manager.js +1 -1
- package/dist/plugins/registrations/builtins.js +1 -1
- package/dist/plugins/schemas.d.ts +3 -3
- package/dist/plugins/schemas.js +1 -1
- 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/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.js +1 -1
- 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 +149 -51
- 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 +150 -52
- 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.js +1 -1
- package/dist/storage/blob/local-blob-store.js +1 -1
- package/dist/storage/blob/memory-blob-store.js +1 -1
- package/dist/storage/blob/schemas.js +1 -1
- package/dist/storage/cache/factory.js +1 -1
- package/dist/storage/cache/memory-cache-store.js +1 -1
- package/dist/storage/cache/redis-store.js +1 -1
- package/dist/storage/cache/schemas.js +1 -1
- package/dist/storage/database/factory.js +1 -1
- 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/schemas.js +1 -1
- package/dist/storage/database/sqlite-store.js +1 -1
- package/dist/storage/error-codes.js +1 -1
- package/dist/storage/errors.js +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/schemas.js +1 -1
- package/dist/storage/storage-manager.js +1 -1
- 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.js +1 -1
- package/dist/systemPrompt/index.js +1 -1
- package/dist/systemPrompt/manager.js +1 -1
- package/dist/systemPrompt/registry.js +1 -1
- package/dist/systemPrompt/schemas.d.ts +5 -5
- package/dist/systemPrompt/schemas.js +1 -1
- 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/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 +2 -0
- package/dist/tools/error-codes.d.ts +3 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +3 -1
- package/dist/tools/errors.cjs +30 -0
- package/dist/tools/errors.d.ts +16 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +31 -1
- package/dist/tools/index.cjs +2 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -1
- package/dist/tools/internal-tools/constants.js +1 -1
- 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/bash-exec-tool.cjs +42 -18
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +3 -3
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +43 -19
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +66 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +67 -2
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +14 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +15 -2
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +16 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +17 -2
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +9 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.js +10 -2
- package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +69 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +1 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.js +72 -2
- package/dist/tools/internal-tools/provider.cjs +27 -10
- package/dist/tools/internal-tools/provider.d.ts +8 -5
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +28 -11
- package/dist/tools/internal-tools/registry.cjs +4 -3
- package/dist/tools/internal-tools/registry.d.ts +28 -7
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +5 -4
- package/dist/tools/schemas.cjs +16 -6
- package/dist/tools/schemas.d.ts +31 -4
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +14 -6
- package/dist/tools/tool-manager.cjs +140 -18
- package/dist/tools/tool-manager.d.ts +23 -1
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +145 -19
- package/dist/tools/types.d.ts +20 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +1 -1
- package/dist/utils/async-context.js +1 -1
- package/dist/utils/debug.js +1 -1
- package/dist/{llm/tokenizer/types.cjs → utils/defer.cjs} +19 -10
- 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/env-file.js +1 -1
- 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 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/path.js +1 -1
- package/dist/utils/redactor.js +1 -1
- 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 +6 -2
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +7 -3
- package/dist/utils/user-info.js +1 -1
- package/dist/utils/zod-schema-converter.js +1 -1
- package/package.json +6 -7
- 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/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.cjs +0 -43
- 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.cjs +0 -44
- 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.cjs +0 -52
- 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/llm/{formatters → executor}/types.cjs +0 -0
- /package/dist/llm/{formatters → executor}/types.js +0 -0
|
@@ -1,203 +0,0 @@
|
|
|
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 openai_exports = {};
|
|
20
|
-
__export(openai_exports, {
|
|
21
|
-
OpenAIMessageFormatter: () => OpenAIMessageFormatter
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(openai_exports);
|
|
24
|
-
var import_utils = require("../../context/utils.cjs");
|
|
25
|
-
var import_types4 = require("../../logger/v2/types.cjs");
|
|
26
|
-
class OpenAIMessageFormatter {
|
|
27
|
-
logger;
|
|
28
|
-
constructor(logger) {
|
|
29
|
-
this.logger = logger.createChild(import_types4.DextoLogComponent.LLM);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Formats internal messages into OpenAI's Chat Completion API format
|
|
33
|
-
*
|
|
34
|
-
* @param history Array of internal messages to format
|
|
35
|
-
* @param systemPrompt System prompt to include at the beginning of messages
|
|
36
|
-
* @returns Array of messages formatted for OpenAI's API
|
|
37
|
-
*/
|
|
38
|
-
format(history, context, systemPrompt) {
|
|
39
|
-
const formatted = [];
|
|
40
|
-
let filteredHistory;
|
|
41
|
-
try {
|
|
42
|
-
filteredHistory = (0, import_utils.filterMessagesByLLMCapabilities)([...history], context, this.logger);
|
|
43
|
-
} catch (error) {
|
|
44
|
-
this.logger.warn(
|
|
45
|
-
`Failed to apply capability filtering, using original history: ${error}`
|
|
46
|
-
);
|
|
47
|
-
filteredHistory = [...history];
|
|
48
|
-
}
|
|
49
|
-
if (systemPrompt) {
|
|
50
|
-
formatted.push({
|
|
51
|
-
role: "system",
|
|
52
|
-
content: systemPrompt
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
const pendingToolCallIds = /* @__PURE__ */ new Set();
|
|
56
|
-
for (const msg of filteredHistory) {
|
|
57
|
-
switch (msg.role) {
|
|
58
|
-
case "system":
|
|
59
|
-
formatted.push({
|
|
60
|
-
role: "system",
|
|
61
|
-
content: String(msg.content || "")
|
|
62
|
-
});
|
|
63
|
-
break;
|
|
64
|
-
case "user":
|
|
65
|
-
formatted.push({
|
|
66
|
-
role: "user",
|
|
67
|
-
content: this.formatUserContent(msg.content)
|
|
68
|
-
});
|
|
69
|
-
break;
|
|
70
|
-
case "assistant":
|
|
71
|
-
if (msg.toolCalls && msg.toolCalls.length > 0) {
|
|
72
|
-
formatted.push({
|
|
73
|
-
role: "assistant",
|
|
74
|
-
content: String(msg.content || ""),
|
|
75
|
-
tool_calls: msg.toolCalls
|
|
76
|
-
});
|
|
77
|
-
for (const toolCall of msg.toolCalls) {
|
|
78
|
-
pendingToolCallIds.add(toolCall.id);
|
|
79
|
-
}
|
|
80
|
-
} else {
|
|
81
|
-
formatted.push({
|
|
82
|
-
role: "assistant",
|
|
83
|
-
content: String(msg.content || "")
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
break;
|
|
87
|
-
case "tool":
|
|
88
|
-
if (msg.toolCallId && pendingToolCallIds.has(msg.toolCallId)) {
|
|
89
|
-
formatted.push({
|
|
90
|
-
role: "tool",
|
|
91
|
-
content: (0, import_utils.toTextForToolMessage)(msg.content),
|
|
92
|
-
tool_call_id: msg.toolCallId
|
|
93
|
-
});
|
|
94
|
-
pendingToolCallIds.delete(msg.toolCallId);
|
|
95
|
-
} else {
|
|
96
|
-
this.logger.warn(
|
|
97
|
-
`Skipping orphaned tool result ${msg.toolCallId} (no matching tool call found) - cannot send to OpenAI without corresponding tool_calls`
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
if (pendingToolCallIds.size > 0) {
|
|
104
|
-
for (const toolCallId of pendingToolCallIds) {
|
|
105
|
-
formatted.push({
|
|
106
|
-
role: "tool",
|
|
107
|
-
content: "Error: Tool execution was interrupted (session crashed or cancelled before completion)",
|
|
108
|
-
tool_call_id: toolCallId
|
|
109
|
-
});
|
|
110
|
-
this.logger.warn(
|
|
111
|
-
`Tool call ${toolCallId} had no matching tool result - added synthetic error result to prevent API errors`
|
|
112
|
-
);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
return formatted;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* OpenAI handles system prompts in the messages array
|
|
119
|
-
* This method returns null since the system prompt is already
|
|
120
|
-
* included directly in the formatted messages.
|
|
121
|
-
*
|
|
122
|
-
* @returns null as OpenAI doesn't need a separate system prompt
|
|
123
|
-
*/
|
|
124
|
-
formatSystemPrompt() {
|
|
125
|
-
return null;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Parses OpenAI API response into internal message objects.
|
|
129
|
-
*/
|
|
130
|
-
parseResponse(response) {
|
|
131
|
-
const internal = [];
|
|
132
|
-
const typedResponse = response;
|
|
133
|
-
if (!typedResponse.choices || !Array.isArray(typedResponse.choices)) return internal;
|
|
134
|
-
for (const choice of typedResponse.choices) {
|
|
135
|
-
const msg = choice.message;
|
|
136
|
-
if (!msg || !msg.role) continue;
|
|
137
|
-
const role = msg.role;
|
|
138
|
-
if (role === "assistant") {
|
|
139
|
-
const content = msg.content ?? null;
|
|
140
|
-
if (msg.tool_calls && Array.isArray(msg.tool_calls) && msg.tool_calls.length > 0) {
|
|
141
|
-
const calls = msg.tool_calls.map((call) => {
|
|
142
|
-
const typedCall = call;
|
|
143
|
-
return {
|
|
144
|
-
id: typedCall.id,
|
|
145
|
-
type: "function",
|
|
146
|
-
function: {
|
|
147
|
-
name: typedCall.function.name,
|
|
148
|
-
arguments: typedCall.function.arguments
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
});
|
|
152
|
-
internal.push({ role: "assistant", content, toolCalls: calls });
|
|
153
|
-
} else {
|
|
154
|
-
internal.push({ role: "assistant", content });
|
|
155
|
-
}
|
|
156
|
-
} else if (role === "tool") {
|
|
157
|
-
internal.push({
|
|
158
|
-
role: "tool",
|
|
159
|
-
content: msg.content,
|
|
160
|
-
toolCallId: msg.tool_call_id,
|
|
161
|
-
name: msg.name
|
|
162
|
-
});
|
|
163
|
-
} else if (role === "user" || role === "system") {
|
|
164
|
-
if (msg.content) {
|
|
165
|
-
internal.push({ role, content: msg.content });
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return internal;
|
|
170
|
-
}
|
|
171
|
-
// Helper to format user message parts (text + image + file) into chat API shape
|
|
172
|
-
formatUserContent(content) {
|
|
173
|
-
if (!Array.isArray(content)) {
|
|
174
|
-
return String(content || "");
|
|
175
|
-
}
|
|
176
|
-
const parts = content.map((part) => {
|
|
177
|
-
if (part.type === "text") {
|
|
178
|
-
return { type: "text", text: part.text };
|
|
179
|
-
}
|
|
180
|
-
if (part.type === "image") {
|
|
181
|
-
const raw = (0, import_utils.getImageData)(part, this.logger);
|
|
182
|
-
const url = raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:") ? raw : `data:${part.mimeType || "application/octet-stream"};base64,${raw}`;
|
|
183
|
-
return { type: "image_url", image_url: { url } };
|
|
184
|
-
}
|
|
185
|
-
if (part.type === "file") {
|
|
186
|
-
const fileData = typeof part.data === "string" ? part.data : void 0;
|
|
187
|
-
return {
|
|
188
|
-
type: "file",
|
|
189
|
-
file: {
|
|
190
|
-
...fileData && { file_data: fileData },
|
|
191
|
-
...part.filename && { filename: part.filename }
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
return null;
|
|
196
|
-
}).filter((part) => part !== null);
|
|
197
|
-
return parts;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
201
|
-
0 && (module.exports = {
|
|
202
|
-
OpenAIMessageFormatter
|
|
203
|
-
});
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ChatCompletionMessageParam } from 'openai/resources';
|
|
2
|
-
import { IMessageFormatter } from './types.js';
|
|
3
|
-
import { LLMContext } from '../types.js';
|
|
4
|
-
import { InternalMessage } from '../../context/types.js';
|
|
5
|
-
import type { IDextoLogger } from '../../logger/v2/types.js';
|
|
6
|
-
/**
|
|
7
|
-
* Message formatter for OpenAI's Chat Completion API.
|
|
8
|
-
*
|
|
9
|
-
* Converts the internal message format to OpenAI's specific structure:
|
|
10
|
-
* - System prompt is included in the messages array
|
|
11
|
-
* - Tool calls use the tool_calls property with a structure matching OpenAI's API
|
|
12
|
-
* - Tool results use the 'tool' role with tool_call_id and name
|
|
13
|
-
*/
|
|
14
|
-
export declare class OpenAIMessageFormatter implements IMessageFormatter {
|
|
15
|
-
private logger;
|
|
16
|
-
constructor(logger: IDextoLogger);
|
|
17
|
-
/**
|
|
18
|
-
* Formats internal messages into OpenAI's Chat Completion API format
|
|
19
|
-
*
|
|
20
|
-
* @param history Array of internal messages to format
|
|
21
|
-
* @param systemPrompt System prompt to include at the beginning of messages
|
|
22
|
-
* @returns Array of messages formatted for OpenAI's API
|
|
23
|
-
*/
|
|
24
|
-
format(history: Readonly<InternalMessage[]>, context: LLMContext, systemPrompt: string | null): ChatCompletionMessageParam[];
|
|
25
|
-
/**
|
|
26
|
-
* OpenAI handles system prompts in the messages array
|
|
27
|
-
* This method returns null since the system prompt is already
|
|
28
|
-
* included directly in the formatted messages.
|
|
29
|
-
*
|
|
30
|
-
* @returns null as OpenAI doesn't need a separate system prompt
|
|
31
|
-
*/
|
|
32
|
-
formatSystemPrompt(): null;
|
|
33
|
-
/**
|
|
34
|
-
* Parses OpenAI API response into internal message objects.
|
|
35
|
-
*/
|
|
36
|
-
parseResponse(response: unknown): InternalMessage[];
|
|
37
|
-
private formatUserContent;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=openai.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAA6B,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAMzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D;;;;;;;GAOG;AACH,qBAAa,sBAAuB,YAAW,iBAAiB;IAC5D,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAGhC;;;;;;OAMG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC5B,0BAA0B,EAAE;IAyG/B;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE;IAiDnD,OAAO,CAAC,iBAAiB;CAwC5B"}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import "../../chunk-C6A6W6XS.js";
|
|
2
|
-
import {
|
|
3
|
-
getImageData,
|
|
4
|
-
filterMessagesByLLMCapabilities,
|
|
5
|
-
toTextForToolMessage
|
|
6
|
-
} from "../../context/utils.js";
|
|
7
|
-
import { DextoLogComponent } from "../../logger/v2/types.js";
|
|
8
|
-
class OpenAIMessageFormatter {
|
|
9
|
-
logger;
|
|
10
|
-
constructor(logger) {
|
|
11
|
-
this.logger = logger.createChild(DextoLogComponent.LLM);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Formats internal messages into OpenAI's Chat Completion API format
|
|
15
|
-
*
|
|
16
|
-
* @param history Array of internal messages to format
|
|
17
|
-
* @param systemPrompt System prompt to include at the beginning of messages
|
|
18
|
-
* @returns Array of messages formatted for OpenAI's API
|
|
19
|
-
*/
|
|
20
|
-
format(history, context, systemPrompt) {
|
|
21
|
-
const formatted = [];
|
|
22
|
-
let filteredHistory;
|
|
23
|
-
try {
|
|
24
|
-
filteredHistory = filterMessagesByLLMCapabilities([...history], context, this.logger);
|
|
25
|
-
} catch (error) {
|
|
26
|
-
this.logger.warn(
|
|
27
|
-
`Failed to apply capability filtering, using original history: ${error}`
|
|
28
|
-
);
|
|
29
|
-
filteredHistory = [...history];
|
|
30
|
-
}
|
|
31
|
-
if (systemPrompt) {
|
|
32
|
-
formatted.push({
|
|
33
|
-
role: "system",
|
|
34
|
-
content: systemPrompt
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
const pendingToolCallIds = /* @__PURE__ */ new Set();
|
|
38
|
-
for (const msg of filteredHistory) {
|
|
39
|
-
switch (msg.role) {
|
|
40
|
-
case "system":
|
|
41
|
-
formatted.push({
|
|
42
|
-
role: "system",
|
|
43
|
-
content: String(msg.content || "")
|
|
44
|
-
});
|
|
45
|
-
break;
|
|
46
|
-
case "user":
|
|
47
|
-
formatted.push({
|
|
48
|
-
role: "user",
|
|
49
|
-
content: this.formatUserContent(msg.content)
|
|
50
|
-
});
|
|
51
|
-
break;
|
|
52
|
-
case "assistant":
|
|
53
|
-
if (msg.toolCalls && msg.toolCalls.length > 0) {
|
|
54
|
-
formatted.push({
|
|
55
|
-
role: "assistant",
|
|
56
|
-
content: String(msg.content || ""),
|
|
57
|
-
tool_calls: msg.toolCalls
|
|
58
|
-
});
|
|
59
|
-
for (const toolCall of msg.toolCalls) {
|
|
60
|
-
pendingToolCallIds.add(toolCall.id);
|
|
61
|
-
}
|
|
62
|
-
} else {
|
|
63
|
-
formatted.push({
|
|
64
|
-
role: "assistant",
|
|
65
|
-
content: String(msg.content || "")
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
break;
|
|
69
|
-
case "tool":
|
|
70
|
-
if (msg.toolCallId && pendingToolCallIds.has(msg.toolCallId)) {
|
|
71
|
-
formatted.push({
|
|
72
|
-
role: "tool",
|
|
73
|
-
content: toTextForToolMessage(msg.content),
|
|
74
|
-
tool_call_id: msg.toolCallId
|
|
75
|
-
});
|
|
76
|
-
pendingToolCallIds.delete(msg.toolCallId);
|
|
77
|
-
} else {
|
|
78
|
-
this.logger.warn(
|
|
79
|
-
`Skipping orphaned tool result ${msg.toolCallId} (no matching tool call found) - cannot send to OpenAI without corresponding tool_calls`
|
|
80
|
-
);
|
|
81
|
-
}
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
if (pendingToolCallIds.size > 0) {
|
|
86
|
-
for (const toolCallId of pendingToolCallIds) {
|
|
87
|
-
formatted.push({
|
|
88
|
-
role: "tool",
|
|
89
|
-
content: "Error: Tool execution was interrupted (session crashed or cancelled before completion)",
|
|
90
|
-
tool_call_id: toolCallId
|
|
91
|
-
});
|
|
92
|
-
this.logger.warn(
|
|
93
|
-
`Tool call ${toolCallId} had no matching tool result - added synthetic error result to prevent API errors`
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return formatted;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* OpenAI handles system prompts in the messages array
|
|
101
|
-
* This method returns null since the system prompt is already
|
|
102
|
-
* included directly in the formatted messages.
|
|
103
|
-
*
|
|
104
|
-
* @returns null as OpenAI doesn't need a separate system prompt
|
|
105
|
-
*/
|
|
106
|
-
formatSystemPrompt() {
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Parses OpenAI API response into internal message objects.
|
|
111
|
-
*/
|
|
112
|
-
parseResponse(response) {
|
|
113
|
-
const internal = [];
|
|
114
|
-
const typedResponse = response;
|
|
115
|
-
if (!typedResponse.choices || !Array.isArray(typedResponse.choices)) return internal;
|
|
116
|
-
for (const choice of typedResponse.choices) {
|
|
117
|
-
const msg = choice.message;
|
|
118
|
-
if (!msg || !msg.role) continue;
|
|
119
|
-
const role = msg.role;
|
|
120
|
-
if (role === "assistant") {
|
|
121
|
-
const content = msg.content ?? null;
|
|
122
|
-
if (msg.tool_calls && Array.isArray(msg.tool_calls) && msg.tool_calls.length > 0) {
|
|
123
|
-
const calls = msg.tool_calls.map((call) => {
|
|
124
|
-
const typedCall = call;
|
|
125
|
-
return {
|
|
126
|
-
id: typedCall.id,
|
|
127
|
-
type: "function",
|
|
128
|
-
function: {
|
|
129
|
-
name: typedCall.function.name,
|
|
130
|
-
arguments: typedCall.function.arguments
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
});
|
|
134
|
-
internal.push({ role: "assistant", content, toolCalls: calls });
|
|
135
|
-
} else {
|
|
136
|
-
internal.push({ role: "assistant", content });
|
|
137
|
-
}
|
|
138
|
-
} else if (role === "tool") {
|
|
139
|
-
internal.push({
|
|
140
|
-
role: "tool",
|
|
141
|
-
content: msg.content,
|
|
142
|
-
toolCallId: msg.tool_call_id,
|
|
143
|
-
name: msg.name
|
|
144
|
-
});
|
|
145
|
-
} else if (role === "user" || role === "system") {
|
|
146
|
-
if (msg.content) {
|
|
147
|
-
internal.push({ role, content: msg.content });
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return internal;
|
|
152
|
-
}
|
|
153
|
-
// Helper to format user message parts (text + image + file) into chat API shape
|
|
154
|
-
formatUserContent(content) {
|
|
155
|
-
if (!Array.isArray(content)) {
|
|
156
|
-
return String(content || "");
|
|
157
|
-
}
|
|
158
|
-
const parts = content.map((part) => {
|
|
159
|
-
if (part.type === "text") {
|
|
160
|
-
return { type: "text", text: part.text };
|
|
161
|
-
}
|
|
162
|
-
if (part.type === "image") {
|
|
163
|
-
const raw = getImageData(part, this.logger);
|
|
164
|
-
const url = raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:") ? raw : `data:${part.mimeType || "application/octet-stream"};base64,${raw}`;
|
|
165
|
-
return { type: "image_url", image_url: { url } };
|
|
166
|
-
}
|
|
167
|
-
if (part.type === "file") {
|
|
168
|
-
const fileData = typeof part.data === "string" ? part.data : void 0;
|
|
169
|
-
return {
|
|
170
|
-
type: "file",
|
|
171
|
-
file: {
|
|
172
|
-
...fileData && { file_data: fileData },
|
|
173
|
-
...part.filename && { filename: part.filename }
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
return null;
|
|
178
|
-
}).filter((part) => part !== null);
|
|
179
|
-
return parts;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
export {
|
|
183
|
-
OpenAIMessageFormatter
|
|
184
|
-
};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { InternalMessage } from '../../context/types.js';
|
|
2
|
-
import { LLMContext } from '../types.js';
|
|
3
|
-
/**
|
|
4
|
-
* Interface for converting internal message format to LLM provider-specific formats.
|
|
5
|
-
* Each LLM provider requires a different message structure, and the formatter's job
|
|
6
|
-
* is to handle these conversions while maintaining a consistent internal representation.
|
|
7
|
-
*/
|
|
8
|
-
export interface IMessageFormatter {
|
|
9
|
-
/**
|
|
10
|
-
* Formats the internal message history for a specific LLM provider API.
|
|
11
|
-
* Transforms our standardized internal message format into the specific structure
|
|
12
|
-
* required by the target LLM API.
|
|
13
|
-
*
|
|
14
|
-
* @param history The raw internal message history (read-only to prevent modifications)
|
|
15
|
-
* @param systemPrompt The system prompt, if any
|
|
16
|
-
* @param context Optional context containing model information for capability-based filtering
|
|
17
|
-
* @returns The message history structured for the target API (provider-specific type)
|
|
18
|
-
*/
|
|
19
|
-
format(history: Readonly<InternalMessage[]>, context: LLMContext, systemPrompt?: string | null): unknown[];
|
|
20
|
-
/**
|
|
21
|
-
* Parses raw LLM response into an array of InternalMessage objects.
|
|
22
|
-
*/
|
|
23
|
-
parseResponse(response: unknown): InternalMessage[];
|
|
24
|
-
/**
|
|
25
|
-
* Optional method for handling system prompt separately.
|
|
26
|
-
* Some LLM providers (like Anthropic) don't include the system prompt in the
|
|
27
|
-
* messages array but pass it as a separate parameter.
|
|
28
|
-
*
|
|
29
|
-
* @param systemPrompt The system prompt to format
|
|
30
|
-
* @returns The formatted system prompt or null/undefined if not needed
|
|
31
|
-
*/
|
|
32
|
-
formatSystemPrompt?(systemPrompt: string | null): string | null | undefined;
|
|
33
|
-
/**
|
|
34
|
-
* Optional method for parsing streaming LLM responses into InternalMessage objects.
|
|
35
|
-
*
|
|
36
|
-
* @param response The streaming response from the LLM provider
|
|
37
|
-
* @returns Promise that resolves to an array of InternalMessage objects
|
|
38
|
-
*/
|
|
39
|
-
parseStreamResponse?(response: unknown): Promise<InternalMessage[]>;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B;;;;;;;;;OASG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,OAAO,EAAE,CAAC;IAEb;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe,EAAE,CAAC;IAEpD;;;;;;;OAOG;IACH,kBAAkB,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAE5E;;;;;OAKG;IACH,mBAAmB,CAAC,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACvE"}
|