@dexto/core 1.4.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 +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 +5911 -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 +2 -2
- package/dist/events/index.d.ts +16 -16
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +2 -2
- 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/stream-processor.cjs +11 -3
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +11 -3
- package/dist/llm/executor/turn-executor.cjs +50 -23
- package/dist/llm/executor/turn-executor.d.ts +6 -5
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +50 -23
- package/dist/llm/formatters/vercel.cjs +6 -2
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +6 -2
- 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 +535 -9
- package/dist/llm/registry.d.ts +26 -0
- package/dist/llm/registry.d.ts.map +1 -1
- package/dist/llm/registry.js +532 -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 +90 -80
- package/dist/llm/schemas.d.ts +158 -22
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +90 -80
- 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 +5 -2
- 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 +5 -2
- 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/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 +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 +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 +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/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/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/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 +4 -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 +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 +17 -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 +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/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 +150 -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 +150 -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.js
CHANGED
|
@@ -5,6 +5,7 @@ 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
|
}
|
|
@@ -299,8 +301,9 @@ const LLM_REGISTRY = {
|
|
|
299
301
|
models: [],
|
|
300
302
|
// Empty - accepts any model name for custom endpoints
|
|
301
303
|
baseURLSupport: "required",
|
|
302
|
-
supportedFileTypes: ["pdf", "image", "audio"]
|
|
304
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
303
305
|
// Allow all types for custom endpoints - user assumes responsibility for model capabilities
|
|
306
|
+
supportsCustomModels: true
|
|
304
307
|
},
|
|
305
308
|
anthropic: {
|
|
306
309
|
models: [
|
|
@@ -438,6 +441,20 @@ const LLM_REGISTRY = {
|
|
|
438
441
|
},
|
|
439
442
|
google: {
|
|
440
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
|
+
},
|
|
441
458
|
{
|
|
442
459
|
name: "gemini-3-pro-preview",
|
|
443
460
|
displayName: "Gemini 3 Pro Preview",
|
|
@@ -446,6 +463,7 @@ const LLM_REGISTRY = {
|
|
|
446
463
|
pricing: {
|
|
447
464
|
inputPerM: 2,
|
|
448
465
|
outputPerM: 12,
|
|
466
|
+
cacheReadPerM: 0.2,
|
|
449
467
|
currency: "USD",
|
|
450
468
|
unit: "per_million_tokens"
|
|
451
469
|
}
|
|
@@ -458,6 +476,7 @@ const LLM_REGISTRY = {
|
|
|
458
476
|
pricing: {
|
|
459
477
|
inputPerM: 2,
|
|
460
478
|
outputPerM: 120,
|
|
479
|
+
cacheReadPerM: 0.2,
|
|
461
480
|
currency: "USD",
|
|
462
481
|
unit: "per_million_tokens"
|
|
463
482
|
}
|
|
@@ -466,7 +485,6 @@ const LLM_REGISTRY = {
|
|
|
466
485
|
name: "gemini-2.5-pro",
|
|
467
486
|
displayName: "Gemini 2.5 Pro",
|
|
468
487
|
maxInputTokens: 1048576,
|
|
469
|
-
default: true,
|
|
470
488
|
supportedFileTypes: ["pdf", "image", "audio"],
|
|
471
489
|
pricing: {
|
|
472
490
|
inputPerM: 1.25,
|
|
@@ -484,6 +502,7 @@ const LLM_REGISTRY = {
|
|
|
484
502
|
pricing: {
|
|
485
503
|
inputPerM: 0.3,
|
|
486
504
|
outputPerM: 2.5,
|
|
505
|
+
cacheReadPerM: 0.03,
|
|
487
506
|
currency: "USD",
|
|
488
507
|
unit: "per_million_tokens"
|
|
489
508
|
}
|
|
@@ -523,6 +542,7 @@ const LLM_REGISTRY = {
|
|
|
523
542
|
pricing: {
|
|
524
543
|
inputPerM: 0.075,
|
|
525
544
|
outputPerM: 0.3,
|
|
545
|
+
cacheReadPerM: 0.01875,
|
|
526
546
|
currency: "USD",
|
|
527
547
|
unit: "per_million_tokens"
|
|
528
548
|
}
|
|
@@ -579,6 +599,7 @@ const LLM_REGISTRY = {
|
|
|
579
599
|
pricing: {
|
|
580
600
|
inputPerM: 1,
|
|
581
601
|
outputPerM: 3,
|
|
602
|
+
cacheReadPerM: 0.5,
|
|
582
603
|
currency: "USD",
|
|
583
604
|
unit: "per_million_tokens"
|
|
584
605
|
}
|
|
@@ -767,8 +788,462 @@ const LLM_REGISTRY = {
|
|
|
767
788
|
baseURLSupport: "none",
|
|
768
789
|
supportedFileTypes: []
|
|
769
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
|
|
770
1235
|
}
|
|
1236
|
+
// TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
|
|
771
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
|
+
}
|
|
772
1247
|
function getDefaultModelForProvider(provider) {
|
|
773
1248
|
const providerInfo = LLM_REGISTRY[provider];
|
|
774
1249
|
return providerInfo.models.find((m) => m.default)?.name || null;
|
|
@@ -782,7 +1257,8 @@ function getSupportedModels(provider) {
|
|
|
782
1257
|
}
|
|
783
1258
|
function getMaxInputTokensForModel(provider, model, logger) {
|
|
784
1259
|
const providerInfo = LLM_REGISTRY[provider];
|
|
785
|
-
const
|
|
1260
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1261
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
786
1262
|
if (!modelInfo) {
|
|
787
1263
|
const supportedModels = getSupportedModels(provider).join(", ");
|
|
788
1264
|
logger?.error(
|
|
@@ -795,13 +1271,14 @@ function getMaxInputTokensForModel(provider, model, logger) {
|
|
|
795
1271
|
}
|
|
796
1272
|
function isValidProviderModel(provider, model) {
|
|
797
1273
|
const providerInfo = LLM_REGISTRY[provider];
|
|
798
|
-
|
|
1274
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1275
|
+
return providerInfo.models.some((m) => m.name.toLowerCase() === normalizedModel);
|
|
799
1276
|
}
|
|
800
1277
|
function getProviderFromModel(model) {
|
|
801
|
-
const
|
|
1278
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
802
1279
|
for (const provider of LLM_PROVIDERS) {
|
|
803
1280
|
const info = LLM_REGISTRY[provider];
|
|
804
|
-
if (info.models.some((m) => m.name.toLowerCase() ===
|
|
1281
|
+
if (info.models.some((m) => m.name.toLowerCase() === normalizedModel)) {
|
|
805
1282
|
return provider;
|
|
806
1283
|
}
|
|
807
1284
|
}
|
|
@@ -822,12 +1299,34 @@ function acceptsAnyModel(provider) {
|
|
|
822
1299
|
const providerInfo = LLM_REGISTRY[provider];
|
|
823
1300
|
return providerInfo.models.length === 0;
|
|
824
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
|
+
}
|
|
825
1323
|
function getSupportedFileTypesForModel(provider, model) {
|
|
826
1324
|
const providerInfo = LLM_REGISTRY[provider];
|
|
827
1325
|
if (acceptsAnyModel(provider)) {
|
|
828
1326
|
return providerInfo.supportedFileTypes;
|
|
829
1327
|
}
|
|
830
|
-
const
|
|
1328
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1329
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
831
1330
|
if (!modelInfo) {
|
|
832
1331
|
throw LLMError.unknownModel(provider, model);
|
|
833
1332
|
}
|
|
@@ -906,6 +1405,19 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
906
1405
|
}
|
|
907
1406
|
}
|
|
908
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
|
+
}
|
|
909
1421
|
if (config.baseURL) {
|
|
910
1422
|
logger.warn(
|
|
911
1423
|
`baseURL is set but maxInputTokens is missing. Defaulting to ${DEFAULT_MAX_INPUT_TOKENS}. Provide 'maxInputTokens' in configuration to avoid default fallback.`
|
|
@@ -930,6 +1442,12 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
930
1442
|
return registryMaxInputTokens;
|
|
931
1443
|
} catch (error) {
|
|
932
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
|
+
}
|
|
933
1451
|
logger.error(
|
|
934
1452
|
`Registry lookup failed for ${config.provider}/${config.model}: ${error.message}. Effective maxInputTokens cannot be determined.`
|
|
935
1453
|
);
|
|
@@ -945,7 +1463,8 @@ function getModelPricing(provider, model) {
|
|
|
945
1463
|
if (acceptsAnyModel(provider)) {
|
|
946
1464
|
return void 0;
|
|
947
1465
|
}
|
|
948
|
-
const
|
|
1466
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1467
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
949
1468
|
return modelInfo?.pricing;
|
|
950
1469
|
}
|
|
951
1470
|
function getModelDisplayName(model, provider) {
|
|
@@ -959,7 +1478,8 @@ function getModelDisplayName(model, provider) {
|
|
|
959
1478
|
if (!providerInfo || acceptsAnyModel(resolvedProvider)) {
|
|
960
1479
|
return model;
|
|
961
1480
|
}
|
|
962
|
-
const
|
|
1481
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1482
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
963
1483
|
return modelInfo?.displayName ?? model;
|
|
964
1484
|
}
|
|
965
1485
|
function calculateCost(usage, pricing) {
|
|
@@ -989,7 +1509,10 @@ export {
|
|
|
989
1509
|
getSupportedProviders,
|
|
990
1510
|
isValidProviderModel,
|
|
991
1511
|
modelSupportsFileType,
|
|
1512
|
+
requiresApiKey,
|
|
992
1513
|
requiresBaseURL,
|
|
1514
|
+
stripBedrockRegionPrefix,
|
|
993
1515
|
supportsBaseURL,
|
|
1516
|
+
supportsCustomModels,
|
|
994
1517
|
validateModelFileSupport
|
|
995
1518
|
};
|