@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.cjs
CHANGED
|
@@ -36,8 +36,11 @@ __export(registry_exports, {
|
|
|
36
36
|
getSupportedProviders: () => getSupportedProviders,
|
|
37
37
|
isValidProviderModel: () => isValidProviderModel,
|
|
38
38
|
modelSupportsFileType: () => modelSupportsFileType,
|
|
39
|
+
requiresApiKey: () => requiresApiKey,
|
|
39
40
|
requiresBaseURL: () => requiresBaseURL,
|
|
41
|
+
stripBedrockRegionPrefix: () => stripBedrockRegionPrefix,
|
|
40
42
|
supportsBaseURL: () => supportsBaseURL,
|
|
43
|
+
supportsCustomModels: () => supportsCustomModels,
|
|
41
44
|
validateModelFileSupport: () => validateModelFileSupport
|
|
42
45
|
});
|
|
43
46
|
module.exports = __toCommonJS(registry_exports);
|
|
@@ -45,6 +48,7 @@ var import_errors = require("./errors.js");
|
|
|
45
48
|
var import_error_codes = require("./error-codes.js");
|
|
46
49
|
var import_DextoRuntimeError = require("../errors/DextoRuntimeError.js");
|
|
47
50
|
var import_types = require("./types.js");
|
|
51
|
+
var import_openrouter_model_registry = require("./providers/openrouter-model-registry.js");
|
|
48
52
|
const MIME_TYPE_TO_FILE_TYPE = {
|
|
49
53
|
"application/pdf": "pdf",
|
|
50
54
|
"audio/mp3": "audio",
|
|
@@ -274,6 +278,7 @@ const LLM_REGISTRY = {
|
|
|
274
278
|
pricing: {
|
|
275
279
|
inputPerM: 2.5,
|
|
276
280
|
outputPerM: 10,
|
|
281
|
+
cacheReadPerM: 1.25,
|
|
277
282
|
currency: "USD",
|
|
278
283
|
unit: "per_million_tokens"
|
|
279
284
|
}
|
|
@@ -339,8 +344,9 @@ const LLM_REGISTRY = {
|
|
|
339
344
|
models: [],
|
|
340
345
|
// Empty - accepts any model name for custom endpoints
|
|
341
346
|
baseURLSupport: "required",
|
|
342
|
-
supportedFileTypes: ["pdf", "image", "audio"]
|
|
347
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
343
348
|
// Allow all types for custom endpoints - user assumes responsibility for model capabilities
|
|
349
|
+
supportsCustomModels: true
|
|
344
350
|
},
|
|
345
351
|
anthropic: {
|
|
346
352
|
models: [
|
|
@@ -478,6 +484,20 @@ const LLM_REGISTRY = {
|
|
|
478
484
|
},
|
|
479
485
|
google: {
|
|
480
486
|
models: [
|
|
487
|
+
{
|
|
488
|
+
name: "gemini-3-flash-preview",
|
|
489
|
+
displayName: "Gemini 3 Flash Preview",
|
|
490
|
+
maxInputTokens: 1048576,
|
|
491
|
+
default: true,
|
|
492
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
493
|
+
pricing: {
|
|
494
|
+
inputPerM: 0.5,
|
|
495
|
+
outputPerM: 3,
|
|
496
|
+
cacheReadPerM: 0.05,
|
|
497
|
+
currency: "USD",
|
|
498
|
+
unit: "per_million_tokens"
|
|
499
|
+
}
|
|
500
|
+
},
|
|
481
501
|
{
|
|
482
502
|
name: "gemini-3-pro-preview",
|
|
483
503
|
displayName: "Gemini 3 Pro Preview",
|
|
@@ -486,6 +506,7 @@ const LLM_REGISTRY = {
|
|
|
486
506
|
pricing: {
|
|
487
507
|
inputPerM: 2,
|
|
488
508
|
outputPerM: 12,
|
|
509
|
+
cacheReadPerM: 0.2,
|
|
489
510
|
currency: "USD",
|
|
490
511
|
unit: "per_million_tokens"
|
|
491
512
|
}
|
|
@@ -498,6 +519,7 @@ const LLM_REGISTRY = {
|
|
|
498
519
|
pricing: {
|
|
499
520
|
inputPerM: 2,
|
|
500
521
|
outputPerM: 120,
|
|
522
|
+
cacheReadPerM: 0.2,
|
|
501
523
|
currency: "USD",
|
|
502
524
|
unit: "per_million_tokens"
|
|
503
525
|
}
|
|
@@ -506,7 +528,6 @@ const LLM_REGISTRY = {
|
|
|
506
528
|
name: "gemini-2.5-pro",
|
|
507
529
|
displayName: "Gemini 2.5 Pro",
|
|
508
530
|
maxInputTokens: 1048576,
|
|
509
|
-
default: true,
|
|
510
531
|
supportedFileTypes: ["pdf", "image", "audio"],
|
|
511
532
|
pricing: {
|
|
512
533
|
inputPerM: 1.25,
|
|
@@ -524,6 +545,7 @@ const LLM_REGISTRY = {
|
|
|
524
545
|
pricing: {
|
|
525
546
|
inputPerM: 0.3,
|
|
526
547
|
outputPerM: 2.5,
|
|
548
|
+
cacheReadPerM: 0.03,
|
|
527
549
|
currency: "USD",
|
|
528
550
|
unit: "per_million_tokens"
|
|
529
551
|
}
|
|
@@ -563,6 +585,7 @@ const LLM_REGISTRY = {
|
|
|
563
585
|
pricing: {
|
|
564
586
|
inputPerM: 0.075,
|
|
565
587
|
outputPerM: 0.3,
|
|
588
|
+
cacheReadPerM: 0.01875,
|
|
566
589
|
currency: "USD",
|
|
567
590
|
unit: "per_million_tokens"
|
|
568
591
|
}
|
|
@@ -619,6 +642,7 @@ const LLM_REGISTRY = {
|
|
|
619
642
|
pricing: {
|
|
620
643
|
inputPerM: 1,
|
|
621
644
|
outputPerM: 3,
|
|
645
|
+
cacheReadPerM: 0.5,
|
|
622
646
|
currency: "USD",
|
|
623
647
|
unit: "per_million_tokens"
|
|
624
648
|
}
|
|
@@ -807,8 +831,462 @@ const LLM_REGISTRY = {
|
|
|
807
831
|
baseURLSupport: "none",
|
|
808
832
|
supportedFileTypes: []
|
|
809
833
|
// Cohere currently doesn't support file uploads
|
|
834
|
+
},
|
|
835
|
+
// https://openrouter.ai/docs
|
|
836
|
+
// OpenRouter is a unified API gateway providing access to 100+ models from various providers.
|
|
837
|
+
// Model validation is handled dynamically via openrouter-model-registry.ts
|
|
838
|
+
openrouter: {
|
|
839
|
+
models: [],
|
|
840
|
+
// Empty - accepts any model name (validated against OpenRouter's catalog)
|
|
841
|
+
baseURLSupport: "none",
|
|
842
|
+
// Fixed endpoint - baseURL auto-injected in resolver, no user override allowed
|
|
843
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
844
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
845
|
+
supportsCustomModels: true
|
|
846
|
+
},
|
|
847
|
+
// https://docs.litellm.ai/
|
|
848
|
+
// LiteLLM is an OpenAI-compatible proxy that unifies 100+ LLM providers.
|
|
849
|
+
// User must host their own LiteLLM proxy and provide the baseURL.
|
|
850
|
+
litellm: {
|
|
851
|
+
models: [],
|
|
852
|
+
// Empty - accepts any model name (user's proxy determines available models)
|
|
853
|
+
baseURLSupport: "required",
|
|
854
|
+
// User must provide their LiteLLM proxy URL
|
|
855
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
856
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
857
|
+
supportsCustomModels: true
|
|
858
|
+
},
|
|
859
|
+
// https://glama.ai/
|
|
860
|
+
// Glama is an OpenAI-compatible gateway providing unified access to multiple LLM providers.
|
|
861
|
+
// Fixed endpoint: https://glama.ai/api/gateway/openai/v1
|
|
862
|
+
glama: {
|
|
863
|
+
models: [],
|
|
864
|
+
// Empty - accepts any model name (format: provider/model e.g., openai/gpt-4o)
|
|
865
|
+
baseURLSupport: "none",
|
|
866
|
+
// Fixed endpoint - baseURL auto-injected
|
|
867
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
868
|
+
// Allow all types - user assumes responsibility for model capabilities
|
|
869
|
+
supportsCustomModels: true
|
|
870
|
+
},
|
|
871
|
+
// https://cloud.google.com/vertex-ai
|
|
872
|
+
// Google Vertex AI - GCP-hosted gateway for Gemini and Claude models
|
|
873
|
+
// Supports both Google's Gemini models and Anthropic's Claude via partnership
|
|
874
|
+
//
|
|
875
|
+
// Setup instructions:
|
|
876
|
+
// 1. Create a Google Cloud account and project
|
|
877
|
+
// 2. Enable the Vertex AI API: gcloud services enable aiplatform.googleapis.com
|
|
878
|
+
// 3. Enable desired Claude models (requires Anthropic Model Garden)
|
|
879
|
+
// 4. Install Google Cloud CLI: https://cloud.google.com/sdk/docs/install
|
|
880
|
+
// 5. Configure ADC: gcloud auth application-default login
|
|
881
|
+
// 6. Set env vars: GOOGLE_VERTEX_PROJECT (required), GOOGLE_VERTEX_LOCATION (optional)
|
|
882
|
+
//
|
|
883
|
+
// TODO: Add dynamic model fetching via publishers.models.list API
|
|
884
|
+
// - Requires: projectId, region, ADC auth
|
|
885
|
+
// - Endpoints: GET projects/{project}/locations/{location}/publishers/{google,anthropic}/models
|
|
886
|
+
// - Note: API doesn't return aliases (e.g., gemini-2.0-flash), only versioned IDs
|
|
887
|
+
// - Docs: https://cloud.google.com/vertex-ai/docs/reference/rest/v1/projects.locations.models/list
|
|
888
|
+
// - Models: https://cloud.google.com/vertex-ai/generative-ai/docs/models
|
|
889
|
+
vertex: {
|
|
890
|
+
models: [
|
|
891
|
+
// Gemini 3 models on Vertex AI (Preview)
|
|
892
|
+
{
|
|
893
|
+
name: "gemini-3-flash-preview",
|
|
894
|
+
displayName: "Gemini 3 Flash (Vertex)",
|
|
895
|
+
maxInputTokens: 1048576,
|
|
896
|
+
default: true,
|
|
897
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
898
|
+
pricing: {
|
|
899
|
+
inputPerM: 0.5,
|
|
900
|
+
outputPerM: 3,
|
|
901
|
+
cacheReadPerM: 0.05,
|
|
902
|
+
currency: "USD",
|
|
903
|
+
unit: "per_million_tokens"
|
|
904
|
+
}
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
name: "gemini-3-pro-preview",
|
|
908
|
+
displayName: "Gemini 3 Pro (Vertex)",
|
|
909
|
+
maxInputTokens: 1048576,
|
|
910
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
911
|
+
pricing: {
|
|
912
|
+
inputPerM: 2,
|
|
913
|
+
outputPerM: 12,
|
|
914
|
+
cacheReadPerM: 0.2,
|
|
915
|
+
currency: "USD",
|
|
916
|
+
unit: "per_million_tokens"
|
|
917
|
+
}
|
|
918
|
+
},
|
|
919
|
+
// Gemini 2.x models on Vertex AI
|
|
920
|
+
{
|
|
921
|
+
name: "gemini-2.5-pro",
|
|
922
|
+
displayName: "Gemini 2.5 Pro (Vertex)",
|
|
923
|
+
maxInputTokens: 1048576,
|
|
924
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
925
|
+
pricing: {
|
|
926
|
+
inputPerM: 1.25,
|
|
927
|
+
outputPerM: 10,
|
|
928
|
+
cacheReadPerM: 0.31,
|
|
929
|
+
currency: "USD",
|
|
930
|
+
unit: "per_million_tokens"
|
|
931
|
+
}
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
name: "gemini-2.5-flash",
|
|
935
|
+
displayName: "Gemini 2.5 Flash (Vertex)",
|
|
936
|
+
maxInputTokens: 1048576,
|
|
937
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
938
|
+
pricing: {
|
|
939
|
+
inputPerM: 0.15,
|
|
940
|
+
outputPerM: 0.6,
|
|
941
|
+
cacheReadPerM: 0.0375,
|
|
942
|
+
currency: "USD",
|
|
943
|
+
unit: "per_million_tokens"
|
|
944
|
+
}
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
name: "gemini-2.0-flash",
|
|
948
|
+
displayName: "Gemini 2.0 Flash (Vertex)",
|
|
949
|
+
maxInputTokens: 1048576,
|
|
950
|
+
supportedFileTypes: ["pdf", "image", "audio"],
|
|
951
|
+
pricing: {
|
|
952
|
+
inputPerM: 0.1,
|
|
953
|
+
outputPerM: 0.4,
|
|
954
|
+
cacheReadPerM: 0.025,
|
|
955
|
+
currency: "USD",
|
|
956
|
+
unit: "per_million_tokens"
|
|
957
|
+
}
|
|
958
|
+
},
|
|
959
|
+
// Claude 4.5 models on Vertex AI (via Anthropic partnership)
|
|
960
|
+
// Note: Claude model IDs use @ suffix format on Vertex
|
|
961
|
+
{
|
|
962
|
+
name: "claude-opus-4-5@20251101",
|
|
963
|
+
displayName: "Claude 4.5 Opus (Vertex)",
|
|
964
|
+
maxInputTokens: 2e5,
|
|
965
|
+
supportedFileTypes: ["pdf", "image"],
|
|
966
|
+
pricing: {
|
|
967
|
+
inputPerM: 5,
|
|
968
|
+
outputPerM: 25,
|
|
969
|
+
cacheWritePerM: 6.25,
|
|
970
|
+
cacheReadPerM: 0.5,
|
|
971
|
+
currency: "USD",
|
|
972
|
+
unit: "per_million_tokens"
|
|
973
|
+
}
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
name: "claude-sonnet-4-5@20250929",
|
|
977
|
+
displayName: "Claude 4.5 Sonnet (Vertex)",
|
|
978
|
+
maxInputTokens: 2e5,
|
|
979
|
+
supportedFileTypes: ["pdf", "image"],
|
|
980
|
+
pricing: {
|
|
981
|
+
inputPerM: 3,
|
|
982
|
+
outputPerM: 15,
|
|
983
|
+
cacheWritePerM: 3.75,
|
|
984
|
+
cacheReadPerM: 0.3,
|
|
985
|
+
currency: "USD",
|
|
986
|
+
unit: "per_million_tokens"
|
|
987
|
+
}
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
name: "claude-haiku-4-5@20251001",
|
|
991
|
+
displayName: "Claude 4.5 Haiku (Vertex)",
|
|
992
|
+
maxInputTokens: 2e5,
|
|
993
|
+
supportedFileTypes: ["pdf", "image"],
|
|
994
|
+
pricing: {
|
|
995
|
+
inputPerM: 1,
|
|
996
|
+
outputPerM: 5,
|
|
997
|
+
cacheWritePerM: 1.25,
|
|
998
|
+
cacheReadPerM: 0.1,
|
|
999
|
+
currency: "USD",
|
|
1000
|
+
unit: "per_million_tokens"
|
|
1001
|
+
}
|
|
1002
|
+
},
|
|
1003
|
+
// Claude 4.1 and 4.0 models on Vertex AI
|
|
1004
|
+
{
|
|
1005
|
+
name: "claude-opus-4-1@20250805",
|
|
1006
|
+
displayName: "Claude 4.1 Opus (Vertex)",
|
|
1007
|
+
maxInputTokens: 2e5,
|
|
1008
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1009
|
+
pricing: {
|
|
1010
|
+
inputPerM: 15,
|
|
1011
|
+
outputPerM: 75,
|
|
1012
|
+
cacheWritePerM: 18.75,
|
|
1013
|
+
cacheReadPerM: 1.5,
|
|
1014
|
+
currency: "USD",
|
|
1015
|
+
unit: "per_million_tokens"
|
|
1016
|
+
}
|
|
1017
|
+
},
|
|
1018
|
+
{
|
|
1019
|
+
name: "claude-opus-4@20250514",
|
|
1020
|
+
displayName: "Claude 4 Opus (Vertex)",
|
|
1021
|
+
maxInputTokens: 2e5,
|
|
1022
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1023
|
+
pricing: {
|
|
1024
|
+
inputPerM: 15,
|
|
1025
|
+
outputPerM: 75,
|
|
1026
|
+
cacheWritePerM: 18.75,
|
|
1027
|
+
cacheReadPerM: 1.5,
|
|
1028
|
+
currency: "USD",
|
|
1029
|
+
unit: "per_million_tokens"
|
|
1030
|
+
}
|
|
1031
|
+
},
|
|
1032
|
+
{
|
|
1033
|
+
name: "claude-sonnet-4@20250514",
|
|
1034
|
+
displayName: "Claude 4 Sonnet (Vertex)",
|
|
1035
|
+
maxInputTokens: 2e5,
|
|
1036
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1037
|
+
pricing: {
|
|
1038
|
+
inputPerM: 3,
|
|
1039
|
+
outputPerM: 15,
|
|
1040
|
+
cacheWritePerM: 3.75,
|
|
1041
|
+
cacheReadPerM: 0.3,
|
|
1042
|
+
currency: "USD",
|
|
1043
|
+
unit: "per_million_tokens"
|
|
1044
|
+
}
|
|
1045
|
+
},
|
|
1046
|
+
// Claude 3.x models on Vertex AI
|
|
1047
|
+
{
|
|
1048
|
+
name: "claude-3-7-sonnet@20250219",
|
|
1049
|
+
displayName: "Claude 3.7 Sonnet (Vertex)",
|
|
1050
|
+
maxInputTokens: 2e5,
|
|
1051
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1052
|
+
pricing: {
|
|
1053
|
+
inputPerM: 3,
|
|
1054
|
+
outputPerM: 15,
|
|
1055
|
+
cacheWritePerM: 3.75,
|
|
1056
|
+
cacheReadPerM: 0.3,
|
|
1057
|
+
currency: "USD",
|
|
1058
|
+
unit: "per_million_tokens"
|
|
1059
|
+
}
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
name: "claude-3-5-sonnet-v2@20241022",
|
|
1063
|
+
displayName: "Claude 3.5 Sonnet v2 (Vertex)",
|
|
1064
|
+
maxInputTokens: 2e5,
|
|
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: "claude-3-5-haiku@20241022",
|
|
1077
|
+
displayName: "Claude 3.5 Haiku (Vertex)",
|
|
1078
|
+
maxInputTokens: 2e5,
|
|
1079
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1080
|
+
pricing: {
|
|
1081
|
+
inputPerM: 0.8,
|
|
1082
|
+
outputPerM: 4,
|
|
1083
|
+
cacheWritePerM: 1,
|
|
1084
|
+
cacheReadPerM: 0.08,
|
|
1085
|
+
currency: "USD",
|
|
1086
|
+
unit: "per_million_tokens"
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
],
|
|
1090
|
+
baseURLSupport: "none",
|
|
1091
|
+
// Auto-constructed from projectId and region
|
|
1092
|
+
supportedFileTypes: ["pdf", "image", "audio"]
|
|
1093
|
+
},
|
|
1094
|
+
// Amazon Bedrock - AWS-hosted gateway for Claude, Nova, and more
|
|
1095
|
+
// Auth: AWS credentials (env vars) or Bedrock API key (AWS_BEARER_TOKEN_BEDROCK)
|
|
1096
|
+
//
|
|
1097
|
+
// Cross-region inference: Auto-added for anthropic.* and amazon.* models
|
|
1098
|
+
// supportsCustomModels: true allows users to add custom model IDs beyond the fixed list
|
|
1099
|
+
bedrock: {
|
|
1100
|
+
supportsCustomModels: true,
|
|
1101
|
+
models: [
|
|
1102
|
+
// Claude 4.5 models (latest)
|
|
1103
|
+
{
|
|
1104
|
+
name: "anthropic.claude-sonnet-4-5-20250929-v1:0",
|
|
1105
|
+
displayName: "Claude 4.5 Sonnet",
|
|
1106
|
+
maxInputTokens: 2e5,
|
|
1107
|
+
default: true,
|
|
1108
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1109
|
+
pricing: {
|
|
1110
|
+
inputPerM: 3,
|
|
1111
|
+
outputPerM: 15,
|
|
1112
|
+
cacheWritePerM: 3.75,
|
|
1113
|
+
cacheReadPerM: 0.3,
|
|
1114
|
+
currency: "USD",
|
|
1115
|
+
unit: "per_million_tokens"
|
|
1116
|
+
}
|
|
1117
|
+
},
|
|
1118
|
+
{
|
|
1119
|
+
name: "anthropic.claude-haiku-4-5-20251001-v1:0",
|
|
1120
|
+
displayName: "Claude 4.5 Haiku",
|
|
1121
|
+
maxInputTokens: 2e5,
|
|
1122
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1123
|
+
pricing: {
|
|
1124
|
+
inputPerM: 1,
|
|
1125
|
+
outputPerM: 5,
|
|
1126
|
+
cacheWritePerM: 1.25,
|
|
1127
|
+
cacheReadPerM: 0.1,
|
|
1128
|
+
currency: "USD",
|
|
1129
|
+
unit: "per_million_tokens"
|
|
1130
|
+
}
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
name: "anthropic.claude-opus-4-5-20251101-v1:0",
|
|
1134
|
+
displayName: "Claude 4.5 Opus",
|
|
1135
|
+
maxInputTokens: 2e5,
|
|
1136
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1137
|
+
pricing: {
|
|
1138
|
+
inputPerM: 5,
|
|
1139
|
+
outputPerM: 25,
|
|
1140
|
+
cacheWritePerM: 6.25,
|
|
1141
|
+
cacheReadPerM: 0.5,
|
|
1142
|
+
currency: "USD",
|
|
1143
|
+
unit: "per_million_tokens"
|
|
1144
|
+
}
|
|
1145
|
+
},
|
|
1146
|
+
// Amazon Nova models
|
|
1147
|
+
{
|
|
1148
|
+
name: "amazon.nova-premier-v1:0",
|
|
1149
|
+
displayName: "Nova Premier",
|
|
1150
|
+
maxInputTokens: 1e6,
|
|
1151
|
+
supportedFileTypes: ["image"],
|
|
1152
|
+
pricing: {
|
|
1153
|
+
inputPerM: 2.5,
|
|
1154
|
+
outputPerM: 12.5,
|
|
1155
|
+
currency: "USD",
|
|
1156
|
+
unit: "per_million_tokens"
|
|
1157
|
+
}
|
|
1158
|
+
},
|
|
1159
|
+
{
|
|
1160
|
+
name: "amazon.nova-pro-v1:0",
|
|
1161
|
+
displayName: "Nova Pro",
|
|
1162
|
+
maxInputTokens: 3e5,
|
|
1163
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1164
|
+
pricing: {
|
|
1165
|
+
inputPerM: 0.8,
|
|
1166
|
+
outputPerM: 3.2,
|
|
1167
|
+
cacheReadPerM: 0.2,
|
|
1168
|
+
currency: "USD",
|
|
1169
|
+
unit: "per_million_tokens"
|
|
1170
|
+
}
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
name: "amazon.nova-lite-v1:0",
|
|
1174
|
+
displayName: "Nova Lite",
|
|
1175
|
+
maxInputTokens: 3e5,
|
|
1176
|
+
supportedFileTypes: ["pdf", "image"],
|
|
1177
|
+
pricing: {
|
|
1178
|
+
inputPerM: 0.06,
|
|
1179
|
+
outputPerM: 0.24,
|
|
1180
|
+
cacheReadPerM: 0.015,
|
|
1181
|
+
currency: "USD",
|
|
1182
|
+
unit: "per_million_tokens"
|
|
1183
|
+
}
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
name: "amazon.nova-micro-v1:0",
|
|
1187
|
+
displayName: "Nova Micro",
|
|
1188
|
+
maxInputTokens: 128e3,
|
|
1189
|
+
supportedFileTypes: [],
|
|
1190
|
+
pricing: {
|
|
1191
|
+
inputPerM: 0.035,
|
|
1192
|
+
outputPerM: 0.14,
|
|
1193
|
+
cacheReadPerM: 875e-5,
|
|
1194
|
+
currency: "USD",
|
|
1195
|
+
unit: "per_million_tokens"
|
|
1196
|
+
}
|
|
1197
|
+
},
|
|
1198
|
+
// OpenAI GPT-OSS
|
|
1199
|
+
{
|
|
1200
|
+
name: "openai.gpt-oss-120b-1:0",
|
|
1201
|
+
displayName: "GPT-OSS 120B",
|
|
1202
|
+
maxInputTokens: 128e3,
|
|
1203
|
+
supportedFileTypes: [],
|
|
1204
|
+
pricing: {
|
|
1205
|
+
inputPerM: 0.15,
|
|
1206
|
+
outputPerM: 0.6,
|
|
1207
|
+
currency: "USD",
|
|
1208
|
+
unit: "per_million_tokens"
|
|
1209
|
+
}
|
|
1210
|
+
},
|
|
1211
|
+
{
|
|
1212
|
+
name: "openai.gpt-oss-20b-1:0",
|
|
1213
|
+
displayName: "GPT-OSS 20B",
|
|
1214
|
+
maxInputTokens: 128e3,
|
|
1215
|
+
supportedFileTypes: [],
|
|
1216
|
+
pricing: {
|
|
1217
|
+
inputPerM: 0.07,
|
|
1218
|
+
outputPerM: 0.3,
|
|
1219
|
+
currency: "USD",
|
|
1220
|
+
unit: "per_million_tokens"
|
|
1221
|
+
}
|
|
1222
|
+
},
|
|
1223
|
+
// Qwen
|
|
1224
|
+
{
|
|
1225
|
+
name: "qwen.qwen3-coder-30b-a3b-v1:0",
|
|
1226
|
+
displayName: "Qwen3 Coder 30B",
|
|
1227
|
+
maxInputTokens: 262144,
|
|
1228
|
+
supportedFileTypes: [],
|
|
1229
|
+
pricing: {
|
|
1230
|
+
inputPerM: 0.15,
|
|
1231
|
+
outputPerM: 0.6,
|
|
1232
|
+
currency: "USD",
|
|
1233
|
+
unit: "per_million_tokens"
|
|
1234
|
+
}
|
|
1235
|
+
},
|
|
1236
|
+
{
|
|
1237
|
+
name: "qwen.qwen3-coder-480b-a35b-v1:0",
|
|
1238
|
+
displayName: "Qwen3 Coder 480B",
|
|
1239
|
+
maxInputTokens: 262144,
|
|
1240
|
+
supportedFileTypes: [],
|
|
1241
|
+
pricing: {
|
|
1242
|
+
inputPerM: 0.22,
|
|
1243
|
+
outputPerM: 1.8,
|
|
1244
|
+
currency: "USD",
|
|
1245
|
+
unit: "per_million_tokens"
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
],
|
|
1249
|
+
baseURLSupport: "none",
|
|
1250
|
+
// Auto-constructed from region
|
|
1251
|
+
supportedFileTypes: ["pdf", "image"]
|
|
1252
|
+
},
|
|
1253
|
+
// Native local model execution via node-llama-cpp
|
|
1254
|
+
// Runs GGUF models directly on the machine using Metal/CUDA/Vulkan acceleration
|
|
1255
|
+
// Models are downloaded from HuggingFace and stored in ~/.dexto/models/
|
|
1256
|
+
local: {
|
|
1257
|
+
models: [],
|
|
1258
|
+
// Populated dynamically from local model registry
|
|
1259
|
+
baseURLSupport: "none",
|
|
1260
|
+
// No external server needed
|
|
1261
|
+
supportedFileTypes: ["image"],
|
|
1262
|
+
// Vision support depends on model capabilities
|
|
1263
|
+
supportsCustomModels: true
|
|
1264
|
+
// Allow any GGUF model path
|
|
1265
|
+
},
|
|
1266
|
+
// Ollama server integration
|
|
1267
|
+
// Uses Ollama's OpenAI-compatible API for local model inference
|
|
1268
|
+
// Requires Ollama to be installed and running (default: http://localhost:11434)
|
|
1269
|
+
ollama: {
|
|
1270
|
+
models: [],
|
|
1271
|
+
// Populated dynamically from Ollama API
|
|
1272
|
+
baseURLSupport: "optional",
|
|
1273
|
+
// Default: http://localhost:11434, can be customized
|
|
1274
|
+
supportedFileTypes: ["image"],
|
|
1275
|
+
// Vision support depends on model
|
|
1276
|
+
supportsCustomModels: true
|
|
1277
|
+
// Accept any Ollama model name
|
|
810
1278
|
}
|
|
1279
|
+
// TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
|
|
811
1280
|
};
|
|
1281
|
+
function stripBedrockRegionPrefix(model) {
|
|
1282
|
+
if (model.startsWith("eu.") || model.startsWith("us.")) {
|
|
1283
|
+
return model.slice(3);
|
|
1284
|
+
}
|
|
1285
|
+
if (model.startsWith("global.")) {
|
|
1286
|
+
return model.slice(7);
|
|
1287
|
+
}
|
|
1288
|
+
return model;
|
|
1289
|
+
}
|
|
812
1290
|
function getDefaultModelForProvider(provider) {
|
|
813
1291
|
const providerInfo = LLM_REGISTRY[provider];
|
|
814
1292
|
return providerInfo.models.find((m) => m.default)?.name || null;
|
|
@@ -822,7 +1300,8 @@ function getSupportedModels(provider) {
|
|
|
822
1300
|
}
|
|
823
1301
|
function getMaxInputTokensForModel(provider, model, logger) {
|
|
824
1302
|
const providerInfo = LLM_REGISTRY[provider];
|
|
825
|
-
const
|
|
1303
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1304
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
826
1305
|
if (!modelInfo) {
|
|
827
1306
|
const supportedModels = getSupportedModels(provider).join(", ");
|
|
828
1307
|
logger?.error(
|
|
@@ -835,13 +1314,14 @@ function getMaxInputTokensForModel(provider, model, logger) {
|
|
|
835
1314
|
}
|
|
836
1315
|
function isValidProviderModel(provider, model) {
|
|
837
1316
|
const providerInfo = LLM_REGISTRY[provider];
|
|
838
|
-
|
|
1317
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1318
|
+
return providerInfo.models.some((m) => m.name.toLowerCase() === normalizedModel);
|
|
839
1319
|
}
|
|
840
1320
|
function getProviderFromModel(model) {
|
|
841
|
-
const
|
|
1321
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
842
1322
|
for (const provider of import_types.LLM_PROVIDERS) {
|
|
843
1323
|
const info = LLM_REGISTRY[provider];
|
|
844
|
-
if (info.models.some((m) => m.name.toLowerCase() ===
|
|
1324
|
+
if (info.models.some((m) => m.name.toLowerCase() === normalizedModel)) {
|
|
845
1325
|
return provider;
|
|
846
1326
|
}
|
|
847
1327
|
}
|
|
@@ -862,12 +1342,34 @@ function acceptsAnyModel(provider) {
|
|
|
862
1342
|
const providerInfo = LLM_REGISTRY[provider];
|
|
863
1343
|
return providerInfo.models.length === 0;
|
|
864
1344
|
}
|
|
1345
|
+
function supportsCustomModels(provider) {
|
|
1346
|
+
const providerInfo = LLM_REGISTRY[provider];
|
|
1347
|
+
return providerInfo.supportsCustomModels === true;
|
|
1348
|
+
}
|
|
1349
|
+
const API_KEY_OPTIONAL_PROVIDERS = /* @__PURE__ */ new Set([
|
|
1350
|
+
"local",
|
|
1351
|
+
// Native node-llama-cpp execution - no auth needed
|
|
1352
|
+
"ollama",
|
|
1353
|
+
// Ollama server - no auth needed by default
|
|
1354
|
+
"openai-compatible",
|
|
1355
|
+
// vLLM, LocalAI - often no auth needed
|
|
1356
|
+
"litellm",
|
|
1357
|
+
// Self-hosted proxy - handles auth internally
|
|
1358
|
+
"vertex",
|
|
1359
|
+
// Uses Google Cloud ADC (Application Default Credentials)
|
|
1360
|
+
"bedrock"
|
|
1361
|
+
// Uses AWS credentials (access key + secret or IAM role)
|
|
1362
|
+
]);
|
|
1363
|
+
function requiresApiKey(provider) {
|
|
1364
|
+
return !API_KEY_OPTIONAL_PROVIDERS.has(provider);
|
|
1365
|
+
}
|
|
865
1366
|
function getSupportedFileTypesForModel(provider, model) {
|
|
866
1367
|
const providerInfo = LLM_REGISTRY[provider];
|
|
867
1368
|
if (acceptsAnyModel(provider)) {
|
|
868
1369
|
return providerInfo.supportedFileTypes;
|
|
869
1370
|
}
|
|
870
|
-
const
|
|
1371
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1372
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
871
1373
|
if (!modelInfo) {
|
|
872
1374
|
throw import_errors.LLMError.unknownModel(provider, model);
|
|
873
1375
|
}
|
|
@@ -946,6 +1448,19 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
946
1448
|
}
|
|
947
1449
|
}
|
|
948
1450
|
}
|
|
1451
|
+
if (config.provider === "openrouter") {
|
|
1452
|
+
const contextLength = (0, import_openrouter_model_registry.getOpenRouterModelContextLength)(config.model);
|
|
1453
|
+
if (contextLength !== null) {
|
|
1454
|
+
logger.debug(
|
|
1455
|
+
`Using maxInputTokens from OpenRouter registry for ${config.model}: ${contextLength}`
|
|
1456
|
+
);
|
|
1457
|
+
return contextLength;
|
|
1458
|
+
}
|
|
1459
|
+
logger.warn(
|
|
1460
|
+
`OpenRouter model ${config.model} not found in cache, defaulting to ${DEFAULT_MAX_INPUT_TOKENS} tokens`
|
|
1461
|
+
);
|
|
1462
|
+
return DEFAULT_MAX_INPUT_TOKENS;
|
|
1463
|
+
}
|
|
949
1464
|
if (config.baseURL) {
|
|
950
1465
|
logger.warn(
|
|
951
1466
|
`baseURL is set but maxInputTokens is missing. Defaulting to ${DEFAULT_MAX_INPUT_TOKENS}. Provide 'maxInputTokens' in configuration to avoid default fallback.`
|
|
@@ -970,6 +1485,12 @@ function getEffectiveMaxInputTokens(config, logger) {
|
|
|
970
1485
|
return registryMaxInputTokens;
|
|
971
1486
|
} catch (error) {
|
|
972
1487
|
if (error instanceof import_DextoRuntimeError.DextoRuntimeError && error.code === import_error_codes.LLMErrorCode.MODEL_UNKNOWN) {
|
|
1488
|
+
if (supportsCustomModels(config.provider)) {
|
|
1489
|
+
logger.debug(
|
|
1490
|
+
`Custom model ${config.model} not in ${config.provider} registry, defaulting to ${DEFAULT_MAX_INPUT_TOKENS} tokens`
|
|
1491
|
+
);
|
|
1492
|
+
return DEFAULT_MAX_INPUT_TOKENS;
|
|
1493
|
+
}
|
|
973
1494
|
logger.error(
|
|
974
1495
|
`Registry lookup failed for ${config.provider}/${config.model}: ${error.message}. Effective maxInputTokens cannot be determined.`
|
|
975
1496
|
);
|
|
@@ -985,7 +1506,8 @@ function getModelPricing(provider, model) {
|
|
|
985
1506
|
if (acceptsAnyModel(provider)) {
|
|
986
1507
|
return void 0;
|
|
987
1508
|
}
|
|
988
|
-
const
|
|
1509
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1510
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
989
1511
|
return modelInfo?.pricing;
|
|
990
1512
|
}
|
|
991
1513
|
function getModelDisplayName(model, provider) {
|
|
@@ -999,7 +1521,8 @@ function getModelDisplayName(model, provider) {
|
|
|
999
1521
|
if (!providerInfo || acceptsAnyModel(resolvedProvider)) {
|
|
1000
1522
|
return model;
|
|
1001
1523
|
}
|
|
1002
|
-
const
|
|
1524
|
+
const normalizedModel = stripBedrockRegionPrefix(model).toLowerCase();
|
|
1525
|
+
const modelInfo = providerInfo.models.find((m) => m.name.toLowerCase() === normalizedModel);
|
|
1003
1526
|
return modelInfo?.displayName ?? model;
|
|
1004
1527
|
}
|
|
1005
1528
|
function calculateCost(usage, pricing) {
|
|
@@ -1030,7 +1553,10 @@ function calculateCost(usage, pricing) {
|
|
|
1030
1553
|
getSupportedProviders,
|
|
1031
1554
|
isValidProviderModel,
|
|
1032
1555
|
modelSupportsFileType,
|
|
1556
|
+
requiresApiKey,
|
|
1033
1557
|
requiresBaseURL,
|
|
1558
|
+
stripBedrockRegionPrefix,
|
|
1034
1559
|
supportsBaseURL,
|
|
1560
|
+
supportsCustomModels,
|
|
1035
1561
|
validateModelFileSupport
|
|
1036
1562
|
});
|