@dexto/core 1.4.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -0
- package/dist/agent/DextoAgent.cjs +22 -3
- package/dist/agent/DextoAgent.d.ts +19 -2
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +23 -4
- package/dist/agent/index.cjs +4 -1
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +5 -1
- package/dist/agent/schemas.cjs +90 -71
- package/dist/agent/schemas.d.ts +5959 -96
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +87 -66
- package/dist/approval/manager.cjs +165 -1
- package/dist/approval/manager.d.ts +91 -2
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +155 -1
- package/dist/approval/schemas.cjs +39 -3
- package/dist/approval/schemas.d.ts +238 -1
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +35 -3
- package/dist/approval/types.cjs +1 -0
- package/dist/approval/types.d.ts +26 -1
- package/dist/approval/types.d.ts.map +1 -1
- package/dist/approval/types.js +1 -0
- package/dist/context/compaction/factory.cjs +57 -0
- package/dist/context/compaction/factory.d.ts +17 -0
- package/dist/context/compaction/factory.d.ts.map +1 -0
- package/dist/context/compaction/factory.js +34 -0
- package/dist/context/compaction/index.cjs +49 -0
- package/dist/context/compaction/index.d.ts +11 -0
- package/dist/context/compaction/index.d.ts.map +1 -0
- package/dist/context/compaction/index.js +19 -0
- package/dist/context/{compression → compaction}/overflow.cjs +3 -3
- package/dist/context/{compression → compaction}/overflow.d.ts +4 -4
- package/dist/context/compaction/overflow.d.ts.map +1 -0
- package/dist/context/{compression → compaction}/overflow.js +2 -2
- package/dist/context/compaction/provider.cjs +16 -0
- package/dist/context/compaction/provider.d.ts +48 -0
- package/dist/context/compaction/provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.cjs +48 -0
- package/dist/context/compaction/providers/noop-provider.d.ts +24 -0
- package/dist/context/compaction/providers/noop-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/noop-provider.js +24 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.cjs +61 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts +36 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.d.ts.map +1 -0
- package/dist/context/compaction/providers/reactive-overflow-provider.js +37 -0
- package/dist/context/compaction/registry.cjs +39 -0
- package/dist/context/compaction/registry.d.ts +19 -0
- package/dist/context/compaction/registry.d.ts.map +1 -0
- package/dist/context/compaction/registry.js +16 -0
- package/dist/context/compaction/schemas.cjs +38 -0
- package/dist/context/compaction/schemas.d.ts +24 -0
- package/dist/context/compaction/schemas.d.ts.map +1 -0
- package/dist/context/compaction/schemas.js +14 -0
- package/dist/context/compaction/strategies/noop.cjs +36 -0
- package/dist/context/compaction/strategies/noop.d.ts +18 -0
- package/dist/context/compaction/strategies/noop.d.ts.map +1 -0
- package/dist/context/compaction/strategies/noop.js +13 -0
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.cjs +3 -3
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.d.ts +6 -6
- package/dist/context/compaction/strategies/reactive-overflow.d.ts.map +1 -0
- package/dist/context/{compression → compaction/strategies}/reactive-overflow.js +4 -4
- package/dist/context/{compression → compaction}/types.d.ts +4 -4
- package/dist/context/compaction/types.d.ts.map +1 -0
- package/dist/context/compaction/types.js +0 -0
- package/dist/context/error-codes.cjs +4 -0
- package/dist/context/error-codes.d.ts +4 -0
- package/dist/context/error-codes.d.ts.map +1 -1
- package/dist/context/error-codes.js +4 -0
- package/dist/context/errors.cjs +40 -0
- package/dist/context/errors.d.ts +14 -0
- package/dist/context/errors.d.ts.map +1 -1
- package/dist/context/errors.js +40 -0
- package/dist/context/index.cjs +3 -1
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +1 -0
- package/dist/context/types.d.ts +6 -0
- package/dist/context/types.d.ts.map +1 -1
- package/dist/context/utils.cjs +27 -7
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +27 -7
- package/dist/errors/result-bridge.cjs +2 -3
- package/dist/errors/result-bridge.d.ts.map +1 -1
- package/dist/errors/result-bridge.js +2 -3
- package/dist/events/index.cjs +6 -3
- package/dist/events/index.d.ts +35 -19
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +5 -3
- package/dist/filesystem/filesystem-service.cjs +39 -0
- package/dist/filesystem/filesystem-service.d.ts +32 -0
- package/dist/filesystem/filesystem-service.d.ts.map +1 -1
- package/dist/filesystem/filesystem-service.js +39 -0
- package/dist/filesystem/index.d.ts +1 -1
- package/dist/filesystem/index.d.ts.map +1 -1
- package/dist/filesystem/path-validator.cjs +69 -1
- package/dist/filesystem/path-validator.d.ts +43 -2
- package/dist/filesystem/path-validator.d.ts.map +1 -1
- package/dist/filesystem/path-validator.js +69 -1
- package/dist/image/define-image.cjs +146 -0
- package/dist/image/define-image.d.ts +71 -0
- package/dist/image/define-image.d.ts.map +1 -0
- package/dist/image/define-image.js +121 -0
- package/dist/image/index.cjs +32 -0
- package/dist/image/index.d.ts +53 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/index.js +7 -0
- package/dist/image/types.cjs +16 -0
- package/dist/image/types.d.ts +231 -0
- package/dist/image/types.d.ts.map +1 -0
- package/dist/image/types.js +0 -0
- package/dist/index.cjs +5 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/llm/error-codes.cjs +1 -0
- package/dist/llm/error-codes.d.ts +1 -0
- package/dist/llm/error-codes.d.ts.map +1 -1
- package/dist/llm/error-codes.js +1 -0
- package/dist/llm/errors.cjs +24 -0
- package/dist/llm/errors.d.ts +19 -6
- package/dist/llm/errors.d.ts.map +1 -1
- package/dist/llm/errors.js +24 -0
- package/dist/llm/executor/provider-options.cjs +87 -0
- package/dist/llm/executor/provider-options.d.ts +49 -0
- package/dist/llm/executor/provider-options.d.ts.map +1 -0
- package/dist/llm/executor/provider-options.js +63 -0
- package/dist/llm/executor/stream-processor.cjs +22 -11
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +22 -11
- package/dist/llm/executor/turn-executor.cjs +60 -23
- package/dist/llm/executor/turn-executor.d.ts +7 -5
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +60 -23
- package/dist/llm/formatters/vercel.cjs +15 -3
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +15 -3
- package/dist/llm/index.cjs +18 -1
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +14 -0
- package/dist/llm/providers/local/ai-sdk-adapter.cjs +308 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts +29 -0
- package/dist/llm/providers/local/ai-sdk-adapter.d.ts.map +1 -0
- package/dist/llm/providers/local/ai-sdk-adapter.js +278 -0
- package/dist/llm/providers/local/downloader.cjs +291 -0
- package/dist/llm/providers/local/downloader.d.ts +82 -0
- package/dist/llm/providers/local/downloader.d.ts.map +1 -0
- package/dist/llm/providers/local/downloader.js +251 -0
- package/dist/llm/providers/local/error-codes.cjs +57 -0
- package/dist/llm/providers/local/error-codes.d.ts +66 -0
- package/dist/llm/providers/local/error-codes.d.ts.map +1 -0
- package/dist/llm/providers/local/error-codes.js +34 -0
- package/dist/llm/providers/local/errors.cjs +240 -0
- package/dist/llm/providers/local/errors.d.ts +31 -0
- package/dist/llm/providers/local/errors.d.ts.map +1 -0
- package/dist/llm/providers/local/errors.js +217 -0
- package/dist/llm/providers/local/gpu-detector.cjs +214 -0
- package/dist/llm/providers/local/gpu-detector.d.ts +28 -0
- package/dist/llm/providers/local/gpu-detector.d.ts.map +1 -0
- package/dist/llm/providers/local/gpu-detector.js +178 -0
- package/dist/llm/providers/local/index.cjs +147 -0
- package/dist/llm/providers/local/index.d.ts +21 -0
- package/dist/llm/providers/local/index.d.ts.map +1 -0
- package/dist/llm/providers/local/index.js +126 -0
- package/dist/llm/providers/local/node-llama-provider.cjs +216 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts +90 -0
- package/dist/llm/providers/local/node-llama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/node-llama-provider.js +176 -0
- package/dist/llm/providers/local/ollama-provider.cjs +230 -0
- package/dist/llm/providers/local/ollama-provider.d.ts +70 -0
- package/dist/llm/providers/local/ollama-provider.d.ts.map +1 -0
- package/dist/llm/providers/local/ollama-provider.js +198 -0
- package/dist/llm/providers/local/registry.cjs +343 -0
- package/dist/llm/providers/local/registry.d.ts +51 -0
- package/dist/llm/providers/local/registry.d.ts.map +1 -0
- package/dist/llm/providers/local/registry.js +312 -0
- package/dist/llm/providers/local/schemas.cjs +169 -0
- package/dist/llm/providers/local/schemas.d.ts +395 -0
- package/dist/llm/providers/local/schemas.d.ts.map +1 -0
- package/dist/llm/providers/local/schemas.js +133 -0
- package/dist/llm/providers/local/types.cjs +16 -0
- package/dist/llm/providers/local/types.d.ts +219 -0
- package/dist/llm/providers/local/types.d.ts.map +1 -0
- package/dist/llm/providers/local/types.js +0 -0
- package/dist/llm/providers/openrouter-model-registry.cjs +350 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts +120 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -0
- package/dist/llm/providers/openrouter-model-registry.js +309 -0
- package/dist/llm/registry.cjs +604 -9
- package/dist/llm/registry.d.ts +35 -0
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +600 -9
- package/dist/llm/resolver.cjs +63 -5
- package/dist/llm/resolver.d.ts +3 -3
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +69 -6
- package/dist/llm/schemas.cjs +107 -81
- package/dist/llm/schemas.d.ts +181 -22
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +107 -81
- package/dist/llm/services/factory.cjs +87 -13
- package/dist/llm/services/factory.d.ts +4 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +85 -12
- package/dist/llm/services/test-utils.integration.cjs +22 -2
- package/dist/llm/services/test-utils.integration.d.ts +7 -1
- package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
- package/dist/llm/services/test-utils.integration.js +26 -3
- package/dist/llm/services/vercel.cjs +8 -3
- package/dist/llm/services/vercel.d.ts +3 -2
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +8 -3
- package/dist/llm/types.cjs +11 -1
- package/dist/llm/types.d.ts +1 -1
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +11 -1
- package/dist/logger/logger.cjs +7 -3
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/logger.js +7 -3
- package/dist/mcp/manager.cjs +8 -0
- package/dist/mcp/manager.d.ts +17 -0
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +8 -0
- package/dist/mcp/mcp-client.cjs +0 -3
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +0 -3
- package/dist/memory/schemas.d.ts +3 -3
- package/dist/plugins/error-codes.cjs +3 -0
- package/dist/plugins/error-codes.d.ts +7 -1
- package/dist/plugins/error-codes.d.ts.map +1 -1
- package/dist/plugins/error-codes.js +3 -0
- package/dist/plugins/index.cjs +7 -0
- package/dist/plugins/index.d.ts +4 -2
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +6 -1
- package/dist/plugins/manager.cjs +92 -7
- package/dist/plugins/manager.d.ts +10 -3
- package/dist/plugins/manager.d.ts.map +1 -1
- package/dist/plugins/manager.js +92 -7
- package/dist/plugins/registry.cjs +63 -0
- package/dist/plugins/registry.d.ts +101 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +39 -0
- package/dist/plugins/schemas.cjs +17 -5
- package/dist/plugins/schemas.d.ts +62 -5
- package/dist/plugins/schemas.d.ts.map +1 -1
- package/dist/plugins/schemas.js +15 -4
- package/dist/providers/base-registry.cjs +147 -0
- package/dist/providers/base-registry.d.ts +147 -0
- package/dist/providers/base-registry.d.ts.map +1 -0
- package/dist/providers/base-registry.js +123 -0
- package/dist/providers/discovery.cjs +109 -0
- package/dist/providers/discovery.d.ts +96 -0
- package/dist/providers/discovery.d.ts.map +1 -0
- package/dist/providers/discovery.js +84 -0
- package/dist/providers/index.cjs +24 -0
- package/dist/providers/index.d.ts +32 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +2 -0
- package/dist/resources/reference-parser.cjs +3 -3
- package/dist/resources/reference-parser.d.ts.map +1 -1
- package/dist/resources/reference-parser.js +3 -3
- package/dist/session/chat-session.cjs +20 -3
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +21 -4
- package/dist/session/history/database.cjs +49 -15
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +49 -15
- package/dist/session/session-manager.cjs +2 -1
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +2 -1
- package/dist/storage/blob/factory.cjs +8 -11
- package/dist/storage/blob/factory.d.ts +32 -6
- package/dist/storage/blob/factory.d.ts.map +1 -1
- package/dist/storage/blob/factory.js +8 -11
- package/dist/storage/blob/index.cjs +56 -0
- package/dist/storage/blob/index.d.ts +45 -0
- package/dist/storage/blob/index.d.ts.map +1 -0
- package/dist/storage/blob/index.js +30 -0
- package/dist/storage/blob/provider.cjs +16 -0
- package/dist/storage/blob/provider.d.ts +50 -0
- package/dist/storage/blob/provider.d.ts.map +1 -0
- package/dist/storage/blob/provider.js +0 -0
- package/dist/storage/blob/providers/index.cjs +31 -0
- package/dist/storage/blob/providers/index.d.ts +8 -0
- package/dist/storage/blob/providers/index.d.ts.map +1 -0
- package/dist/storage/blob/providers/index.js +7 -0
- package/dist/storage/blob/providers/local.cjs +39 -0
- package/dist/storage/blob/providers/local.d.ts +17 -0
- package/dist/storage/blob/providers/local.d.ts.map +1 -0
- package/dist/storage/blob/providers/local.js +16 -0
- package/dist/storage/blob/providers/memory.cjs +39 -0
- package/dist/storage/blob/providers/memory.d.ts +17 -0
- package/dist/storage/blob/providers/memory.d.ts.map +1 -0
- package/dist/storage/blob/providers/memory.js +16 -0
- package/dist/storage/blob/registry.cjs +50 -0
- package/dist/storage/blob/registry.d.ts +42 -0
- package/dist/storage/blob/registry.d.ts.map +1 -0
- package/dist/storage/blob/registry.js +26 -0
- package/dist/storage/blob/schemas.cjs +9 -12
- package/dist/storage/blob/schemas.d.ts +39 -34
- package/dist/storage/blob/schemas.d.ts.map +1 -1
- package/dist/storage/blob/schemas.js +6 -11
- package/dist/storage/cache/factory.cjs +8 -36
- package/dist/storage/cache/factory.d.ts +32 -7
- package/dist/storage/cache/factory.d.ts.map +1 -1
- package/dist/storage/cache/factory.js +8 -26
- package/dist/storage/cache/index.cjs +53 -0
- package/dist/storage/cache/index.d.ts +44 -0
- package/dist/storage/cache/index.d.ts.map +1 -0
- package/dist/storage/cache/index.js +28 -0
- package/dist/storage/cache/provider.cjs +16 -0
- package/dist/storage/cache/provider.d.ts +56 -0
- package/dist/storage/cache/provider.d.ts.map +1 -0
- package/dist/storage/cache/provider.js +0 -0
- package/dist/storage/cache/providers/index.cjs +31 -0
- package/dist/storage/cache/providers/index.d.ts +8 -0
- package/dist/storage/cache/providers/index.d.ts.map +1 -0
- package/dist/storage/cache/providers/index.js +7 -0
- package/dist/storage/cache/providers/memory.cjs +40 -0
- package/dist/storage/cache/providers/memory.d.ts +17 -0
- package/dist/storage/cache/providers/memory.d.ts.map +1 -0
- package/dist/storage/cache/providers/memory.js +17 -0
- package/dist/storage/cache/providers/redis.cjs +66 -0
- package/dist/storage/cache/providers/redis.d.ts +20 -0
- package/dist/storage/cache/providers/redis.d.ts.map +1 -0
- package/dist/storage/cache/providers/redis.js +33 -0
- package/dist/storage/cache/registry.cjs +50 -0
- package/dist/storage/cache/registry.d.ts +42 -0
- package/dist/storage/cache/registry.d.ts.map +1 -0
- package/dist/storage/cache/registry.js +26 -0
- package/dist/storage/cache/schemas.cjs +6 -2
- package/dist/storage/cache/schemas.d.ts +2 -3
- package/dist/storage/cache/schemas.d.ts.map +1 -1
- package/dist/storage/cache/schemas.js +3 -1
- package/dist/storage/database/factory.cjs +8 -47
- package/dist/storage/database/factory.d.ts +34 -8
- package/dist/storage/database/factory.d.ts.map +1 -1
- package/dist/storage/database/factory.js +8 -37
- package/dist/storage/database/index.cjs +58 -0
- package/dist/storage/database/index.d.ts +45 -0
- package/dist/storage/database/index.d.ts.map +1 -0
- package/dist/storage/database/index.js +37 -0
- package/dist/storage/database/postgres-store.cjs +174 -78
- package/dist/storage/database/postgres-store.d.ts +19 -0
- package/dist/storage/database/postgres-store.d.ts.map +1 -1
- package/dist/storage/database/postgres-store.js +174 -78
- package/dist/storage/database/provider.cjs +16 -0
- package/dist/storage/database/provider.d.ts +56 -0
- package/dist/storage/database/provider.d.ts.map +1 -0
- package/dist/storage/database/provider.js +0 -0
- package/dist/storage/database/providers/index.cjs +34 -0
- package/dist/storage/database/providers/index.d.ts +9 -0
- package/dist/storage/database/providers/index.d.ts.map +1 -0
- package/dist/storage/database/providers/index.js +9 -0
- package/dist/storage/database/providers/memory.cjs +40 -0
- package/dist/storage/database/providers/memory.d.ts +16 -0
- package/dist/storage/database/providers/memory.d.ts.map +1 -0
- package/dist/storage/database/providers/memory.js +17 -0
- package/dist/storage/database/providers/postgres.cjs +62 -0
- package/dist/storage/database/providers/postgres.d.ts +19 -0
- package/dist/storage/database/providers/postgres.d.ts.map +1 -0
- package/dist/storage/database/providers/postgres.js +29 -0
- package/dist/storage/database/providers/sqlite.cjs +66 -0
- package/dist/storage/database/providers/sqlite.d.ts +20 -0
- package/dist/storage/database/providers/sqlite.d.ts.map +1 -0
- package/dist/storage/database/providers/sqlite.js +33 -0
- package/dist/storage/database/registry.cjs +50 -0
- package/dist/storage/database/registry.d.ts +42 -0
- package/dist/storage/database/registry.d.ts.map +1 -0
- package/dist/storage/database/registry.js +26 -0
- package/dist/storage/database/schemas.cjs +12 -3
- package/dist/storage/database/schemas.d.ts +11 -4
- package/dist/storage/database/schemas.d.ts.map +1 -1
- package/dist/storage/database/schemas.js +8 -2
- package/dist/storage/error-codes.cjs +6 -0
- package/dist/storage/error-codes.d.ts +7 -1
- package/dist/storage/error-codes.d.ts.map +1 -1
- package/dist/storage/error-codes.js +6 -0
- package/dist/storage/errors.cjs +80 -0
- package/dist/storage/errors.d.ts +24 -0
- package/dist/storage/errors.d.ts.map +1 -1
- package/dist/storage/errors.js +80 -0
- package/dist/storage/index.cjs +47 -4
- package/dist/storage/index.d.ts +34 -8
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +32 -3
- package/dist/storage/schemas.cjs +4 -0
- package/dist/storage/schemas.d.ts +24 -50
- package/dist/storage/schemas.d.ts.map +1 -1
- package/dist/storage/schemas.js +5 -1
- package/dist/storage/storage-manager.cjs +6 -6
- package/dist/storage/storage-manager.d.ts.map +1 -1
- package/dist/storage/storage-manager.js +3 -3
- package/dist/systemPrompt/in-built-prompts.cjs +7 -6
- package/dist/systemPrompt/in-built-prompts.d.ts +2 -2
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +6 -5
- package/dist/systemPrompt/registry.cjs +2 -2
- package/dist/systemPrompt/registry.d.ts +1 -1
- package/dist/systemPrompt/registry.d.ts.map +1 -1
- package/dist/systemPrompt/registry.js +2 -2
- package/dist/systemPrompt/schemas.cjs +2 -2
- package/dist/systemPrompt/schemas.d.ts +13 -13
- package/dist/systemPrompt/schemas.js +2 -2
- package/dist/tools/custom-tool-registry.cjs +64 -0
- package/dist/tools/custom-tool-registry.d.ts +126 -0
- package/dist/tools/custom-tool-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-registry.js +40 -0
- package/dist/tools/custom-tool-schema-registry.cjs +164 -0
- package/dist/tools/custom-tool-schema-registry.d.ts +86 -0
- package/dist/tools/custom-tool-schema-registry.d.ts.map +1 -0
- package/dist/tools/custom-tool-schema-registry.js +140 -0
- package/dist/tools/error-codes.cjs +3 -0
- package/dist/tools/error-codes.d.ts +4 -1
- package/dist/tools/error-codes.d.ts.map +1 -1
- package/dist/tools/error-codes.js +3 -0
- package/dist/tools/errors.cjs +41 -0
- package/dist/tools/errors.d.ts +17 -0
- package/dist/tools/errors.d.ts.map +1 -1
- package/dist/tools/errors.js +41 -0
- package/dist/tools/index.cjs +13 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -1
- package/dist/tools/internal-tools/constants.cjs +3 -9
- package/dist/tools/internal-tools/constants.d.ts +1 -1
- package/dist/tools/internal-tools/constants.d.ts.map +1 -1
- package/dist/tools/internal-tools/constants.js +3 -9
- package/dist/tools/internal-tools/implementations/get-resource-tool.cjs +113 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts +30 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/get-resource-tool.js +90 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.cjs +91 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts +24 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.d.ts.map +1 -0
- package/dist/tools/internal-tools/implementations/list-resources-tool.js +68 -0
- package/dist/tools/internal-tools/provider.cjs +153 -23
- package/dist/tools/internal-tools/provider.d.ts +55 -10
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.js +153 -23
- package/dist/tools/internal-tools/registry.cjs +18 -43
- package/dist/tools/internal-tools/registry.d.ts +4 -4
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.js +18 -43
- package/dist/tools/schemas.cjs +20 -0
- package/dist/tools/schemas.d.ts +43 -1
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +16 -0
- package/dist/tools/tool-manager.cjs +140 -13
- package/dist/tools/tool-manager.d.ts +22 -3
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +140 -13
- package/dist/tools/types.d.ts +43 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.cjs +19 -1
- package/dist/utils/api-key-resolver.d.ts.map +1 -1
- package/dist/utils/api-key-resolver.js +19 -1
- package/dist/utils/index.cjs +0 -2
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/redactor.cjs +18 -3
- package/dist/utils/redactor.d.ts +0 -7
- package/dist/utils/redactor.d.ts.map +1 -1
- package/dist/utils/redactor.js +18 -3
- package/dist/utils/service-initializer.cjs +9 -35
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +9 -35
- package/package.json +5 -2
- package/dist/context/compression/overflow.d.ts.map +0 -1
- package/dist/context/compression/reactive-overflow.d.ts.map +0 -1
- package/dist/context/compression/types.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.cjs +0 -130
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts +0 -13
- package/dist/tools/internal-tools/implementations/bash-exec-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-exec-tool.js +0 -97
- package/dist/tools/internal-tools/implementations/bash-output-tool.cjs +0 -49
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/bash-output-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/bash-output-tool.js +0 -26
- package/dist/tools/internal-tools/implementations/edit-file-tool.cjs +0 -127
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/edit-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/edit-file-tool.js +0 -104
- package/dist/tools/internal-tools/implementations/glob-files-tool.cjs +0 -70
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/glob-files-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/glob-files-tool.js +0 -47
- package/dist/tools/internal-tools/implementations/grep-content-tool.cjs +0 -86
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/grep-content-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/grep-content-tool.js +0 -63
- package/dist/tools/internal-tools/implementations/kill-process-tool.cjs +0 -47
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/kill-process-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/kill-process-tool.js +0 -24
- package/dist/tools/internal-tools/implementations/read-file-tool.cjs +0 -63
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/read-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/read-file-tool.js +0 -40
- package/dist/tools/internal-tools/implementations/write-file-tool.cjs +0 -124
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts +0 -12
- package/dist/tools/internal-tools/implementations/write-file-tool.d.ts.map +0 -1
- package/dist/tools/internal-tools/implementations/write-file-tool.js +0 -103
- package/dist/utils/env-file.cjs +0 -118
- package/dist/utils/env-file.d.ts +0 -5
- package/dist/utils/env-file.d.ts.map +0 -1
- package/dist/utils/env-file.js +0 -85
- /package/dist/context/{compression/types.js → compaction/provider.js} +0 -0
- /package/dist/context/{compression → compaction}/types.cjs +0 -0
package/dist/llm/registry.cjs
CHANGED
|
@@ -34,10 +34,14 @@ __export(registry_exports, {
|
|
|
34
34
|
getSupportedFileTypesForModel: () => getSupportedFileTypesForModel,
|
|
35
35
|
getSupportedModels: () => getSupportedModels,
|
|
36
36
|
getSupportedProviders: () => getSupportedProviders,
|
|
37
|
+
isReasoningCapableModel: () => isReasoningCapableModel,
|
|
37
38
|
isValidProviderModel: () => isValidProviderModel,
|
|
38
39
|
modelSupportsFileType: () => modelSupportsFileType,
|
|
40
|
+
requiresApiKey: () => requiresApiKey,
|
|
39
41
|
requiresBaseURL: () => requiresBaseURL,
|
|
42
|
+
stripBedrockRegionPrefix: () => stripBedrockRegionPrefix,
|
|
40
43
|
supportsBaseURL: () => supportsBaseURL,
|
|
44
|
+
supportsCustomModels: () => supportsCustomModels,
|
|
41
45
|
validateModelFileSupport: () => validateModelFileSupport
|
|
42
46
|
});
|
|
43
47
|
module.exports = __toCommonJS(registry_exports);
|
|
@@ -45,6 +49,7 @@ var import_errors = require("./errors.js");
|
|
|
45
49
|
var import_error_codes = require("./error-codes.js");
|
|
46
50
|
var import_DextoRuntimeError = require("../errors/DextoRuntimeError.js");
|
|
47
51
|
var import_types = require("./types.js");
|
|
52
|
+
var import_openrouter_model_registry = require("./providers/openrouter-model-registry.js");
|
|
48
53
|
const MIME_TYPE_TO_FILE_TYPE = {
|
|
49
54
|
"application/pdf": "pdf",
|
|
50
55
|
"audio/mp3": "audio",
|
|
@@ -70,6 +75,60 @@ const DEFAULT_MAX_INPUT_TOKENS = 128e3;
|
|
|
70
75
|
const LLM_REGISTRY = {
|
|
71
76
|
openai: {
|
|
72
77
|
models: [
|
|
78
|
+
// GPT-5.2 series (latest, released Dec 2025)
|
|
79
|
+
{
|
|
80
|
+
name: "gpt-5.2-chat-latest",
|
|
81
|
+
displayName: "GPT-5.2 Instant",
|
|
82
|
+
maxInputTokens: 4e5,
|
|
83
|
+
supportedFileTypes: ["pdf", "image"],
|
|
84
|
+
pricing: {
|
|
85
|
+
inputPerM: 1.75,
|
|
86
|
+
outputPerM: 14,
|
|
87
|
+
cacheReadPerM: 0.175,
|
|
88
|
+
currency: "USD",
|
|
89
|
+
unit: "per_million_tokens"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "gpt-5.2",
|
|
94
|
+
displayName: "GPT-5.2 Thinking",
|
|
95
|
+
maxInputTokens: 4e5,
|
|
96
|
+
supportedFileTypes: ["pdf", "image"],
|
|
97
|
+
pricing: {
|
|
98
|
+
inputPerM: 1.75,
|
|
99
|
+
outputPerM: 14,
|
|
100
|
+
cacheReadPerM: 0.175,
|
|
101
|
+
currency: "USD",
|
|
102
|
+
unit: "per_million_tokens"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: "gpt-5.2-pro",
|
|
107
|
+
displayName: "GPT-5.2 Pro",
|
|
108
|
+
maxInputTokens: 4e5,
|
|
109
|
+
supportedFileTypes: ["pdf", "image"],
|
|
110
|
+
pricing: {
|
|
111
|
+
inputPerM: 21,
|
|
112
|
+
outputPerM: 168,
|
|
113
|
+
cacheReadPerM: 2.1,
|
|
114
|
+
currency: "USD",
|
|
115
|
+
unit: "per_million_tokens"
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "gpt-5.2-codex",
|
|
120
|
+
displayName: "GPT-5.2 Codex",
|
|
121
|
+
maxInputTokens: 4e5,
|
|
122
|
+
supportedFileTypes: ["pdf", "image"],
|
|
123
|
+
pricing: {
|
|
124
|
+
inputPerM: 1.75,
|
|
125
|
+
outputPerM: 14,
|
|
126
|
+
cacheReadPerM: 0.175,
|
|
127
|
+
currency: "USD",
|
|
128
|
+
unit: "per_million_tokens"
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
// GPT-5.1 series
|
|
73
132
|
{
|
|
74
133
|
name: "gpt-5.1-chat-latest",
|
|
75
134
|
displayName: "GPT-5.1 Instant",
|
|
@@ -274,6 +333,7 @@ const LLM_REGISTRY = {
|
|
|
274
333
|
pricing: {
|
|
275
334
|
inputPerM: 2.5,
|
|
276
335
|
outputPerM: 10,
|
|
336
|
+
cacheReadPerM: 1.25,
|
|
277
337
|
currency: "USD",
|
|
278
338
|
unit: "per_million_tokens"
|
|
279
339
|
}
|
|
@@ -339,8 +399,9 @@ const LLM_REGISTRY = {
|
|
|
339
399
|
models: [],
|
|
340
400
|
// Empty - accepts any model name for custom endpoints
|
|
341
401
|
baseURLSupport: "required",
|
|
342
|
-
supportedFileTypes: ["pdf", "image", "audio"]
|
|
402
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
343
403
|
// Allow all types for custom endpoints - user assumes responsibility for model capabilities
|
|
404
|
+
supportsCustomModels: true
|
|
344
405
|
},
|
|
345
406
|
anthropic: {
|
|
346
407
|
models: [
|
|
@@ -478,6 +539,20 @@ const LLM_REGISTRY = {
|
|
|
478
539
|
},
|
|
479
540
|
google: {
|
|
480
541
|
models: [
|
|
542
|
+
{
|
|
543
|
+
name: "gemini-3-flash-preview",
|
|
544
|
+
displayName: "Gemini 3 Flash Preview",
|
|
545
|
+
maxInputTokens: 1048576,
|
|
546
|
+
default: true,
|
|
547
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
548
|
+
pricing: {
|
|
549
|
+
inputPerM: 0.5,
|
|
550
|
+
outputPerM: 3,
|
|
551
|
+
cacheReadPerM: 0.05,
|
|
552
|
+
currency: "USD",
|
|
553
|
+
unit: "per_million_tokens"
|
|
554
|
+
}
|
|
555
|
+
},
|
|
481
556
|
{
|
|
482
557
|
name: "gemini-3-pro-preview",
|
|
483
558
|
displayName: "Gemini 3 Pro Preview",
|
|
@@ -486,6 +561,7 @@ const LLM_REGISTRY = {
|
|
|
486
561
|
pricing: {
|
|
487
562
|
inputPerM: 2,
|
|
488
563
|
outputPerM: 12,
|
|
564
|
+
cacheReadPerM: 0.2,
|
|
489
565
|
currency: "USD",
|
|
490
566
|
unit: "per_million_tokens"
|
|
491
567
|
}
|
|
@@ -498,6 +574,7 @@ const LLM_REGISTRY = {
|
|
|
498
574
|
pricing: {
|
|
499
575
|
inputPerM: 2,
|
|
500
576
|
outputPerM: 120,
|
|
577
|
+
cacheReadPerM: 0.2,
|
|
501
578
|
currency: "USD",
|
|
502
579
|
unit: "per_million_tokens"
|
|
503
580
|
}
|
|
@@ -506,7 +583,6 @@ const LLM_REGISTRY = {
|
|
|
506
583
|
name: "gemini-2.5-pro",
|
|
507
584
|
displayName: "Gemini 2.5 Pro",
|
|
508
585
|
maxInputTokens: 1048576,
|
|
509
|
-
default: true,
|
|
510
586
|
supportedFileTypes: ["pdf", "image", "audio"],
|
|
511
587
|
pricing: {
|
|
512
588
|
inputPerM: 1.25,
|
|
@@ -524,6 +600,7 @@ const LLM_REGISTRY = {
|
|
|
524
600
|
pricing: {
|
|
525
601
|
inputPerM: 0.3,
|
|
526
602
|
outputPerM: 2.5,
|
|
603
|
+
cacheReadPerM: 0.03,
|
|
527
604
|
currency: "USD",
|
|
528
605
|
unit: "per_million_tokens"
|
|
529
606
|
}
|
|
@@ -563,6 +640,7 @@ const LLM_REGISTRY = {
|
|
|
563
640
|
pricing: {
|
|
564
641
|
inputPerM: 0.075,
|
|
565
642
|
outputPerM: 0.3,
|
|
643
|
+
cacheReadPerM: 0.01875,
|
|
566
644
|
currency: "USD",
|
|
567
645
|
unit: "per_million_tokens"
|
|
568
646
|
}
|
|
@@ -619,6 +697,7 @@ const LLM_REGISTRY = {
|
|
|
619
697
|
pricing: {
|
|
620
698
|
inputPerM: 1,
|
|
621
699
|
outputPerM: 3,
|
|
700
|
+
cacheReadPerM: 0.5,
|
|
622
701
|
currency: "USD",
|
|
623
702
|
unit: "per_million_tokens"
|
|
624
703
|
}
|
|
@@ -807,8 +886,462 @@ const LLM_REGISTRY = {
|
|
|
807
886
|
baseURLSupport: "none",
|
|
808
887
|
supportedFileTypes: []
|
|
809
888
|
// Cohere currently doesn't support file uploads
|
|
889
|
+
},
|
|
890
|
+
// https://openrouter.ai/docs
|
|
891
|
+
// OpenRouter is a unified API gateway providing access to 100+ models from various providers.
|
|
892
|
+
// Model validation is handled dynamically via openrouter-model-registry.ts
|
|
893
|
+
openrouter: {
|
|
894
|
+
models: [],
|
|
895
|
+
// Empty - accepts any model name (validated against OpenRouter's catalog)
|
|
896
|
+
baseURLSupport: "none",
|
|
897
|
+
// Fixed endpoint - baseURL auto-injected in resolver, no user override allowed
|
|
898
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
899
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
900
|
+
supportsCustomModels: true
|
|
901
|
+
},
|
|
902
|
+
// https://docs.litellm.ai/
|
|
903
|
+
// LiteLLM is an OpenAI-compatible proxy that unifies 100+ LLM providers.
|
|
904
|
+
// User must host their own LiteLLM proxy and provide the baseURL.
|
|
905
|
+
litellm: {
|
|
906
|
+
models: [],
|
|
907
|
+
// Empty - accepts any model name (user's proxy determines available models)
|
|
908
|
+
baseURLSupport: "required",
|
|
909
|
+
// User must provide their LiteLLM proxy URL
|
|
910
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
911
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
912
|
+
supportsCustomModels: true
|
|
913
|
+
},
|
|
914
|
+
// https://glama.ai/
|
|
915
|
+
// Glama is an OpenAI-compatible gateway providing unified access to multiple LLM providers.
|
|
916
|
+
// Fixed endpoint: https://glama.ai/api/gateway/openai/v1
|
|
917
|
+
glama: {
|
|
918
|
+
models: [],
|
|
919
|
+
// Empty - accepts any model name (format: provider/model e.g., openai/gpt-4o)
|
|
920
|
+
baseURLSupport: "none",
|
|
921
|
+
// Fixed endpoint - baseURL auto-injected
|
|
922
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
923
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
924
|
+
supportsCustomModels: true
|
|
925
|
+
},
|
|
926
|
+
// https://cloud.google.com/vertex-ai
|
|
927
|
+
// Google Vertex AI - GCP-hosted gateway for Gemini and Claude models
|
|
928
|
+
// Supports both Google's Gemini models and Anthropic's Claude via partnership
|
|
929
|
+
//
|
|
930
|
+
// Setup instructions:
|
|
931
|
+
// 1. Create a Google Cloud account and project
|
|
932
|
+
// 2. Enable the Vertex AI API: gcloud services enable aiplatform.googleapis.com
|
|
933
|
+
// 3. Enable desired Claude models (requires Anthropic Model Garden)
|
|
934
|
+
// 4. Install Google Cloud CLI: https://cloud.google.com/sdk/docs/install
|
|
935
|
+
// 5. Configure ADC: gcloud auth application-default login
|
|
936
|
+
// 6. Set env vars: GOOGLE_VERTEX_PROJECT (required), GOOGLE_VERTEX_LOCATION (optional)
|
|
937
|
+
//
|
|
938
|
+
// TODO: Add dynamic model fetching via publishers.models.list API
|
|
939
|
+
// - Requires: projectId, region, ADC auth
|
|
940
|
+
// - Endpoints: GET projects/{project}/locations/{location}/publishers/{google,anthropic}/models
|
|
941
|
+
// - Note: API doesn't return aliases (e.g., gemini-2.0-flash), only versioned IDs
|
|
942
|
+
// - Docs: https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.models/list
|
|
943
|
+
// - Models: https://cloud.google.com/vertex-ai/generative-ai/docs/models
|
|
944
|
+
vertex: {
|
|
945
|
+
models: [
|
|
946
|
+
// Gemini 3 models on Vertex AI (Preview)
|
|
947
|
+
{
|
|
948
|
+
name: "gemini-3-flash-preview",
|
|
949
|
+
displayName: "Gemini 3 Flash (Vertex)",
|
|
950
|
+
maxInputTokens: 1048576,
|
|
951
|
+
default: true,
|
|
952
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
953
|
+
pricing: {
|
|
954
|
+
inputPerM: 0.5,
|
|
955
|
+
outputPerM: 3,
|
|
956
|
+
cacheReadPerM: 0.05,
|
|
957
|
+
currency: "USD",
|
|
958
|
+
unit: "per_million_tokens"
|
|
959
|
+
}
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
name: "gemini-3-pro-preview",
|
|
963
|
+
displayName: "Gemini 3 Pro (Vertex)",
|
|
964
|
+
maxInputTokens: 1048576,
|
|
965
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
966
|
+
pricing: {
|
|
967
|
+
inputPerM: 2,
|
|
968
|
+
outputPerM: 12,
|
|
969
|
+
cacheReadPerM: 0.2,
|
|
970
|
+
currency: "USD",
|
|
971
|
+
unit: "per_million_tokens"
|
|
972
|
+
}
|
|
973
|
+
},
|
|
974
|
+
// Gemini 2.x models on Vertex AI
|
|
975
|
+
{
|
|
976
|
+
name: "gemini-2.5-pro",
|
|
977
|
+
displayName: "Gemini 2.5 Pro (Vertex)",
|
|
978
|
+
maxInputTokens: 1048576,
|
|
979
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
980
|
+
pricing: {
|
|
981
|
+
inputPerM: 1.25,
|
|
982
|
+
outputPerM: 10,
|
|
983
|
+
cacheReadPerM: 0.31,
|
|
984
|
+
currency: "USD",
|
|
985
|
+
unit: "per_million_tokens"
|
|
986
|
+
}
|
|
987
|
+
},
|
|
988
|
+
{
|
|
989
|
+
name: "gemini-2.5-flash",
|
|
990
|
+
displayName: "Gemini 2.5 Flash (Vertex)",
|
|
991
|
+
maxInputTokens: 1048576,
|
|
992
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
993
|
+
pricing: {
|
|
994
|
+
inputPerM: 0.15,
|
|
995
|
+
outputPerM: 0.6,
|
|
996
|
+
cacheReadPerM: 0.0375,
|
|
997
|
+
currency: "USD",
|
|
998
|
+
unit: "per_million_tokens"
|
|
999
|
+
}
|
|
1000
|
+
},
|
|
1001
|
+
{
|
|
1002
|
+
name: "gemini-2.0-flash",
|
|
1003
|
+
displayName: "Gemini 2.0 Flash (Vertex)",
|
|
1004
|
+
maxInputTokens: 1048576,
|
|
1005
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
1006
|
+
pricing: {
|
|
1007
|
+
inputPerM: 0.1,
|
|
1008
|
+
outputPerM: 0.4,
|
|
1009
|
+
cacheReadPerM: 0.025,
|
|
1010
|
+
currency: "USD",
|
|
1011
|
+
unit: "per_million_tokens"
|
|
1012
|
+
}
|
|
1013
|
+
},
|
|
1014
|
+
// Claude 4.5 models on Vertex AI (via Anthropic partnership)
|
|
1015
|
+
// Note: Claude model IDs use @ suffix format on Vertex
|
|
1016
|
+
{
|
|
1017
|
+
name: "claude-opus-4-5@20251101",
|
|
1018
|
+
displayName: "Claude 4.5 Opus (Vertex)",
|
|
1019
|
+
maxInputTokens: 2e5,
|
|
1020
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1021
|
+
pricing: {
|
|
1022
|
+
inputPerM: 5,
|
|
1023
|
+
outputPerM: 25,
|
|
1024
|
+
cacheWritePerM: 6.25,
|
|
1025
|
+
cacheReadPerM: 0.5,
|
|
1026
|
+
currency: "USD",
|
|
1027
|
+
unit: "per_million_tokens"
|
|
1028
|
+
}
|
|
1029
|
+
},
|
|
1030
|
+
{
|
|
1031
|
+
name: "claude-sonnet-4-5@20250929",
|
|
1032
|
+
displayName: "Claude 4.5 Sonnet (Vertex)",
|
|
1033
|
+
maxInputTokens: 2e5,
|
|
1034
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1035
|
+
pricing: {
|
|
1036
|
+
inputPerM: 3,
|
|
1037
|
+
outputPerM: 15,
|
|
1038
|
+
cacheWritePerM: 3.75,
|
|
1039
|
+
cacheReadPerM: 0.3,
|
|
1040
|
+
currency: "USD",
|
|
1041
|
+
unit: "per_million_tokens"
|
|
1042
|
+
}
|
|
1043
|
+
},
|
|
1044
|
+
{
|
|
1045
|
+
name: "claude-haiku-4-5@20251001",
|
|
1046
|
+
displayName: "Claude 4.5 Haiku (Vertex)",
|
|
1047
|
+
maxInputTokens: 2e5,
|
|
1048
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1049
|
+
pricing: {
|
|
1050
|
+
inputPerM: 1,
|
|
1051
|
+
outputPerM: 5,
|
|
1052
|
+
cacheWritePerM: 1.25,
|
|
1053
|
+
cacheReadPerM: 0.1,
|
|
1054
|
+
currency: "USD",
|
|
1055
|
+
unit: "per_million_tokens"
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
// Claude 4.1 and 4.0 models on Vertex AI
|
|
1059
|
+
{
|
|
1060
|
+
name: "claude-opus-4-1@20250805",
|
|
1061
|
+
displayName: "Claude 4.1 Opus (Vertex)",
|
|
1062
|
+
maxInputTokens: 2e5,
|
|
1063
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1064
|
+
pricing: {
|
|
1065
|
+
inputPerM: 15,
|
|
1066
|
+
outputPerM: 75,
|
|
1067
|
+
cacheWritePerM: 18.75,
|
|
1068
|
+
cacheReadPerM: 1.5,
|
|
1069
|
+
currency: "USD",
|
|
1070
|
+
unit: "per_million_tokens"
|
|
1071
|
+
}
|
|
1072
|
+
},
|
|
1073
|
+
{
|
|
1074
|
+
name: "claude-opus-4@20250514",
|
|
1075
|
+
displayName: "Claude 4 Opus (Vertex)",
|
|
1076
|
+
maxInputTokens: 2e5,
|
|
1077
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1078
|
+
pricing: {
|
|
1079
|
+
inputPerM: 15,
|
|
1080
|
+
outputPerM: 75,
|
|
1081
|
+
cacheWritePerM: 18.75,
|
|
1082
|
+
cacheReadPerM: 1.5,
|
|
1083
|
+
currency: "USD",
|
|
1084
|
+
unit: "per_million_tokens"
|
|
1085
|
+
}
|
|
1086
|
+
},
|
|
1087
|
+
{
|
|
1088
|
+
name: "claude-sonnet-4@20250514",
|
|
1089
|
+
displayName: "Claude 4 Sonnet (Vertex)",
|
|
1090
|
+
maxInputTokens: 2e5,
|
|
1091
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1092
|
+
pricing: {
|
|
1093
|
+
inputPerM: 3,
|
|
1094
|
+
outputPerM: 15,
|
|
1095
|
+
cacheWritePerM: 3.75,
|
|
1096
|
+
cacheReadPerM: 0.3,
|
|
1097
|
+
currency: "USD",
|
|
1098
|
+
unit: "per_million_tokens"
|
|
1099
|
+
}
|
|
1100
|
+
},
|
|
1101
|
+
// Claude 3.x models on Vertex AI
|
|
1102
|
+
{
|
|
1103
|
+
name: "claude-3-7-sonnet@20250219",
|
|
1104
|
+
displayName: "Claude 3.7 Sonnet (Vertex)",
|
|
1105
|
+
maxInputTokens: 2e5,
|
|
1106
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1107
|
+
pricing: {
|
|
1108
|
+
inputPerM: 3,
|
|
1109
|
+
outputPerM: 15,
|
|
1110
|
+
cacheWritePerM: 3.75,
|
|
1111
|
+
cacheReadPerM: 0.3,
|
|
1112
|
+
currency: "USD",
|
|
1113
|
+
unit: "per_million_tokens"
|
|
1114
|
+
}
|
|
1115
|
+
},
|
|
1116
|
+
{
|
|
1117
|
+
name: "claude-3-5-sonnet-v2@20241022",
|
|
1118
|
+
displayName: "Claude 3.5 Sonnet v2 (Vertex)",
|
|
1119
|
+
maxInputTokens: 2e5,
|
|
1120
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1121
|
+
pricing: {
|
|
1122
|
+
inputPerM: 3,
|
|
1123
|
+
outputPerM: 15,
|
|
1124
|
+
cacheWritePerM: 3.75,
|
|
1125
|
+
cacheReadPerM: 0.3,
|
|
1126
|
+
currency: "USD",
|
|
1127
|
+
unit: "per_million_tokens"
|
|
1128
|
+
}
|
|
1129
|
+
},
|
|
1130
|
+
{
|
|
1131
|
+
name: "claude-3-5-haiku@20241022",
|
|
1132
|
+
displayName: "Claude 3.5 Haiku (Vertex)",
|
|
1133
|
+
maxInputTokens: 2e5,
|
|
1134
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1135
|
+
pricing: {
|
|
1136
|
+
inputPerM: 0.8,
|
|
1137
|
+
outputPerM: 4,
|
|
1138
|
+
cacheWritePerM: 1,
|
|
1139
|
+
cacheReadPerM: 0.08,
|
|
1140
|
+
currency: "USD",
|
|
1141
|
+
unit: "per_million_tokens"
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
],
|
|
1145
|
+
baseURLSupport: "none",
|
|
1146
|
+
// Auto-constructed from projectId and region
|
|
1147
|
+
supportedFileTypes: ["pdf", "image", "audio"]
|
|
1148
|
+
},
|
|
1149
|
+
// Amazon Bedrock - AWS-hosted gateway for Claude, Nova, and more
|
|
1150
|
+
// Auth: AWS credentials (env vars) or Bedrock API key (AWS_BEARER_TOKEN_BEDROCK)
|
|
1151
|
+
//
|
|
1152
|
+
// Cross-region inference: Auto-added for anthropic.* and amazon.* models
|
|
1153
|
+
// supportsCustomModels: true allows users to add custom model IDs beyond the fixed list
|
|
1154
|
+
bedrock: {
|
|
1155
|
+
supportsCustomModels: true,
|
|
1156
|
+
models: [
|
|
1157
|
+
// Claude 4.5 models (latest)
|
|
1158
|
+
{
|
|
1159
|
+
name: "anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
1160
|
+
displayName: "Claude 4.5 Sonnet",
|
|
1161
|
+
maxInputTokens: 2e5,
|
|
1162
|
+
default: true,
|
|
1163
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1164
|
+
pricing: {
|
|
1165
|
+
inputPerM: 3,
|
|
1166
|
+
outputPerM: 15,
|
|
1167
|
+
cacheWritePerM: 3.75,
|
|
1168
|
+
cacheReadPerM: 0.3,
|
|
1169
|
+
currency: "USD",
|
|
1170
|
+
unit: "per_million_tokens"
|
|
1171
|
+
}
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
name: "anthropic.claude-haiku-4-5-20251001-v1:0",
|
|
1175
|
+
displayName: "Claude 4.5 Haiku",
|
|
1176
|
+
maxInputTokens: 2e5,
|
|
1177
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1178
|
+
pricing: {
|
|
1179
|
+
inputPerM: 1,
|
|
1180
|
+
outputPerM: 5,
|
|
1181
|
+
cacheWritePerM: 1.25,
|
|
1182
|
+
cacheReadPerM: 0.1,
|
|
1183
|
+
currency: "USD",
|
|
1184
|
+
unit: "per_million_tokens"
|
|
1185
|
+
}
|
|
1186
|
+
},
|
|
1187
|
+
{
|
|
1188
|
+
name: "anthropic.claude-opus-4-5-20251101-v1:0",
|
|
1189
|
+
displayName: "Claude 4.5 Opus",
|
|
1190
|
+
maxInputTokens: 2e5,
|
|
1191
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1192
|
+
pricing: {
|
|
1193
|
+
inputPerM: 5,
|
|
1194
|
+
outputPerM: 25,
|
|
1195
|
+
cacheWritePerM: 6.25,
|
|
1196
|
+
cacheReadPerM: 0.5,
|
|
1197
|
+
currency: "USD",
|
|
1198
|
+
unit: "per_million_tokens"
|
|
1199
|
+
}
|
|
1200
|
+
},
|
|
1201
|
+
// Amazon Nova models
|
|
1202
|
+
{
|
|
1203
|
+
name: "amazon.nova-premier-v1:0",
|
|
1204
|
+
displayName: "Nova Premier",
|
|
1205
|
+
maxInputTokens: 1e6,
|
|
1206
|
+
supportedFileTypes: ["image"],
|
|
1207
|
+
pricing: {
|
|
1208
|
+
inputPerM: 2.5,
|
|
1209
|
+
outputPerM: 12.5,
|
|
1210
|
+
currency: "USD",
|
|
1211
|
+
unit: "per_million_tokens"
|
|
1212
|
+
}
|
|
1213
|
+
},
|
|
1214
|
+
{
|
|
1215
|
+
name: "amazon.nova-pro-v1:0",
|
|
1216
|
+
displayName: "Nova Pro",
|
|
1217
|
+
maxInputTokens: 3e5,
|
|
1218
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1219
|
+
pricing: {
|
|
1220
|
+
inputPerM: 0.8,
|
|
1221
|
+
outputPerM: 3.2,
|
|
1222
|
+
cacheReadPerM: 0.2,
|
|
1223
|
+
currency: "USD",
|
|
1224
|
+
unit: "per_million_tokens"
|
|
1225
|
+
}
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
name: "amazon.nova-lite-v1:0",
|
|
1229
|
+
displayName: "Nova Lite",
|
|
1230
|
+
maxInputTokens: 3e5,
|
|
1231
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1232
|
+
pricing: {
|
|
1233
|
+
inputPerM: 0.06,
|
|
1234
|
+
outputPerM: 0.24,
|
|
1235
|
+
cacheReadPerM: 0.015,
|
|
1236
|
+
currency: "USD",
|
|
1237
|
+
unit: "per_million_tokens"
|
|
1238
|
+
}
|
|
1239
|
+
},
|
|
1240
|
+
{
|
|
1241
|
+
name: "amazon.nova-micro-v1:0",
|
|
1242
|
+
displayName: "Nova Micro",
|
|
1243
|
+
maxInputTokens: 128e3,
|
|
1244
|
+
supportedFileTypes: [],
|
|
1245
|
+
pricing: {
|
|
1246
|
+
inputPerM: 0.035,
|
|
1247
|
+
outputPerM: 0.14,
|
|
1248
|
+
cacheReadPerM: 875e-5,
|
|
1249
|
+
currency: "USD",
|
|
1250
|
+
unit: "per_million_tokens"
|
|
1251
|
+
}
|
|
1252
|
+
},
|
|
1253
|
+
// OpenAI GPT-OSS
|
|
1254
|
+
{
|
|
1255
|
+
name: "openai.gpt-oss-120b-1:0",
|
|
1256
|
+
displayName: "GPT-OSS 120B",
|
|
1257
|
+
maxInputTokens: 128e3,
|
|
1258
|
+
supportedFileTypes: [],
|
|
1259
|
+
pricing: {
|
|
1260
|
+
inputPerM: 0.15,
|
|
1261
|
+
outputPerM: 0.6,
|
|
1262
|
+
currency: "USD",
|
|
1263
|
+
unit: "per_million_tokens"
|
|
1264
|
+
}
|
|
1265
|
+
},
|
|
1266
|
+
{
|
|
1267
|
+
name: "openai.gpt-oss-20b-1:0",
|
|
1268
|
+
displayName: "GPT-OSS 20B",
|
|
1269
|
+
maxInputTokens: 128e3,
|
|
1270
|
+
supportedFileTypes: [],
|
|
1271
|
+
pricing: {
|
|
1272
|
+
inputPerM: 0.07,
|
|
1273
|
+
outputPerM: 0.3,
|
|
1274
|
+
currency: "USD",
|
|
1275
|
+
unit: "per_million_tokens"
|
|
1276
|
+
}
|
|
1277
|
+
},
|
|
1278
|
+
// Qwen
|
|
1279
|
+
{
|
|
1280
|
+
name: "qwen.qwen3-coder-30b-a3b-v1:0",
|
|
1281
|
+
displayName: "Qwen3 Coder 30B",
|
|
1282
|
+
maxInputTokens: 262144,
|
|
1283
|
+
supportedFileTypes: [],
|
|
1284
|
+
pricing: {
|
|
1285
|
+
inputPerM: 0.15,
|
|
1286
|
+
outputPerM: 0.6,
|
|
1287
|
+
currency: "USD",
|
|
1288
|
+
unit: "per_million_tokens"
|
|
1289
|
+
}
|
|
1290
|
+
},
|
|
1291
|
+
{
|
|
1292
|
+
name: "qwen.qwen3-coder-480b-a35b-v1:0",
|
|
1293
|
+
displayName: "Qwen3 Coder 480B",
|
|
1294
|
+
maxInputTokens: 262144,
|
|
1295
|
+
supportedFileTypes: [],
|
|
1296
|
+
pricing: {
|
|
1297
|
+
inputPerM: 0.22,
|
|
1298
|
+
outputPerM: 1.8,
|
|
1299
|
+
currency: "USD",
|
|
1300
|
+
unit: "per_million_tokens"
|
|
1301
|
+
}
|
|
1302
|
+
}
|
|
1303
|
+
],
|
|
1304
|
+
baseURLSupport: "none",
|
|
1305
|
+
// Auto-constructed from region
|
|
1306
|
+
supportedFileTypes: ["pdf", "image"]
|
|
1307
|
+
},
|
|
1308
|
+
// Native local model execution via node-llama-cpp
|
|
1309
|
+
// Runs GGUF models directly on the machine using Metal/CUDA/Vulkan acceleration
|
|
1310
|
+
// Models are downloaded from HuggingFace and stored in ~/.dexto/models/
|
|
1311
|
+
local: {
|
|
1312
|
+
models: [],
|
|
1313
|
+
// Populated dynamically from local model registry
|
|
1314
|
+
baseURLSupport: "none",
|
|
1315
|
+
// No external server needed
|
|
1316
|
+
supportedFileTypes: ["image"],
|
|
1317
|
+
// Vision support depends on model capabilities
|
|
1318
|
+
supportsCustomModels: true
|
|
1319
|
+
// Allow any GGUF model path
|
|
1320
|
+
},
|
|
1321
|
+
// Ollama server integration
|
|
1322
|
+
// Uses Ollama's OpenAI-compatible API for local model inference
|
|
1323
|
+
// Requires Ollama to be installed and running (default: http://localhost:11434)
|
|
1324
|
+
ollama: {
|
|
1325
|
+
models: [],
|
|
1326
|
+
// Populated dynamically from Ollama API
|
|
1327
|
+
baseURLSupport: "optional",
|
|
1328
|
+
// Default: http://localhost:11434, can be customized
|
|
1329
|
+
supportedFileTypes: ["image"],
|
|
1330
|
+
// Vision support depends on model
|
|
1331
|
+
supportsCustomModels: true
|
|
1332
|
+
// Accept any Ollama model name
|
|
810
1333
|
}
|
|
1334
|
+
// TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
|
|
811
1335
|
};
|
|
1336
|
+
function stripBedrockRegionPrefix(model) {
|
|
1337
|
+
if (model.startsWith("eu.") || model.startsWith("us.")) {
|
|
1338
|
+
return model.slice(3);
|
|
1339
|
+
}
|
|
1340
|
+
if (model.startsWith("global.")) {
|
|
1341
|
+
return model.slice(7);
|
|
1342
|
+
}
|
|
1343
|
+
return model;
|
|
1344
|
+
}
|
|
812
1345
|
function getDefaultModelForProvider(provider) {
|
|
813
1346
|
const providerInfo = LLM_REGISTRY[provider];
|
|
814
1347
|
return providerInfo.models.find((m) => m.default)?.name || null;
|
|
@@ -822,7 +1355,8 @@ function getSupportedModels(provider) {
|
|
|
822
1355
|
}
|
|
823
1356
|
function getMaxInputTokensForModel(provider, model, logger) {
|
|
824
1357
|
const providerInfo = LLM_REGISTRY[provider];
|
|
825
|
-
const
|
|
1358
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1359
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
826
1360
|
if (!modelInfo) {
|
|
827
1361
|
const supportedModels = getSupportedModels(provider).join(", ");
|
|
828
1362
|
logger?.error(
|
|
@@ -835,13 +1369,14 @@ function getMaxInputTokensForModel(provider, model, logger) {
|
|
|
835
1369
|
}
|
|
836
1370
|
function isValidProviderModel(provider, model) {
|
|
837
1371
|
const providerInfo = LLM_REGISTRY[provider];
|
|
838
|
-
|
|
1372
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1373
|
+
return providerInfo.models.some((m) => m.name.toLowerCase() === normalizedModel);
|
|
839
1374
|
}
|
|
840
1375
|
function getProviderFromModel(model) {
|
|
841
|
-
const
|
|
1376
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
842
1377
|
for (const provider of import_types.LLM_PROVIDERS) {
|
|
843
1378
|
const info = LLM_REGISTRY[provider];
|
|
844
|
-
if (info.models.some((m) => m.name.toLowerCase() ===
|
|
1379
|
+
if (info.models.some((m) => m.name.toLowerCase() === normalizedModel)) {
|
|
845
1380
|
return provider;
|
|
846
1381
|
}
|
|
847
1382
|
}
|
|
@@ -862,12 +1397,34 @@ function acceptsAnyModel(provider) {
|
|
|
862
1397
|
const providerInfo = LLM_REGISTRY[provider];
|
|
863
1398
|
return providerInfo.models.length === 0;
|
|
864
1399
|
}
|
|
1400
|
+
function supportsCustomModels(provider) {
|
|
1401
|
+
const providerInfo = LLM_REGISTRY[provider];
|
|
1402
|
+
return providerInfo.supportsCustomModels === true;
|
|
1403
|
+
}
|
|
1404
|
+
const API_KEY_OPTIONAL_PROVIDERS = /* @__PURE__ */ new Set([
|
|
1405
|
+
"local",
|
|
1406
|
+
// Native node-llama-cpp execution - no auth needed
|
|
1407
|
+
"ollama",
|
|
1408
|
+
// Ollama server - no auth needed by default
|
|
1409
|
+
"openai-compatible",
|
|
1410
|
+
// vLLM, LocalAI - often no auth needed
|
|
1411
|
+
"litellm",
|
|
1412
|
+
// Self-hosted proxy - handles auth internally
|
|
1413
|
+
"vertex",
|
|
1414
|
+
// Uses Google Cloud ADC (Application Default Credentials)
|
|
1415
|
+
"bedrock"
|
|
1416
|
+
// Uses AWS credentials (access key + secret or IAM role)
|
|
1417
|
+
]);
|
|
1418
|
+
function requiresApiKey(provider) {
|
|
1419
|
+
return !API_KEY_OPTIONAL_PROVIDERS.has(provider);
|
|
1420
|
+
}
|
|
865
1421
|
function getSupportedFileTypesForModel(provider, model) {
|
|
866
1422
|
const providerInfo = LLM_REGISTRY[provider];
|
|
867
1423
|
if (acceptsAnyModel(provider)) {
|
|
868
1424
|
return providerInfo.supportedFileTypes;
|
|
869
1425
|
}
|
|
870
|
-
const
|
|
1426
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1427
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
871
1428
|
if (!modelInfo) {
|
|
872
1429
|
throw import_errors.LLMError.unknownModel(provider, model);
|
|
873
1430
|
}
|
|
@@ -946,6 +1503,19 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
946
1503
|
}
|
|
947
1504
|
}
|
|
948
1505
|
}
|
|
1506
|
+
if (config.provider === "openrouter") {
|
|
1507
|
+
const contextLength = (0, import_openrouter_model_registry.getOpenRouterModelContextLength)(config.model);
|
|
1508
|
+
if (contextLength !== null) {
|
|
1509
|
+
logger.debug(
|
|
1510
|
+
`Using maxInputTokens from OpenRouter registry for ${config.model}: ${contextLength}`
|
|
1511
|
+
);
|
|
1512
|
+
return contextLength;
|
|
1513
|
+
}
|
|
1514
|
+
logger.warn(
|
|
1515
|
+
`OpenRouter model ${config.model} not found in cache, defaulting to ${DEFAULT_MAX_INPUT_TOKENS} tokens`
|
|
1516
|
+
);
|
|
1517
|
+
return DEFAULT_MAX_INPUT_TOKENS;
|
|
1518
|
+
}
|
|
949
1519
|
if (config.baseURL) {
|
|
950
1520
|
logger.warn(
|
|
951
1521
|
`baseURL is set but maxInputTokens is missing. Defaulting to ${DEFAULT_MAX_INPUT_TOKENS}. Provide 'maxInputTokens' in configuration to avoid default fallback.`
|
|
@@ -970,6 +1540,12 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
970
1540
|
return registryMaxInputTokens;
|
|
971
1541
|
} catch (error) {
|
|
972
1542
|
if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.LLMErrorCode.MODEL_UNKNOWN) {
|
|
1543
|
+
if (supportsCustomModels(config.provider)) {
|
|
1544
|
+
logger.debug(
|
|
1545
|
+
`Custom model ${config.model} not in ${config.provider} registry, defaulting to ${DEFAULT_MAX_INPUT_TOKENS} tokens`
|
|
1546
|
+
);
|
|
1547
|
+
return DEFAULT_MAX_INPUT_TOKENS;
|
|
1548
|
+
}
|
|
973
1549
|
logger.error(
|
|
974
1550
|
`Registry lookup failed for ${config.provider}/${config.model}: ${error.message}. Effective maxInputTokens cannot be determined.`
|
|
975
1551
|
);
|
|
@@ -985,7 +1561,8 @@ function getModelPricing(provider, model) {
|
|
|
985
1561
|
if (acceptsAnyModel(provider)) {
|
|
986
1562
|
return void 0;
|
|
987
1563
|
}
|
|
988
|
-
const
|
|
1564
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1565
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
989
1566
|
return modelInfo?.pricing;
|
|
990
1567
|
}
|
|
991
1568
|
function getModelDisplayName(model, provider) {
|
|
@@ -999,9 +1576,23 @@ function getModelDisplayName(model, provider) {
|
|
|
999
1576
|
if (!providerInfo || acceptsAnyModel(resolvedProvider)) {
|
|
1000
1577
|
return model;
|
|
1001
1578
|
}
|
|
1002
|
-
const
|
|
1579
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1580
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
1003
1581
|
return modelInfo?.displayName ?? model;
|
|
1004
1582
|
}
|
|
1583
|
+
function isReasoningCapableModel(model, provider) {
|
|
1584
|
+
const modelLower = model.toLowerCase();
|
|
1585
|
+
if (modelLower.includes("codex")) {
|
|
1586
|
+
return true;
|
|
1587
|
+
}
|
|
1588
|
+
if (modelLower.startsWith("o1") || modelLower.startsWith("o3") || modelLower.startsWith("o4")) {
|
|
1589
|
+
return true;
|
|
1590
|
+
}
|
|
1591
|
+
if (modelLower.includes("gpt-5") || modelLower.includes("gpt-5.1") || modelLower.includes("gpt-5.2")) {
|
|
1592
|
+
return true;
|
|
1593
|
+
}
|
|
1594
|
+
return false;
|
|
1595
|
+
}
|
|
1005
1596
|
function calculateCost(usage, pricing) {
|
|
1006
1597
|
const inputCost = (usage.inputTokens ?? 0) * pricing.inputPerM / 1e6;
|
|
1007
1598
|
const outputCost = (usage.outputTokens ?? 0) * pricing.outputPerM / 1e6;
|
|
@@ -1028,9 +1619,13 @@ function calculateCost(usage, pricing) {
|
|
|
1028
1619
|
getSupportedFileTypesForModel,
|
|
1029
1620
|
getSupportedModels,
|
|
1030
1621
|
getSupportedProviders,
|
|
1622
|
+
isReasoningCapableModel,
|
|
1031
1623
|
isValidProviderModel,
|
|
1032
1624
|
modelSupportsFileType,
|
|
1625
|
+
requiresApiKey,
|
|
1033
1626
|
requiresBaseURL,
|
|
1627
|
+
stripBedrockRegionPrefix,
|
|
1034
1628
|
supportsBaseURL,
|
|
1629
|
+
supportsCustomModels,
|
|
1035
1630
|
validateModelFileSupport
|
|
1036
1631
|
});
|