@dexto/core 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -9
- package/dist/agent/DextoAgent.cjs +570 -210
- package/dist/agent/DextoAgent.d.ts +175 -35
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +568 -208
- package/dist/agent/agentCard.js +1 -1
- package/dist/agent/error-codes.cjs +1 -0
- package/dist/agent/error-codes.d.ts +2 -1
- package/dist/agent/error-codes.d.ts.map +1 -1
- package/dist/agent/error-codes.js +2 -1
- package/dist/agent/errors.cjs +13 -0
- package/dist/agent/errors.d.ts +4 -0
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/errors.js +14 -1
- package/dist/agent/index.cjs +4 -1
- package/dist/agent/index.d.ts +2 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +6 -2
- package/dist/agent/schemas.cjs +90 -68
- package/dist/agent/schemas.d.ts +5998 -146
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +90 -65
- package/dist/agent/state-manager.cjs +5 -5
- package/dist/agent/state-manager.d.ts +4 -4
- package/dist/agent/state-manager.js +6 -6
- package/dist/agent/types.d.ts +24 -10
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/approval/error-codes.js +1 -1
- package/dist/approval/errors.js +1 -1
- package/dist/approval/factory.js +1 -1
- package/dist/approval/index.js +1 -1
- package/dist/approval/manager.cjs +234 -4
- package/dist/approval/manager.d.ts +131 -4
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +225 -5
- package/dist/approval/schemas.cjs +57 -7
- package/dist/approval/schemas.d.ts +344 -33
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +54 -8
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +32 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +2 -1
- package/dist/{chunk-C6A6W6XS.js → chunk-PTJYTZNU.js} +44 -1
- package/dist/context/compaction/factory.cjs +57 -0
- package/dist/context/compaction/factory.d.ts +17 -0
- package/dist/context/compaction/factory.d.ts.map +1 -0
- package/dist/context/compaction/factory.js +34 -0
- package/dist/context/compaction/index.cjs +49 -0
- package/dist/context/compaction/index.d.ts +11 -0
- package/dist/context/compaction/index.d.ts.map +1 -0
- package/dist/context/compaction/index.js +19 -0
- package/dist/context/compaction/overflow.cjs +43 -0
- package/dist/context/compaction/overflow.d.ts +33 -0
- package/dist/context/compaction/overflow.d.ts.map +1 -0
- package/dist/context/compaction/overflow.js +19 -0
- package/dist/context/compaction/provider.cjs +16 -0
- package/dist/context/compaction/provider.d.ts +48 -0
- package/dist/context/compaction/provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.cjs +48 -0
- package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
- package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.js +24 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
- package/dist/{llm/tokenizer/factory.cjs → context/compaction/registry.cjs} +15 -20
- package/dist/context/compaction/registry.d.ts +19 -0
- package/dist/context/compaction/registry.d.ts.map +1 -0
- package/dist/context/compaction/registry.js +16 -0
- package/dist/context/compaction/schemas.cjs +38 -0
- package/dist/context/compaction/schemas.d.ts +24 -0
- package/dist/context/compaction/schemas.d.ts.map +1 -0
- package/dist/context/compaction/schemas.js +14 -0
- package/dist/{llm/tokenizer/types.cjs → context/compaction/strategies/noop.cjs} +12 -9
- package/dist/context/compaction/strategies/noop.d.ts +18 -0
- package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
- package/dist/context/compaction/strategies/noop.js +13 -0
- package/dist/context/compaction/strategies/reactive-overflow.cjs +201 -0
- package/dist/context/compaction/strategies/reactive-overflow.d.ts +81 -0
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
- package/dist/context/compaction/strategies/reactive-overflow.js +178 -0
- package/dist/context/compaction/types.d.ts +20 -0
- package/dist/context/compaction/types.d.ts.map +1 -0
- package/dist/context/error-codes.cjs +7 -0
- package/dist/context/error-codes.d.ts +8 -1
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +8 -1
- package/dist/context/errors.cjs +68 -0
- package/dist/context/errors.d.ts +21 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +69 -1
- package/dist/context/index.cjs +3 -1
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +2 -1
- package/dist/context/manager.cjs +280 -323
- package/dist/context/manager.d.ts +65 -111
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +280 -328
- package/dist/context/media-helpers.js +1 -1
- package/dist/context/types.cjs +49 -0
- package/dist/context/types.d.ts +187 -72
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/types.js +35 -0
- package/dist/context/utils.cjs +293 -290
- package/dist/context/utils.d.ts +32 -18
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +293 -290
- package/dist/errors/DextoBaseError.js +1 -1
- package/dist/errors/DextoRuntimeError.js +1 -1
- package/dist/errors/DextoValidationError.js +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +3 -4
- package/dist/errors/types.js +1 -1
- package/dist/events/index.cjs +18 -1
- package/dist/events/index.d.ts +149 -12
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +19 -2
- package/dist/filesystem/error-codes.js +1 -1
- package/dist/filesystem/errors.js +1 -1
- package/dist/filesystem/filesystem-service.cjs +39 -0
- package/dist/filesystem/filesystem-service.d.ts +32 -0
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +40 -1
- package/dist/filesystem/index.d.ts +1 -1
- package/dist/filesystem/index.d.ts.map +1 -1
- package/dist/filesystem/index.js +1 -1
- package/dist/filesystem/path-validator.cjs +69 -1
- package/dist/filesystem/path-validator.d.ts +43 -2
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +70 -2
- package/dist/image/define-image.cjs +146 -0
- package/dist/image/define-image.d.ts +71 -0
- package/dist/image/define-image.d.ts.map +1 -0
- package/dist/image/define-image.js +121 -0
- package/dist/{llm/tokenizer/default.cjs → image/index.cjs} +10 -19
- package/dist/image/index.d.ts +53 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/index.js +7 -0
- package/dist/image/types.d.ts +231 -0
- package/dist/image/types.d.ts.map +1 -0
- package/dist/image/types.js +0 -0
- package/dist/index.browser.cjs +23 -8
- package/dist/index.browser.d.ts +4 -3
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.js +20 -3
- package/dist/index.cjs +5 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/llm/error-codes.cjs +1 -1
- package/dist/llm/error-codes.d.ts +1 -1
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +2 -2
- package/dist/llm/errors.cjs +34 -10
- package/dist/llm/errors.d.ts +23 -11
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +36 -12
- package/dist/llm/executor/stream-processor.cjs +375 -0
- package/dist/llm/executor/stream-processor.d.ts +55 -0
- package/dist/llm/executor/stream-processor.d.ts.map +1 -0
- package/dist/llm/executor/stream-processor.js +352 -0
- package/dist/llm/executor/tool-output-truncator.cjs +75 -0
- package/dist/llm/executor/tool-output-truncator.d.ts +27 -0
- package/dist/llm/executor/tool-output-truncator.d.ts.map +1 -0
- package/dist/llm/executor/tool-output-truncator.js +48 -0
- package/dist/llm/executor/turn-executor.cjs +780 -0
- package/dist/llm/executor/turn-executor.d.ts +167 -0
- package/dist/llm/executor/turn-executor.d.ts.map +1 -0
- package/dist/llm/executor/turn-executor.js +711 -0
- package/dist/llm/executor/types.cjs +16 -0
- package/dist/llm/executor/types.d.ts +27 -0
- package/dist/llm/executor/types.d.ts.map +1 -0
- package/dist/llm/executor/types.js +0 -0
- package/dist/llm/formatters/vercel.cjs +26 -188
- package/dist/llm/formatters/vercel.d.ts +2 -14
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +25 -187
- package/dist/llm/index.cjs +18 -1
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +14 -0
- package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
- package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
- package/dist/llm/providers/local/downloader.cjs +291 -0
- package/dist/llm/providers/local/downloader.d.ts +82 -0
- package/dist/llm/providers/local/downloader.d.ts.map +1 -0
- package/dist/llm/providers/local/downloader.js +251 -0
- package/dist/llm/providers/local/error-codes.cjs +57 -0
- package/dist/llm/providers/local/error-codes.d.ts +66 -0
- package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
- package/dist/llm/providers/local/error-codes.js +34 -0
- package/dist/llm/providers/local/errors.cjs +240 -0
- package/dist/llm/providers/local/errors.d.ts +31 -0
- package/dist/llm/providers/local/errors.d.ts.map +1 -0
- package/dist/llm/providers/local/errors.js +217 -0
- package/dist/llm/providers/local/gpu-detector.cjs +214 -0
- package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
- package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
- package/dist/llm/providers/local/gpu-detector.js +178 -0
- package/dist/llm/providers/local/index.cjs +147 -0
- package/dist/llm/providers/local/index.d.ts +21 -0
- package/dist/llm/providers/local/index.d.ts.map +1 -0
- package/dist/llm/providers/local/index.js +126 -0
- package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/node-llama-provider.js +176 -0
- package/dist/llm/providers/local/ollama-provider.cjs +230 -0
- package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
- package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/ollama-provider.js +198 -0
- package/dist/llm/providers/local/registry.cjs +343 -0
- package/dist/llm/providers/local/registry.d.ts +51 -0
- package/dist/llm/providers/local/registry.d.ts.map +1 -0
- package/dist/llm/providers/local/registry.js +312 -0
- package/dist/llm/providers/local/schemas.cjs +169 -0
- package/dist/llm/providers/local/schemas.d.ts +395 -0
- package/dist/llm/providers/local/schemas.d.ts.map +1 -0
- package/dist/llm/providers/local/schemas.js +133 -0
- package/dist/llm/providers/local/types.cjs +16 -0
- package/dist/llm/providers/local/types.d.ts +219 -0
- package/dist/llm/providers/local/types.d.ts.map +1 -0
- package/dist/llm/providers/local/types.js +0 -0
- package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
- package/dist/llm/providers/openrouter-model-registry.js +309 -0
- package/dist/llm/registry.cjs +569 -52
- package/dist/llm/registry.d.ts +79 -39
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +564 -49
- package/dist/llm/resolver.cjs +62 -34
- package/dist/llm/resolver.d.ts +3 -3
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +69 -38
- package/dist/llm/schemas.cjs +92 -97
- package/dist/llm/schemas.d.ts +162 -39
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +93 -100
- package/dist/llm/services/factory.cjs +88 -103
- package/dist/llm/services/factory.d.ts +17 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +87 -93
- package/dist/llm/services/test-utils.integration.cjs +28 -10
- package/dist/llm/services/test-utils.integration.d.ts +7 -1
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +33 -12
- package/dist/llm/services/types.d.ts +1 -28
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +58 -469
- package/dist/llm/services/vercel.d.ts +39 -21
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +60 -476
- package/dist/llm/types.cjs +11 -4
- package/dist/llm/types.d.ts +9 -9
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +12 -4
- package/dist/llm/validation.js +1 -1
- package/dist/logger/browser.js +1 -1
- package/dist/logger/factory.js +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/logger/logger.js +1 -1
- package/dist/logger/v2/dexto-logger.cjs +34 -6
- package/dist/logger/v2/dexto-logger.d.ts +20 -2
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/dexto-logger.js +35 -7
- package/dist/logger/v2/error-codes.js +1 -1
- package/dist/logger/v2/errors.js +1 -1
- package/dist/logger/v2/schemas.js +1 -1
- package/dist/logger/v2/test-utils.cjs +70 -0
- package/dist/logger/v2/test-utils.d.ts +17 -0
- package/dist/logger/v2/test-utils.d.ts.map +1 -0
- package/dist/logger/v2/test-utils.js +46 -0
- package/dist/logger/v2/transport-factory.js +1 -1
- package/dist/logger/v2/transports/console-transport.js +1 -1
- package/dist/logger/v2/transports/file-transport.cjs +6 -0
- package/dist/logger/v2/transports/file-transport.d.ts +4 -0
- package/dist/logger/v2/transports/file-transport.d.ts.map +1 -1
- package/dist/logger/v2/transports/file-transport.js +7 -1
- package/dist/logger/v2/types.cjs +1 -0
- package/dist/logger/v2/types.d.ts +18 -2
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/logger/v2/types.js +2 -1
- package/dist/mcp/error-codes.cjs +1 -0
- package/dist/mcp/error-codes.d.ts +1 -0
- package/dist/mcp/error-codes.d.ts.map +1 -1
- package/dist/mcp/error-codes.js +2 -1
- package/dist/mcp/errors.cjs +13 -0
- package/dist/mcp/errors.d.ts +7 -0
- package/dist/mcp/errors.d.ts.map +1 -1
- package/dist/mcp/errors.js +14 -1
- package/dist/mcp/manager.cjs +12 -0
- package/dist/mcp/manager.d.ts +17 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +13 -1
- package/dist/mcp/mcp-client.cjs +0 -3
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +1 -4
- package/dist/mcp/resolver.js +1 -1
- package/dist/mcp/schemas.cjs +6 -0
- package/dist/mcp/schemas.d.ts +52 -0
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +6 -1
- package/dist/memory/error-codes.js +1 -1
- package/dist/memory/errors.js +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/manager.js +1 -1
- package/dist/memory/schemas.d.ts +3 -3
- package/dist/memory/schemas.js +1 -1
- package/dist/plugins/builtins/content-policy.js +1 -1
- package/dist/plugins/builtins/response-sanitizer.js +1 -1
- package/dist/plugins/error-codes.cjs +3 -0
- package/dist/plugins/error-codes.d.ts +7 -1
- package/dist/plugins/error-codes.d.ts.map +1 -1
- package/dist/plugins/error-codes.js +4 -1
- package/dist/plugins/index.cjs +7 -0
- package/dist/plugins/index.d.ts +4 -2
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +7 -2
- package/dist/plugins/loader.js +1 -1
- package/dist/plugins/manager.cjs +92 -7
- package/dist/plugins/manager.d.ts +10 -3
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +93 -8
- package/dist/plugins/registrations/builtins.js +1 -1
- package/dist/plugins/registry.cjs +63 -0
- package/dist/plugins/registry.d.ts +101 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +39 -0
- package/dist/plugins/schemas.cjs +17 -5
- package/dist/plugins/schemas.d.ts +65 -8
- package/dist/plugins/schemas.d.ts.map +1 -1
- package/dist/plugins/schemas.js +16 -5
- package/dist/plugins/types.d.ts +0 -1
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/process/command-validator.js +1 -1
- package/dist/process/error-codes.js +1 -1
- package/dist/process/errors.js +1 -1
- package/dist/process/index.js +1 -1
- package/dist/process/process-service.cjs +78 -26
- package/dist/process/process-service.d.ts +6 -1
- package/dist/process/process-service.d.ts.map +1 -1
- package/dist/process/process-service.js +79 -27
- package/dist/process/types.d.ts +2 -2
- package/dist/process/types.d.ts.map +1 -1
- package/dist/prompts/error-codes.cjs +1 -0
- package/dist/prompts/error-codes.d.ts +2 -1
- package/dist/prompts/error-codes.d.ts.map +1 -1
- package/dist/prompts/error-codes.js +2 -1
- package/dist/prompts/errors.cjs +15 -0
- package/dist/prompts/errors.d.ts +4 -0
- package/dist/prompts/errors.d.ts.map +1 -1
- package/dist/prompts/errors.js +16 -1
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/name-validation.js +1 -1
- package/dist/prompts/prompt-manager.cjs +13 -2
- package/dist/prompts/prompt-manager.d.ts +7 -0
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +14 -3
- package/dist/prompts/providers/config-prompt-provider.cjs +12 -3
- package/dist/prompts/providers/config-prompt-provider.d.ts +2 -1
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +13 -4
- package/dist/prompts/providers/custom-prompt-provider.js +1 -1
- package/dist/prompts/providers/mcp-prompt-provider.js +1 -1
- package/dist/prompts/schemas.d.ts +12 -0
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.js +1 -1
- package/dist/prompts/types.d.ts +2 -0
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/prompts/utils.js +1 -1
- package/dist/providers/base-registry.cjs +147 -0
- package/dist/providers/base-registry.d.ts +147 -0
- package/dist/providers/base-registry.d.ts.map +1 -0
- package/dist/providers/base-registry.js +123 -0
- package/dist/providers/discovery.cjs +95 -0
- package/dist/providers/discovery.d.ts +94 -0
- package/dist/providers/discovery.d.ts.map +1 -0
- package/dist/providers/discovery.js +70 -0
- package/dist/providers/index.cjs +24 -0
- package/dist/providers/index.d.ts +32 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +2 -0
- package/dist/resources/error-codes.js +1 -1
- package/dist/resources/errors.js +1 -1
- package/dist/resources/handlers/blob-handler.js +1 -1
- package/dist/resources/handlers/factory.js +1 -1
- package/dist/resources/handlers/filesystem-handler.js +1 -1
- package/dist/resources/index.js +1 -1
- package/dist/resources/internal-provider.js +1 -1
- package/dist/resources/manager.js +1 -1
- package/dist/resources/reference-parser.cjs +3 -3
- package/dist/resources/reference-parser.d.ts.map +1 -1
- package/dist/resources/reference-parser.js +4 -4
- package/dist/resources/schemas.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/search/search-service.js +1 -1
- package/dist/session/chat-session.cjs +169 -54
- package/dist/session/chat-session.d.ts +69 -29
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +171 -56
- package/dist/session/error-codes.js +1 -1
- package/dist/session/errors.js +1 -1
- package/dist/session/history/database.cjs +134 -21
- package/dist/session/history/database.d.ts +37 -8
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +135 -22
- package/dist/session/history/factory.js +1 -1
- package/dist/session/history/memory.cjs +18 -0
- package/dist/session/history/memory.d.ts +8 -0
- package/dist/session/history/memory.d.ts.map +1 -1
- package/dist/session/history/memory.js +19 -1
- package/dist/session/history/types.d.ts +13 -1
- package/dist/session/history/types.d.ts.map +1 -1
- package/dist/session/index.cjs +3 -0
- package/dist/session/index.d.ts +3 -0
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +3 -1
- package/dist/session/message-queue.cjs +201 -0
- package/dist/session/message-queue.d.ts +114 -0
- package/dist/session/message-queue.d.ts.map +1 -0
- package/dist/session/message-queue.js +178 -0
- package/dist/session/schemas.js +1 -1
- package/dist/session/session-manager.cjs +57 -7
- package/dist/session/session-manager.d.ts +18 -0
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +58 -8
- package/dist/session/title-generator.cjs +4 -8
- package/dist/session/title-generator.d.ts +1 -2
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +5 -9
- package/dist/session/types.cjs +16 -0
- package/dist/session/types.d.ts +14 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +0 -0
- package/dist/storage/blob/factory.cjs +8 -11
- package/dist/storage/blob/factory.d.ts +32 -6
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +9 -12
- package/dist/storage/blob/index.cjs +56 -0
- package/dist/storage/blob/index.d.ts +45 -0
- package/dist/storage/blob/index.d.ts.map +1 -0
- package/dist/storage/blob/index.js +30 -0
- package/dist/storage/blob/local-blob-store.js +1 -1
- package/dist/storage/blob/memory-blob-store.js +1 -1
- package/dist/storage/blob/provider.cjs +16 -0
- package/dist/storage/blob/provider.d.ts +50 -0
- package/dist/storage/blob/provider.d.ts.map +1 -0
- package/dist/storage/blob/provider.js +0 -0
- package/dist/storage/blob/providers/index.cjs +31 -0
- package/dist/storage/blob/providers/index.d.ts +8 -0
- package/dist/storage/blob/providers/index.d.ts.map +1 -0
- package/dist/storage/blob/providers/index.js +7 -0
- package/dist/storage/blob/providers/local.cjs +39 -0
- package/dist/storage/blob/providers/local.d.ts +17 -0
- package/dist/storage/blob/providers/local.d.ts.map +1 -0
- package/dist/storage/blob/providers/local.js +16 -0
- package/dist/storage/blob/providers/memory.cjs +39 -0
- package/dist/storage/blob/providers/memory.d.ts +17 -0
- package/dist/storage/blob/providers/memory.d.ts.map +1 -0
- package/dist/storage/blob/providers/memory.js +16 -0
- package/dist/storage/blob/registry.cjs +50 -0
- package/dist/storage/blob/registry.d.ts +42 -0
- package/dist/storage/blob/registry.d.ts.map +1 -0
- package/dist/storage/blob/registry.js +26 -0
- package/dist/storage/blob/schemas.cjs +9 -12
- package/dist/storage/blob/schemas.d.ts +39 -34
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +7 -12
- package/dist/storage/cache/factory.cjs +8 -36
- package/dist/storage/cache/factory.d.ts +32 -7
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +9 -27
- package/dist/storage/cache/index.cjs +53 -0
- package/dist/storage/cache/index.d.ts +44 -0
- package/dist/storage/cache/index.d.ts.map +1 -0
- package/dist/storage/cache/index.js +28 -0
- package/dist/storage/cache/memory-cache-store.js +1 -1
- package/dist/storage/cache/provider.cjs +16 -0
- package/dist/storage/cache/provider.d.ts +56 -0
- package/dist/storage/cache/provider.d.ts.map +1 -0
- package/dist/storage/cache/provider.js +0 -0
- package/dist/storage/cache/providers/index.cjs +31 -0
- package/dist/storage/cache/providers/index.d.ts +8 -0
- package/dist/storage/cache/providers/index.d.ts.map +1 -0
- package/dist/storage/cache/providers/index.js +7 -0
- package/dist/storage/cache/providers/memory.cjs +40 -0
- package/dist/storage/cache/providers/memory.d.ts +17 -0
- package/dist/storage/cache/providers/memory.d.ts.map +1 -0
- package/dist/storage/cache/providers/memory.js +17 -0
- package/dist/storage/cache/providers/redis.cjs +66 -0
- package/dist/storage/cache/providers/redis.d.ts +20 -0
- package/dist/storage/cache/providers/redis.d.ts.map +1 -0
- package/dist/storage/cache/providers/redis.js +33 -0
- package/dist/storage/cache/redis-store.js +1 -1
- package/dist/{llm/tokenizer/google.cjs → storage/cache/registry.cjs} +23 -25
- package/dist/storage/cache/registry.d.ts +42 -0
- package/dist/storage/cache/registry.d.ts.map +1 -0
- package/dist/storage/cache/registry.js +26 -0
- package/dist/storage/cache/schemas.cjs +6 -2
- package/dist/storage/cache/schemas.d.ts +2 -3
- package/dist/storage/cache/schemas.d.ts.map +1 -1
- package/dist/storage/cache/schemas.js +4 -2
- package/dist/storage/database/factory.cjs +8 -47
- package/dist/storage/database/factory.d.ts +34 -8
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +9 -38
- package/dist/storage/database/index.cjs +58 -0
- package/dist/storage/database/index.d.ts +45 -0
- package/dist/storage/database/index.d.ts.map +1 -0
- package/dist/storage/database/index.js +37 -0
- package/dist/storage/database/memory-database-store.js +1 -1
- package/dist/storage/database/postgres-store.cjs +12 -0
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +13 -1
- package/dist/storage/database/provider.cjs +16 -0
- package/dist/storage/database/provider.d.ts +56 -0
- package/dist/storage/database/provider.d.ts.map +1 -0
- package/dist/storage/database/provider.js +0 -0
- package/dist/storage/database/providers/index.cjs +34 -0
- package/dist/storage/database/providers/index.d.ts +9 -0
- package/dist/storage/database/providers/index.d.ts.map +1 -0
- package/dist/storage/database/providers/index.js +9 -0
- package/dist/storage/database/providers/memory.cjs +40 -0
- package/dist/storage/database/providers/memory.d.ts +16 -0
- package/dist/storage/database/providers/memory.d.ts.map +1 -0
- package/dist/storage/database/providers/memory.js +17 -0
- package/dist/storage/database/providers/postgres.cjs +62 -0
- package/dist/storage/database/providers/postgres.d.ts +19 -0
- package/dist/storage/database/providers/postgres.d.ts.map +1 -0
- package/dist/storage/database/providers/postgres.js +29 -0
- package/dist/storage/database/providers/sqlite.cjs +66 -0
- package/dist/storage/database/providers/sqlite.d.ts +20 -0
- package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
- package/dist/storage/database/providers/sqlite.js +33 -0
- package/dist/storage/database/registry.cjs +50 -0
- package/dist/storage/database/registry.d.ts +42 -0
- package/dist/storage/database/registry.d.ts.map +1 -0
- package/dist/storage/database/registry.js +26 -0
- package/dist/storage/database/schemas.cjs +8 -2
- package/dist/storage/database/schemas.d.ts +3 -4
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +5 -2
- package/dist/storage/database/sqlite-store.js +1 -1
- package/dist/storage/error-codes.cjs +6 -0
- package/dist/storage/error-codes.d.ts +7 -1
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +7 -1
- package/dist/storage/errors.cjs +80 -0
- package/dist/storage/errors.d.ts +24 -0
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +81 -1
- package/dist/storage/index.cjs +47 -4
- package/dist/storage/index.d.ts +34 -8
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +33 -4
- package/dist/storage/schemas.cjs +4 -0
- package/dist/storage/schemas.d.ts +17 -50
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +6 -2
- package/dist/storage/storage-manager.cjs +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +4 -4
- package/dist/systemPrompt/contributors.js +1 -1
- package/dist/systemPrompt/error-codes.js +1 -1
- package/dist/systemPrompt/errors.js +1 -1
- package/dist/systemPrompt/in-built-prompts.cjs +7 -6
- package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +7 -6
- package/dist/systemPrompt/index.js +1 -1
- package/dist/systemPrompt/manager.js +1 -1
- package/dist/systemPrompt/registry.cjs +2 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +3 -3
- package/dist/systemPrompt/schemas.cjs +2 -2
- package/dist/systemPrompt/schemas.d.ts +18 -18
- package/dist/systemPrompt/schemas.js +3 -3
- package/dist/telemetry/decorators.js +1 -1
- package/dist/telemetry/error-codes.js +1 -1
- package/dist/telemetry/errors.js +1 -1
- package/dist/telemetry/exporters.js +1 -1
- package/dist/telemetry/index.js +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/telemetry/telemetry.js +1 -1
- package/dist/telemetry/utils.js +1 -1
- package/dist/tools/bash-pattern-utils.cjs +91 -0
- package/dist/tools/bash-pattern-utils.d.ts +58 -0
- package/dist/tools/bash-pattern-utils.d.ts.map +1 -0
- package/dist/tools/bash-pattern-utils.js +64 -0
- package/dist/tools/confirmation/allowed-tools-provider/factory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/in-memory.js +1 -1
- package/dist/tools/confirmation/allowed-tools-provider/storage.js +1 -1
- package/dist/tools/custom-tool-registry.cjs +64 -0
- package/dist/tools/custom-tool-registry.d.ts +120 -0
- package/dist/tools/custom-tool-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-registry.js +40 -0
- package/dist/tools/custom-tool-schema-registry.cjs +164 -0
- package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
- package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-schema-registry.js +140 -0
- package/dist/tools/display-types.cjs +60 -0
- package/dist/tools/display-types.d.ts +133 -0
- package/dist/tools/display-types.d.ts.map +1 -0
- package/dist/tools/display-types.js +32 -0
- package/dist/tools/error-codes.cjs +5 -0
- package/dist/tools/error-codes.d.ts +6 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +6 -1
- package/dist/tools/errors.cjs +71 -0
- package/dist/tools/errors.d.ts +33 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +72 -1
- package/dist/tools/index.cjs +15 -1
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +13 -2
- package/dist/tools/internal-tools/constants.cjs +3 -9
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +4 -10
- package/dist/tools/internal-tools/implementations/ask-user-tool.cjs +1 -1
- package/dist/tools/internal-tools/implementations/ask-user-tool.js +2 -2
- package/dist/tools/internal-tools/implementations/delegate-to-url-tool.js +1 -1
- package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
- package/dist/tools/internal-tools/implementations/search-history-tool.js +1 -1
- package/dist/tools/internal-tools/provider.cjs +175 -31
- package/dist/tools/internal-tools/provider.d.ts +62 -14
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +176 -32
- package/dist/tools/internal-tools/registry.cjs +19 -43
- package/dist/tools/internal-tools/registry.d.ts +32 -11
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +20 -44
- package/dist/tools/schemas.cjs +36 -6
- package/dist/tools/schemas.d.ts +74 -5
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +30 -6
- package/dist/tools/tool-manager.cjs +279 -30
- package/dist/tools/tool-manager.d.ts +45 -4
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +284 -31
- package/dist/tools/types.d.ts +63 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.cjs +19 -1
- package/dist/utils/api-key-resolver.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +20 -2
- package/dist/utils/async-context.js +1 -1
- package/dist/utils/debug.js +1 -1
- package/dist/{llm/tokenizer/anthropic.cjs → utils/defer.cjs} +19 -20
- package/dist/utils/defer.d.ts +63 -0
- package/dist/utils/defer.d.ts.map +1 -0
- package/dist/utils/defer.js +19 -0
- package/dist/utils/error-conversion.js +1 -1
- package/dist/utils/execution-context.js +1 -1
- package/dist/utils/fs-walk.js +1 -1
- package/dist/utils/index.cjs +3 -3
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/path.js +1 -1
- package/dist/utils/redactor.cjs +18 -3
- package/dist/utils/redactor.d.ts +0 -7
- package/dist/utils/redactor.d.ts.map +1 -1
- package/dist/utils/redactor.js +19 -4
- package/dist/utils/result.js +1 -1
- package/dist/utils/safe-stringify.js +1 -1
- package/dist/utils/schema-metadata.js +1 -1
- package/dist/utils/schema.js +1 -1
- package/dist/utils/service-initializer.cjs +15 -37
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +16 -38
- package/dist/utils/user-info.js +1 -1
- package/dist/utils/zod-schema-converter.js +1 -1
- package/package.json +10 -8
- package/dist/context/compression/middle-removal.cjs +0 -95
- package/dist/context/compression/middle-removal.d.ts +0 -47
- package/dist/context/compression/middle-removal.d.ts.map +0 -1
- package/dist/context/compression/middle-removal.js +0 -72
- package/dist/context/compression/oldest-removal.cjs +0 -83
- package/dist/context/compression/oldest-removal.d.ts +0 -42
- package/dist/context/compression/oldest-removal.d.ts.map +0 -1
- package/dist/context/compression/oldest-removal.js +0 -60
- package/dist/context/compression/types.d.ts +0 -18
- package/dist/context/compression/types.d.ts.map +0 -1
- package/dist/llm/formatters/anthropic.cjs +0 -257
- package/dist/llm/formatters/anthropic.d.ts +0 -46
- package/dist/llm/formatters/anthropic.d.ts.map +0 -1
- package/dist/llm/formatters/anthropic.js +0 -239
- package/dist/llm/formatters/factory.cjs +0 -50
- package/dist/llm/formatters/factory.d.ts +0 -10
- package/dist/llm/formatters/factory.d.ts.map +0 -1
- package/dist/llm/formatters/factory.js +0 -27
- package/dist/llm/formatters/openai.cjs +0 -203
- package/dist/llm/formatters/openai.d.ts +0 -39
- package/dist/llm/formatters/openai.d.ts.map +0 -1
- package/dist/llm/formatters/openai.js +0 -184
- package/dist/llm/formatters/types.d.ts +0 -41
- package/dist/llm/formatters/types.d.ts.map +0 -1
- package/dist/llm/services/anthropic.cjs +0 -511
- package/dist/llm/services/anthropic.d.ts +0 -48
- package/dist/llm/services/anthropic.d.ts.map +0 -1
- package/dist/llm/services/anthropic.js +0 -447
- package/dist/llm/services/openai.cjs +0 -611
- package/dist/llm/services/openai.d.ts +0 -48
- package/dist/llm/services/openai.d.ts.map +0 -1
- package/dist/llm/services/openai.js +0 -547
- package/dist/llm/tokenizer/anthropic.d.ts +0 -19
- package/dist/llm/tokenizer/anthropic.d.ts.map +0 -1
- package/dist/llm/tokenizer/anthropic.js +0 -20
- package/dist/llm/tokenizer/default.d.ts +0 -14
- package/dist/llm/tokenizer/default.d.ts.map +0 -1
- package/dist/llm/tokenizer/default.js +0 -18
- package/dist/llm/tokenizer/factory.d.ts +0 -12
- package/dist/llm/tokenizer/factory.d.ts.map +0 -1
- package/dist/llm/tokenizer/factory.js +0 -21
- package/dist/llm/tokenizer/google.d.ts +0 -29
- package/dist/llm/tokenizer/google.d.ts.map +0 -1
- package/dist/llm/tokenizer/google.js +0 -29
- package/dist/llm/tokenizer/openai.cjs +0 -115
- package/dist/llm/tokenizer/openai.d.ts +0 -41
- package/dist/llm/tokenizer/openai.d.ts.map +0 -1
- package/dist/llm/tokenizer/openai.js +0 -91
- package/dist/llm/tokenizer/types.d.ts +0 -18
- package/dist/llm/tokenizer/types.d.ts.map +0 -1
- package/dist/llm/tokenizer/types.js +0 -10
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -106
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -73
- package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -62
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -39
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -57
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -34
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -71
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -48
- package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -55
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -32
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -56
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -33
- package/dist/utils/env-file.cjs +0 -118
- package/dist/utils/env-file.d.ts +0 -5
- package/dist/utils/env-file.d.ts.map +0 -1
- package/dist/utils/env-file.js +0 -85
- /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
- /package/dist/context/{compression → compaction}/types.cjs +0 -0
- /package/dist/{llm/formatters → context/compaction}/types.js +0 -0
- /package/dist/{llm/formatters → image}/types.cjs +0 -0
package/dist/llm/registry.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import "../chunk-
|
|
1
|
+
import "../chunk-PTJYTZNU.js";
|
|
2
2
|
import { LLMError } from "./errors.js";
|
|
3
3
|
import { LLMErrorCode } from "./error-codes.js";
|
|
4
4
|
import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
|
|
5
5
|
import {
|
|
6
6
|
LLM_PROVIDERS
|
|
7
7
|
} from "./types.js";
|
|
8
|
+
import { getOpenRouterModelContextLength } from "./providers/openrouter-model-registry.js";
|
|
8
9
|
const MIME_TYPE_TO_FILE_TYPE = {
|
|
9
10
|
"application/pdf": "pdf",
|
|
10
11
|
"audio/mp3": "audio",
|
|
@@ -234,6 +235,7 @@ const LLM_REGISTRY = {
|
|
|
234
235
|
pricing: {
|
|
235
236
|
inputPerM: 2.5,
|
|
236
237
|
outputPerM: 10,
|
|
238
|
+
cacheReadPerM: 1.25,
|
|
237
239
|
currency: "USD",
|
|
238
240
|
unit: "per_million_tokens"
|
|
239
241
|
}
|
|
@@ -291,7 +293,6 @@ const LLM_REGISTRY = {
|
|
|
291
293
|
}
|
|
292
294
|
}
|
|
293
295
|
],
|
|
294
|
-
supportedRouters: ["vercel", "in-built"],
|
|
295
296
|
baseURLSupport: "none",
|
|
296
297
|
supportedFileTypes: []
|
|
297
298
|
// No defaults - models must explicitly specify support
|
|
@@ -299,10 +300,10 @@ const LLM_REGISTRY = {
|
|
|
299
300
|
"openai-compatible": {
|
|
300
301
|
models: [],
|
|
301
302
|
// Empty - accepts any model name for custom endpoints
|
|
302
|
-
supportedRouters: ["vercel", "in-built"],
|
|
303
303
|
baseURLSupport: "required",
|
|
304
|
-
supportedFileTypes: ["pdf", "image", "audio"]
|
|
304
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
305
305
|
// Allow all types for custom endpoints - user assumes responsibility for model capabilities
|
|
306
|
+
supportsCustomModels: true
|
|
306
307
|
},
|
|
307
308
|
anthropic: {
|
|
308
309
|
models: [
|
|
@@ -434,13 +435,26 @@ const LLM_REGISTRY = {
|
|
|
434
435
|
}
|
|
435
436
|
}
|
|
436
437
|
],
|
|
437
|
-
supportedRouters: ["vercel", "in-built"],
|
|
438
438
|
baseURLSupport: "none",
|
|
439
439
|
supportedFileTypes: []
|
|
440
440
|
// No defaults - models must explicitly specify support
|
|
441
441
|
},
|
|
442
442
|
google: {
|
|
443
443
|
models: [
|
|
444
|
+
{
|
|
445
|
+
name: "gemini-3-flash-preview",
|
|
446
|
+
displayName: "Gemini 3 Flash Preview",
|
|
447
|
+
maxInputTokens: 1048576,
|
|
448
|
+
default: true,
|
|
449
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
450
|
+
pricing: {
|
|
451
|
+
inputPerM: 0.5,
|
|
452
|
+
outputPerM: 3,
|
|
453
|
+
cacheReadPerM: 0.05,
|
|
454
|
+
currency: "USD",
|
|
455
|
+
unit: "per_million_tokens"
|
|
456
|
+
}
|
|
457
|
+
},
|
|
444
458
|
{
|
|
445
459
|
name: "gemini-3-pro-preview",
|
|
446
460
|
displayName: "Gemini 3 Pro Preview",
|
|
@@ -449,6 +463,7 @@ const LLM_REGISTRY = {
|
|
|
449
463
|
pricing: {
|
|
450
464
|
inputPerM: 2,
|
|
451
465
|
outputPerM: 12,
|
|
466
|
+
cacheReadPerM: 0.2,
|
|
452
467
|
currency: "USD",
|
|
453
468
|
unit: "per_million_tokens"
|
|
454
469
|
}
|
|
@@ -461,6 +476,7 @@ const LLM_REGISTRY = {
|
|
|
461
476
|
pricing: {
|
|
462
477
|
inputPerM: 2,
|
|
463
478
|
outputPerM: 120,
|
|
479
|
+
cacheReadPerM: 0.2,
|
|
464
480
|
currency: "USD",
|
|
465
481
|
unit: "per_million_tokens"
|
|
466
482
|
}
|
|
@@ -469,7 +485,6 @@ const LLM_REGISTRY = {
|
|
|
469
485
|
name: "gemini-2.5-pro",
|
|
470
486
|
displayName: "Gemini 2.5 Pro",
|
|
471
487
|
maxInputTokens: 1048576,
|
|
472
|
-
default: true,
|
|
473
488
|
supportedFileTypes: ["pdf", "image", "audio"],
|
|
474
489
|
pricing: {
|
|
475
490
|
inputPerM: 1.25,
|
|
@@ -487,6 +502,7 @@ const LLM_REGISTRY = {
|
|
|
487
502
|
pricing: {
|
|
488
503
|
inputPerM: 0.3,
|
|
489
504
|
outputPerM: 2.5,
|
|
505
|
+
cacheReadPerM: 0.03,
|
|
490
506
|
currency: "USD",
|
|
491
507
|
unit: "per_million_tokens"
|
|
492
508
|
}
|
|
@@ -526,12 +542,12 @@ const LLM_REGISTRY = {
|
|
|
526
542
|
pricing: {
|
|
527
543
|
inputPerM: 0.075,
|
|
528
544
|
outputPerM: 0.3,
|
|
545
|
+
cacheReadPerM: 0.01875,
|
|
529
546
|
currency: "USD",
|
|
530
547
|
unit: "per_million_tokens"
|
|
531
548
|
}
|
|
532
549
|
}
|
|
533
550
|
],
|
|
534
|
-
supportedRouters: ["vercel"],
|
|
535
551
|
baseURLSupport: "none",
|
|
536
552
|
supportedFileTypes: []
|
|
537
553
|
// No defaults - models must explicitly specify support
|
|
@@ -583,6 +599,7 @@ const LLM_REGISTRY = {
|
|
|
583
599
|
pricing: {
|
|
584
600
|
inputPerM: 1,
|
|
585
601
|
outputPerM: 3,
|
|
602
|
+
cacheReadPerM: 0.5,
|
|
586
603
|
currency: "USD",
|
|
587
604
|
unit: "per_million_tokens"
|
|
588
605
|
}
|
|
@@ -649,7 +666,6 @@ const LLM_REGISTRY = {
|
|
|
649
666
|
}
|
|
650
667
|
}
|
|
651
668
|
],
|
|
652
|
-
supportedRouters: ["vercel"],
|
|
653
669
|
baseURLSupport: "none",
|
|
654
670
|
supportedFileTypes: []
|
|
655
671
|
// Groq currently doesn't support file uploads
|
|
@@ -712,7 +728,6 @@ const LLM_REGISTRY = {
|
|
|
712
728
|
}
|
|
713
729
|
}
|
|
714
730
|
],
|
|
715
|
-
supportedRouters: ["vercel"],
|
|
716
731
|
baseURLSupport: "none",
|
|
717
732
|
supportedFileTypes: []
|
|
718
733
|
// XAI currently doesn't support file uploads
|
|
@@ -770,12 +785,465 @@ const LLM_REGISTRY = {
|
|
|
770
785
|
}
|
|
771
786
|
}
|
|
772
787
|
],
|
|
773
|
-
supportedRouters: ["vercel"],
|
|
774
788
|
baseURLSupport: "none",
|
|
775
789
|
supportedFileTypes: []
|
|
776
790
|
// Cohere currently doesn't support file uploads
|
|
791
|
+
},
|
|
792
|
+
// https://openrouter.ai/docs
|
|
793
|
+
// OpenRouter is a unified API gateway providing access to 100+ models from various providers.
|
|
794
|
+
// Model validation is handled dynamically via openrouter-model-registry.ts
|
|
795
|
+
openrouter: {
|
|
796
|
+
models: [],
|
|
797
|
+
// Empty - accepts any model name (validated against OpenRouter's catalog)
|
|
798
|
+
baseURLSupport: "none",
|
|
799
|
+
// Fixed endpoint - baseURL auto-injected in resolver, no user override allowed
|
|
800
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
801
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
802
|
+
supportsCustomModels: true
|
|
803
|
+
},
|
|
804
|
+
// https://docs.litellm.ai/
|
|
805
|
+
// LiteLLM is an OpenAI-compatible proxy that unifies 100+ LLM providers.
|
|
806
|
+
// User must host their own LiteLLM proxy and provide the baseURL.
|
|
807
|
+
litellm: {
|
|
808
|
+
models: [],
|
|
809
|
+
// Empty - accepts any model name (user's proxy determines available models)
|
|
810
|
+
baseURLSupport: "required",
|
|
811
|
+
// User must provide their LiteLLM proxy URL
|
|
812
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
813
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
814
|
+
supportsCustomModels: true
|
|
815
|
+
},
|
|
816
|
+
// https://glama.ai/
|
|
817
|
+
// Glama is an OpenAI-compatible gateway providing unified access to multiple LLM providers.
|
|
818
|
+
// Fixed endpoint: https://glama.ai/api/gateway/openai/v1
|
|
819
|
+
glama: {
|
|
820
|
+
models: [],
|
|
821
|
+
// Empty - accepts any model name (format: provider/model e.g., openai/gpt-4o)
|
|
822
|
+
baseURLSupport: "none",
|
|
823
|
+
// Fixed endpoint - baseURL auto-injected
|
|
824
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
825
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
826
|
+
supportsCustomModels: true
|
|
827
|
+
},
|
|
828
|
+
// https://cloud.google.com/vertex-ai
|
|
829
|
+
// Google Vertex AI - GCP-hosted gateway for Gemini and Claude models
|
|
830
|
+
// Supports both Google's Gemini models and Anthropic's Claude via partnership
|
|
831
|
+
//
|
|
832
|
+
// Setup instructions:
|
|
833
|
+
// 1. Create a Google Cloud account and project
|
|
834
|
+
// 2. Enable the Vertex AI API: gcloud services enable aiplatform.googleapis.com
|
|
835
|
+
// 3. Enable desired Claude models (requires Anthropic Model Garden)
|
|
836
|
+
// 4. Install Google Cloud CLI: https://cloud.google.com/sdk/docs/install
|
|
837
|
+
// 5. Configure ADC: gcloud auth application-default login
|
|
838
|
+
// 6. Set env vars: GOOGLE_VERTEX_PROJECT (required), GOOGLE_VERTEX_LOCATION (optional)
|
|
839
|
+
//
|
|
840
|
+
// TODO: Add dynamic model fetching via publishers.models.list API
|
|
841
|
+
// - Requires: projectId, region, ADC auth
|
|
842
|
+
// - Endpoints: GET projects/{project}/locations/{location}/publishers/{google,anthropic}/models
|
|
843
|
+
// - Note: API doesn't return aliases (e.g., gemini-2.0-flash), only versioned IDs
|
|
844
|
+
// - Docs: https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.models/list
|
|
845
|
+
// - Models: https://cloud.google.com/vertex-ai/generative-ai/docs/models
|
|
846
|
+
vertex: {
|
|
847
|
+
models: [
|
|
848
|
+
// Gemini 3 models on Vertex AI (Preview)
|
|
849
|
+
{
|
|
850
|
+
name: "gemini-3-flash-preview",
|
|
851
|
+
displayName: "Gemini 3 Flash (Vertex)",
|
|
852
|
+
maxInputTokens: 1048576,
|
|
853
|
+
default: true,
|
|
854
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
855
|
+
pricing: {
|
|
856
|
+
inputPerM: 0.5,
|
|
857
|
+
outputPerM: 3,
|
|
858
|
+
cacheReadPerM: 0.05,
|
|
859
|
+
currency: "USD",
|
|
860
|
+
unit: "per_million_tokens"
|
|
861
|
+
}
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
name: "gemini-3-pro-preview",
|
|
865
|
+
displayName: "Gemini 3 Pro (Vertex)",
|
|
866
|
+
maxInputTokens: 1048576,
|
|
867
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
868
|
+
pricing: {
|
|
869
|
+
inputPerM: 2,
|
|
870
|
+
outputPerM: 12,
|
|
871
|
+
cacheReadPerM: 0.2,
|
|
872
|
+
currency: "USD",
|
|
873
|
+
unit: "per_million_tokens"
|
|
874
|
+
}
|
|
875
|
+
},
|
|
876
|
+
// Gemini 2.x models on Vertex AI
|
|
877
|
+
{
|
|
878
|
+
name: "gemini-2.5-pro",
|
|
879
|
+
displayName: "Gemini 2.5 Pro (Vertex)",
|
|
880
|
+
maxInputTokens: 1048576,
|
|
881
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
882
|
+
pricing: {
|
|
883
|
+
inputPerM: 1.25,
|
|
884
|
+
outputPerM: 10,
|
|
885
|
+
cacheReadPerM: 0.31,
|
|
886
|
+
currency: "USD",
|
|
887
|
+
unit: "per_million_tokens"
|
|
888
|
+
}
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
name: "gemini-2.5-flash",
|
|
892
|
+
displayName: "Gemini 2.5 Flash (Vertex)",
|
|
893
|
+
maxInputTokens: 1048576,
|
|
894
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
895
|
+
pricing: {
|
|
896
|
+
inputPerM: 0.15,
|
|
897
|
+
outputPerM: 0.6,
|
|
898
|
+
cacheReadPerM: 0.0375,
|
|
899
|
+
currency: "USD",
|
|
900
|
+
unit: "per_million_tokens"
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
{
|
|
904
|
+
name: "gemini-2.0-flash",
|
|
905
|
+
displayName: "Gemini 2.0 Flash (Vertex)",
|
|
906
|
+
maxInputTokens: 1048576,
|
|
907
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
908
|
+
pricing: {
|
|
909
|
+
inputPerM: 0.1,
|
|
910
|
+
outputPerM: 0.4,
|
|
911
|
+
cacheReadPerM: 0.025,
|
|
912
|
+
currency: "USD",
|
|
913
|
+
unit: "per_million_tokens"
|
|
914
|
+
}
|
|
915
|
+
},
|
|
916
|
+
// Claude 4.5 models on Vertex AI (via Anthropic partnership)
|
|
917
|
+
// Note: Claude model IDs use @ suffix format on Vertex
|
|
918
|
+
{
|
|
919
|
+
name: "claude-opus-4-5@20251101",
|
|
920
|
+
displayName: "Claude 4.5 Opus (Vertex)",
|
|
921
|
+
maxInputTokens: 2e5,
|
|
922
|
+
supportedFileTypes: ["pdf", "image"],
|
|
923
|
+
pricing: {
|
|
924
|
+
inputPerM: 5,
|
|
925
|
+
outputPerM: 25,
|
|
926
|
+
cacheWritePerM: 6.25,
|
|
927
|
+
cacheReadPerM: 0.5,
|
|
928
|
+
currency: "USD",
|
|
929
|
+
unit: "per_million_tokens"
|
|
930
|
+
}
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
name: "claude-sonnet-4-5@20250929",
|
|
934
|
+
displayName: "Claude 4.5 Sonnet (Vertex)",
|
|
935
|
+
maxInputTokens: 2e5,
|
|
936
|
+
supportedFileTypes: ["pdf", "image"],
|
|
937
|
+
pricing: {
|
|
938
|
+
inputPerM: 3,
|
|
939
|
+
outputPerM: 15,
|
|
940
|
+
cacheWritePerM: 3.75,
|
|
941
|
+
cacheReadPerM: 0.3,
|
|
942
|
+
currency: "USD",
|
|
943
|
+
unit: "per_million_tokens"
|
|
944
|
+
}
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
name: "claude-haiku-4-5@20251001",
|
|
948
|
+
displayName: "Claude 4.5 Haiku (Vertex)",
|
|
949
|
+
maxInputTokens: 2e5,
|
|
950
|
+
supportedFileTypes: ["pdf", "image"],
|
|
951
|
+
pricing: {
|
|
952
|
+
inputPerM: 1,
|
|
953
|
+
outputPerM: 5,
|
|
954
|
+
cacheWritePerM: 1.25,
|
|
955
|
+
cacheReadPerM: 0.1,
|
|
956
|
+
currency: "USD",
|
|
957
|
+
unit: "per_million_tokens"
|
|
958
|
+
}
|
|
959
|
+
},
|
|
960
|
+
// Claude 4.1 and 4.0 models on Vertex AI
|
|
961
|
+
{
|
|
962
|
+
name: "claude-opus-4-1@20250805",
|
|
963
|
+
displayName: "Claude 4.1 Opus (Vertex)",
|
|
964
|
+
maxInputTokens: 2e5,
|
|
965
|
+
supportedFileTypes: ["pdf", "image"],
|
|
966
|
+
pricing: {
|
|
967
|
+
inputPerM: 15,
|
|
968
|
+
outputPerM: 75,
|
|
969
|
+
cacheWritePerM: 18.75,
|
|
970
|
+
cacheReadPerM: 1.5,
|
|
971
|
+
currency: "USD",
|
|
972
|
+
unit: "per_million_tokens"
|
|
973
|
+
}
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
name: "claude-opus-4@20250514",
|
|
977
|
+
displayName: "Claude 4 Opus (Vertex)",
|
|
978
|
+
maxInputTokens: 2e5,
|
|
979
|
+
supportedFileTypes: ["pdf", "image"],
|
|
980
|
+
pricing: {
|
|
981
|
+
inputPerM: 15,
|
|
982
|
+
outputPerM: 75,
|
|
983
|
+
cacheWritePerM: 18.75,
|
|
984
|
+
cacheReadPerM: 1.5,
|
|
985
|
+
currency: "USD",
|
|
986
|
+
unit: "per_million_tokens"
|
|
987
|
+
}
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
name: "claude-sonnet-4@20250514",
|
|
991
|
+
displayName: "Claude 4 Sonnet (Vertex)",
|
|
992
|
+
maxInputTokens: 2e5,
|
|
993
|
+
supportedFileTypes: ["pdf", "image"],
|
|
994
|
+
pricing: {
|
|
995
|
+
inputPerM: 3,
|
|
996
|
+
outputPerM: 15,
|
|
997
|
+
cacheWritePerM: 3.75,
|
|
998
|
+
cacheReadPerM: 0.3,
|
|
999
|
+
currency: "USD",
|
|
1000
|
+
unit: "per_million_tokens"
|
|
1001
|
+
}
|
|
1002
|
+
},
|
|
1003
|
+
// Claude 3.x models on Vertex AI
|
|
1004
|
+
{
|
|
1005
|
+
name: "claude-3-7-sonnet@20250219",
|
|
1006
|
+
displayName: "Claude 3.7 Sonnet (Vertex)",
|
|
1007
|
+
maxInputTokens: 2e5,
|
|
1008
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1009
|
+
pricing: {
|
|
1010
|
+
inputPerM: 3,
|
|
1011
|
+
outputPerM: 15,
|
|
1012
|
+
cacheWritePerM: 3.75,
|
|
1013
|
+
cacheReadPerM: 0.3,
|
|
1014
|
+
currency: "USD",
|
|
1015
|
+
unit: "per_million_tokens"
|
|
1016
|
+
}
|
|
1017
|
+
},
|
|
1018
|
+
{
|
|
1019
|
+
name: "claude-3-5-sonnet-v2@20241022",
|
|
1020
|
+
displayName: "Claude 3.5 Sonnet v2 (Vertex)",
|
|
1021
|
+
maxInputTokens: 2e5,
|
|
1022
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1023
|
+
pricing: {
|
|
1024
|
+
inputPerM: 3,
|
|
1025
|
+
outputPerM: 15,
|
|
1026
|
+
cacheWritePerM: 3.75,
|
|
1027
|
+
cacheReadPerM: 0.3,
|
|
1028
|
+
currency: "USD",
|
|
1029
|
+
unit: "per_million_tokens"
|
|
1030
|
+
}
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
name: "claude-3-5-haiku@20241022",
|
|
1034
|
+
displayName: "Claude 3.5 Haiku (Vertex)",
|
|
1035
|
+
maxInputTokens: 2e5,
|
|
1036
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1037
|
+
pricing: {
|
|
1038
|
+
inputPerM: 0.8,
|
|
1039
|
+
outputPerM: 4,
|
|
1040
|
+
cacheWritePerM: 1,
|
|
1041
|
+
cacheReadPerM: 0.08,
|
|
1042
|
+
currency: "USD",
|
|
1043
|
+
unit: "per_million_tokens"
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
],
|
|
1047
|
+
baseURLSupport: "none",
|
|
1048
|
+
// Auto-constructed from projectId and region
|
|
1049
|
+
supportedFileTypes: ["pdf", "image", "audio"]
|
|
1050
|
+
},
|
|
1051
|
+
// Amazon Bedrock - AWS-hosted gateway for Claude, Nova, and more
|
|
1052
|
+
// Auth: AWS credentials (env vars) or Bedrock API key (AWS_BEARER_TOKEN_BEDROCK)
|
|
1053
|
+
//
|
|
1054
|
+
// Cross-region inference: Auto-added for anthropic.* and amazon.* models
|
|
1055
|
+
// supportsCustomModels: true allows users to add custom model IDs beyond the fixed list
|
|
1056
|
+
bedrock: {
|
|
1057
|
+
supportsCustomModels: true,
|
|
1058
|
+
models: [
|
|
1059
|
+
// Claude 4.5 models (latest)
|
|
1060
|
+
{
|
|
1061
|
+
name: "anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
1062
|
+
displayName: "Claude 4.5 Sonnet",
|
|
1063
|
+
maxInputTokens: 2e5,
|
|
1064
|
+
default: true,
|
|
1065
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1066
|
+
pricing: {
|
|
1067
|
+
inputPerM: 3,
|
|
1068
|
+
outputPerM: 15,
|
|
1069
|
+
cacheWritePerM: 3.75,
|
|
1070
|
+
cacheReadPerM: 0.3,
|
|
1071
|
+
currency: "USD",
|
|
1072
|
+
unit: "per_million_tokens"
|
|
1073
|
+
}
|
|
1074
|
+
},
|
|
1075
|
+
{
|
|
1076
|
+
name: "anthropic.claude-haiku-4-5-20251001-v1:0",
|
|
1077
|
+
displayName: "Claude 4.5 Haiku",
|
|
1078
|
+
maxInputTokens: 2e5,
|
|
1079
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1080
|
+
pricing: {
|
|
1081
|
+
inputPerM: 1,
|
|
1082
|
+
outputPerM: 5,
|
|
1083
|
+
cacheWritePerM: 1.25,
|
|
1084
|
+
cacheReadPerM: 0.1,
|
|
1085
|
+
currency: "USD",
|
|
1086
|
+
unit: "per_million_tokens"
|
|
1087
|
+
}
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
name: "anthropic.claude-opus-4-5-20251101-v1:0",
|
|
1091
|
+
displayName: "Claude 4.5 Opus",
|
|
1092
|
+
maxInputTokens: 2e5,
|
|
1093
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1094
|
+
pricing: {
|
|
1095
|
+
inputPerM: 5,
|
|
1096
|
+
outputPerM: 25,
|
|
1097
|
+
cacheWritePerM: 6.25,
|
|
1098
|
+
cacheReadPerM: 0.5,
|
|
1099
|
+
currency: "USD",
|
|
1100
|
+
unit: "per_million_tokens"
|
|
1101
|
+
}
|
|
1102
|
+
},
|
|
1103
|
+
// Amazon Nova models
|
|
1104
|
+
{
|
|
1105
|
+
name: "amazon.nova-premier-v1:0",
|
|
1106
|
+
displayName: "Nova Premier",
|
|
1107
|
+
maxInputTokens: 1e6,
|
|
1108
|
+
supportedFileTypes: ["image"],
|
|
1109
|
+
pricing: {
|
|
1110
|
+
inputPerM: 2.5,
|
|
1111
|
+
outputPerM: 12.5,
|
|
1112
|
+
currency: "USD",
|
|
1113
|
+
unit: "per_million_tokens"
|
|
1114
|
+
}
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
name: "amazon.nova-pro-v1:0",
|
|
1118
|
+
displayName: "Nova Pro",
|
|
1119
|
+
maxInputTokens: 3e5,
|
|
1120
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1121
|
+
pricing: {
|
|
1122
|
+
inputPerM: 0.8,
|
|
1123
|
+
outputPerM: 3.2,
|
|
1124
|
+
cacheReadPerM: 0.2,
|
|
1125
|
+
currency: "USD",
|
|
1126
|
+
unit: "per_million_tokens"
|
|
1127
|
+
}
|
|
1128
|
+
},
|
|
1129
|
+
{
|
|
1130
|
+
name: "amazon.nova-lite-v1:0",
|
|
1131
|
+
displayName: "Nova Lite",
|
|
1132
|
+
maxInputTokens: 3e5,
|
|
1133
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1134
|
+
pricing: {
|
|
1135
|
+
inputPerM: 0.06,
|
|
1136
|
+
outputPerM: 0.24,
|
|
1137
|
+
cacheReadPerM: 0.015,
|
|
1138
|
+
currency: "USD",
|
|
1139
|
+
unit: "per_million_tokens"
|
|
1140
|
+
}
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
name: "amazon.nova-micro-v1:0",
|
|
1144
|
+
displayName: "Nova Micro",
|
|
1145
|
+
maxInputTokens: 128e3,
|
|
1146
|
+
supportedFileTypes: [],
|
|
1147
|
+
pricing: {
|
|
1148
|
+
inputPerM: 0.035,
|
|
1149
|
+
outputPerM: 0.14,
|
|
1150
|
+
cacheReadPerM: 875e-5,
|
|
1151
|
+
currency: "USD",
|
|
1152
|
+
unit: "per_million_tokens"
|
|
1153
|
+
}
|
|
1154
|
+
},
|
|
1155
|
+
// OpenAI GPT-OSS
|
|
1156
|
+
{
|
|
1157
|
+
name: "openai.gpt-oss-120b-1:0",
|
|
1158
|
+
displayName: "GPT-OSS 120B",
|
|
1159
|
+
maxInputTokens: 128e3,
|
|
1160
|
+
supportedFileTypes: [],
|
|
1161
|
+
pricing: {
|
|
1162
|
+
inputPerM: 0.15,
|
|
1163
|
+
outputPerM: 0.6,
|
|
1164
|
+
currency: "USD",
|
|
1165
|
+
unit: "per_million_tokens"
|
|
1166
|
+
}
|
|
1167
|
+
},
|
|
1168
|
+
{
|
|
1169
|
+
name: "openai.gpt-oss-20b-1:0",
|
|
1170
|
+
displayName: "GPT-OSS 20B",
|
|
1171
|
+
maxInputTokens: 128e3,
|
|
1172
|
+
supportedFileTypes: [],
|
|
1173
|
+
pricing: {
|
|
1174
|
+
inputPerM: 0.07,
|
|
1175
|
+
outputPerM: 0.3,
|
|
1176
|
+
currency: "USD",
|
|
1177
|
+
unit: "per_million_tokens"
|
|
1178
|
+
}
|
|
1179
|
+
},
|
|
1180
|
+
// Qwen
|
|
1181
|
+
{
|
|
1182
|
+
name: "qwen.qwen3-coder-30b-a3b-v1:0",
|
|
1183
|
+
displayName: "Qwen3 Coder 30B",
|
|
1184
|
+
maxInputTokens: 262144,
|
|
1185
|
+
supportedFileTypes: [],
|
|
1186
|
+
pricing: {
|
|
1187
|
+
inputPerM: 0.15,
|
|
1188
|
+
outputPerM: 0.6,
|
|
1189
|
+
currency: "USD",
|
|
1190
|
+
unit: "per_million_tokens"
|
|
1191
|
+
}
|
|
1192
|
+
},
|
|
1193
|
+
{
|
|
1194
|
+
name: "qwen.qwen3-coder-480b-a35b-v1:0",
|
|
1195
|
+
displayName: "Qwen3 Coder 480B",
|
|
1196
|
+
maxInputTokens: 262144,
|
|
1197
|
+
supportedFileTypes: [],
|
|
1198
|
+
pricing: {
|
|
1199
|
+
inputPerM: 0.22,
|
|
1200
|
+
outputPerM: 1.8,
|
|
1201
|
+
currency: "USD",
|
|
1202
|
+
unit: "per_million_tokens"
|
|
1203
|
+
}
|
|
1204
|
+
}
|
|
1205
|
+
],
|
|
1206
|
+
baseURLSupport: "none",
|
|
1207
|
+
// Auto-constructed from region
|
|
1208
|
+
supportedFileTypes: ["pdf", "image"]
|
|
1209
|
+
},
|
|
1210
|
+
// Native local model execution via node-llama-cpp
|
|
1211
|
+
// Runs GGUF models directly on the machine using Metal/CUDA/Vulkan acceleration
|
|
1212
|
+
// Models are downloaded from HuggingFace and stored in ~/.dexto/models/
|
|
1213
|
+
local: {
|
|
1214
|
+
models: [],
|
|
1215
|
+
// Populated dynamically from local model registry
|
|
1216
|
+
baseURLSupport: "none",
|
|
1217
|
+
// No external server needed
|
|
1218
|
+
supportedFileTypes: ["image"],
|
|
1219
|
+
// Vision support depends on model capabilities
|
|
1220
|
+
supportsCustomModels: true
|
|
1221
|
+
// Allow any GGUF model path
|
|
1222
|
+
},
|
|
1223
|
+
// Ollama server integration
|
|
1224
|
+
// Uses Ollama's OpenAI-compatible API for local model inference
|
|
1225
|
+
// Requires Ollama to be installed and running (default: http://localhost:11434)
|
|
1226
|
+
ollama: {
|
|
1227
|
+
models: [],
|
|
1228
|
+
// Populated dynamically from Ollama API
|
|
1229
|
+
baseURLSupport: "optional",
|
|
1230
|
+
// Default: http://localhost:11434, can be customized
|
|
1231
|
+
supportedFileTypes: ["image"],
|
|
1232
|
+
// Vision support depends on model
|
|
1233
|
+
supportsCustomModels: true
|
|
1234
|
+
// Accept any Ollama model name
|
|
777
1235
|
}
|
|
1236
|
+
// TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
|
|
778
1237
|
};
|
|
1238
|
+
function stripBedrockRegionPrefix(model) {
|
|
1239
|
+
if (model.startsWith("eu.") || model.startsWith("us.")) {
|
|
1240
|
+
return model.slice(3);
|
|
1241
|
+
}
|
|
1242
|
+
if (model.startsWith("global.")) {
|
|
1243
|
+
return model.slice(7);
|
|
1244
|
+
}
|
|
1245
|
+
return model;
|
|
1246
|
+
}
|
|
779
1247
|
function getDefaultModelForProvider(provider) {
|
|
780
1248
|
const providerInfo = LLM_REGISTRY[provider];
|
|
781
1249
|
return providerInfo.models.find((m) => m.default)?.name || null;
|
|
@@ -789,7 +1257,8 @@ function getSupportedModels(provider) {
|
|
|
789
1257
|
}
|
|
790
1258
|
function getMaxInputTokensForModel(provider, model, logger) {
|
|
791
1259
|
const providerInfo = LLM_REGISTRY[provider];
|
|
792
|
-
const
|
|
1260
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1261
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
793
1262
|
if (!modelInfo) {
|
|
794
1263
|
const supportedModels = getSupportedModels(provider).join(", ");
|
|
795
1264
|
logger?.error(
|
|
@@ -802,13 +1271,14 @@ function getMaxInputTokensForModel(provider, model, logger) {
|
|
|
802
1271
|
}
|
|
803
1272
|
function isValidProviderModel(provider, model) {
|
|
804
1273
|
const providerInfo = LLM_REGISTRY[provider];
|
|
805
|
-
|
|
1274
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1275
|
+
return providerInfo.models.some((m) => m.name.toLowerCase() === normalizedModel);
|
|
806
1276
|
}
|
|
807
1277
|
function getProviderFromModel(model) {
|
|
808
|
-
const
|
|
1278
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
809
1279
|
for (const provider of LLM_PROVIDERS) {
|
|
810
1280
|
const info = LLM_REGISTRY[provider];
|
|
811
|
-
if (info.models.some((m) => m.name.toLowerCase() ===
|
|
1281
|
+
if (info.models.some((m) => m.name.toLowerCase() === normalizedModel)) {
|
|
812
1282
|
return provider;
|
|
813
1283
|
}
|
|
814
1284
|
}
|
|
@@ -817,10 +1287,6 @@ function getProviderFromModel(model) {
|
|
|
817
1287
|
function getAllSupportedModels() {
|
|
818
1288
|
return Object.values(LLM_REGISTRY).flatMap((info) => info.models.map((m) => m.name));
|
|
819
1289
|
}
|
|
820
|
-
function getSupportedRoutersForProvider(provider) {
|
|
821
|
-
const providerInfo = LLM_REGISTRY[provider];
|
|
822
|
-
return providerInfo.supportedRouters;
|
|
823
|
-
}
|
|
824
1290
|
function supportsBaseURL(provider) {
|
|
825
1291
|
const providerInfo = LLM_REGISTRY[provider];
|
|
826
1292
|
return providerInfo.baseURLSupport !== "none";
|
|
@@ -833,12 +1299,34 @@ function acceptsAnyModel(provider) {
|
|
|
833
1299
|
const providerInfo = LLM_REGISTRY[provider];
|
|
834
1300
|
return providerInfo.models.length === 0;
|
|
835
1301
|
}
|
|
1302
|
+
function supportsCustomModels(provider) {
|
|
1303
|
+
const providerInfo = LLM_REGISTRY[provider];
|
|
1304
|
+
return providerInfo.supportsCustomModels === true;
|
|
1305
|
+
}
|
|
1306
|
+
const API_KEY_OPTIONAL_PROVIDERS = /* @__PURE__ */ new Set([
|
|
1307
|
+
"local",
|
|
1308
|
+
// Native node-llama-cpp execution - no auth needed
|
|
1309
|
+
"ollama",
|
|
1310
|
+
// Ollama server - no auth needed by default
|
|
1311
|
+
"openai-compatible",
|
|
1312
|
+
// vLLM, LocalAI - often no auth needed
|
|
1313
|
+
"litellm",
|
|
1314
|
+
// Self-hosted proxy - handles auth internally
|
|
1315
|
+
"vertex",
|
|
1316
|
+
// Uses Google Cloud ADC (Application Default Credentials)
|
|
1317
|
+
"bedrock"
|
|
1318
|
+
// Uses AWS credentials (access key + secret or IAM role)
|
|
1319
|
+
]);
|
|
1320
|
+
function requiresApiKey(provider) {
|
|
1321
|
+
return !API_KEY_OPTIONAL_PROVIDERS.has(provider);
|
|
1322
|
+
}
|
|
836
1323
|
function getSupportedFileTypesForModel(provider, model) {
|
|
837
1324
|
const providerInfo = LLM_REGISTRY[provider];
|
|
838
1325
|
if (acceptsAnyModel(provider)) {
|
|
839
1326
|
return providerInfo.supportedFileTypes;
|
|
840
1327
|
}
|
|
841
|
-
const
|
|
1328
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1329
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
842
1330
|
if (!modelInfo) {
|
|
843
1331
|
throw LLMError.unknownModel(provider, model);
|
|
844
1332
|
}
|
|
@@ -877,32 +1365,6 @@ function validateModelFileSupport(provider, model, mimeType) {
|
|
|
877
1365
|
};
|
|
878
1366
|
}
|
|
879
1367
|
}
|
|
880
|
-
function isRouterSupportedForModel(provider, model, router) {
|
|
881
|
-
const providerInfo = LLM_REGISTRY[provider];
|
|
882
|
-
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
|
|
883
|
-
if (!modelInfo) {
|
|
884
|
-
return isRouterSupportedForProvider(provider, router);
|
|
885
|
-
}
|
|
886
|
-
if (modelInfo.supportedRouters) {
|
|
887
|
-
return modelInfo.supportedRouters.includes(router);
|
|
888
|
-
}
|
|
889
|
-
return isRouterSupportedForProvider(provider, router);
|
|
890
|
-
}
|
|
891
|
-
function getSupportedRoutersForModel(provider, model) {
|
|
892
|
-
const providerInfo = LLM_REGISTRY[provider];
|
|
893
|
-
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === model.toLowerCase());
|
|
894
|
-
if (!modelInfo) {
|
|
895
|
-
return getSupportedRoutersForProvider(provider);
|
|
896
|
-
}
|
|
897
|
-
if (modelInfo.supportedRouters) {
|
|
898
|
-
return modelInfo.supportedRouters;
|
|
899
|
-
}
|
|
900
|
-
return getSupportedRoutersForProvider(provider);
|
|
901
|
-
}
|
|
902
|
-
function isRouterSupportedForProvider(provider, router) {
|
|
903
|
-
const supportedRouters = getSupportedRoutersForProvider(provider);
|
|
904
|
-
return supportedRouters.includes(router);
|
|
905
|
-
}
|
|
906
1368
|
function getEffectiveMaxInputTokens(config, logger) {
|
|
907
1369
|
const configuredMaxInputTokens = config.maxInputTokens;
|
|
908
1370
|
if (configuredMaxInputTokens != null) {
|
|
@@ -943,6 +1405,19 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
943
1405
|
}
|
|
944
1406
|
}
|
|
945
1407
|
}
|
|
1408
|
+
if (config.provider === "openrouter") {
|
|
1409
|
+
const contextLength = getOpenRouterModelContextLength(config.model);
|
|
1410
|
+
if (contextLength !== null) {
|
|
1411
|
+
logger.debug(
|
|
1412
|
+
`Using maxInputTokens from OpenRouter registry for ${config.model}: ${contextLength}`
|
|
1413
|
+
);
|
|
1414
|
+
return contextLength;
|
|
1415
|
+
}
|
|
1416
|
+
logger.warn(
|
|
1417
|
+
`OpenRouter model ${config.model} not found in cache, defaulting to ${DEFAULT_MAX_INPUT_TOKENS} tokens`
|
|
1418
|
+
);
|
|
1419
|
+
return DEFAULT_MAX_INPUT_TOKENS;
|
|
1420
|
+
}
|
|
946
1421
|
if (config.baseURL) {
|
|
947
1422
|
logger.warn(
|
|
948
1423
|
`baseURL is set but maxInputTokens is missing. Defaulting to ${DEFAULT_MAX_INPUT_TOKENS}. Provide 'maxInputTokens' in configuration to avoid default fallback.`
|
|
@@ -967,6 +1442,12 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
967
1442
|
return registryMaxInputTokens;
|
|
968
1443
|
} catch (error) {
|
|
969
1444
|
if (error instanceof DextoRuntimeError && error.code === LLMErrorCode.MODEL_UNKNOWN) {
|
|
1445
|
+
if (supportsCustomModels(config.provider)) {
|
|
1446
|
+
logger.debug(
|
|
1447
|
+
`Custom model ${config.model} not in ${config.provider} registry, defaulting to ${DEFAULT_MAX_INPUT_TOKENS} tokens`
|
|
1448
|
+
);
|
|
1449
|
+
return DEFAULT_MAX_INPUT_TOKENS;
|
|
1450
|
+
}
|
|
970
1451
|
logger.error(
|
|
971
1452
|
`Registry lookup failed for ${config.provider}/${config.model}: ${error.message}. Effective maxInputTokens cannot be determined.`
|
|
972
1453
|
);
|
|
@@ -977,27 +1458,61 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
977
1458
|
}
|
|
978
1459
|
}
|
|
979
1460
|
}
|
|
1461
|
+
function getModelPricing(provider, model) {
|
|
1462
|
+
const providerInfo = LLM_REGISTRY[provider];
|
|
1463
|
+
if (acceptsAnyModel(provider)) {
|
|
1464
|
+
return void 0;
|
|
1465
|
+
}
|
|
1466
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1467
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
1468
|
+
return modelInfo?.pricing;
|
|
1469
|
+
}
|
|
1470
|
+
function getModelDisplayName(model, provider) {
|
|
1471
|
+
let resolvedProvider;
|
|
1472
|
+
try {
|
|
1473
|
+
resolvedProvider = provider ?? getProviderFromModel(model);
|
|
1474
|
+
} catch {
|
|
1475
|
+
return model;
|
|
1476
|
+
}
|
|
1477
|
+
const providerInfo = LLM_REGISTRY[resolvedProvider];
|
|
1478
|
+
if (!providerInfo || acceptsAnyModel(resolvedProvider)) {
|
|
1479
|
+
return model;
|
|
1480
|
+
}
|
|
1481
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1482
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
1483
|
+
return modelInfo?.displayName ?? model;
|
|
1484
|
+
}
|
|
1485
|
+
function calculateCost(usage, pricing) {
|
|
1486
|
+
const inputCost = (usage.inputTokens ?? 0) * pricing.inputPerM / 1e6;
|
|
1487
|
+
const outputCost = (usage.outputTokens ?? 0) * pricing.outputPerM / 1e6;
|
|
1488
|
+
const cacheReadCost = (usage.cacheReadTokens ?? 0) * (pricing.cacheReadPerM ?? 0) / 1e6;
|
|
1489
|
+
const cacheWriteCost = (usage.cacheWriteTokens ?? 0) * (pricing.cacheWritePerM ?? 0) / 1e6;
|
|
1490
|
+
const reasoningCost = (usage.reasoningTokens ?? 0) * pricing.outputPerM / 1e6;
|
|
1491
|
+
return inputCost + outputCost + cacheReadCost + cacheWriteCost + reasoningCost;
|
|
1492
|
+
}
|
|
980
1493
|
export {
|
|
981
1494
|
DEFAULT_MAX_INPUT_TOKENS,
|
|
982
1495
|
LLM_REGISTRY,
|
|
983
1496
|
MIME_TYPE_TO_FILE_TYPE,
|
|
984
1497
|
acceptsAnyModel,
|
|
1498
|
+
calculateCost,
|
|
985
1499
|
getAllSupportedModels,
|
|
986
1500
|
getAllowedMimeTypes,
|
|
987
1501
|
getDefaultModelForProvider,
|
|
988
1502
|
getEffectiveMaxInputTokens,
|
|
989
1503
|
getMaxInputTokensForModel,
|
|
1504
|
+
getModelDisplayName,
|
|
1505
|
+
getModelPricing,
|
|
990
1506
|
getProviderFromModel,
|
|
991
1507
|
getSupportedFileTypesForModel,
|
|
992
1508
|
getSupportedModels,
|
|
993
1509
|
getSupportedProviders,
|
|
994
|
-
getSupportedRoutersForModel,
|
|
995
|
-
getSupportedRoutersForProvider,
|
|
996
|
-
isRouterSupportedForModel,
|
|
997
|
-
isRouterSupportedForProvider,
|
|
998
1510
|
isValidProviderModel,
|
|
999
1511
|
modelSupportsFileType,
|
|
1512
|
+
requiresApiKey,
|
|
1000
1513
|
requiresBaseURL,
|
|
1514
|
+
stripBedrockRegionPrefix,
|
|
1001
1515
|
supportsBaseURL,
|
|
1516
|
+
supportsCustomModels,
|
|
1002
1517
|
validateModelFileSupport
|
|
1003
1518
|
};
|