From 2474d5cc76f1b041afda089df638b77c00b6fd92 Mon Sep 17 00:00:00 2001 From: David Lo Dico Date: Sun, 12 Jul 2026 17:46:29 +0200 Subject: [PATCH 1/4] feat: add EUrouter provider and model sync --- packages/core/src/sync/index.ts | 5 +- packages/core/src/sync/providers/eurouter.ts | 301 ++++++++++++++++++ packages/core/test/sync.test.ts | 172 ++++++++++ providers/eurouter/logo.svg | 4 + .../eurouter/models/all-minilm-l6-v2.toml | 24 ++ providers/eurouter/models/apertus-70b.toml | 24 ++ providers/eurouter/models/bge-en-icl.toml | 19 ++ .../eurouter/models/bge-large-en-v1.5.toml | 25 ++ providers/eurouter/models/bge-m3.toml | 25 ++ .../models/bge-multilingual-gemma2.toml | 19 ++ providers/eurouter/models/claude-3-haiku.toml | 25 ++ .../eurouter/models/claude-3-sonnet.toml | 25 ++ .../eurouter/models/claude-3.5-sonnet.toml | 25 ++ .../eurouter/models/claude-3.7-sonnet.toml | 25 ++ .../eurouter/models/claude-haiku-4.5.toml | 17 + .../models/claude-opus-4-5-20251101.toml | 17 + .../eurouter/models/claude-opus-4-6.toml | 14 + .../eurouter/models/claude-opus-4-7.toml | 14 + .../eurouter/models/claude-opus-4-8.toml | 14 + .../eurouter/models/claude-sonnet-4-5.toml | 17 + .../eurouter/models/claude-sonnet-4-6.toml | 14 + .../eurouter/models/claude-sonnet-5.toml | 14 + .../models/code-llama-13b-instruct.toml | 25 ++ .../eurouter/models/codestral-embed.toml | 25 ++ providers/eurouter/models/codestral.toml | 25 ++ .../models/cohere-embed-english-v3.toml | 25 ++ .../models/cohere-embed-multilingual-v3.toml | 25 ++ .../eurouter/models/cohere-embed-v4.toml | 25 ++ .../models/cosmos3-super-reasoner.toml | 26 ++ .../eurouter/models/deepseek-chat-v3.1.toml | 25 ++ .../models/deepseek-r1-distill-llama-70b.toml | 25 ++ providers/eurouter/models/deepseek-r1.toml | 15 + providers/eurouter/models/deepseek-v3.1.toml | 25 ++ providers/eurouter/models/deepseek-v3.2.toml | 25 ++ providers/eurouter/models/deepseek-v3.toml | 25 ++ .../eurouter/models/deepseek-v4-flash.toml | 13 + .../eurouter/models/deepseek-v4-pro.toml | 13 + .../models/devstral-2-123b-instruct-2512.toml | 25 ++ providers/eurouter/models/devstral-2.toml | 25 ++ .../eurouter/models/devstral-small-2.toml | 25 ++ providers/eurouter/models/devstral-small.toml | 25 ++ .../models/e5-mistral-7b-instruct.toml | 19 ++ providers/eurouter/models/gemma-2-2b-it.toml | 25 ++ providers/eurouter/models/gemma-2-9b-it.toml | 25 ++ providers/eurouter/models/gemma-3-27b-it.toml | 25 ++ providers/eurouter/models/gemma-4.toml | 25 ++ providers/eurouter/models/glm-4.5-air.toml | 15 + providers/eurouter/models/glm-4.5.toml | 15 + providers/eurouter/models/glm-4.6.toml | 15 + providers/eurouter/models/glm-4.7-flash.toml | 16 + providers/eurouter/models/glm-4.7-fp8.toml | 25 ++ providers/eurouter/models/glm-4.7.toml | 15 + providers/eurouter/models/glm-5-turbo.toml | 13 + providers/eurouter/models/glm-5.1.toml | 14 + providers/eurouter/models/glm-5.2.toml | 13 + providers/eurouter/models/glm-5.toml | 15 + providers/eurouter/models/glm-5v-turbo.toml | 17 + providers/eurouter/models/gpt-4.1-mini.toml | 14 + providers/eurouter/models/gpt-4.1-nano.toml | 8 + providers/eurouter/models/gpt-4.1.toml | 14 + providers/eurouter/models/gpt-4o-mini.toml | 11 + providers/eurouter/models/gpt-4o.toml | 11 + providers/eurouter/models/gpt-5-mini.toml | 10 + providers/eurouter/models/gpt-5-nano.toml | 10 + providers/eurouter/models/gpt-5.1.toml | 10 + providers/eurouter/models/gpt-5.2.toml | 10 + providers/eurouter/models/gpt-5.4.toml | 13 + providers/eurouter/models/gpt-5.5.toml | 13 + providers/eurouter/models/gpt-5.toml | 10 + providers/eurouter/models/gpt-oss-120b.toml | 13 + providers/eurouter/models/gpt-oss-20b.toml | 13 + .../eurouter/models/green-embedding.toml | 24 ++ providers/eurouter/models/green-l-raw.toml | 24 ++ providers/eurouter/models/green-l.toml | 24 ++ providers/eurouter/models/green-r-raw.toml | 24 ++ providers/eurouter/models/green-r.toml | 24 ++ providers/eurouter/models/hermes-4-405b.toml | 25 ++ providers/eurouter/models/hermes-4-70b.toml | 25 ++ providers/eurouter/models/holo2-30b-a3b.toml | 24 ++ .../eurouter/models/inf-retriever-v1.toml | 24 ++ providers/eurouter/models/intellect-3.toml | 25 ++ .../eurouter/models/kimi-k2-instruct.toml | 25 ++ providers/eurouter/models/kimi-k2.5.toml | 15 + providers/eurouter/models/kimi-k2.6.toml | 14 + providers/eurouter/models/kimi-k2.7-code.toml | 19 ++ .../models/llama-3.1-405b-instruct.toml | 25 ++ .../models/llama-3.1-8b-instruct.toml | 25 ++ .../models/llama-3.1-nemotron-ultra-253b.toml | 15 + .../models/llama-3.2-1b-instruct.toml | 25 ++ .../models/llama-3.2-3b-instruct.toml | 25 ++ .../models/llama-3.3-70b-instruct.toml | 14 + .../eurouter/models/llama-4-maverick.toml | 25 ++ .../eurouter/models/llama-guard-3-8b.toml | 25 ++ .../eurouter/models/magistral-medium.toml | 27 ++ .../eurouter/models/magistral-small.toml | 27 ++ providers/eurouter/models/minimax-m2.1.toml | 19 ++ providers/eurouter/models/minimax-m2.5.toml | 15 + providers/eurouter/models/minimax-m2.7.toml | 15 + providers/eurouter/models/minimax-m2.toml | 14 + providers/eurouter/models/minimax-m3.toml | 19 ++ .../eurouter/models/ministral-3-14b.toml | 25 ++ providers/eurouter/models/ministral-3-3b.toml | 25 ++ providers/eurouter/models/ministral-3-8b.toml | 25 ++ .../models/mistral-7b-instruct-v0.3.toml | 25 ++ .../eurouter/models/mistral-7b-instruct.toml | 25 ++ providers/eurouter/models/mistral-embed.toml | 25 ++ .../eurouter/models/mistral-large-2.toml | 25 ++ .../eurouter/models/mistral-large-2402.toml | 25 ++ .../eurouter/models/mistral-large-3.toml | 25 ++ .../eurouter/models/mistral-medium-3.1.toml | 25 ++ .../eurouter/models/mistral-nemo-12b.toml | 25 ++ .../eurouter/models/mistral-small-24b.toml | 25 ++ .../models/mistral-small-3.1-24b.toml | 25 ++ .../models/mistral-small-3.2-24b.toml | 25 ++ .../eurouter/models/mistral-small-4.toml | 27 ++ .../models/mixtral-8x22b-instruct.toml | 25 ++ .../models/mixtral-8x7b-instruct.toml | 25 ++ .../multilingual-e5-large-instruct.toml | 24 ++ .../models/nemotron-3-nano-30b-a3b.toml | 11 + .../eurouter/models/nemotron-3-nano-omni.toml | 25 ++ .../models/nemotron-3-super-120b-a12b.toml | 11 + .../eurouter/models/nemotron-nano-v2-12b.toml | 25 ++ providers/eurouter/models/nova-2-lite.toml | 25 ++ providers/eurouter/models/nova-lite.toml | 25 ++ providers/eurouter/models/nova-micro.toml | 25 ++ providers/eurouter/models/nova-pro.toml | 25 ++ providers/eurouter/models/o1.toml | 13 + providers/eurouter/models/o3-mini.toml | 10 + providers/eurouter/models/o3.toml | 13 + providers/eurouter/models/o4-mini.toml | 10 + ...paraphrase-multilingual-mpnet-base-v2.toml | 24 ++ providers/eurouter/models/pixtral-12b.toml | 10 + .../eurouter/models/pixtral-large-2502.toml | 25 ++ providers/eurouter/models/pixtral-large.toml | 25 ++ .../models/qwen-2.5-72b-instruct.toml | 25 ++ .../models/qwen-2.5-coder-32b-instruct.toml | 25 ++ .../eurouter/models/qwen-2.5-coder-7b.toml | 25 ++ .../models/qwen-2.5-vl-72b-instruct.toml | 25 ++ .../models/qwen3-235b-a22b-instruct.toml | 24 ++ .../models/qwen3-235b-a22b-thinking.toml | 24 ++ .../models/qwen3-30b-a3b-instruct.toml | 24 ++ .../models/qwen3-30b-a3b-thinking.toml | 24 ++ providers/eurouter/models/qwen3-32b.toml | 15 + .../eurouter/models/qwen3-coder-30b-a3b.toml | 24 ++ .../qwen3-coder-480b-a35b-instruct.toml | 12 + .../eurouter/models/qwen3-coder-next-80b.toml | 26 ++ .../eurouter/models/qwen3-coder-next.toml | 24 ++ .../eurouter/models/qwen3-embedding-8b.toml | 18 ++ .../models/qwen3-next-80b-a3b-thinking.toml | 15 + .../models/qwen3-vl-235b-a22b-instruct.toml | 24 ++ .../models/qwen3-vl-235b-a22b-thinking.toml | 24 ++ .../eurouter/models/qwen3.5-122b-a10b.toml | 16 + .../eurouter/models/qwen3.5-397b-a17b.toml | 17 + providers/eurouter/models/qwen3.5-9b.toml | 14 + providers/eurouter/models/qwen3.6-27b.toml | 17 + providers/eurouter/models/qwen3.6-35b.toml | 25 ++ .../eurouter/models/teuken-7b-instruct.toml | 24 ++ .../models/text-embedding-3-large.toml | 19 ++ .../models/text-embedding-3-small.toml | 19 ++ .../models/text-embedding-ada-002.toml | 19 ++ .../eurouter/models/titan-embed-text-v1.toml | 25 ++ .../eurouter/models/titan-embed-text-v2.toml | 19 ++ .../models/titan-multimodal-embed.toml | 19 ++ providers/eurouter/models/voxtral-mini.toml | 25 ++ .../eurouter/models/voxtral-small-24b.toml | 25 ++ providers/eurouter/provider.toml | 5 + sync.md | 11 + 167 files changed, 3793 insertions(+), 1 deletion(-) create mode 100644 packages/core/src/sync/providers/eurouter.ts create mode 100644 providers/eurouter/logo.svg create mode 100644 providers/eurouter/models/all-minilm-l6-v2.toml create mode 100644 providers/eurouter/models/apertus-70b.toml create mode 100644 providers/eurouter/models/bge-en-icl.toml create mode 100644 providers/eurouter/models/bge-large-en-v1.5.toml create mode 100644 providers/eurouter/models/bge-m3.toml create mode 100644 providers/eurouter/models/bge-multilingual-gemma2.toml create mode 100644 providers/eurouter/models/claude-3-haiku.toml create mode 100644 providers/eurouter/models/claude-3-sonnet.toml create mode 100644 providers/eurouter/models/claude-3.5-sonnet.toml create mode 100644 providers/eurouter/models/claude-3.7-sonnet.toml create mode 100644 providers/eurouter/models/claude-haiku-4.5.toml create mode 100644 providers/eurouter/models/claude-opus-4-5-20251101.toml create mode 100644 providers/eurouter/models/claude-opus-4-6.toml create mode 100644 providers/eurouter/models/claude-opus-4-7.toml create mode 100644 providers/eurouter/models/claude-opus-4-8.toml create mode 100644 providers/eurouter/models/claude-sonnet-4-5.toml create mode 100644 providers/eurouter/models/claude-sonnet-4-6.toml create mode 100644 providers/eurouter/models/claude-sonnet-5.toml create mode 100644 providers/eurouter/models/code-llama-13b-instruct.toml create mode 100644 providers/eurouter/models/codestral-embed.toml create mode 100644 providers/eurouter/models/codestral.toml create mode 100644 providers/eurouter/models/cohere-embed-english-v3.toml create mode 100644 providers/eurouter/models/cohere-embed-multilingual-v3.toml create mode 100644 providers/eurouter/models/cohere-embed-v4.toml create mode 100644 providers/eurouter/models/cosmos3-super-reasoner.toml create mode 100644 providers/eurouter/models/deepseek-chat-v3.1.toml create mode 100644 providers/eurouter/models/deepseek-r1-distill-llama-70b.toml create mode 100644 providers/eurouter/models/deepseek-r1.toml create mode 100644 providers/eurouter/models/deepseek-v3.1.toml create mode 100644 providers/eurouter/models/deepseek-v3.2.toml create mode 100644 providers/eurouter/models/deepseek-v3.toml create mode 100644 providers/eurouter/models/deepseek-v4-flash.toml create mode 100644 providers/eurouter/models/deepseek-v4-pro.toml create mode 100644 providers/eurouter/models/devstral-2-123b-instruct-2512.toml create mode 100644 providers/eurouter/models/devstral-2.toml create mode 100644 providers/eurouter/models/devstral-small-2.toml create mode 100644 providers/eurouter/models/devstral-small.toml create mode 100644 providers/eurouter/models/e5-mistral-7b-instruct.toml create mode 100644 providers/eurouter/models/gemma-2-2b-it.toml create mode 100644 providers/eurouter/models/gemma-2-9b-it.toml create mode 100644 providers/eurouter/models/gemma-3-27b-it.toml create mode 100644 providers/eurouter/models/gemma-4.toml create mode 100644 providers/eurouter/models/glm-4.5-air.toml create mode 100644 providers/eurouter/models/glm-4.5.toml create mode 100644 providers/eurouter/models/glm-4.6.toml create mode 100644 providers/eurouter/models/glm-4.7-flash.toml create mode 100644 providers/eurouter/models/glm-4.7-fp8.toml create mode 100644 providers/eurouter/models/glm-4.7.toml create mode 100644 providers/eurouter/models/glm-5-turbo.toml create mode 100644 providers/eurouter/models/glm-5.1.toml create mode 100644 providers/eurouter/models/glm-5.2.toml create mode 100644 providers/eurouter/models/glm-5.toml create mode 100644 providers/eurouter/models/glm-5v-turbo.toml create mode 100644 providers/eurouter/models/gpt-4.1-mini.toml create mode 100644 providers/eurouter/models/gpt-4.1-nano.toml create mode 100644 providers/eurouter/models/gpt-4.1.toml create mode 100644 providers/eurouter/models/gpt-4o-mini.toml create mode 100644 providers/eurouter/models/gpt-4o.toml create mode 100644 providers/eurouter/models/gpt-5-mini.toml create mode 100644 providers/eurouter/models/gpt-5-nano.toml create mode 100644 providers/eurouter/models/gpt-5.1.toml create mode 100644 providers/eurouter/models/gpt-5.2.toml create mode 100644 providers/eurouter/models/gpt-5.4.toml create mode 100644 providers/eurouter/models/gpt-5.5.toml create mode 100644 providers/eurouter/models/gpt-5.toml create mode 100644 providers/eurouter/models/gpt-oss-120b.toml create mode 100644 providers/eurouter/models/gpt-oss-20b.toml create mode 100644 providers/eurouter/models/green-embedding.toml create mode 100644 providers/eurouter/models/green-l-raw.toml create mode 100644 providers/eurouter/models/green-l.toml create mode 100644 providers/eurouter/models/green-r-raw.toml create mode 100644 providers/eurouter/models/green-r.toml create mode 100644 providers/eurouter/models/hermes-4-405b.toml create mode 100644 providers/eurouter/models/hermes-4-70b.toml create mode 100644 providers/eurouter/models/holo2-30b-a3b.toml create mode 100644 providers/eurouter/models/inf-retriever-v1.toml create mode 100644 providers/eurouter/models/intellect-3.toml create mode 100644 providers/eurouter/models/kimi-k2-instruct.toml create mode 100644 providers/eurouter/models/kimi-k2.5.toml create mode 100644 providers/eurouter/models/kimi-k2.6.toml create mode 100644 providers/eurouter/models/kimi-k2.7-code.toml create mode 100644 providers/eurouter/models/llama-3.1-405b-instruct.toml create mode 100644 providers/eurouter/models/llama-3.1-8b-instruct.toml create mode 100644 providers/eurouter/models/llama-3.1-nemotron-ultra-253b.toml create mode 100644 providers/eurouter/models/llama-3.2-1b-instruct.toml create mode 100644 providers/eurouter/models/llama-3.2-3b-instruct.toml create mode 100644 providers/eurouter/models/llama-3.3-70b-instruct.toml create mode 100644 providers/eurouter/models/llama-4-maverick.toml create mode 100644 providers/eurouter/models/llama-guard-3-8b.toml create mode 100644 providers/eurouter/models/magistral-medium.toml create mode 100644 providers/eurouter/models/magistral-small.toml create mode 100644 providers/eurouter/models/minimax-m2.1.toml create mode 100644 providers/eurouter/models/minimax-m2.5.toml create mode 100644 providers/eurouter/models/minimax-m2.7.toml create mode 100644 providers/eurouter/models/minimax-m2.toml create mode 100644 providers/eurouter/models/minimax-m3.toml create mode 100644 providers/eurouter/models/ministral-3-14b.toml create mode 100644 providers/eurouter/models/ministral-3-3b.toml create mode 100644 providers/eurouter/models/ministral-3-8b.toml create mode 100644 providers/eurouter/models/mistral-7b-instruct-v0.3.toml create mode 100644 providers/eurouter/models/mistral-7b-instruct.toml create mode 100644 providers/eurouter/models/mistral-embed.toml create mode 100644 providers/eurouter/models/mistral-large-2.toml create mode 100644 providers/eurouter/models/mistral-large-2402.toml create mode 100644 providers/eurouter/models/mistral-large-3.toml create mode 100644 providers/eurouter/models/mistral-medium-3.1.toml create mode 100644 providers/eurouter/models/mistral-nemo-12b.toml create mode 100644 providers/eurouter/models/mistral-small-24b.toml create mode 100644 providers/eurouter/models/mistral-small-3.1-24b.toml create mode 100644 providers/eurouter/models/mistral-small-3.2-24b.toml create mode 100644 providers/eurouter/models/mistral-small-4.toml create mode 100644 providers/eurouter/models/mixtral-8x22b-instruct.toml create mode 100644 providers/eurouter/models/mixtral-8x7b-instruct.toml create mode 100644 providers/eurouter/models/multilingual-e5-large-instruct.toml create mode 100644 providers/eurouter/models/nemotron-3-nano-30b-a3b.toml create mode 100644 providers/eurouter/models/nemotron-3-nano-omni.toml create mode 100644 providers/eurouter/models/nemotron-3-super-120b-a12b.toml create mode 100644 providers/eurouter/models/nemotron-nano-v2-12b.toml create mode 100644 providers/eurouter/models/nova-2-lite.toml create mode 100644 providers/eurouter/models/nova-lite.toml create mode 100644 providers/eurouter/models/nova-micro.toml create mode 100644 providers/eurouter/models/nova-pro.toml create mode 100644 providers/eurouter/models/o1.toml create mode 100644 providers/eurouter/models/o3-mini.toml create mode 100644 providers/eurouter/models/o3.toml create mode 100644 providers/eurouter/models/o4-mini.toml create mode 100644 providers/eurouter/models/paraphrase-multilingual-mpnet-base-v2.toml create mode 100644 providers/eurouter/models/pixtral-12b.toml create mode 100644 providers/eurouter/models/pixtral-large-2502.toml create mode 100644 providers/eurouter/models/pixtral-large.toml create mode 100644 providers/eurouter/models/qwen-2.5-72b-instruct.toml create mode 100644 providers/eurouter/models/qwen-2.5-coder-32b-instruct.toml create mode 100644 providers/eurouter/models/qwen-2.5-coder-7b.toml create mode 100644 providers/eurouter/models/qwen-2.5-vl-72b-instruct.toml create mode 100644 providers/eurouter/models/qwen3-235b-a22b-instruct.toml create mode 100644 providers/eurouter/models/qwen3-235b-a22b-thinking.toml create mode 100644 providers/eurouter/models/qwen3-30b-a3b-instruct.toml create mode 100644 providers/eurouter/models/qwen3-30b-a3b-thinking.toml create mode 100644 providers/eurouter/models/qwen3-32b.toml create mode 100644 providers/eurouter/models/qwen3-coder-30b-a3b.toml create mode 100644 providers/eurouter/models/qwen3-coder-480b-a35b-instruct.toml create mode 100644 providers/eurouter/models/qwen3-coder-next-80b.toml create mode 100644 providers/eurouter/models/qwen3-coder-next.toml create mode 100644 providers/eurouter/models/qwen3-embedding-8b.toml create mode 100644 providers/eurouter/models/qwen3-next-80b-a3b-thinking.toml create mode 100644 providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml create mode 100644 providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml create mode 100644 providers/eurouter/models/qwen3.5-122b-a10b.toml create mode 100644 providers/eurouter/models/qwen3.5-397b-a17b.toml create mode 100644 providers/eurouter/models/qwen3.5-9b.toml create mode 100644 providers/eurouter/models/qwen3.6-27b.toml create mode 100644 providers/eurouter/models/qwen3.6-35b.toml create mode 100644 providers/eurouter/models/teuken-7b-instruct.toml create mode 100644 providers/eurouter/models/text-embedding-3-large.toml create mode 100644 providers/eurouter/models/text-embedding-3-small.toml create mode 100644 providers/eurouter/models/text-embedding-ada-002.toml create mode 100644 providers/eurouter/models/titan-embed-text-v1.toml create mode 100644 providers/eurouter/models/titan-embed-text-v2.toml create mode 100644 providers/eurouter/models/titan-multimodal-embed.toml create mode 100644 providers/eurouter/models/voxtral-mini.toml create mode 100644 providers/eurouter/models/voxtral-small-24b.toml create mode 100644 providers/eurouter/provider.toml diff --git a/packages/core/src/sync/index.ts b/packages/core/src/sync/index.ts index 3b8c8fce97..a14686c327 100644 --- a/packages/core/src/sync/index.ts +++ b/packages/core/src/sync/index.ts @@ -13,6 +13,7 @@ import { crossmodel } from "./providers/crossmodel.js"; import { deepinfra } from "./providers/deepinfra.js"; import { digitalocean } from "./providers/digitalocean.js"; import { empiriolabs } from "./providers/empiriolabs.js"; +import { eurouter } from "./providers/eurouter.js"; import { google } from "./providers/google.js"; import { huggingface } from "./providers/huggingface.js"; import { kilo } from "./providers/kilo.js"; @@ -102,6 +103,7 @@ export const providers: { deepinfra: SyncProvider; digitalocean: SyncProvider; empiriolabs: SyncProvider; + eurouter: SyncProvider; google: SyncProvider; kilo: SyncProvider; huggingface: SyncProvider; @@ -124,6 +126,7 @@ export const providers: { deepinfra, digitalocean, empiriolabs, + eurouter, google, kilo, huggingface, @@ -139,7 +142,7 @@ export const providers: { }; export const groups = { - aggregators: ["crossmodel", "empiriolabs", "huggingface", "kilo", "llmgateway", "openrouter", "vercel"], + aggregators: ["crossmodel", "empiriolabs", "eurouter", "huggingface", "kilo", "llmgateway", "openrouter", "vercel"], cloudflare: ["cloudflare-workers-ai"], direct: ["ambient", "anthropic", "baseten", "chutes", "deepinfra", "digitalocean", "google", "openai", "ovhcloud", "pioneer", "venice", "wandb", "xai"], } as const; diff --git a/packages/core/src/sync/providers/eurouter.ts b/packages/core/src/sync/providers/eurouter.ts new file mode 100644 index 0000000000..04f40d8137 --- /dev/null +++ b/packages/core/src/sync/providers/eurouter.ts @@ -0,0 +1,301 @@ +import { readFileSync, readdirSync } from "node:fs"; +import path from "node:path"; +import { z } from "zod"; + +import { describeModel } from "../../describe.js"; +import { inferKimiFamily, ModelFamilyValues } from "../../family.js"; +import type { ExistingModel, SyncProvider, SyncedFullModel, SyncedModel } from "../index.js"; +import { factorBaseModel, resolveCanonicalBaseModel } from "./openrouter.js"; + +const API_ENDPOINT = "https://api.eurouter.ai/api/v1/models"; +const MODELS_DIR = path.join(import.meta.dirname, "..", "..", "..", "..", "..", "models"); +const baseModelReasoningByID = new Map(); + +const ReasoningEffort = z.enum(["none", "minimal", "low", "medium", "high", "xhigh", "max", "default"]); + +export const EUrouterModel = z.object({ + id: z.string(), + canonical_slug: z.string().nullable().optional(), + name: z.string(), + created: z.number().nullable(), + description: z.string().optional(), + hugging_face_id: z.string().nullable().optional(), + knowledge_cutoff: z.string().nullable().optional(), + release_date: z.string().nullable().optional(), + last_updated: z.string().nullable().optional(), + context_length: z.number().nullable(), + architecture: z.object({ + input_modalities: z.array(z.string()), + output_modalities: z.array(z.string()), + }).passthrough(), + pricing: z.object({ + prompt: z.string(), + completion: z.string(), + internal_reasoning: z.string().optional(), + input_cache_read: z.string().optional(), + input_cache_write: z.string().optional(), + }).passthrough().nullable().optional(), + top_provider: z.object({ + context_length: z.number().nullable(), + max_completion_tokens: z.number().nullable(), + }).passthrough(), + supported_parameters: z.array(z.string()), + reasoning: z.object({ + mandatory: z.boolean(), + supported_efforts: z.array(ReasoningEffort), + supports_max_tokens: z.boolean(), + }).passthrough().optional(), + author: z.string().optional(), +}).passthrough(); + +export const EUrouterResponse = z.object({ + data: z.array(EUrouterModel), +}).passthrough(); + +export type EUrouterModel = z.infer; + +export const eurouter = { + id: "eurouter", + name: "EUrouter", + modelsDir: "providers/eurouter/models", + async fetchModels() { + const headers = process.env.EUROUTER_API_KEY + ? { Authorization: `Bearer ${process.env.EUROUTER_API_KEY}` } + : undefined; + const response = await fetch(API_ENDPOINT, { headers }); + if (!response.ok) { + throw new Error(`EUrouter request failed: ${response.status} ${response.statusText}`); + } + return response.json(); + }, + parseModels(raw) { + return EUrouterResponse.parse(raw).data; + }, + translateModel(model, context) { + return { + id: model.id, + model: buildEUrouterModel(model, context.existing(model.id)), + }; + }, +} satisfies SyncProvider; + +function dateFromTimestamp(timestamp: number | null) { + return timestamp === null + ? undefined + : new Date(timestamp * 1000).toISOString().slice(0, 10); +} + +function price(value: string | undefined) { + if (value === undefined) return undefined; + const number = Number(value); + return Number.isFinite(number) && number >= 0 + ? Math.round(number * 1_000_000_000_000) / 1_000_000 + : undefined; +} + +type Modality = "text" | "audio" | "image" | "video" | "pdf"; + +function modalities(values: string[], fallback: Modality[]): Modality[] { + const allowed = new Set(["text", "audio", "image", "video", "pdf"]); + const result = values + .map((value) => value.toLowerCase()) + .map((value) => value === "file" ? "pdf" : value) + .filter((value): value is Modality => allowed.has(value as Modality)); + return [...new Set(result.length > 0 ? result : fallback)]; +} + +function inferFamily(model: EUrouterModel, name: string) { + const kimiFamily = inferKimiFamily(model.id, name); + if (kimiFamily !== undefined) return kimiFamily; + + const target = `${model.id} ${name}`.toLowerCase(); + return [...ModelFamilyValues] + .sort((a, b) => b.length - a.length) + .find((family) => { + const value = family.toLowerCase().replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + if (family === "o") { + return new RegExp(`(^|[^a-z0-9])${value}(?=\\d|$|[^a-z0-9])`).test(target); + } + return new RegExp(`(^|[^a-z0-9])${value}(?=$|[^a-z0-9])`).test(target); + }); +} + +function reasoningOptions( + reasoning: EUrouterModel["reasoning"], +): SyncedFullModel["reasoning_options"] { + if (reasoning === undefined) return undefined; + + const options: NonNullable = []; + const efforts = reasoning.mandatory + ? reasoning.supported_efforts.filter((value) => value !== "none") + : reasoning.supported_efforts; + + if (efforts.length > 0) options.push({ type: "effort", values: efforts }); + if (reasoning.supports_max_tokens) options.push({ type: "budget_tokens" }); + return options.length > 0 ? options : undefined; +} + +function reasoningCapability(model: EUrouterModel, params: Set) { + if (model.reasoning !== undefined) { + return model.reasoning.mandatory + || model.reasoning.supported_efforts.length > 0 + || model.reasoning.supports_max_tokens; + } + + const hasReasoningParameter = params.has("reasoning") + || params.has("include_reasoning") + || params.has("reasoning_effort"); + return hasReasoningParameter ? true : undefined; +} + +export function resolveEUrouterBaseModel(canonicalSlug: string | null | undefined) { + if (canonicalSlug === undefined || canonicalSlug === null) return undefined; + + const [author, ...modelParts] = canonicalSlug.split("/"); + if (author === undefined || modelParts.length === 0) return undefined; + const aliases: Record = { + mistral: "mistralai", + moonshot: "moonshotai", + zhipu: "zai", + }; + const resolved = resolveCanonicalBaseModel(`${aliases[author] ?? author}/${modelParts.join("/")}`); + if (resolved !== undefined) return resolved; + + const metadataPath = path.join(MODELS_DIR, `${canonicalSlug}.toml`); + try { + return readdirSync(path.dirname(metadataPath)).includes(path.basename(metadataPath)) + ? canonicalSlug + : undefined; + } catch { + return undefined; + } +} + +function baseModelReasoning(modelID: string | undefined) { + if (modelID === undefined) return undefined; + if (baseModelReasoningByID.has(modelID)) return baseModelReasoningByID.get(modelID); + + let reasoning: boolean | undefined; + try { + const metadata = Bun.TOML.parse( + readFileSync(path.join(MODELS_DIR, `${modelID}.toml`), "utf8"), + ) as Record; + reasoning = typeof metadata.reasoning === "boolean" ? metadata.reasoning : undefined; + } catch { + reasoning = undefined; + } + baseModelReasoningByID.set(modelID, reasoning); + return reasoning; +} + +export function buildEUrouterModel( + model: EUrouterModel, + existing: ExistingModel | undefined, +): SyncedModel { + const params = new Set(model.supported_parameters); + const name = model.name; + const input = modalities(model.architecture.input_modalities, ["text"]); + const output = modalities(model.architecture.output_modalities, ["text"]); + const prompt = price(model.pricing?.prompt); + const completion = price(model.pricing?.completion); + const advertisedReasoning = model.reasoning; + const reasoning = reasoningCapability(model, params); + const apiReasoningOptions = reasoningOptions(advertisedReasoning); + const reasoning_options = existing?.reasoning_options?.length + ? existing.reasoning_options + : apiReasoningOptions ?? existing?.reasoning_options ?? (reasoning === true ? [] : undefined); + const context = model.context_length ?? model.top_provider.context_length ?? existing?.limit?.context ?? 0; + const family = inferFamily(model, name); + const releaseDate = model.release_date ?? existing?.release_date ?? dateFromTimestamp(model.created); + if (releaseDate === undefined) { + throw new Error(`EUrouter model has no release date: ${model.id}`); + } + const lastUpdated = model.last_updated ?? existing?.last_updated ?? releaseDate; + const familyValue = existing?.family === "o" && family !== "o" + ? family + : (existing?.family ?? family); + const attachment = input.some((value) => value !== "text"); + const toolCall = params.has("tools") || params.has("tool_choice"); + const structuredOutput = params.has("response_format") || params.has("structured_outputs"); + const knowledge = model.knowledge_cutoff?.slice(0, 10) ?? existing?.knowledge; + const openWeights = Boolean(model.hugging_face_id); + const routeCanonical = model.author === undefined ? undefined : `${model.author}/${model.id}`; + const canonical = existing?.base_model + ?? resolveEUrouterBaseModel(model.canonical_slug) + ?? resolveEUrouterBaseModel(routeCanonical); + const effectiveReasoning = reasoning ?? existing?.reasoning ?? baseModelReasoning(canonical); + const cost = prompt !== undefined && completion !== undefined + ? { + input: prompt, + output: completion, + reasoning: effectiveReasoning === true + ? price(model.pricing?.internal_reasoning) + : undefined, + cache_read: price(model.pricing?.input_cache_read), + cache_write: price(model.pricing?.input_cache_write), + tiers: existing?.cost?.tiers, + } + : existing?.cost; + const limit = { + context, + input: existing?.limit?.input, + output: model.top_provider.max_completion_tokens ?? existing?.limit?.output ?? context, + }; + const description = existing?.description + ?? model.description?.replaceAll(/\s+/g, " ").trim() + ?? describeModel({ + id: model.id, + name, + family: familyValue, + reasoning: effectiveReasoning, + tool_call: toolCall, + structured_output: structuredOutput, + open_weights: openWeights, + limit, + modalities: { input, output }, + }); + + if (canonical !== undefined) { + return factorBaseModel( + canonical, + { + description, + attachment, + reasoning, + reasoning_options, + temperature: params.has("temperature"), + tool_call: toolCall, + structured_output: structuredOutput, + status: existing?.status, + interleaved: existing?.interleaved, + limit, + modalities: { input, output }, + cost, + }, + limit, + existing?.base_model === canonical ? existing.base_model_omit : undefined, + ); + } + + const fullReasoningOptions = reasoning_options === undefined ? {} : { reasoning_options }; + return { + name, + description, + family: familyValue, + release_date: releaseDate, + last_updated: lastUpdated, + attachment, + reasoning: effectiveReasoning ?? false, + ...fullReasoningOptions, + temperature: params.has("temperature"), + tool_call: toolCall, + structured_output: structuredOutput, + knowledge, + open_weights: openWeights, + status: existing?.status, + interleaved: existing?.interleaved, + cost, + limit, + modalities: { input, output }, + } satisfies SyncedFullModel; +} diff --git a/packages/core/test/sync.test.ts b/packages/core/test/sync.test.ts index d9287ebca8..36c50d40d4 100644 --- a/packages/core/test/sync.test.ts +++ b/packages/core/test/sync.test.ts @@ -25,6 +25,12 @@ import { resolveEmpiriolabsBaseModel, type EmpiriolabsModel, } from "../src/sync/providers/empiriolabs.js"; +import { + buildEUrouterModel, + eurouter, + resolveEUrouterBaseModel, + type EUrouterModel, +} from "../src/sync/providers/eurouter.js"; import { buildOpenRouterModel, openrouter, @@ -892,6 +898,135 @@ test("defaults new reasoning models to empty reasoning options", () => { }); }); +test("parses the public EUrouter catalog response", () => { + expect(eurouter.parseModels({ object: "list", data: [eurouterModel()] })).toHaveLength(1); +}); + +test("syncs EUrouter pricing, capabilities, modalities, and reasoning controls", () => { + const model = buildEUrouterModel(eurouterModel(), undefined); + + expect(model).toMatchObject({ + base_model: "anthropic/claude-sonnet-5", + reasoning_options: [ + { type: "effort", values: ["low", "medium", "high"] }, + { type: "budget_tokens" }, + ], + temperature: true, + structured_output: true, + cost: { + input: 2, + output: 10, + reasoning: 3, + cache_read: 0.2, + cache_write: 2.5, + }, + }); +}); + +test("maps EUrouter author aliases to canonical metadata", () => { + expect(resolveEUrouterBaseModel("zhipu/glm-5.2")).toBe("zhipuai/glm-5.2"); + expect(resolveEUrouterBaseModel("moonshot/kimi-k2.6")).toBe("moonshotai/kimi-k2.6"); + expect(resolveEUrouterBaseModel("minimax/minimax-m2")).toBe("minimax/MiniMax-M2"); +}); + +test("uses EUrouter lifecycle dates instead of the catalog insertion timestamp", () => { + const model = buildEUrouterModel(eurouterModel({ + id: "example-model", + canonical_slug: "example/example-model", + created: 1_799_712_000, + release_date: "2025-02-03", + last_updated: "2025-04-05", + }), undefined); + + expect(model).toMatchObject({ + release_date: "2025-02-03", + last_updated: "2025-04-05", + }); +}); + +test("falls back to the EUrouter route ID when a canonical snapshot has no metadata", () => { + const model = buildEUrouterModel(eurouterModel({ + id: "gpt-5.1", + canonical_slug: "openai/gpt-5.1-20251113", + author: "openai", + name: "GPT-5.1", + }), undefined); + + expect(model).toMatchObject({ base_model: "openai/gpt-5.1" }); +}); + +test("inherits canonical reasoning when EUrouter does not advertise reasoning metadata", () => { + const model = buildEUrouterModel(eurouterModel({ + reasoning: undefined, + supported_parameters: ["tools", "response_format"], + }), undefined); + + expect(model).toMatchObject({ + base_model: "anthropic/claude-sonnet-5", + cost: { reasoning: 3 }, + }); + expect("reasoning" in model).toBe(false); +}); + +test("omits reasoning options when EUrouter explicitly reports no reasoning", () => { + const model = buildEUrouterModel(eurouterModel({ + id: "example-model", + canonical_slug: null, + author: undefined, + reasoning: { + mandatory: false, + supported_efforts: [], + supports_max_tokens: false, + }, + supported_parameters: ["temperature"], + }), undefined); + + expect(model).toMatchObject({ reasoning: false }); + expect("reasoning_options" in model).toBe(false); +}); + +test("preserves authored EUrouter metadata when the API is not authoritative", () => { + const model = buildEUrouterModel(eurouterModel({ + id: "example-model", + canonical_slug: null, + knowledge_cutoff: null, + release_date: null, + last_updated: null, + }), { + name: "Curated name", + description: "Curated description", + family: "gpt", + release_date: "2025-01-01", + last_updated: "2025-01-02", + attachment: true, + reasoning: true, + reasoning_options: [{ type: "toggle" }], + tool_call: true, + interleaved: true, + knowledge: "2024-06", + open_weights: false, + status: "beta", + cost: { + input: 1, + output: 2, + tiers: [{ tier: { type: "context", size: 200_000 }, input: 2, output: 4 }], + }, + limit: { context: 1_000_000, input: 900_000, output: 128_000 }, + modalities: { input: ["text", "image", "pdf"], output: ["text"] }, + }); + + expect(model).toMatchObject({ + description: "Curated description", + release_date: "2025-01-01", + last_updated: "2025-01-02", + knowledge: "2024-06", + status: "beta", + interleaved: true, + limit: { input: 900_000 }, + cost: { tiers: [{ tier: { type: "context", size: 200_000 }, input: 2, output: 4 }] }, + }); +}); + test("syncs OpenRouter reasoning efforts from model metadata", () => { const model = buildOpenRouterModel(openRouterModel({ reasoning: { @@ -1322,3 +1457,40 @@ function openRouterModel(overrides: Partial = {}): OpenRouterMo ...overrides, }; } + +function eurouterModel(overrides: Partial = {}): EUrouterModel { + return { + id: "claude-sonnet-5", + canonical_slug: "anthropic/claude-sonnet-5", + name: "Claude Sonnet 5", + created: 1_782_777_600, + description: "Balanced Claude model for coding and agentic workflows", + hugging_face_id: null, + knowledge_cutoff: "2026-01-31", + release_date: "2026-06-30", + last_updated: "2026-06-30", + context_length: 1_000_000, + architecture: { + input_modalities: ["text", "image", "file"], + output_modalities: ["text"], + }, + pricing: { + prompt: "0.000002", + completion: "0.00001", + internal_reasoning: "0.000003", + input_cache_read: "0.0000002", + input_cache_write: "0.0000025", + }, + top_provider: { + context_length: 1_000_000, + max_completion_tokens: 128_000, + }, + supported_parameters: ["temperature", "reasoning_effort", "response_format", "tools"], + reasoning: { + mandatory: false, + supported_efforts: ["low", "medium", "high"], + supports_max_tokens: true, + }, + ...overrides, + }; +} diff --git a/providers/eurouter/logo.svg b/providers/eurouter/logo.svg new file mode 100644 index 0000000000..c5d48e7ee1 --- /dev/null +++ b/providers/eurouter/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/providers/eurouter/models/all-minilm-l6-v2.toml b/providers/eurouter/models/all-minilm-l6-v2.toml new file mode 100644 index 0000000000..9a0b941a8c --- /dev/null +++ b/providers/eurouter/models/all-minilm-l6-v2.toml @@ -0,0 +1,24 @@ +name = "All MiniLM L6 v2" +description = "all-MiniLM-L6-v2 is a compact sentence-transformers embedding model for fast English sentence and paragraph retrieval." +release_date = "2026-07-06" +last_updated = "2026-07-06" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.09 +output = 0.45 +cache_read = 0 +cache_write = 0 + +[limit] +context = 256 +output = 256 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/apertus-70b.toml b/providers/eurouter/models/apertus-70b.toml new file mode 100644 index 0000000000..d0675a15da --- /dev/null +++ b/providers/eurouter/models/apertus-70b.toml @@ -0,0 +1,24 @@ +name = "Apertus 70B Instruct" +description = "Apertus 70B is a fully open multilingual model from the Swiss AI Initiative (ETH Zurich, EPFL, CSCS)." +release_date = "2026-06-25" +last_updated = "2026-06-25" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.4 +output = 2.1 +cache_read = 0 +cache_write = 0 + +[limit] +context = 65_536 +output = 65_536 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/bge-en-icl.toml b/providers/eurouter/models/bge-en-icl.toml new file mode 100644 index 0000000000..db720849d1 --- /dev/null +++ b/providers/eurouter/models/bge-en-icl.toml @@ -0,0 +1,19 @@ +name = "BGE-EN-ICL" +description = "Embedding model from BAAI designed for powerful in-context learning retrieval across domains. Produces 4096-dimensional embeddings optimized for semantic search with few-shot learning capabilities." +family = "bge" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[limit] +context = 33_000 +output = 33_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/bge-large-en-v1.5.toml b/providers/eurouter/models/bge-large-en-v1.5.toml new file mode 100644 index 0000000000..bc8c20d83d --- /dev/null +++ b/providers/eurouter/models/bge-large-en-v1.5.toml @@ -0,0 +1,25 @@ +name = "BGE Large EN v1.5" +description = "BGE Large EN v1.5 is an English embedding model with 1024-dimensional vectors, optimized for semantic search and retrieval with long-context inputs." +family = "bge" +release_date = "2026-02-05" +last_updated = "2026-02-05" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.015 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/bge-m3.toml b/providers/eurouter/models/bge-m3.toml new file mode 100644 index 0000000000..092efcbaf2 --- /dev/null +++ b/providers/eurouter/models/bge-m3.toml @@ -0,0 +1,25 @@ +name = "BGE M3" +description = "BGE M3 is BAAI's multilingual embedding model for dense, sparse, and multi-vector retrieval with long-context inputs." +family = "bge" +release_date = "2026-01-23" +last_updated = "2026-01-23" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.01 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/bge-multilingual-gemma2.toml b/providers/eurouter/models/bge-multilingual-gemma2.toml new file mode 100644 index 0000000000..8683d0f3cd --- /dev/null +++ b/providers/eurouter/models/bge-multilingual-gemma2.toml @@ -0,0 +1,19 @@ +name = "BGE Multilingual Gemma2" +description = "BGE Multilingual Gemma2 is a BAAI multilingual embedding model based on Gemma2 for dense retrieval and semantic search." +family = "bge" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/claude-3-haiku.toml b/providers/eurouter/models/claude-3-haiku.toml new file mode 100644 index 0000000000..af0c5ec191 --- /dev/null +++ b/providers/eurouter/models/claude-3-haiku.toml @@ -0,0 +1,25 @@ +name = "Claude 3 Haiku" +description = "Claude 3 Haiku is the fastest and most compact model in the Claude 3 family, ideal for quick responses." +family = "claude" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 0.25 +output = 1.25 +cache_read = 0 +cache_write = 0 + +[limit] +context = 200_000 +output = 4_096 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/claude-3-sonnet.toml b/providers/eurouter/models/claude-3-sonnet.toml new file mode 100644 index 0000000000..dbe37b336c --- /dev/null +++ b/providers/eurouter/models/claude-3-sonnet.toml @@ -0,0 +1,25 @@ +name = "Claude 3 Sonnet" +description = "Claude 3 Sonnet offers a balance of intelligence and speed for enterprise workloads." +family = "claude" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 3 +output = 15 +cache_read = 0 +cache_write = 0 + +[limit] +context = 200_000 +output = 4_096 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/claude-3.5-sonnet.toml b/providers/eurouter/models/claude-3.5-sonnet.toml new file mode 100644 index 0000000000..6b45cf4266 --- /dev/null +++ b/providers/eurouter/models/claude-3.5-sonnet.toml @@ -0,0 +1,25 @@ +name = "Claude 3.5 Sonnet" +description = "Claude 3.5 Sonnet balances intelligence and speed, excelling at complex tasks while remaining cost-effective." +family = "claude" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 3 +output = 15 +cache_read = 0 +cache_write = 0 + +[limit] +context = 200_000 +output = 8_192 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/claude-3.7-sonnet.toml b/providers/eurouter/models/claude-3.7-sonnet.toml new file mode 100644 index 0000000000..bb86b92fe0 --- /dev/null +++ b/providers/eurouter/models/claude-3.7-sonnet.toml @@ -0,0 +1,25 @@ +name = "Claude 3.7 Sonnet" +description = "Claude 3.7 Sonnet offers excellent performance with strong reasoning capabilities. Legacy model - migrate to Claude Sonnet 4.5." +family = "claude" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 3 +output = 15 +cache_read = 0 +cache_write = 0 + +[limit] +context = 200_000 +output = 8_192 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/claude-haiku-4.5.toml b/providers/eurouter/models/claude-haiku-4.5.toml new file mode 100644 index 0000000000..2462bebf62 --- /dev/null +++ b/providers/eurouter/models/claude-haiku-4.5.toml @@ -0,0 +1,17 @@ +base_model = "anthropic/claude-haiku-4-5" +description = "Claude Haiku 4.5 is Anthropic's fastest model, optimized for speed and cost-efficiency while maintaining strong performance." +structured_output = false +reasoning_options = [] + +[cost] +input = 1 +output = 5 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +output = 8_192 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/claude-opus-4-5-20251101.toml b/providers/eurouter/models/claude-opus-4-5-20251101.toml new file mode 100644 index 0000000000..c52f9feaf1 --- /dev/null +++ b/providers/eurouter/models/claude-opus-4-5-20251101.toml @@ -0,0 +1,17 @@ +base_model = "anthropic/claude-opus-4-5-20251101" +description = "Claude Opus 4.5 is Anthropic's most capable model for complex tasks requiring deep analysis, nuanced understanding, and sophisticated reasoning." +structured_output = false +reasoning_options = [] + +[cost] +input = 5 +output = 25 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +output = 8_192 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/claude-opus-4-6.toml b/providers/eurouter/models/claude-opus-4-6.toml new file mode 100644 index 0000000000..0349734260 --- /dev/null +++ b/providers/eurouter/models/claude-opus-4-6.toml @@ -0,0 +1,14 @@ +base_model = "anthropic/claude-opus-4-6" +description = "Claude Opus 4.6 is Anthropic's most capable model for complex coding, enterprise agents, and professional reasoning with a 1M context window." +structured_output = true +reasoning_options = [] + +[cost] +input = 5 +output = 25 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/claude-opus-4-7.toml b/providers/eurouter/models/claude-opus-4-7.toml new file mode 100644 index 0000000000..e2dd985ec1 --- /dev/null +++ b/providers/eurouter/models/claude-opus-4-7.toml @@ -0,0 +1,14 @@ +base_model = "anthropic/claude-opus-4-7" +description = "Claude Opus 4.7 is Anthropic's frontier model for complex coding, reasoning, and agentic workflows." +structured_output = true +reasoning_options = [] + +[cost] +input = 5 +output = 25 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/claude-opus-4-8.toml b/providers/eurouter/models/claude-opus-4-8.toml new file mode 100644 index 0000000000..bb765525c0 --- /dev/null +++ b/providers/eurouter/models/claude-opus-4-8.toml @@ -0,0 +1,14 @@ +base_model = "anthropic/claude-opus-4-8" +description = "Claude Opus 4.8 is Anthropic's most capable model for complex coding, autonomous agents, and deep reasoning with a 1M context window." +structured_output = true +reasoning_options = [] + +[cost] +input = 5 +output = 25 +reasoning = 0 +cache_read = 0.5 +cache_write = 6.25 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/claude-sonnet-4-5.toml b/providers/eurouter/models/claude-sonnet-4-5.toml new file mode 100644 index 0000000000..9c3ad75773 --- /dev/null +++ b/providers/eurouter/models/claude-sonnet-4-5.toml @@ -0,0 +1,17 @@ +base_model = "anthropic/claude-sonnet-4-5" +description = "Claude Sonnet 4.5 is Anthropic's most advanced model, offering exceptional performance on complex reasoning tasks with a 200K context window." +structured_output = false +reasoning_options = [] + +[cost] +input = 3 +output = 15 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +output = 8_192 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/claude-sonnet-4-6.toml b/providers/eurouter/models/claude-sonnet-4-6.toml new file mode 100644 index 0000000000..dd5fa1275f --- /dev/null +++ b/providers/eurouter/models/claude-sonnet-4-6.toml @@ -0,0 +1,14 @@ +base_model = "anthropic/claude-sonnet-4-6" +description = "Claude Sonnet 4.6 is Anthropic's balanced performance model for coding, reasoning, and agentic workflows with a 1M context window." +structured_output = true +reasoning_options = [] + +[cost] +input = 3 +output = 15 +reasoning = 0 +cache_read = 0.3 +cache_write = 3.75 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/claude-sonnet-5.toml b/providers/eurouter/models/claude-sonnet-5.toml new file mode 100644 index 0000000000..9848418d1e --- /dev/null +++ b/providers/eurouter/models/claude-sonnet-5.toml @@ -0,0 +1,14 @@ +base_model = "anthropic/claude-sonnet-5" +description = "Claude Sonnet 5 is Anthropic's near-frontier balanced model with a 1M-token context window and always-on adaptive thinking, delivering strong coding, reasoning, and agentic performance." +structured_output = true +reasoning_options = [] + +[cost] +input = 2 +output = 10 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/code-llama-13b-instruct.toml b/providers/eurouter/models/code-llama-13b-instruct.toml new file mode 100644 index 0000000000..6d4ae64b83 --- /dev/null +++ b/providers/eurouter/models/code-llama-13b-instruct.toml @@ -0,0 +1,25 @@ +name = "Code Llama 13B Instruct" +description = "Code Llama 13B Instruct is a code-focused model from Meta fine-tuned for instruction following. It supports 16K context and is optimized for code generation, completion, and debugging." +family = "llama" +release_date = "2026-02-05" +last_updated = "2026-02-05" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = true +open_weights = true + +[cost] +input = 0.5 +output = 0.5 +cache_read = 0 +cache_write = 0 + +[limit] +context = 16_384 +output = 16_384 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/codestral-embed.toml b/providers/eurouter/models/codestral-embed.toml new file mode 100644 index 0000000000..5a8e7ad2ce --- /dev/null +++ b/providers/eurouter/models/codestral-embed.toml @@ -0,0 +1,25 @@ +name = "Codestral Embed" +description = "Codestral Embed is Mistral AI's code embedding model for semantic code search and retrieval." +family = "codestral-embed" +release_date = "2026-01-08" +last_updated = "2026-01-08" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.15 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/codestral.toml b/providers/eurouter/models/codestral.toml new file mode 100644 index 0000000000..96f2e52354 --- /dev/null +++ b/providers/eurouter/models/codestral.toml @@ -0,0 +1,25 @@ +name = "Codestral" +description = "Codestral is Mistral AI's code model for code completion, code generation, and instruction-following coding tasks." +family = "codestral" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0 +output = 0.9 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/cohere-embed-english-v3.toml b/providers/eurouter/models/cohere-embed-english-v3.toml new file mode 100644 index 0000000000..c0a878f792 --- /dev/null +++ b/providers/eurouter/models/cohere-embed-english-v3.toml @@ -0,0 +1,25 @@ +name = "Cohere Embed English v3" +description = "Cohere Embed English v3 is an English text embedding model available through Amazon Bedrock." +family = "cohere-embed" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.1 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 512 +output = 512 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/cohere-embed-multilingual-v3.toml b/providers/eurouter/models/cohere-embed-multilingual-v3.toml new file mode 100644 index 0000000000..b4445b50b5 --- /dev/null +++ b/providers/eurouter/models/cohere-embed-multilingual-v3.toml @@ -0,0 +1,25 @@ +name = "Cohere Embed Multilingual v3" +description = "Cohere Embed Multilingual v3 is a multilingual text embedding model available through Amazon Bedrock." +family = "cohere-embed" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.1 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 512 +output = 512 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/cohere-embed-v4.toml b/providers/eurouter/models/cohere-embed-v4.toml new file mode 100644 index 0000000000..15da0d2970 --- /dev/null +++ b/providers/eurouter/models/cohere-embed-v4.toml @@ -0,0 +1,25 @@ +name = "Cohere Embed v4" +description = "Cohere Embed v4 is a state-of-the-art embedding model supporting 100+ languages with best-in-class retrieval performance." +family = "cohere-embed" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.1 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 512 +output = 512 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/cosmos3-super-reasoner.toml b/providers/eurouter/models/cosmos3-super-reasoner.toml new file mode 100644 index 0000000000..cbae88a0f8 --- /dev/null +++ b/providers/eurouter/models/cosmos3-super-reasoner.toml @@ -0,0 +1,26 @@ +name = "Cosmos3 Super Reasoner" +description = "NVIDIA Cosmos3 Super Reasoner is a reasoning model for advanced chat, coding, and tool-assisted workloads." +release_date = "2026-07-05" +last_updated = "2026-07-05" +attachment = false +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = false +reasoning_options = [] + +[cost] +input = 0.1 +output = 0.3 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/deepseek-chat-v3.1.toml b/providers/eurouter/models/deepseek-chat-v3.1.toml new file mode 100644 index 0000000000..8dad6be293 --- /dev/null +++ b/providers/eurouter/models/deepseek-chat-v3.1.toml @@ -0,0 +1,25 @@ +name = "DeepSeek Chat V3.1" +description = "DeepSeek Chat V3.1 is an upgraded DeepSeek V3 model with long-context chat, function calling, and optional reasoning support." +family = "deepseek" +release_date = "2026-03-30" +last_updated = "2026-03-30" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.2 +output = 0.8 +cache_read = 0 +cache_write = 0 + +[limit] +context = 164_000 +output = 163_840 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/deepseek-r1-distill-llama-70b.toml b/providers/eurouter/models/deepseek-r1-distill-llama-70b.toml new file mode 100644 index 0000000000..e74b9a9e64 --- /dev/null +++ b/providers/eurouter/models/deepseek-r1-distill-llama-70b.toml @@ -0,0 +1,25 @@ +name = "DeepSeek R1 Distill Llama 70B" +description = "DeepSeek-R1-Distill-Llama-70B is a 70B model distilled from DeepSeek-R1 using Llama-3.3-70B-Instruct as the base. Features chain-of-thought reasoning with tokens, 128K context, and strong performance on AIME 2024, MATH-500, and LiveCodeBench. Optimized for complex math, coding, and reasoning tasks." +family = "deepseek" +release_date = "2025-12-08" +last_updated = "2025-12-08" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.9 +output = 0.9 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 32_768 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/deepseek-r1.toml b/providers/eurouter/models/deepseek-r1.toml new file mode 100644 index 0000000000..033f7024ee --- /dev/null +++ b/providers/eurouter/models/deepseek-r1.toml @@ -0,0 +1,15 @@ +base_model = "deepseek/deepseek-r1" +description = "DeepSeek R1 is DeepSeek's reasoning model for complex problem solving, math, code, and multi-step analysis." +structured_output = false +reasoning_options = [] + +[cost] +input = 0.66 +output = 2.6 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 164_000 +output = 8_192 diff --git a/providers/eurouter/models/deepseek-v3.1.toml b/providers/eurouter/models/deepseek-v3.1.toml new file mode 100644 index 0000000000..d0c9a1642a --- /dev/null +++ b/providers/eurouter/models/deepseek-v3.1.toml @@ -0,0 +1,25 @@ +name = "DeepSeek V3.1" +description = "DeepSeek V3.1 is a mixture-of-experts chat model with strong coding and instruction-following capabilities." +family = "deepseek" +release_date = "2026-03-30" +last_updated = "2026-03-30" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.58 +output = 1.68 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 8_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/deepseek-v3.2.toml b/providers/eurouter/models/deepseek-v3.2.toml new file mode 100644 index 0000000000..a5f0c38135 --- /dev/null +++ b/providers/eurouter/models/deepseek-v3.2.toml @@ -0,0 +1,25 @@ +name = "DeepSeek V3.2" +description = "DeepSeek V3.2 is a mixture-of-experts model with improved reasoning, coding, and instruction-following capabilities." +family = "deepseek" +release_date = "2026-03-30" +last_updated = "2026-03-30" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.3 +output = 0.5 +cache_read = 0 +cache_write = 0 + +[limit] +context = 163_840 +output = 163_840 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/deepseek-v3.toml b/providers/eurouter/models/deepseek-v3.toml new file mode 100644 index 0000000000..bc7d754288 --- /dev/null +++ b/providers/eurouter/models/deepseek-v3.toml @@ -0,0 +1,25 @@ +name = "DeepSeek V3" +description = "DeepSeek V3 is DeepSeek's Mixture-of-Experts chat model for general instruction following, coding, and tool use." +family = "deepseek" +release_date = "2025-12-06" +last_updated = "2025-12-06" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.3 +output = 1 +cache_read = 0 +cache_write = 0 + +[limit] +context = 163_840 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/deepseek-v4-flash.toml b/providers/eurouter/models/deepseek-v4-flash.toml new file mode 100644 index 0000000000..fb403daf07 --- /dev/null +++ b/providers/eurouter/models/deepseek-v4-flash.toml @@ -0,0 +1,13 @@ +base_model = "deepseek/deepseek-v4-flash" +description = "DeepSeek V4 Flash is a DeepSeek V4-series text model with a 1M-token context window, function calling, and optional reasoning support." +reasoning_options = [] + +[cost] +input = 0.15 +output = 0.3 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 1_048_576 diff --git a/providers/eurouter/models/deepseek-v4-pro.toml b/providers/eurouter/models/deepseek-v4-pro.toml new file mode 100644 index 0000000000..1d14a824b8 --- /dev/null +++ b/providers/eurouter/models/deepseek-v4-pro.toml @@ -0,0 +1,13 @@ +base_model = "deepseek/deepseek-v4-pro" +description = "DeepSeek V4 Pro is a DeepSeek V4-series text model with a 1M-token context window, function calling, and optional reasoning support." +reasoning_options = [] + +[cost] +input = 1.75 +output = 3.5 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 1_048_576 diff --git a/providers/eurouter/models/devstral-2-123b-instruct-2512.toml b/providers/eurouter/models/devstral-2-123b-instruct-2512.toml new file mode 100644 index 0000000000..01488fb584 --- /dev/null +++ b/providers/eurouter/models/devstral-2-123b-instruct-2512.toml @@ -0,0 +1,25 @@ +name = "Devstral 2 123B Instruct" +description = "Devstral 2 123B Instruct is Mistral's long-context code model for agentic software engineering and multi-file reasoning tasks." +family = "devstral" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.4 +output = 2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 200_000 +output = 16_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/devstral-2.toml b/providers/eurouter/models/devstral-2.toml new file mode 100644 index 0000000000..3c5695096c --- /dev/null +++ b/providers/eurouter/models/devstral-2.toml @@ -0,0 +1,25 @@ +name = "Devstral 2" +description = "Devstral 2 is Mistral AI's frontier code agent model for tool-using software engineering tasks." +family = "devstral" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.4 +output = 2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/devstral-small-2.toml b/providers/eurouter/models/devstral-small-2.toml new file mode 100644 index 0000000000..903d6cad86 --- /dev/null +++ b/providers/eurouter/models/devstral-small-2.toml @@ -0,0 +1,25 @@ +name = "Devstral Small 2" +description = "Devstral Small 2 is Mistral AI's compact code agent model for tool-using software engineering tasks." +family = "devstral" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.1 +output = 0.3 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/devstral-small.toml b/providers/eurouter/models/devstral-small.toml new file mode 100644 index 0000000000..f3346e76a9 --- /dev/null +++ b/providers/eurouter/models/devstral-small.toml @@ -0,0 +1,25 @@ +name = "Devstral Small" +description = "Devstral-Small-2505 is a 24B agentic LLM fine-tuned from Mistral-Small-3.1 by Mistral AI and All Hands AI for software engineering. #1 open source model on SWE-bench (46.8% on Verified). Excels at codebase exploration, multi-file editing, and powering software engineering agents. Text-only (vision encoder removed)." +family = "devstral" +release_date = "2025-12-08" +last_updated = "2025-12-08" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = true + +[cost] +input = 0.15 +output = 0.35 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/e5-mistral-7b-instruct.toml b/providers/eurouter/models/e5-mistral-7b-instruct.toml new file mode 100644 index 0000000000..fa663f4037 --- /dev/null +++ b/providers/eurouter/models/e5-mistral-7b-instruct.toml @@ -0,0 +1,19 @@ +name = "E5-Mistral-7B-Instruct" +description = "Instruction-tuned embedding model from intfloat based on Mistral 7B. Produces 4096-dimensional embeddings for high-quality semantic search and retrieval tasks. Supports instruction-based queries for improved retrieval accuracy." +family = "mistral" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[limit] +context = 33_000 +output = 33_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/gemma-2-2b-it.toml b/providers/eurouter/models/gemma-2-2b-it.toml new file mode 100644 index 0000000000..c28e299869 --- /dev/null +++ b/providers/eurouter/models/gemma-2-2b-it.toml @@ -0,0 +1,25 @@ +name = "Gemma 2 2B IT" +description = "Gemma 2 2B IT is Google's compact instruction-tuned model from the Gemma 2 family for efficient chat and assistant workloads." +family = "gemma" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.02 +output = 0.06 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/gemma-2-9b-it.toml b/providers/eurouter/models/gemma-2-9b-it.toml new file mode 100644 index 0000000000..49782bc0e4 --- /dev/null +++ b/providers/eurouter/models/gemma-2-9b-it.toml @@ -0,0 +1,25 @@ +name = "Gemma 2 9B Instruct" +description = "Larger Gemma model delivering high-quality chat and coding with efficient inference." +family = "gemma" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.03 +output = 0.09 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/gemma-3-27b-it.toml b/providers/eurouter/models/gemma-3-27b-it.toml new file mode 100644 index 0000000000..09b667415d --- /dev/null +++ b/providers/eurouter/models/gemma-3-27b-it.toml @@ -0,0 +1,25 @@ +name = "Gemma 3 27B IT" +description = "Gemma 3 27B IT is Google's multimodal instruction-tuned model with text and image input support." +family = "gemma" +release_date = "2025-12-08" +last_updated = "2025-12-08" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.1 +output = 0.3 +cache_read = 0 +cache_write = 0 + +[limit] +context = 110_000 +output = 110_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/gemma-4.toml b/providers/eurouter/models/gemma-4.toml new file mode 100644 index 0000000000..9ac429d851 --- /dev/null +++ b/providers/eurouter/models/gemma-4.toml @@ -0,0 +1,25 @@ +name = "Gemma 4" +description = "Gemma 4 is Google DeepMind's open model family built from Gemini 3 research and technology for high intelligence-per-parameter. The 31B variant offers long-context multimodal reasoning, function-calling support, multilingual understanding, and efficient deployment on personal hardware." +family = "gemma" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.1 +output = 0.5 +cache_read = 0 +cache_write = 0 + +[limit] +context = 256_000 +output = 256_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/glm-4.5-air.toml b/providers/eurouter/models/glm-4.5-air.toml new file mode 100644 index 0000000000..11570a55a5 --- /dev/null +++ b/providers/eurouter/models/glm-4.5-air.toml @@ -0,0 +1,15 @@ +base_model = "zhipuai/glm-4.5-air" +description = "Cost-efficient GLM variant offering fast inference while keeping the core reasoning strengths." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.2 +output = 1.2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 diff --git a/providers/eurouter/models/glm-4.5.toml b/providers/eurouter/models/glm-4.5.toml new file mode 100644 index 0000000000..3dc6173c06 --- /dev/null +++ b/providers/eurouter/models/glm-4.5.toml @@ -0,0 +1,15 @@ +base_model = "zhipuai/glm-4.5" +description = "Flagship GLM model with strong multilingual reasoning, long context, and robust tool use." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.6 +output = 2.2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 diff --git a/providers/eurouter/models/glm-4.6.toml b/providers/eurouter/models/glm-4.6.toml new file mode 100644 index 0000000000..377090358c --- /dev/null +++ b/providers/eurouter/models/glm-4.6.toml @@ -0,0 +1,15 @@ +base_model = "zhipuai/glm-4.6" +description = "GLM-4.6 is Z AI's language model for multilingual chat, coding, reasoning, and function calling." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.4 +output = 1.75 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 203_000 +output = 131_000 diff --git a/providers/eurouter/models/glm-4.7-flash.toml b/providers/eurouter/models/glm-4.7-flash.toml new file mode 100644 index 0000000000..e413774e56 --- /dev/null +++ b/providers/eurouter/models/glm-4.7-flash.toml @@ -0,0 +1,16 @@ +base_model = "zhipuai/glm-4.7-flash" +description = "GLM 4.7 Flash is Z.AI's faster GLM 4.7 variant available through Amazon Bedrock." +tool_call = false +structured_output = false +reasoning_options = [] + +[cost] +input = 0.08 +output = 0.48 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 202_752 +output = 202_752 diff --git a/providers/eurouter/models/glm-4.7-fp8.toml b/providers/eurouter/models/glm-4.7-fp8.toml new file mode 100644 index 0000000000..9974d57c2f --- /dev/null +++ b/providers/eurouter/models/glm-4.7-fp8.toml @@ -0,0 +1,25 @@ +name = "GLM 4.7 FP8" +description = "GLM-4.7 FP8 is the latest iteration of Zhipu AI's GLM series, served in FP8 precision for efficient inference. Improved capabilities over GLM-4.5 with 128K context and strong reasoning." +family = "glm" +release_date = "2026-02-14" +last_updated = "2026-02-14" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.4 +output = 2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/glm-4.7.toml b/providers/eurouter/models/glm-4.7.toml new file mode 100644 index 0000000000..36d8d0e7e3 --- /dev/null +++ b/providers/eurouter/models/glm-4.7.toml @@ -0,0 +1,15 @@ +base_model = "zhipuai/glm-4.7" +description = "GLM-4.7 is Z AI's model for high-throughput chat, coding, and function-calling workloads." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.6 +output = 2.2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 202_752 +output = 200_000 diff --git a/providers/eurouter/models/glm-5-turbo.toml b/providers/eurouter/models/glm-5-turbo.toml new file mode 100644 index 0000000000..fc135e038f --- /dev/null +++ b/providers/eurouter/models/glm-5-turbo.toml @@ -0,0 +1,13 @@ +base_model = "zhipuai/glm-5-turbo" +description = "GLM-5-Turbo is Z AI's speed-optimized, API-only GLM-5-series variant for fast, low-latency agentic workloads, with tool calling and toggleable reasoning." +reasoning_options = [] + +[cost] +input = 1.2 +output = 4 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 202_752 diff --git a/providers/eurouter/models/glm-5.1.toml b/providers/eurouter/models/glm-5.1.toml new file mode 100644 index 0000000000..47e633d3de --- /dev/null +++ b/providers/eurouter/models/glm-5.1.toml @@ -0,0 +1,14 @@ +base_model = "zhipuai/glm-5.1" +description = "GLM-5.1 is Z AI's flagship model for long-horizon agentic engineering and advanced coding workflows." +reasoning_options = [] + +[cost] +input = 1.4 +output = 4.4 +reasoning = 0 +cache_read = 0.26 +cache_write = 0 + +[limit] +context = 202_752 +output = 202_752 diff --git a/providers/eurouter/models/glm-5.2.toml b/providers/eurouter/models/glm-5.2.toml new file mode 100644 index 0000000000..b5a105aab0 --- /dev/null +++ b/providers/eurouter/models/glm-5.2.toml @@ -0,0 +1,13 @@ +base_model = "zhipuai/glm-5.2" +description = "GLM-5.2 is Z AI's long-context model for reasoning, coding, tool use, and multilingual chat." +reasoning_options = [] + +[cost] +input = 1.5 +output = 4.5 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 1_048_576 diff --git a/providers/eurouter/models/glm-5.toml b/providers/eurouter/models/glm-5.toml new file mode 100644 index 0000000000..2cdcf81eab --- /dev/null +++ b/providers/eurouter/models/glm-5.toml @@ -0,0 +1,15 @@ +base_model = "zhipuai/glm-5" +description = "GLM-5 is Z AI's flagship language model for coding, reasoning, tool use, and multilingual chat." +structured_output = true +reasoning_options = [] + +[cost] +input = 1 +output = 3.2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 202_752 +output = 202_752 diff --git a/providers/eurouter/models/glm-5v-turbo.toml b/providers/eurouter/models/glm-5v-turbo.toml new file mode 100644 index 0000000000..ad61481335 --- /dev/null +++ b/providers/eurouter/models/glm-5v-turbo.toml @@ -0,0 +1,17 @@ +base_model = "zhipuai/glm-5v-turbo" +description = "GLM-5V-Turbo is Z AI's API-only multimodal GLM-5-series vision model that accepts text and image input and produces text, optimized for fast agentic and vision-coding workflows with tool calling and toggleable reasoning." +structured_output = true +reasoning_options = [] + +[cost] +input = 1.2 +output = 4 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 202_752 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-4.1-mini.toml b/providers/eurouter/models/gpt-4.1-mini.toml new file mode 100644 index 0000000000..1fbce40606 --- /dev/null +++ b/providers/eurouter/models/gpt-4.1-mini.toml @@ -0,0 +1,14 @@ +base_model = "openai/gpt-4.1-mini" +description = "GPT-4.1 Mini is OpenAI's smaller multimodal GPT-4.1 model for cost-efficient long-context, tool, and structured-output workloads." + +[cost] +input = 0.4 +output = 1.6 +cache_read = 0 +cache_write = 0 + +[limit] +context = 1_000_000 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-4.1-nano.toml b/providers/eurouter/models/gpt-4.1-nano.toml new file mode 100644 index 0000000000..c27603f6f3 --- /dev/null +++ b/providers/eurouter/models/gpt-4.1-nano.toml @@ -0,0 +1,8 @@ +base_model = "openai/gpt-4.1-nano" +description = "GPT-4.1 Nano is OpenAI's lowest-latency GPT-4.1 model for high-volume multimodal, long-context, and tool-assisted tasks." + +[cost] +input = 0.11 +output = 0.44 +cache_read = 0.028 +cache_write = 0 diff --git a/providers/eurouter/models/gpt-4.1.toml b/providers/eurouter/models/gpt-4.1.toml new file mode 100644 index 0000000000..19f27ad8b6 --- /dev/null +++ b/providers/eurouter/models/gpt-4.1.toml @@ -0,0 +1,14 @@ +base_model = "openai/gpt-4.1" +description = "GPT-4.1 is OpenAI's multimodal general-purpose model for instruction following, coding, long-context work, function calling, and structured outputs." + +[cost] +input = 2 +output = 8 +cache_read = 0 +cache_write = 0 + +[limit] +context = 1_000_000 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-4o-mini.toml b/providers/eurouter/models/gpt-4o-mini.toml new file mode 100644 index 0000000000..362f2af876 --- /dev/null +++ b/providers/eurouter/models/gpt-4o-mini.toml @@ -0,0 +1,11 @@ +base_model = "openai/gpt-4o-mini" +description = "GPT-4o Mini is OpenAI's compact multimodal model for low-cost chat, vision, tool use, and structured-output workloads." + +[cost] +input = 0.15 +output = 0.6 +cache_read = 0 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-4o.toml b/providers/eurouter/models/gpt-4o.toml new file mode 100644 index 0000000000..1cc28c5bda --- /dev/null +++ b/providers/eurouter/models/gpt-4o.toml @@ -0,0 +1,11 @@ +base_model = "openai/gpt-4o" +description = "GPT-4o is OpenAI's multimodal model for text and image input, text output, tool use, and general-purpose chat workloads." + +[cost] +input = 2.5 +output = 10 +cache_read = 0 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-5-mini.toml b/providers/eurouter/models/gpt-5-mini.toml new file mode 100644 index 0000000000..02b017df89 --- /dev/null +++ b/providers/eurouter/models/gpt-5-mini.toml @@ -0,0 +1,10 @@ +base_model = "openai/gpt-5-mini" +description = "GPT-5 Mini is OpenAI's smaller GPT-5 reasoning model for cost-efficient multimodal, tool, and long-context workloads." +reasoning_options = [] + +[cost] +input = 0.275 +output = 2.2 +reasoning = 0 +cache_read = 0.0275 +cache_write = 0 diff --git a/providers/eurouter/models/gpt-5-nano.toml b/providers/eurouter/models/gpt-5-nano.toml new file mode 100644 index 0000000000..14568d1378 --- /dev/null +++ b/providers/eurouter/models/gpt-5-nano.toml @@ -0,0 +1,10 @@ +base_model = "openai/gpt-5-nano" +description = "GPT-5 Nano is OpenAI's smallest GPT-5 reasoning model for high-volume multimodal and tool-assisted workloads." +reasoning_options = [] + +[cost] +input = 0.055 +output = 0.44 +reasoning = 0 +cache_read = 0.0055 +cache_write = 0 diff --git a/providers/eurouter/models/gpt-5.1.toml b/providers/eurouter/models/gpt-5.1.toml new file mode 100644 index 0000000000..3d4301bd49 --- /dev/null +++ b/providers/eurouter/models/gpt-5.1.toml @@ -0,0 +1,10 @@ +base_model = "openai/gpt-5.1" +description = "GPT-5.1 is OpenAI's adaptive reasoning model with multimodal input, structured outputs, tool use, and long-context support." +reasoning_options = [] + +[cost] +input = 1.375 +output = 11 +reasoning = 0 +cache_read = 0.1375 +cache_write = 0 diff --git a/providers/eurouter/models/gpt-5.2.toml b/providers/eurouter/models/gpt-5.2.toml new file mode 100644 index 0000000000..fccdc928c1 --- /dev/null +++ b/providers/eurouter/models/gpt-5.2.toml @@ -0,0 +1,10 @@ +base_model = "openai/gpt-5.2" +description = "GPT-5.2 is OpenAI's reasoning model for complex multimodal tasks, structured outputs, tool use, coding, and long-context work." +reasoning_options = [] + +[cost] +input = 1.925 +output = 15.4 +reasoning = 0 +cache_read = 0.1925 +cache_write = 0 diff --git a/providers/eurouter/models/gpt-5.4.toml b/providers/eurouter/models/gpt-5.4.toml new file mode 100644 index 0000000000..4dd581e37e --- /dev/null +++ b/providers/eurouter/models/gpt-5.4.toml @@ -0,0 +1,13 @@ +base_model = "openai/gpt-5.4" +description = "GPT-5.4 is OpenAI's frontier reasoning model for complex professional work, long-context analysis, coding, and agentic automation." +reasoning_options = [] + +[cost] +input = 2.75 +output = 16.5 +reasoning = 0 +cache_read = 0.275 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-5.5.toml b/providers/eurouter/models/gpt-5.5.toml new file mode 100644 index 0000000000..831bee7555 --- /dev/null +++ b/providers/eurouter/models/gpt-5.5.toml @@ -0,0 +1,13 @@ +base_model = "openai/gpt-5.5" +description = "GPT-5.5 is OpenAI's frontier reasoning model for professional agentic workflows, long-context analysis, coding, and computer-use tasks." +reasoning_options = [] + +[cost] +input = 5.5 +output = 33 +reasoning = 0 +cache_read = 0.55 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-5.toml b/providers/eurouter/models/gpt-5.toml new file mode 100644 index 0000000000..38cdcffe78 --- /dev/null +++ b/providers/eurouter/models/gpt-5.toml @@ -0,0 +1,10 @@ +base_model = "openai/gpt-5" +description = "GPT-5 is OpenAI's reasoning model with multimodal input, structured outputs, function calling, and long-context support." +reasoning_options = [] + +[cost] +input = 1.375 +output = 11 +reasoning = 0 +cache_read = 0.1375 +cache_write = 0 diff --git a/providers/eurouter/models/gpt-oss-120b.toml b/providers/eurouter/models/gpt-oss-120b.toml new file mode 100644 index 0000000000..79a8059415 --- /dev/null +++ b/providers/eurouter/models/gpt-oss-120b.toml @@ -0,0 +1,13 @@ +base_model = "openai/gpt-oss-120b" +description = "GPT-OSS 120B is OpenAI's open-weight reasoning model for agentic, coding, and general chat workloads." +reasoning_options = [] + +[cost] +input = 0.04 +output = 0.2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_000 diff --git a/providers/eurouter/models/gpt-oss-20b.toml b/providers/eurouter/models/gpt-oss-20b.toml new file mode 100644 index 0000000000..014fac5322 --- /dev/null +++ b/providers/eurouter/models/gpt-oss-20b.toml @@ -0,0 +1,13 @@ +base_model = "openai/gpt-oss-20b" +description = "GPT-OSS 20B is OpenAI's smaller open-weight reasoning model for efficient chat, coding, and agentic workloads." +reasoning_options = [] + +[cost] +input = 0.03 +output = 0.14 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_000 diff --git a/providers/eurouter/models/green-embedding.toml b/providers/eurouter/models/green-embedding.toml new file mode 100644 index 0000000000..610878dfe2 --- /dev/null +++ b/providers/eurouter/models/green-embedding.toml @@ -0,0 +1,24 @@ +name = "Green Embedding" +description = "High-quality text embeddings for semantic search, similarity matching, and vector database operations. EU-hosted." +release_date = "2026-01-20" +last_updated = "2026-01-20" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.2 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/green-l-raw.toml b/providers/eurouter/models/green-l-raw.toml new file mode 100644 index 0000000000..691aa1e199 --- /dev/null +++ b/providers/eurouter/models/green-l-raw.toml @@ -0,0 +1,24 @@ +name = "GreenL Raw" +description = "Large generative model with custom system prompt support. Provides more control over model behavior and responses. EU-hosted." +release_date = "2026-01-20" +last_updated = "2026-01-20" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 0.25 +output = 0.8 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/green-l.toml b/providers/eurouter/models/green-l.toml new file mode 100644 index 0000000000..63c1aee1f9 --- /dev/null +++ b/providers/eurouter/models/green-l.toml @@ -0,0 +1,24 @@ +name = "GreenL" +description = "Large generative model optimized for sustainability. Best for general conversations, content creation, and text analysis. Based on Mistral architecture, hosted entirely in the EU." +release_date = "2026-01-20" +last_updated = "2026-01-20" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 0.25 +output = 0.8 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/green-r-raw.toml b/providers/eurouter/models/green-r-raw.toml new file mode 100644 index 0000000000..f0ed485c9a --- /dev/null +++ b/providers/eurouter/models/green-r-raw.toml @@ -0,0 +1,24 @@ +name = "GreenR Raw" +description = "Reasoning model with custom system prompt support. Combines advanced reasoning capabilities with customizable behavior. EU-hosted." +release_date = "2026-01-20" +last_updated = "2026-01-20" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.35 +output = 0.95 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/green-r.toml b/providers/eurouter/models/green-r.toml new file mode 100644 index 0000000000..d8000a5826 --- /dev/null +++ b/providers/eurouter/models/green-r.toml @@ -0,0 +1,24 @@ +name = "GreenR" +description = "Reasoning model specialized in logical reasoning and problem-solving. Ideal for complex analytical tasks and mathematical problems. Based on GPT-OSS 120B, EU-hosted." +release_date = "2026-01-20" +last_updated = "2026-01-20" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.35 +output = 0.95 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/hermes-4-405b.toml b/providers/eurouter/models/hermes-4-405b.toml new file mode 100644 index 0000000000..e94de4583e --- /dev/null +++ b/providers/eurouter/models/hermes-4-405b.toml @@ -0,0 +1,25 @@ +name = "Hermes 4 405B" +description = "NousResearch Hermes 4 405B is an open-weight language model for instruction following, chat, tool use, and reasoning-oriented workflows." +family = "hermes" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 1 +output = 3 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/hermes-4-70b.toml b/providers/eurouter/models/hermes-4-70b.toml new file mode 100644 index 0000000000..c181464815 --- /dev/null +++ b/providers/eurouter/models/hermes-4-70b.toml @@ -0,0 +1,25 @@ +name = "Hermes 4 70B" +description = "NousResearch Hermes 4 70B is an open-weight language model for instruction following, chat, tool use, and reasoning-oriented workflows." +family = "hermes" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.13 +output = 0.4 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/holo2-30b-a3b.toml b/providers/eurouter/models/holo2-30b-a3b.toml new file mode 100644 index 0000000000..cec5d17b54 --- /dev/null +++ b/providers/eurouter/models/holo2-30b-a3b.toml @@ -0,0 +1,24 @@ +name = "Holo2 30B A3B" +description = "Holo2 30B A3B is H Company's multimodal MoE model optimized for GUI understanding, navigation, and visual reasoning." +release_date = "2025-12-08" +last_updated = "2025-12-08" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.3 +output = 0.7 +cache_read = 0 +cache_write = 0 + +[limit] +context = 22_000 +output = 32_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/inf-retriever-v1.toml b/providers/eurouter/models/inf-retriever-v1.toml new file mode 100644 index 0000000000..09d379e40a --- /dev/null +++ b/providers/eurouter/models/inf-retriever-v1.toml @@ -0,0 +1,24 @@ +name = "INF Retriever v1" +description = "INF Retriever v1 is INF Tech's LLM-based dense retrieval embedding model, optimized for English and Chinese retrieval." +release_date = "2026-07-06" +last_updated = "2026-07-06" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.09 +output = 0.45 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_768 +output = 32_768 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/intellect-3.toml b/providers/eurouter/models/intellect-3.toml new file mode 100644 index 0000000000..b84e45fa5b --- /dev/null +++ b/providers/eurouter/models/intellect-3.toml @@ -0,0 +1,25 @@ +name = "INTELLECT-3" +description = "Prime Intellect INTELLECT-3 is an open model for reasoning, code, tool-use, and context-augmented chat workloads." +family = "intellect" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.2 +output = 1.1 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/kimi-k2-instruct.toml b/providers/eurouter/models/kimi-k2-instruct.toml new file mode 100644 index 0000000000..f20623fa8c --- /dev/null +++ b/providers/eurouter/models/kimi-k2-instruct.toml @@ -0,0 +1,25 @@ +name = "Kimi K2 Instruct" +description = "Kimi-K2 is Moonshot AI's agentic model built for autonomous tool use and reliable instruction following. Designed for reflex-fast agentic tasks." +family = "kimi-k2" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.5 +output = 2.4 +cache_read = 0 +cache_write = 0 + +[limit] +context = 200_000 +output = 200_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/kimi-k2.5.toml b/providers/eurouter/models/kimi-k2.5.toml new file mode 100644 index 0000000000..94bae871d1 --- /dev/null +++ b/providers/eurouter/models/kimi-k2.5.toml @@ -0,0 +1,15 @@ +base_model = "moonshotai/kimi-k2.5" +description = "Kimi K2.5 is Moonshot AI's long-context multimodal model for coding, tool use, and general chat." +attachment = true +temperature = true +reasoning_options = [] + +[cost] +input = 0.5 +output = 2.5 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/kimi-k2.6.toml b/providers/eurouter/models/kimi-k2.6.toml new file mode 100644 index 0000000000..6061d2c2c8 --- /dev/null +++ b/providers/eurouter/models/kimi-k2.6.toml @@ -0,0 +1,14 @@ +base_model = "moonshotai/kimi-k2.6" +description = "Kimi K2.6 is Moonshot AI's open-weight reasoning model for long-horizon coding, agentic execution, and multimodal reasoning." +reasoning_options = [] + +[cost] +input = 0.8 +output = 3.5 +reasoning = 0 +cache_read = 0.2 +cache_write = 0 + +[limit] +context = 256_000 +output = 256_000 diff --git a/providers/eurouter/models/kimi-k2.7-code.toml b/providers/eurouter/models/kimi-k2.7-code.toml new file mode 100644 index 0000000000..0af8d0d0be --- /dev/null +++ b/providers/eurouter/models/kimi-k2.7-code.toml @@ -0,0 +1,19 @@ +base_model = "moonshotai/kimi-k2.7-code" +description = "Kimi K2.7 Code is Moonshot AI's open-weight Mixture-of-Experts coding model for long-horizon agentic engineering." +attachment = false +temperature = true +reasoning_options = [] + +[cost] +input = 0.75 +output = 3.5 +reasoning = 0 +cache_read = 0.2 +cache_write = 0 + +[limit] +context = 256_000 +output = 256_000 + +[modalities] +input = ["text"] diff --git a/providers/eurouter/models/llama-3.1-405b-instruct.toml b/providers/eurouter/models/llama-3.1-405b-instruct.toml new file mode 100644 index 0000000000..49d662c985 --- /dev/null +++ b/providers/eurouter/models/llama-3.1-405b-instruct.toml @@ -0,0 +1,25 @@ +name = "Llama 3.1 405B Instruct" +description = "Llama 3.1 405B Instruct is Meta's flagship 405B parameter model with a 128K context window. It delivers strong multilingual reasoning, instruction following, and tool-use capabilities at frontier scale." +family = "llama" +release_date = "2026-02-05" +last_updated = "2026-02-05" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 1.93 +output = 1.93 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/llama-3.1-8b-instruct.toml b/providers/eurouter/models/llama-3.1-8b-instruct.toml new file mode 100644 index 0000000000..b40c2ff5e2 --- /dev/null +++ b/providers/eurouter/models/llama-3.1-8b-instruct.toml @@ -0,0 +1,25 @@ +name = "Llama 3.1 8B Instruct" +description = "Meta Llama 3.1 8B Instruct is a compact multilingual instruction-tuned model for chat, tool use, and efficient assistant workloads." +family = "llama" +release_date = "2025-12-06" +last_updated = "2025-12-06" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.02 +output = 0.06 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/llama-3.1-nemotron-ultra-253b.toml b/providers/eurouter/models/llama-3.1-nemotron-ultra-253b.toml new file mode 100644 index 0000000000..4f20195ce3 --- /dev/null +++ b/providers/eurouter/models/llama-3.1-nemotron-ultra-253b.toml @@ -0,0 +1,15 @@ +base_model = "nvidia/llama-3.1-nemotron-ultra-253b" +description = "NVIDIA Llama 3.1 Nemotron Ultra 253B is a reasoning-oriented model based on Llama 3.1 for chat, coding, and tool-use workloads." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.6 +output = 1.8 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 diff --git a/providers/eurouter/models/llama-3.2-1b-instruct.toml b/providers/eurouter/models/llama-3.2-1b-instruct.toml new file mode 100644 index 0000000000..b428fb67d0 --- /dev/null +++ b/providers/eurouter/models/llama-3.2-1b-instruct.toml @@ -0,0 +1,25 @@ +name = "Llama 3.2 1B Instruct" +description = "Llama 3.2 1B Instruct is Meta's smallest multilingual model, designed for edge deployments with minimal resources." +family = "llama" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.1 +output = 0.1 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/llama-3.2-3b-instruct.toml b/providers/eurouter/models/llama-3.2-3b-instruct.toml new file mode 100644 index 0000000000..4913c9a9d8 --- /dev/null +++ b/providers/eurouter/models/llama-3.2-3b-instruct.toml @@ -0,0 +1,25 @@ +name = "Llama 3.2 3B Instruct" +description = "Llama 3.2 3B Instruct is a compact multilingual model from Meta, optimized for on-device and edge deployments." +family = "llama" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.15 +output = 0.15 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/llama-3.3-70b-instruct.toml b/providers/eurouter/models/llama-3.3-70b-instruct.toml new file mode 100644 index 0000000000..1293d02abf --- /dev/null +++ b/providers/eurouter/models/llama-3.3-70b-instruct.toml @@ -0,0 +1,14 @@ +base_model = "meta/llama-3.3-70b-instruct" +description = "Llama 3.3 70B Instruct is Meta's multilingual instruction-tuned model for chat, reasoning, and tool-use workloads." +attachment = false +structured_output = true + +[cost] +input = 0.104 +output = 0.312 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_000 +output = 131_000 diff --git a/providers/eurouter/models/llama-4-maverick.toml b/providers/eurouter/models/llama-4-maverick.toml new file mode 100644 index 0000000000..4d0b0c5971 --- /dev/null +++ b/providers/eurouter/models/llama-4-maverick.toml @@ -0,0 +1,25 @@ +name = "Llama 4 Maverick" +description = "Llama 4 Maverick is Meta's Mixture-of-Experts model from the Llama 4 family for long-context chat and function-calling workloads." +family = "llama" +release_date = "2026-03-30" +last_updated = "2026-03-30" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.136 +output = 0.68 +cache_read = 0 +cache_write = 0 + +[limit] +context = 1_050_000 +output = 1_050_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/llama-guard-3-8b.toml b/providers/eurouter/models/llama-guard-3-8b.toml new file mode 100644 index 0000000000..9205036590 --- /dev/null +++ b/providers/eurouter/models/llama-guard-3-8b.toml @@ -0,0 +1,25 @@ +name = "Llama Guard 3 8B" +description = "Moderation model providing robust safety classification and policy enforcement." +family = "llama" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.02 +output = 0.06 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/magistral-medium.toml b/providers/eurouter/models/magistral-medium.toml new file mode 100644 index 0000000000..b379c4ef79 --- /dev/null +++ b/providers/eurouter/models/magistral-medium.toml @@ -0,0 +1,27 @@ +name = "Magistral Medium 1.2" +description = "Magistral Medium 1.2 is Mistral AI's premier reasoning model for domain-specific, transparent, and multilingual reasoning." +family = "magistral-medium" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = false +reasoning_options = [] + +[cost] +input = 2 +output = 5 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 40_000 +output = 40_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/magistral-small.toml b/providers/eurouter/models/magistral-small.toml new file mode 100644 index 0000000000..5007540f3b --- /dev/null +++ b/providers/eurouter/models/magistral-small.toml @@ -0,0 +1,27 @@ +name = "Magistral Small 1.2" +description = "Magistral Small 1.2 is Mistral AI's small reasoning model for transparent and multilingual reasoning." +family = "magistral-small" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = true +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = false +reasoning_options = [] + +[cost] +input = 0.5 +output = 1.5 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 40_000 +output = 40_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/minimax-m2.1.toml b/providers/eurouter/models/minimax-m2.1.toml new file mode 100644 index 0000000000..5982813d3f --- /dev/null +++ b/providers/eurouter/models/minimax-m2.1.toml @@ -0,0 +1,19 @@ +base_model = "minimax/MiniMax-M2.1" +description = "MiniMax M2.1 is a long-context Mixture-of-Experts model from MiniMax for chat, coding, reasoning, and multimodal tasks." +attachment = true +structured_output = true +reasoning_options = [] + +[cost] +input = 0.3 +output = 1.2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/minimax-m2.5.toml b/providers/eurouter/models/minimax-m2.5.toml new file mode 100644 index 0000000000..e1cf51a586 --- /dev/null +++ b/providers/eurouter/models/minimax-m2.5.toml @@ -0,0 +1,15 @@ +base_model = "minimax/MiniMax-M2.5" +description = "MiniMax M2.5 is a MiniMax model for agentic coding, tool use, reasoning, and high-throughput chat workloads." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.25 +output = 1.2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 196_608 +output = 196_608 diff --git a/providers/eurouter/models/minimax-m2.7.toml b/providers/eurouter/models/minimax-m2.7.toml new file mode 100644 index 0000000000..6c96aef4e7 --- /dev/null +++ b/providers/eurouter/models/minimax-m2.7.toml @@ -0,0 +1,15 @@ +base_model = "minimax/MiniMax-M2.7" +description = "MiniMax M2.7 is MiniMax's 229B parameter reasoning model for agentic coding, software engineering, tool use, professional productivity workflows, and native multi-agent orchestration." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.6 +output = 2.4 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 192_000 +output = 192_000 diff --git a/providers/eurouter/models/minimax-m2.toml b/providers/eurouter/models/minimax-m2.toml new file mode 100644 index 0000000000..688e9466e2 --- /dev/null +++ b/providers/eurouter/models/minimax-m2.toml @@ -0,0 +1,14 @@ +base_model = "minimax/MiniMax-M2" +description = "MiniMax M2 is a Mixture-of-Experts language model from MiniMax for coding, function calling, reasoning, and general chat." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.25 +output = 1 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +output = 196_608 diff --git a/providers/eurouter/models/minimax-m3.toml b/providers/eurouter/models/minimax-m3.toml new file mode 100644 index 0000000000..ebf748bc1b --- /dev/null +++ b/providers/eurouter/models/minimax-m3.toml @@ -0,0 +1,19 @@ +base_model = "minimax/MiniMax-M3" +description = "MiniMax M3 is a long-context model for chat, coding, reasoning, and agentic workflows." +attachment = false +structured_output = true +reasoning_options = [] + +[cost] +input = 0.4 +output = 2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 1_048_576 +output = 131_072 + +[modalities] +input = ["text"] diff --git a/providers/eurouter/models/ministral-3-14b.toml b/providers/eurouter/models/ministral-3-14b.toml new file mode 100644 index 0000000000..25cc9dcaa1 --- /dev/null +++ b/providers/eurouter/models/ministral-3-14b.toml @@ -0,0 +1,25 @@ +name = "Ministral 3 14B" +description = "Ministral 3 14B is an open Mistral AI model for efficient text and vision workloads." +family = "ministral" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.2 +output = 0.2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/ministral-3-3b.toml b/providers/eurouter/models/ministral-3-3b.toml new file mode 100644 index 0000000000..0e29ac9607 --- /dev/null +++ b/providers/eurouter/models/ministral-3-3b.toml @@ -0,0 +1,25 @@ +name = "Ministral 3 3B" +description = "Ministral 3 3B is an open Mistral AI model for efficient text and vision workloads." +family = "ministral" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.1 +output = 0.1 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/ministral-3-8b.toml b/providers/eurouter/models/ministral-3-8b.toml new file mode 100644 index 0000000000..313f816acf --- /dev/null +++ b/providers/eurouter/models/ministral-3-8b.toml @@ -0,0 +1,25 @@ +name = "Ministral 3 8B" +description = "Ministral 3 8B is an open Mistral AI model for efficient text and vision workloads." +family = "ministral" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.15 +output = 0.15 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-7b-instruct-v0.3.toml b/providers/eurouter/models/mistral-7b-instruct-v0.3.toml new file mode 100644 index 0000000000..39379bf43e --- /dev/null +++ b/providers/eurouter/models/mistral-7b-instruct-v0.3.toml @@ -0,0 +1,25 @@ +name = "Mistral 7B Instruct v0.3" +description = "Mistral 7B Instruct v0.3 is Mistral AI's 7B instruction-following model for multilingual text generation, coding, extraction, and summarization tasks." +family = "mistral" +release_date = "2026-01-23" +last_updated = "2026-01-23" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.1 +output = 0.1 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_768 +output = 32_768 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-7b-instruct.toml b/providers/eurouter/models/mistral-7b-instruct.toml new file mode 100644 index 0000000000..56e05376ab --- /dev/null +++ b/providers/eurouter/models/mistral-7b-instruct.toml @@ -0,0 +1,25 @@ +name = "Mistral 7B Instruct" +description = "Mistral 7B Instruct is Mistral AI's 7B-parameter instruction-tuned model." +family = "mistral" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.16 +output = 0.22 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 4_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-embed.toml b/providers/eurouter/models/mistral-embed.toml new file mode 100644 index 0000000000..5421fdecae --- /dev/null +++ b/providers/eurouter/models/mistral-embed.toml @@ -0,0 +1,25 @@ +name = "Mistral Embed" +description = "Mistral Embed is Mistral AI's text embedding model for semantic search, retrieval, clustering, and classification." +family = "mistral-embed" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.1 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-large-2.toml b/providers/eurouter/models/mistral-large-2.toml new file mode 100644 index 0000000000..254697dba9 --- /dev/null +++ b/providers/eurouter/models/mistral-large-2.toml @@ -0,0 +1,25 @@ +name = "Mistral Large 2" +description = "Mistral Large 2 is a 123B parameter flagship model with a 128K context window. It excels at code generation, mathematics, reasoning, and multi-turn conversations. It performs on par with GPT-4o and Claude 3 Opus on most benchmarks." +family = "mistral-large" +release_date = "2025-12-06" +last_updated = "2025-12-06" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 2 +output = 6 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 4_096 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-large-2402.toml b/providers/eurouter/models/mistral-large-2402.toml new file mode 100644 index 0000000000..8ae7ee8a87 --- /dev/null +++ b/providers/eurouter/models/mistral-large-2402.toml @@ -0,0 +1,25 @@ +name = "Mistral Large 2402" +description = "Mistral Large 2402 is Mistral AI's high-capability text model available through Amazon Bedrock." +family = "mistral-large" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 4.3 +output = 13 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-large-3.toml b/providers/eurouter/models/mistral-large-3.toml new file mode 100644 index 0000000000..1ccb219a78 --- /dev/null +++ b/providers/eurouter/models/mistral-large-3.toml @@ -0,0 +1,25 @@ +name = "Mistral Large 3" +description = "Mistral Large 3 is Mistral AI's 675B-parameter model for coding, reasoning, multilingual tasks, and vision-enabled chat." +family = "mistral-large" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.5 +output = 1.5 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-medium-3.1.toml b/providers/eurouter/models/mistral-medium-3.1.toml new file mode 100644 index 0000000000..b342c65242 --- /dev/null +++ b/providers/eurouter/models/mistral-medium-3.1.toml @@ -0,0 +1,25 @@ +name = "Mistral Medium 3.1" +description = "Mistral Medium 3.1 is Mistral AI's frontier-class multimodal model released in August 2025." +family = "mistral-medium" +release_date = "2026-01-20" +last_updated = "2026-01-20" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.4 +output = 2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-nemo-12b.toml b/providers/eurouter/models/mistral-nemo-12b.toml new file mode 100644 index 0000000000..7fe667f0a4 --- /dev/null +++ b/providers/eurouter/models/mistral-nemo-12b.toml @@ -0,0 +1,25 @@ +name = "Mistral Nemo 12B" +description = "Mistral Nemo 12B is Mistral AI's open multilingual model built with NVIDIA for efficient long-context text generation." +family = "mistral-nemo" +release_date = "2025-12-06" +last_updated = "2025-12-06" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.13 +output = 0.13 +cache_read = 0 +cache_write = 0 + +[limit] +context = 120_832 +output = 120_832 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-small-24b.toml b/providers/eurouter/models/mistral-small-24b.toml new file mode 100644 index 0000000000..21bff44a1a --- /dev/null +++ b/providers/eurouter/models/mistral-small-24b.toml @@ -0,0 +1,25 @@ +name = "Mistral Small 24B Instruct" +description = "Mistral Small 24B Instruct is a 24B parameter model with 128K context and multimodal (text + image) inputs, optimized for instruction following and long-document understanding." +family = "mistral-small" +release_date = "2026-02-05" +last_updated = "2026-02-05" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.11 +output = 0.33 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-small-3.1-24b.toml b/providers/eurouter/models/mistral-small-3.1-24b.toml new file mode 100644 index 0000000000..406fdc4620 --- /dev/null +++ b/providers/eurouter/models/mistral-small-3.1-24b.toml @@ -0,0 +1,25 @@ +name = "Mistral Small 3.1 24B" +description = "Mistral Small 3.1 is a 24B parameter model with a 128K context window. It supports both text and image inputs (vision), features efficient inference at 150 tokens/second, and is optimized for conversational agents, function calling, and long-document comprehension." +family = "mistral-small" +release_date = "2025-12-06" +last_updated = "2025-12-06" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.1 +output = 0.3 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-small-3.2-24b.toml b/providers/eurouter/models/mistral-small-3.2-24b.toml new file mode 100644 index 0000000000..3d3723e67b --- /dev/null +++ b/providers/eurouter/models/mistral-small-3.2-24b.toml @@ -0,0 +1,25 @@ +name = "Mistral Small 3.2 24B" +description = "Mistral Small 3.2 is a 24B open model with image understanding, function calling, and long-context support." +family = "mistral-small" +release_date = "2025-12-08" +last_updated = "2025-12-08" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.09 +output = 0.28 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/mistral-small-4.toml b/providers/eurouter/models/mistral-small-4.toml new file mode 100644 index 0000000000..9be171411a --- /dev/null +++ b/providers/eurouter/models/mistral-small-4.toml @@ -0,0 +1,27 @@ +name = "Mistral Small 4" +description = "Mistral Small 4 is Mistral AI's open hybrid MoE model unifying instruct, reasoning, coding, and multimodal workloads." +family = "mistral-small" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = true +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = true +reasoning_options = [] + +[cost] +input = 0.15 +output = 0.6 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/mixtral-8x22b-instruct.toml b/providers/eurouter/models/mixtral-8x22b-instruct.toml new file mode 100644 index 0000000000..e52d546544 --- /dev/null +++ b/providers/eurouter/models/mixtral-8x22b-instruct.toml @@ -0,0 +1,25 @@ +name = "Mixtral 8x22B Instruct" +description = "Mixtral 8x22B Instruct is Mistral AI's sparse Mixture-of-Experts model for chat, code, and tool-use workloads." +family = "mixtral" +release_date = "2026-03-30" +last_updated = "2026-03-30" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 2 +output = 6 +cache_read = 0 +cache_write = 0 + +[limit] +context = 66_000 +output = 65_536 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/mixtral-8x7b-instruct.toml b/providers/eurouter/models/mixtral-8x7b-instruct.toml new file mode 100644 index 0000000000..cccbff9539 --- /dev/null +++ b/providers/eurouter/models/mixtral-8x7b-instruct.toml @@ -0,0 +1,25 @@ +name = "Mixtral 8x7B Instruct" +description = "Mixtral 8x7B Instruct is Mistral AI's sparse mixture-of-experts instruction model." +family = "mixtral" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.49 +output = 0.76 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/multilingual-e5-large-instruct.toml b/providers/eurouter/models/multilingual-e5-large-instruct.toml new file mode 100644 index 0000000000..df8b1d615d --- /dev/null +++ b/providers/eurouter/models/multilingual-e5-large-instruct.toml @@ -0,0 +1,24 @@ +name = "Multilingual E5 Large Instruct" +description = "Multilingual E5 Large Instruct is an instruction-tuned multilingual embedding model for retrieval across ~100 languages." +release_date = "2026-07-06" +last_updated = "2026-07-06" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.12 +output = 0.6 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/nemotron-3-nano-30b-a3b.toml b/providers/eurouter/models/nemotron-3-nano-30b-a3b.toml new file mode 100644 index 0000000000..560550b7f2 --- /dev/null +++ b/providers/eurouter/models/nemotron-3-nano-30b-a3b.toml @@ -0,0 +1,11 @@ +base_model = "nvidia/nemotron-3-nano-30b-a3b" +description = "NVIDIA Nemotron 3 Nano 30B A3B is an efficient MoE model for chat, reasoning, coding, and tool use." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.06 +output = 0.24 +reasoning = 0 +cache_read = 0 +cache_write = 0 diff --git a/providers/eurouter/models/nemotron-3-nano-omni.toml b/providers/eurouter/models/nemotron-3-nano-omni.toml new file mode 100644 index 0000000000..77441e1768 --- /dev/null +++ b/providers/eurouter/models/nemotron-3-nano-omni.toml @@ -0,0 +1,25 @@ +name = "Nemotron 3 Nano Omni" +description = "NVIDIA Nemotron 3 Nano Omni is an efficient omni-modal reasoning model for agentic AI, coding, tool use, and long-context workflows." +family = "nemotron" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.06 +output = 0.24 +cache_read = 0 +cache_write = 0 + +[limit] +context = 65_536 +output = 65_536 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/nemotron-3-super-120b-a12b.toml b/providers/eurouter/models/nemotron-3-super-120b-a12b.toml new file mode 100644 index 0000000000..07850e288b --- /dev/null +++ b/providers/eurouter/models/nemotron-3-super-120b-a12b.toml @@ -0,0 +1,11 @@ +base_model = "nvidia/nemotron-3-super-120b-a12b" +description = "NVIDIA Nemotron 3 Super 120B A12B is a Mixture-of-Experts model for chat, coding, reasoning, and tool-use workloads." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.3 +output = 0.9 +reasoning = 0 +cache_read = 0 +cache_write = 0 diff --git a/providers/eurouter/models/nemotron-nano-v2-12b.toml b/providers/eurouter/models/nemotron-nano-v2-12b.toml new file mode 100644 index 0000000000..9c9ed1491c --- /dev/null +++ b/providers/eurouter/models/nemotron-nano-v2-12b.toml @@ -0,0 +1,25 @@ +name = "Nemotron Nano V2 12B" +description = "Compact NVIDIA model optimized for efficient reasoning, safety, and enterprise workloads." +family = "nemotron" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.07 +output = 0.2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/nova-2-lite.toml b/providers/eurouter/models/nova-2-lite.toml new file mode 100644 index 0000000000..fa45b27174 --- /dev/null +++ b/providers/eurouter/models/nova-2-lite.toml @@ -0,0 +1,25 @@ +name = "Amazon Nova 2 Lite" +description = "Amazon Nova 2 Lite is a cost-efficient multimodal model for simple automation, document processing, and customer support across text, images, and video." +family = "nova" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 0.39 +output = 3.27 +cache_read = 0.0975 +cache_write = 0 + +[limit] +context = 1_000_000 +output = 64_000 + +[modalities] +input = ["text", "image", "video"] +output = ["text"] diff --git a/providers/eurouter/models/nova-lite.toml b/providers/eurouter/models/nova-lite.toml new file mode 100644 index 0000000000..f961452104 --- /dev/null +++ b/providers/eurouter/models/nova-lite.toml @@ -0,0 +1,25 @@ +name = "Amazon Nova Lite" +description = "Amazon Nova Lite is a multimodal model supporting text, images, and video with low-latency responses." +family = "nova-lite" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 0.06 +output = 0.24 +cache_read = 0 +cache_write = 0 + +[limit] +context = 300_000 +output = 300_000 + +[modalities] +input = ["text", "image", "video"] +output = ["text"] diff --git a/providers/eurouter/models/nova-micro.toml b/providers/eurouter/models/nova-micro.toml new file mode 100644 index 0000000000..af42ca2146 --- /dev/null +++ b/providers/eurouter/models/nova-micro.toml @@ -0,0 +1,25 @@ +name = "Amazon Nova Micro" +description = "Amazon Nova Micro is the fastest and most cost-effective Nova model, optimized for simple text tasks." +family = "nova-micro" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.035 +output = 0.14 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/nova-pro.toml b/providers/eurouter/models/nova-pro.toml new file mode 100644 index 0000000000..33ee186742 --- /dev/null +++ b/providers/eurouter/models/nova-pro.toml @@ -0,0 +1,25 @@ +name = "Amazon Nova Pro" +description = "Amazon Nova Pro is a highly capable multimodal model balancing performance and cost for complex tasks." +family = "nova-pro" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 0.8 +output = 3.2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 300_000 +output = 300_000 + +[modalities] +input = ["text", "image", "video"] +output = ["text"] diff --git a/providers/eurouter/models/o1.toml b/providers/eurouter/models/o1.toml new file mode 100644 index 0000000000..773827f971 --- /dev/null +++ b/providers/eurouter/models/o1.toml @@ -0,0 +1,13 @@ +base_model = "openai/o1" +description = "o1 is OpenAI's reasoning model for complex tasks with structured outputs, multimodal input, and tool use." +reasoning_options = [] + +[cost] +input = 16.5 +output = 66 +reasoning = 0 +cache_read = 8.25 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/o3-mini.toml b/providers/eurouter/models/o3-mini.toml new file mode 100644 index 0000000000..62c40704c4 --- /dev/null +++ b/providers/eurouter/models/o3-mini.toml @@ -0,0 +1,10 @@ +base_model = "openai/o3-mini" +description = "o3-mini is OpenAI's compact text-only reasoning model optimized for cost-efficient coding, math, science, and structured-output tasks." +reasoning_options = [] + +[cost] +input = 1.21 +output = 4.84 +reasoning = 0 +cache_read = 0.605 +cache_write = 0 diff --git a/providers/eurouter/models/o3.toml b/providers/eurouter/models/o3.toml new file mode 100644 index 0000000000..dffa1c509b --- /dev/null +++ b/providers/eurouter/models/o3.toml @@ -0,0 +1,13 @@ +base_model = "openai/o3" +description = "o3 is OpenAI's reasoning model for advanced problem solving, coding, math, science, visual perception, and tool use." +reasoning_options = [] + +[cost] +input = 2.2 +output = 8.8 +reasoning = 0 +cache_read = 0.55 +cache_write = 0 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/o4-mini.toml b/providers/eurouter/models/o4-mini.toml new file mode 100644 index 0000000000..421c281526 --- /dev/null +++ b/providers/eurouter/models/o4-mini.toml @@ -0,0 +1,10 @@ +base_model = "openai/o4-mini" +description = "o4-mini is OpenAI's compact reasoning model for math, coding, visual tasks, structured outputs, and tool use." +reasoning_options = [] + +[cost] +input = 1.1 +output = 4.4 +reasoning = 0 +cache_read = 0 +cache_write = 0 diff --git a/providers/eurouter/models/paraphrase-multilingual-mpnet-base-v2.toml b/providers/eurouter/models/paraphrase-multilingual-mpnet-base-v2.toml new file mode 100644 index 0000000000..f13e188cf0 --- /dev/null +++ b/providers/eurouter/models/paraphrase-multilingual-mpnet-base-v2.toml @@ -0,0 +1,24 @@ +name = "Paraphrase Multilingual MPNet v2" +description = "Paraphrase Multilingual MPNet v2 is a sentence-transformer embedding model producing 768-dimensional vectors for multilingual semantic search and similarity." +release_date = "2026-02-05" +last_updated = "2026-02-05" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.01 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128 +output = 128 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/pixtral-12b.toml b/providers/eurouter/models/pixtral-12b.toml new file mode 100644 index 0000000000..4ba44771fa --- /dev/null +++ b/providers/eurouter/models/pixtral-12b.toml @@ -0,0 +1,10 @@ +base_model = "mistral/pixtral-12b" +description = "Pixtral 12B is Mistral's multimodal model for image understanding, visual question answering, and document analysis." +tool_call = false +structured_output = true + +[cost] +input = 0.15 +output = 0.15 +cache_read = 0 +cache_write = 0 diff --git a/providers/eurouter/models/pixtral-large-2502.toml b/providers/eurouter/models/pixtral-large-2502.toml new file mode 100644 index 0000000000..923d315f01 --- /dev/null +++ b/providers/eurouter/models/pixtral-large-2502.toml @@ -0,0 +1,25 @@ +name = "Pixtral Large 25.02" +description = "Pixtral Large is Mistral's flagship multimodal model with exceptional vision and text understanding capabilities." +family = "pixtral" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 2 +output = 6 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/pixtral-large.toml b/providers/eurouter/models/pixtral-large.toml new file mode 100644 index 0000000000..918d072f3d --- /dev/null +++ b/providers/eurouter/models/pixtral-large.toml @@ -0,0 +1,25 @@ +name = "Pixtral Large" +description = "Pixtral Large is Mistral's premium multimodal model with 128K context. Excels at complex visual reasoning, document analysis, and image understanding." +family = "pixtral" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 2 +output = 6 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/qwen-2.5-72b-instruct.toml b/providers/eurouter/models/qwen-2.5-72b-instruct.toml new file mode 100644 index 0000000000..cc0e37f6bd --- /dev/null +++ b/providers/eurouter/models/qwen-2.5-72b-instruct.toml @@ -0,0 +1,25 @@ +name = "Qwen 2.5 72B Instruct" +description = "Qwen 2.5 72B Instruct is Alibaba's instruction-tuned language model for multilingual chat, coding, and tool use." +family = "qwen" +release_date = "2025-12-06" +last_updated = "2025-12-06" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.07 +output = 0.26 +cache_read = 0 +cache_write = 0 + +[limit] +context = 33_000 +output = 33_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen-2.5-coder-32b-instruct.toml b/providers/eurouter/models/qwen-2.5-coder-32b-instruct.toml new file mode 100644 index 0000000000..d288a55606 --- /dev/null +++ b/providers/eurouter/models/qwen-2.5-coder-32b-instruct.toml @@ -0,0 +1,25 @@ +name = "Qwen 2.5 Coder 32B Instruct" +description = "Qwen 2.5 Coder 32B is a specialized code generation model from Alibaba. It excels at code completion, debugging, and explanation tasks across multiple programming languages." +family = "qwen" +release_date = "2025-12-06" +last_updated = "2025-12-06" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.9 +output = 0.9 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen-2.5-coder-7b.toml b/providers/eurouter/models/qwen-2.5-coder-7b.toml new file mode 100644 index 0000000000..8dffa40dc2 --- /dev/null +++ b/providers/eurouter/models/qwen-2.5-coder-7b.toml @@ -0,0 +1,25 @@ +name = "Qwen 2.5 Coder 7B" +description = "Lightweight Qwen coder offering high-quality code generation and repo-level editing at small scale." +family = "qwen" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = true +open_weights = false + +[cost] +input = 0.03 +output = 0.09 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen-2.5-vl-72b-instruct.toml b/providers/eurouter/models/qwen-2.5-vl-72b-instruct.toml new file mode 100644 index 0000000000..d6f776032b --- /dev/null +++ b/providers/eurouter/models/qwen-2.5-vl-72b-instruct.toml @@ -0,0 +1,25 @@ +name = "Qwen 2.5 VL 72B Instruct" +description = "Qwen 2.5 VL 72B Instruct is Alibaba's vision-language model for image understanding, OCR, document analysis, and multimodal instruction following." +family = "qwen" +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.25 +output = 0.75 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-235b-a22b-instruct.toml b/providers/eurouter/models/qwen3-235b-a22b-instruct.toml new file mode 100644 index 0000000000..6bcef77c52 --- /dev/null +++ b/providers/eurouter/models/qwen3-235b-a22b-instruct.toml @@ -0,0 +1,24 @@ +name = "Qwen3 235B A22B Instruct" +description = "Qwen3 235B A22B Instruct is Alibaba's Mixture-of-Experts model for multilingual chat, reasoning, coding, and tool use." +release_date = "2025-12-08" +last_updated = "2025-12-08" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.072 +output = 0.464 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_000 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-235b-a22b-thinking.toml b/providers/eurouter/models/qwen3-235b-a22b-thinking.toml new file mode 100644 index 0000000000..acb7e40eb5 --- /dev/null +++ b/providers/eurouter/models/qwen3-235b-a22b-thinking.toml @@ -0,0 +1,24 @@ +name = "Qwen3 235B A22B Thinking" +description = "High-depth thinking mode model optimized for extended reasoning, planning, and multi-step tasks." +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.2 +output = 0.8 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-30b-a3b-instruct.toml b/providers/eurouter/models/qwen3-30b-a3b-instruct.toml new file mode 100644 index 0000000000..96d0c3fdd0 --- /dev/null +++ b/providers/eurouter/models/qwen3-30b-a3b-instruct.toml @@ -0,0 +1,24 @@ +name = "Qwen3 30B A3B Instruct" +description = "Qwen3 30B A3B Instruct is an Alibaba/Qwen compact MoE instruction model for chat, code, tool use, and context-augmented generation." +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.1 +output = 0.3 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-30b-a3b-thinking.toml b/providers/eurouter/models/qwen3-30b-a3b-thinking.toml new file mode 100644 index 0000000000..8268bf8c8d --- /dev/null +++ b/providers/eurouter/models/qwen3-30b-a3b-thinking.toml @@ -0,0 +1,24 @@ +name = "Qwen3 30B A3B Thinking" +description = "Mid-size Qwen thinking model delivering long reasoning chains at efficient cost." +release_date = "2026-01-11" +last_updated = "2026-01-11" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.1 +output = 0.3 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-32b.toml b/providers/eurouter/models/qwen3-32b.toml new file mode 100644 index 0000000000..a36ffce18c --- /dev/null +++ b/providers/eurouter/models/qwen3-32b.toml @@ -0,0 +1,15 @@ +base_model = "alibaba/qwen3-32b" +description = "Qwen3 32B is Alibaba's dense multilingual model with tool calling and optional reasoning mode for math, code, and general instruction-following tasks." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.08 +output = 0.23 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_768 +output = 32_768 diff --git a/providers/eurouter/models/qwen3-coder-30b-a3b.toml b/providers/eurouter/models/qwen3-coder-30b-a3b.toml new file mode 100644 index 0000000000..548d0b4a1c --- /dev/null +++ b/providers/eurouter/models/qwen3-coder-30b-a3b.toml @@ -0,0 +1,24 @@ +name = "Qwen3 Coder 30B A3B" +description = "Qwen3 Coder 30B A3B is Alibaba's Mixture-of-Experts coding model for software engineering and agentic code tasks." +release_date = "2025-12-08" +last_updated = "2025-12-08" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.06 +output = 0.22 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-coder-480b-a35b-instruct.toml b/providers/eurouter/models/qwen3-coder-480b-a35b-instruct.toml new file mode 100644 index 0000000000..84d894b4bf --- /dev/null +++ b/providers/eurouter/models/qwen3-coder-480b-a35b-instruct.toml @@ -0,0 +1,12 @@ +base_model = "alibaba/qwen3-coder-480b-a35b-instruct" +description = "Massive code-specialist model optimized for repo-scale coding, long-context understanding, and precise tool calls." +structured_output = true + +[cost] +input = 0.4 +output = 1.8 +cache_read = 0 +cache_write = 0 + +[limit] +output = 262_144 diff --git a/providers/eurouter/models/qwen3-coder-next-80b.toml b/providers/eurouter/models/qwen3-coder-next-80b.toml new file mode 100644 index 0000000000..dd93297cd9 --- /dev/null +++ b/providers/eurouter/models/qwen3-coder-next-80b.toml @@ -0,0 +1,26 @@ +name = "Qwen3 Coder Next 80B" +description = "Qwen3-Coder-Next is Alibaba's open-weight 80B total, 3B active MoE coding model for coding agents, long-horizon tool use, and local development workflows." +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = true +reasoning_options = [] + +[cost] +input = 0.17 +output = 0.89 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 65_536 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-coder-next.toml b/providers/eurouter/models/qwen3-coder-next.toml new file mode 100644 index 0000000000..daaec90d07 --- /dev/null +++ b/providers/eurouter/models/qwen3-coder-next.toml @@ -0,0 +1,24 @@ +name = "Qwen3 Coder Next" +description = "Qwen3 Coder Next is Alibaba's Qwen3 coding model for software engineering and agentic code tasks." +release_date = "2026-06-25" +last_updated = "2026-06-25" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.5 +output = 2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 256_000 +output = 256_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-embedding-8b.toml b/providers/eurouter/models/qwen3-embedding-8b.toml new file mode 100644 index 0000000000..d993635edf --- /dev/null +++ b/providers/eurouter/models/qwen3-embedding-8b.toml @@ -0,0 +1,18 @@ +name = "Qwen3 Embedding 8B" +description = "Qwen3 Embedding 8B is Alibaba's embedding model for multilingual semantic search, retrieval, and representation learning." +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[limit] +context = 40_960 +output = 40_960 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-next-80b-a3b-thinking.toml b/providers/eurouter/models/qwen3-next-80b-a3b-thinking.toml new file mode 100644 index 0000000000..a3855f3396 --- /dev/null +++ b/providers/eurouter/models/qwen3-next-80b-a3b-thinking.toml @@ -0,0 +1,15 @@ +base_model = "alibaba/qwen3-next-80b-a3b-thinking" +description = "Qwen3 Next 80B A3B Thinking is an Alibaba/Qwen thinking model for reasoning, code, context-augmented generation, and tool use." +structured_output = true +reasoning_options = [] + +[cost] +input = 0.15 +output = 1.2 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 diff --git a/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml b/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml new file mode 100644 index 0000000000..49edf36aa1 --- /dev/null +++ b/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml @@ -0,0 +1,24 @@ +name = "Qwen3 VL 235B A22B Instruct" +description = "Qwen3 VL 235B A22B Instruct is Alibaba's vision-language Mixture-of-Experts model for multimodal understanding and chat." +release_date = "2026-03-30" +last_updated = "2026-03-30" +attachment = true +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.21 +output = 1.9 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_000 +output = 131_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml b/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml new file mode 100644 index 0000000000..3acde9fa01 --- /dev/null +++ b/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml @@ -0,0 +1,24 @@ +name = "Qwen3 VL 235B A22B Thinking" +description = "Qwen3 VL 235B A22B Thinking is Alibaba's reasoning vision-language Mixture-of-Experts model for complex multimodal analysis." +release_date = "2026-07-06" +last_updated = "2026-07-06" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 1.08 +output = 5.38 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3.5-122b-a10b.toml b/providers/eurouter/models/qwen3.5-122b-a10b.toml new file mode 100644 index 0000000000..991ad12893 --- /dev/null +++ b/providers/eurouter/models/qwen3.5-122b-a10b.toml @@ -0,0 +1,16 @@ +base_model = "alibaba/qwen3.5-122b-a10b" +description = "Qwen3.5 122B A10B is Alibaba's natively multimodal Mixture-of-Experts model for reasoning, coding, multilingual chat, vision-language understanding, and tool use." +reasoning_options = [] + +[cost] +input = 0.5 +output = 3.5 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +output = 262_144 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/qwen3.5-397b-a17b.toml b/providers/eurouter/models/qwen3.5-397b-a17b.toml new file mode 100644 index 0000000000..9e084c6b99 --- /dev/null +++ b/providers/eurouter/models/qwen3.5-397b-a17b.toml @@ -0,0 +1,17 @@ +base_model = "alibaba/qwen3.5-397b-a17b" +description = "Qwen3.5 397B A17B is an Alibaba/Qwen MoE model for long-context reasoning, coding, agentic tasks, tool use, and multimodal understanding." +reasoning_options = [] + +[cost] +input = 0.6 +output = 3.6 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 250_000 +output = 16_000 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/qwen3.5-9b.toml b/providers/eurouter/models/qwen3.5-9b.toml new file mode 100644 index 0000000000..d37e1acd34 --- /dev/null +++ b/providers/eurouter/models/qwen3.5-9b.toml @@ -0,0 +1,14 @@ +base_model = "alibaba/qwen3.5-9b" +description = "Qwen3.5 9B is Alibaba's compact Qwen3.5 model for efficient long-context chat, reasoning, and tool use." +reasoning_options = [] + +[cost] +input = 0.07 +output = 0.35 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_000 +output = 262_000 diff --git a/providers/eurouter/models/qwen3.6-27b.toml b/providers/eurouter/models/qwen3.6-27b.toml new file mode 100644 index 0000000000..2c845d76c7 --- /dev/null +++ b/providers/eurouter/models/qwen3.6-27b.toml @@ -0,0 +1,17 @@ +base_model = "alibaba/qwen3.6-27b" +description = "Qwen3.6 27B is Alibaba's multimodal Qwen3.6 model for vision, chat, reasoning, and tool use." +reasoning_options = [] + +[cost] +input = 0.5 +output = 2.1 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_000 +output = 262_000 + +[modalities] +input = ["text", "image"] diff --git a/providers/eurouter/models/qwen3.6-35b.toml b/providers/eurouter/models/qwen3.6-35b.toml new file mode 100644 index 0000000000..2f627a0e47 --- /dev/null +++ b/providers/eurouter/models/qwen3.6-35b.toml @@ -0,0 +1,25 @@ +name = "Qwen3.6 35B" +description = "Qwen3.6 35B is Alibaba's Qwen3.6-series model for multilingual chat, reasoning, and tool use." +family = "qwen3.6" +release_date = "2026-06-25" +last_updated = "2026-06-25" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.15 +output = 0.5 +cache_read = 0 +cache_write = 0 + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/teuken-7b-instruct.toml b/providers/eurouter/models/teuken-7b-instruct.toml new file mode 100644 index 0000000000..e410a97e0f --- /dev/null +++ b/providers/eurouter/models/teuken-7b-instruct.toml @@ -0,0 +1,24 @@ +name = "Teuken-7B Instruct" +description = "Teuken 7B Instruct is an OpenGPT-X model optimized for German and European languages, offering an 8K context window for instruction-following tasks." +release_date = "2026-02-05" +last_updated = "2026-02-05" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = true +open_weights = true + +[cost] +input = 0.17 +output = 0.17 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/text-embedding-3-large.toml b/providers/eurouter/models/text-embedding-3-large.toml new file mode 100644 index 0000000000..d8cca091f7 --- /dev/null +++ b/providers/eurouter/models/text-embedding-3-large.toml @@ -0,0 +1,19 @@ +name = "Text Embedding 3 Large" +description = "text-embedding-3-large is OpenAI's most capable text embedding model with up to 3,072 output dimensions." +family = "text-embedding" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/text-embedding-3-small.toml b/providers/eurouter/models/text-embedding-3-small.toml new file mode 100644 index 0000000000..4aa2550da6 --- /dev/null +++ b/providers/eurouter/models/text-embedding-3-small.toml @@ -0,0 +1,19 @@ +name = "Text Embedding 3 Small" +description = "text-embedding-3-small is OpenAI's efficient text embedding model with 1,536 output dimensions." +family = "text-embedding" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/text-embedding-ada-002.toml b/providers/eurouter/models/text-embedding-ada-002.toml new file mode 100644 index 0000000000..4e7617fb64 --- /dev/null +++ b/providers/eurouter/models/text-embedding-ada-002.toml @@ -0,0 +1,19 @@ +name = "Text Embedding Ada 002" +description = "text-embedding-ada-002 is OpenAI's older general-purpose text embedding model with 1,536 output dimensions." +family = "text-embedding" +release_date = "2026-01-09" +last_updated = "2026-01-09" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/titan-embed-text-v1.toml b/providers/eurouter/models/titan-embed-text-v1.toml new file mode 100644 index 0000000000..0184a96221 --- /dev/null +++ b/providers/eurouter/models/titan-embed-text-v1.toml @@ -0,0 +1,25 @@ +name = "Amazon Titan Embeddings G1 - Text" +description = "Amazon Titan Embeddings G1 - Text is a text embedding model available through Amazon Bedrock." +family = "titan-embed" +release_date = "2026-04-29" +last_updated = "2026-04-29" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.2 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_000 +output = 8_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/titan-embed-text-v2.toml b/providers/eurouter/models/titan-embed-text-v2.toml new file mode 100644 index 0000000000..5fcd0fb451 --- /dev/null +++ b/providers/eurouter/models/titan-embed-text-v2.toml @@ -0,0 +1,19 @@ +name = "Amazon Titan Embeddings v2" +description = "Amazon Titan Embeddings v2 offers configurable embedding dimensions (256-1024) and improved multilingual support." +family = "titan-embed" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[limit] +context = 8_000 +output = 8_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/titan-multimodal-embed.toml b/providers/eurouter/models/titan-multimodal-embed.toml new file mode 100644 index 0000000000..ad7f5cc3ed --- /dev/null +++ b/providers/eurouter/models/titan-multimodal-embed.toml @@ -0,0 +1,19 @@ +name = "Amazon Titan Multimodal Embeddings" +description = "Amazon Titan Multimodal Embeddings generates embeddings for both text and images for cross-modal search." +family = "titan" +release_date = "2026-02-01" +last_updated = "2026-02-01" +attachment = true +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[limit] +context = 8_000 +output = 8_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/voxtral-mini.toml b/providers/eurouter/models/voxtral-mini.toml new file mode 100644 index 0000000000..357523753f --- /dev/null +++ b/providers/eurouter/models/voxtral-mini.toml @@ -0,0 +1,25 @@ +name = "Voxtral Mini" +description = "Low-latency speech recognition for edge and devices. Mini version of audio input model optimized for speed." +family = "voxtral" +release_date = "2026-01-20" +last_updated = "2026-01-20" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[cost] +input = 0.04 +output = 0.04 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["audio", "text"] +output = ["text"] diff --git a/providers/eurouter/models/voxtral-small-24b.toml b/providers/eurouter/models/voxtral-small-24b.toml new file mode 100644 index 0000000000..771295a4a4 --- /dev/null +++ b/providers/eurouter/models/voxtral-small-24b.toml @@ -0,0 +1,25 @@ +name = "Voxtral Small 24B" +description = "Voxtral Small 24B is Mistral AI's open audio-capable chat model for speech understanding and text generation." +family = "voxtral" +release_date = "2025-12-08" +last_updated = "2025-12-08" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.1 +output = 0.3 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["text", "audio"] +output = ["text"] diff --git a/providers/eurouter/provider.toml b/providers/eurouter/provider.toml new file mode 100644 index 0000000000..ea4bdeb7a4 --- /dev/null +++ b/providers/eurouter/provider.toml @@ -0,0 +1,5 @@ +name = "EUrouter" +env = ["EUROUTER_API_KEY"] +npm = "@ai-sdk/openai-compatible" +api = "https://api.eurouter.ai/api/v1" +doc = "https://www.eurouter.ai/docs/api/models" diff --git a/sync.md b/sync.md index 1f538b3640..fca2694a8e 100644 --- a/sync.md +++ b/sync.md @@ -139,6 +139,17 @@ Kilo Gateway is implemented in `packages/core/src/sync/providers/kilo.ts`. - Canonical Kilo model IDs should emit `base_model` references to model metadata when a matching `models/` entry exists. - `reasoning_options` is derived from `opencode.variants` when present. +## EUrouter Notes + +- EUrouter is implemented in `packages/core/src/sync/providers/eurouter.ts`. +- Source endpoint: `https://api.eurouter.ai/api/v1/models`. +- `EUROUTER_API_KEY` is optional. The catalog is public; authenticated requests expose the same catalog and support local accounts with scoped visibility if that changes later. +- Model IDs map directly to TOML paths under `providers/eurouter/models`. +- API prices are per-token strings and are converted to per-1M-token catalog prices. +- Canonical slugs and model authors are resolved against provider-agnostic metadata, including EUrouter-to-models.dev namespace aliases. +- Modalities and capabilities come from the catalog architecture, supported parameters, and reasoning metadata. Missing reasoning metadata is preserved or inherited rather than treated as an authoritative `false`. +- Existing descriptions, lifecycle dates, knowledge cutoffs, status, interleaving, input limits, pricing tiers, and base-model factoring are preserved when the API is not authoritative for them. + ## Cloudflare Workers AI Notes Cloudflare Workers AI is implemented in `packages/core/src/sync/providers/cloudflare-workers-ai.ts`. From 277939a617de07807fd86a9f42bc77d0d78fe29d Mon Sep 17 00:00:00 2001 From: David Lo Dico Date: Sun, 12 Jul 2026 18:57:31 +0200 Subject: [PATCH 2/4] fix: preserve authoritative EUrouter metadata --- packages/core/src/sync/providers/eurouter.ts | 63 ++++++++++-------- packages/core/test/sync.test.ts | 68 ++++++++++++++++++++ sync.md | 5 +- 3 files changed, 108 insertions(+), 28 deletions(-) diff --git a/packages/core/src/sync/providers/eurouter.ts b/packages/core/src/sync/providers/eurouter.ts index 04f40d8137..17cbced2ff 100644 --- a/packages/core/src/sync/providers/eurouter.ts +++ b/packages/core/src/sync/providers/eurouter.ts @@ -34,6 +34,7 @@ export const EUrouterModel = z.object({ internal_reasoning: z.string().optional(), input_cache_read: z.string().optional(), input_cache_write: z.string().optional(), + currency: z.string(), }).passthrough().nullable().optional(), top_provider: z.object({ context_length: z.number().nullable(), @@ -58,6 +59,16 @@ export const eurouter = { id: "eurouter", name: "EUrouter", modelsDir: "providers/eurouter/models", + sourceID(model) { + return model.id; + }, + skippedNotice(ids) { + if (ids.length === 0) return []; + const noun = ids.length === 1 ? "model was" : "models were"; + return [ + `${ids.length} EUrouter ${noun} not created because ${ids.length === 1 ? "it lacks" : "they lack"} an authoritative release date and canonical metadata: ${ids.join(", ")}`, + ]; + }, async fetchModels() { const headers = process.env.EUROUTER_API_KEY ? { Authorization: `Bearer ${process.env.EUROUTER_API_KEY}` } @@ -72,19 +83,18 @@ export const eurouter = { return EUrouterResponse.parse(raw).data; }, translateModel(model, context) { + const existing = context.existing(model.id); + const canonical = resolveModelBase(model, existing); + if (canonical === undefined && model.release_date == null && existing?.release_date === undefined) { + return undefined; + } return { id: model.id, - model: buildEUrouterModel(model, context.existing(model.id)), + model: buildEUrouterModel(model, existing), }; }, } satisfies SyncProvider; -function dateFromTimestamp(timestamp: number | null) { - return timestamp === null - ? undefined - : new Date(timestamp * 1000).toISOString().slice(0, 10); -} - function price(value: string | undefined) { if (value === undefined) return undefined; const number = Number(value); @@ -136,16 +146,13 @@ function reasoningOptions( } function reasoningCapability(model: EUrouterModel, params: Set) { - if (model.reasoning !== undefined) { - return model.reasoning.mandatory - || model.reasoning.supported_efforts.length > 0 - || model.reasoning.supports_max_tokens; - } - const hasReasoningParameter = params.has("reasoning") || params.has("include_reasoning") || params.has("reasoning_effort"); - return hasReasoningParameter ? true : undefined; + const hasReasoningControls = model.reasoning?.mandatory === true + || (model.reasoning?.supported_efforts.length ?? 0) > 0 + || model.reasoning?.supports_max_tokens === true; + return hasReasoningControls || hasReasoningParameter ? true : undefined; } export function resolveEUrouterBaseModel(canonicalSlug: string | null | undefined) { @@ -188,6 +195,13 @@ function baseModelReasoning(modelID: string | undefined) { return reasoning; } +function resolveModelBase(model: EUrouterModel, existing: ExistingModel | undefined) { + const routeCanonical = model.author === undefined ? undefined : `${model.author}/${model.id}`; + return existing?.base_model + ?? resolveEUrouterBaseModel(model.canonical_slug) + ?? resolveEUrouterBaseModel(routeCanonical); +} + export function buildEUrouterModel( model: EUrouterModel, existing: ExistingModel | undefined, @@ -206,11 +220,6 @@ export function buildEUrouterModel( : apiReasoningOptions ?? existing?.reasoning_options ?? (reasoning === true ? [] : undefined); const context = model.context_length ?? model.top_provider.context_length ?? existing?.limit?.context ?? 0; const family = inferFamily(model, name); - const releaseDate = model.release_date ?? existing?.release_date ?? dateFromTimestamp(model.created); - if (releaseDate === undefined) { - throw new Error(`EUrouter model has no release date: ${model.id}`); - } - const lastUpdated = model.last_updated ?? existing?.last_updated ?? releaseDate; const familyValue = existing?.family === "o" && family !== "o" ? family : (existing?.family ?? family); @@ -219,12 +228,14 @@ export function buildEUrouterModel( const structuredOutput = params.has("response_format") || params.has("structured_outputs"); const knowledge = model.knowledge_cutoff?.slice(0, 10) ?? existing?.knowledge; const openWeights = Boolean(model.hugging_face_id); - const routeCanonical = model.author === undefined ? undefined : `${model.author}/${model.id}`; - const canonical = existing?.base_model - ?? resolveEUrouterBaseModel(model.canonical_slug) - ?? resolveEUrouterBaseModel(routeCanonical); + const canonical = resolveModelBase(model, existing); + const releaseDate = model.release_date ?? existing?.release_date; + if (canonical === undefined && releaseDate === undefined) { + throw new Error(`EUrouter model has no authoritative release date: ${model.id}`); + } + const lastUpdated = model.last_updated ?? existing?.last_updated ?? releaseDate; const effectiveReasoning = reasoning ?? existing?.reasoning ?? baseModelReasoning(canonical); - const cost = prompt !== undefined && completion !== undefined + const cost = model.pricing?.currency === "USD" && prompt !== undefined && completion !== undefined ? { input: prompt, output: completion, @@ -282,8 +293,8 @@ export function buildEUrouterModel( name, description, family: familyValue, - release_date: releaseDate, - last_updated: lastUpdated, + release_date: releaseDate!, + last_updated: lastUpdated!, attachment, reasoning: effectiveReasoning ?? false, ...fullReasoningOptions, diff --git a/packages/core/test/sync.test.ts b/packages/core/test/sync.test.ts index 36c50d40d4..fc401c9982 100644 --- a/packages/core/test/sync.test.ts +++ b/packages/core/test/sync.test.ts @@ -968,6 +968,65 @@ test("inherits canonical reasoning when EUrouter does not advertise reasoning me expect("reasoning" in model).toBe(false); }); +test("inherits canonical reasoning when EUrouter reports no verified controls", () => { + const model = buildEUrouterModel(eurouterModel({ + reasoning: { + mandatory: false, + supported_efforts: [], + supports_max_tokens: false, + }, + supported_parameters: ["tools", "response_format"], + }), undefined); + + expect(model).toMatchObject({ + base_model: "anthropic/claude-sonnet-5", + cost: { reasoning: 3 }, + }); + expect("reasoning" in model).toBe(false); +}); + +test("omits non-USD EUrouter pricing instead of mislabeling it as USD", () => { + const model = buildEUrouterModel(eurouterModel({ + pricing: { + prompt: "0.000002", + completion: "0.00001", + currency: "EUR", + }, + }), undefined); + + expect("cost" in model).toBe(false); +}); + +test("skips new standalone EUrouter models without an authoritative release date", () => { + const translated = eurouter.translateModel(eurouterModel({ + id: "example-model", + canonical_slug: null, + author: undefined, + release_date: null, + last_updated: null, + }), { + existing: () => undefined, + authored: () => undefined, + }); + + expect(translated).toBeUndefined(); +}); + +test("reports EUrouter models skipped for incomplete metadata", () => { + expect(eurouter.skippedNotice?.(["example-model"])).toEqual([ + "1 EUrouter model was not created because it lacks an authoritative release date and canonical metadata: example-model", + ]); +}); + +test("allows factored EUrouter models to inherit a missing release date", () => { + const model = buildEUrouterModel(eurouterModel({ + release_date: null, + last_updated: null, + }), undefined); + + expect(model).toMatchObject({ base_model: "anthropic/claude-sonnet-5" }); +}); + test("omits reasoning options when EUrouter explicitly reports no reasoning", () => { const model = buildEUrouterModel(eurouterModel({ id: "example-model", @@ -992,6 +1051,12 @@ test("preserves authored EUrouter metadata when the API is not authoritative", ( knowledge_cutoff: null, release_date: null, last_updated: null, + reasoning: { + mandatory: false, + supported_efforts: [], + supports_max_tokens: false, + }, + supported_parameters: ["tools", "response_format"], }), { name: "Curated name", description: "Curated description", @@ -1022,6 +1087,8 @@ test("preserves authored EUrouter metadata when the API is not authoritative", ( knowledge: "2024-06", status: "beta", interleaved: true, + reasoning: true, + reasoning_options: [{ type: "toggle" }], limit: { input: 900_000 }, cost: { tiers: [{ tier: { type: "context", size: 200_000 }, input: 2, output: 4 }] }, }); @@ -1480,6 +1547,7 @@ function eurouterModel(overrides: Partial = {}): EUrouterModel { internal_reasoning: "0.000003", input_cache_read: "0.0000002", input_cache_write: "0.0000025", + currency: "USD", }, top_provider: { context_length: 1_000_000, diff --git a/sync.md b/sync.md index fca2694a8e..402f408f22 100644 --- a/sync.md +++ b/sync.md @@ -145,9 +145,10 @@ Kilo Gateway is implemented in `packages/core/src/sync/providers/kilo.ts`. - Source endpoint: `https://api.eurouter.ai/api/v1/models`. - `EUROUTER_API_KEY` is optional. The catalog is public; authenticated requests expose the same catalog and support local accounts with scoped visibility if that changes later. - Model IDs map directly to TOML paths under `providers/eurouter/models`. -- API prices are per-token strings and are converted to per-1M-token catalog prices. +- USD API prices are per-token strings and are converted to per-1M-token catalog prices. Non-USD prices are omitted because models.dev cost fields are USD-only; existing curated USD costs are preserved. - Canonical slugs and model authors are resolved against provider-agnostic metadata, including EUrouter-to-models.dev namespace aliases. -- Modalities and capabilities come from the catalog architecture, supported parameters, and reasoning metadata. Missing reasoning metadata is preserved or inherited rather than treated as an authoritative `false`. +- Modalities and capabilities come from the catalog architecture, supported parameters, and reasoning metadata. An empty reasoning-control object is treated as unknown, so canonical or authored reasoning truth is inherited rather than overwritten with `false`. +- New standalone models without an API-provided release date are reported but not created. The API's `created` timestamp is a catalog insertion time, not a model release date. - Existing descriptions, lifecycle dates, knowledge cutoffs, status, interleaving, input limits, pricing tiers, and base-model factoring are preserved when the API is not authoritative for them. ## Cloudflare Workers AI Notes From f783364137d7ac9ca6589541a6f66af992326491 Mon Sep 17 00:00:00 2001 From: David Lo Dico Date: Sun, 12 Jul 2026 19:00:43 +0200 Subject: [PATCH 3/4] fix: regenerate verified EUrouter catalog --- packages/core/src/sync/providers/eurouter.ts | 22 +++++++++------- .../eurouter/models/all-minilm-l6-v2.toml | 24 ----------------- providers/eurouter/models/apertus-70b.toml | 24 ----------------- providers/eurouter/models/bge-en-icl.toml | 19 -------------- .../eurouter/models/bge-large-en-v1.5.toml | 4 +-- providers/eurouter/models/bge-m3.toml | 10 ++----- .../models/bge-multilingual-gemma2.toml | 4 +-- providers/eurouter/models/claude-3-haiku.toml | 25 ------------------ .../eurouter/models/claude-3-sonnet.toml | 25 ------------------ .../eurouter/models/claude-3.5-sonnet.toml | 25 ------------------ .../eurouter/models/claude-3.7-sonnet.toml | 25 ------------------ .../eurouter/models/claude-opus-4-6.toml | 8 +++++- .../eurouter/models/claude-opus-4-7.toml | 5 +++- .../eurouter/models/claude-opus-4-8.toml | 14 ---------- .../eurouter/models/claude-sonnet-4-6.toml | 8 +++++- .../eurouter/models/claude-sonnet-5.toml | 5 +++- .../models/code-llama-13b-instruct.toml | 4 +-- .../eurouter/models/codestral-embed.toml | 4 +-- providers/eurouter/models/codestral.toml | 4 +-- .../models/cohere-embed-english-v3.toml | 25 ------------------ .../models/cohere-embed-multilingual-v3.toml | 25 ------------------ .../eurouter/models/cohere-embed-v4.toml | 4 +-- .../models/cosmos3-super-reasoner.toml | 26 ------------------- .../eurouter/models/deepseek-chat-v3.1.toml | 25 ------------------ .../models/deepseek-r1-distill-llama-70b.toml | 25 ------------------ providers/eurouter/models/deepseek-v3.1.toml | 25 ------------------ providers/eurouter/models/deepseek-v3.2.toml | 4 +-- providers/eurouter/models/deepseek-v3.toml | 25 ------------------ .../eurouter/models/deepseek-v4-flash.toml | 5 +++- .../eurouter/models/deepseek-v4-pro.toml | 5 +++- .../models/devstral-2-123b-instruct-2512.toml | 10 ++----- providers/eurouter/models/devstral-2.toml | 4 +-- .../eurouter/models/devstral-small-2.toml | 4 +-- providers/eurouter/models/devstral-small.toml | 25 ------------------ .../models/e5-mistral-7b-instruct.toml | 19 -------------- providers/eurouter/models/gemma-2-2b-it.toml | 4 +-- providers/eurouter/models/gemma-2-9b-it.toml | 25 ------------------ providers/eurouter/models/gemma-3-27b-it.toml | 4 +-- providers/eurouter/models/gemma-4.toml | 25 ------------------ providers/eurouter/models/glm-4.5-air.toml | 15 ----------- providers/eurouter/models/glm-4.5.toml | 15 ----------- providers/eurouter/models/glm-4.6.toml | 15 ----------- providers/eurouter/models/glm-4.7-fp8.toml | 25 ------------------ providers/eurouter/models/glm-5.2.toml | 5 +++- providers/eurouter/models/gpt-4.1-mini.toml | 9 +++---- providers/eurouter/models/gpt-4.1.toml | 9 +++---- providers/eurouter/models/gpt-4o-mini.toml | 6 ++--- providers/eurouter/models/gpt-4o.toml | 6 ++--- providers/eurouter/models/gpt-5-mini.toml | 5 +++- providers/eurouter/models/gpt-5-nano.toml | 5 +++- providers/eurouter/models/gpt-5.1.toml | 10 ------- providers/eurouter/models/gpt-5.2.toml | 10 ------- providers/eurouter/models/gpt-5.4.toml | 5 +++- providers/eurouter/models/gpt-5.5.toml | 13 ---------- providers/eurouter/models/gpt-5.toml | 10 ------- providers/eurouter/models/gpt-oss-20b.toml | 9 +------ .../eurouter/models/green-embedding.toml | 24 ----------------- providers/eurouter/models/green-l-raw.toml | 24 ----------------- providers/eurouter/models/green-l.toml | 24 ----------------- providers/eurouter/models/green-r-raw.toml | 24 ----------------- providers/eurouter/models/green-r.toml | 24 ----------------- providers/eurouter/models/hermes-4-405b.toml | 25 ------------------ providers/eurouter/models/hermes-4-70b.toml | 25 ------------------ providers/eurouter/models/holo2-30b-a3b.toml | 10 ++----- .../eurouter/models/inf-retriever-v1.toml | 24 ----------------- providers/eurouter/models/intellect-3.toml | 25 ------------------ .../eurouter/models/kimi-k2-instruct.toml | 25 ------------------ providers/eurouter/models/kimi-k2.5.toml | 2 +- .../models/llama-3.1-405b-instruct.toml | 4 +-- .../models/llama-3.1-8b-instruct.toml | 4 +-- .../models/llama-3.2-1b-instruct.toml | 25 ------------------ .../models/llama-3.2-3b-instruct.toml | 25 ------------------ .../models/llama-3.3-70b-instruct.toml | 8 +++--- .../eurouter/models/llama-4-maverick.toml | 25 ------------------ .../eurouter/models/llama-guard-3-8b.toml | 25 ------------------ .../eurouter/models/magistral-medium.toml | 4 +-- .../eurouter/models/magistral-small.toml | 4 +-- providers/eurouter/models/minimax-m2.1.toml | 11 ++++---- providers/eurouter/models/minimax-m2.5.toml | 7 ----- providers/eurouter/models/minimax-m2.7.toml | 7 ----- providers/eurouter/models/minimax-m2.toml | 14 ---------- .../eurouter/models/ministral-3-14b.toml | 4 +-- providers/eurouter/models/ministral-3-3b.toml | 4 +-- providers/eurouter/models/ministral-3-8b.toml | 4 +-- .../models/mistral-7b-instruct-v0.3.toml | 10 ++----- .../eurouter/models/mistral-7b-instruct.toml | 4 +-- providers/eurouter/models/mistral-embed.toml | 4 +-- .../eurouter/models/mistral-large-2.toml | 25 ------------------ .../eurouter/models/mistral-large-2402.toml | 4 +-- .../eurouter/models/mistral-large-3.toml | 4 +-- .../eurouter/models/mistral-medium-3.1.toml | 4 +-- .../eurouter/models/mistral-nemo-12b.toml | 10 ++----- .../eurouter/models/mistral-small-24b.toml | 4 +-- .../models/mistral-small-3.1-24b.toml | 25 ------------------ .../models/mistral-small-3.2-24b.toml | 10 ++----- .../eurouter/models/mistral-small-4.toml | 4 +-- .../models/mixtral-8x22b-instruct.toml | 25 ------------------ .../models/mixtral-8x7b-instruct.toml | 25 ------------------ .../multilingual-e5-large-instruct.toml | 24 ----------------- .../eurouter/models/nemotron-3-nano-omni.toml | 4 +-- .../eurouter/models/nemotron-nano-v2-12b.toml | 25 ------------------ providers/eurouter/models/nova-2-lite.toml | 4 +-- providers/eurouter/models/nova-lite.toml | 25 ------------------ providers/eurouter/models/nova-micro.toml | 25 ------------------ providers/eurouter/models/nova-pro.toml | 25 ------------------ providers/eurouter/models/o1.toml | 13 ---------- providers/eurouter/models/o3-mini.toml | 5 +++- providers/eurouter/models/o3.toml | 13 ---------- providers/eurouter/models/o4-mini.toml | 11 +++++--- ...paraphrase-multilingual-mpnet-base-v2.toml | 4 +-- providers/eurouter/models/pixtral-12b.toml | 8 ++---- .../eurouter/models/pixtral-large-2502.toml | 4 +-- providers/eurouter/models/pixtral-large.toml | 25 ------------------ .../models/qwen-2.5-72b-instruct.toml | 25 ------------------ .../models/qwen-2.5-coder-32b-instruct.toml | 25 ------------------ .../eurouter/models/qwen-2.5-coder-7b.toml | 25 ------------------ .../models/qwen-2.5-vl-72b-instruct.toml | 4 +-- .../models/qwen3-235b-a22b-instruct.toml | 4 +-- .../models/qwen3-235b-a22b-thinking.toml | 24 ----------------- .../models/qwen3-30b-a3b-instruct.toml | 4 +-- .../models/qwen3-30b-a3b-thinking.toml | 24 ----------------- providers/eurouter/models/qwen3-32b.toml | 9 ++----- .../eurouter/models/qwen3-coder-30b-a3b.toml | 10 ++----- .../qwen3-coder-480b-a35b-instruct.toml | 5 ++-- .../eurouter/models/qwen3-coder-next-80b.toml | 4 +-- .../eurouter/models/qwen3-coder-next.toml | 24 ----------------- .../eurouter/models/qwen3-embedding-8b.toml | 4 +-- .../models/qwen3-next-80b-a3b-thinking.toml | 4 ++- .../models/qwen3-vl-235b-a22b-instruct.toml | 24 ----------------- .../models/qwen3-vl-235b-a22b-thinking.toml | 24 ----------------- .../eurouter/models/qwen3.5-122b-a10b.toml | 4 ++- .../eurouter/models/qwen3.5-397b-a17b.toml | 7 ----- providers/eurouter/models/qwen3.5-9b.toml | 7 ----- providers/eurouter/models/qwen3.6-27b.toml | 7 ----- providers/eurouter/models/qwen3.6-35b.toml | 25 ------------------ .../eurouter/models/teuken-7b-instruct.toml | 24 ----------------- .../models/text-embedding-3-large.toml | 4 +-- .../models/text-embedding-3-small.toml | 4 +-- .../models/text-embedding-ada-002.toml | 4 +-- .../eurouter/models/titan-embed-text-v1.toml | 25 ------------------ .../eurouter/models/titan-embed-text-v2.toml | 19 -------------- .../models/titan-multimodal-embed.toml | 19 -------------- providers/eurouter/models/voxtral-mini.toml | 25 ------------------ .../eurouter/models/voxtral-small-24b.toml | 4 +-- 144 files changed, 196 insertions(+), 1774 deletions(-) delete mode 100644 providers/eurouter/models/all-minilm-l6-v2.toml delete mode 100644 providers/eurouter/models/apertus-70b.toml delete mode 100644 providers/eurouter/models/bge-en-icl.toml delete mode 100644 providers/eurouter/models/claude-3-haiku.toml delete mode 100644 providers/eurouter/models/claude-3-sonnet.toml delete mode 100644 providers/eurouter/models/claude-3.5-sonnet.toml delete mode 100644 providers/eurouter/models/claude-3.7-sonnet.toml delete mode 100644 providers/eurouter/models/claude-opus-4-8.toml delete mode 100644 providers/eurouter/models/cohere-embed-english-v3.toml delete mode 100644 providers/eurouter/models/cohere-embed-multilingual-v3.toml delete mode 100644 providers/eurouter/models/cosmos3-super-reasoner.toml delete mode 100644 providers/eurouter/models/deepseek-chat-v3.1.toml delete mode 100644 providers/eurouter/models/deepseek-r1-distill-llama-70b.toml delete mode 100644 providers/eurouter/models/deepseek-v3.1.toml delete mode 100644 providers/eurouter/models/deepseek-v3.toml delete mode 100644 providers/eurouter/models/devstral-small.toml delete mode 100644 providers/eurouter/models/e5-mistral-7b-instruct.toml delete mode 100644 providers/eurouter/models/gemma-2-9b-it.toml delete mode 100644 providers/eurouter/models/gemma-4.toml delete mode 100644 providers/eurouter/models/glm-4.5-air.toml delete mode 100644 providers/eurouter/models/glm-4.5.toml delete mode 100644 providers/eurouter/models/glm-4.6.toml delete mode 100644 providers/eurouter/models/glm-4.7-fp8.toml delete mode 100644 providers/eurouter/models/gpt-5.1.toml delete mode 100644 providers/eurouter/models/gpt-5.2.toml delete mode 100644 providers/eurouter/models/gpt-5.5.toml delete mode 100644 providers/eurouter/models/gpt-5.toml delete mode 100644 providers/eurouter/models/green-embedding.toml delete mode 100644 providers/eurouter/models/green-l-raw.toml delete mode 100644 providers/eurouter/models/green-l.toml delete mode 100644 providers/eurouter/models/green-r-raw.toml delete mode 100644 providers/eurouter/models/green-r.toml delete mode 100644 providers/eurouter/models/hermes-4-405b.toml delete mode 100644 providers/eurouter/models/hermes-4-70b.toml delete mode 100644 providers/eurouter/models/inf-retriever-v1.toml delete mode 100644 providers/eurouter/models/intellect-3.toml delete mode 100644 providers/eurouter/models/kimi-k2-instruct.toml delete mode 100644 providers/eurouter/models/llama-3.2-1b-instruct.toml delete mode 100644 providers/eurouter/models/llama-3.2-3b-instruct.toml delete mode 100644 providers/eurouter/models/llama-4-maverick.toml delete mode 100644 providers/eurouter/models/llama-guard-3-8b.toml delete mode 100644 providers/eurouter/models/minimax-m2.toml delete mode 100644 providers/eurouter/models/mistral-large-2.toml delete mode 100644 providers/eurouter/models/mistral-small-3.1-24b.toml delete mode 100644 providers/eurouter/models/mixtral-8x22b-instruct.toml delete mode 100644 providers/eurouter/models/mixtral-8x7b-instruct.toml delete mode 100644 providers/eurouter/models/multilingual-e5-large-instruct.toml delete mode 100644 providers/eurouter/models/nemotron-nano-v2-12b.toml delete mode 100644 providers/eurouter/models/nova-lite.toml delete mode 100644 providers/eurouter/models/nova-micro.toml delete mode 100644 providers/eurouter/models/nova-pro.toml delete mode 100644 providers/eurouter/models/o1.toml delete mode 100644 providers/eurouter/models/o3.toml delete mode 100644 providers/eurouter/models/pixtral-large.toml delete mode 100644 providers/eurouter/models/qwen-2.5-72b-instruct.toml delete mode 100644 providers/eurouter/models/qwen-2.5-coder-32b-instruct.toml delete mode 100644 providers/eurouter/models/qwen-2.5-coder-7b.toml delete mode 100644 providers/eurouter/models/qwen3-235b-a22b-thinking.toml delete mode 100644 providers/eurouter/models/qwen3-30b-a3b-thinking.toml delete mode 100644 providers/eurouter/models/qwen3-coder-next.toml delete mode 100644 providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml delete mode 100644 providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml delete mode 100644 providers/eurouter/models/qwen3.6-35b.toml delete mode 100644 providers/eurouter/models/teuken-7b-instruct.toml delete mode 100644 providers/eurouter/models/titan-embed-text-v1.toml delete mode 100644 providers/eurouter/models/titan-embed-text-v2.toml delete mode 100644 providers/eurouter/models/titan-multimodal-embed.toml delete mode 100644 providers/eurouter/models/voxtral-mini.toml diff --git a/packages/core/src/sync/providers/eurouter.ts b/packages/core/src/sync/providers/eurouter.ts index 17cbced2ff..67948799cc 100644 --- a/packages/core/src/sync/providers/eurouter.ts +++ b/packages/core/src/sync/providers/eurouter.ts @@ -64,10 +64,12 @@ export const eurouter = { }, skippedNotice(ids) { if (ids.length === 0) return []; - const noun = ids.length === 1 ? "model was" : "models were"; - return [ - `${ids.length} EUrouter ${noun} not created because ${ids.length === 1 ? "it lacks" : "they lack"} an authoritative release date and canonical metadata: ${ids.join(", ")}`, - ]; + if (ids.length === 1) { + return [ + `1 EUrouter model was not created because it lacks an authoritative release date and canonical metadata: ${ids[0]}`, + ]; + } + return [`${ids.length} EUrouter models were not created because they lack an authoritative release date and canonical metadata: ${ids.join(", ")}`]; }, async fetchModels() { const headers = process.env.EUROUTER_API_KEY @@ -230,10 +232,6 @@ export function buildEUrouterModel( const openWeights = Boolean(model.hugging_face_id); const canonical = resolveModelBase(model, existing); const releaseDate = model.release_date ?? existing?.release_date; - if (canonical === undefined && releaseDate === undefined) { - throw new Error(`EUrouter model has no authoritative release date: ${model.id}`); - } - const lastUpdated = model.last_updated ?? existing?.last_updated ?? releaseDate; const effectiveReasoning = reasoning ?? existing?.reasoning ?? baseModelReasoning(canonical); const cost = model.pricing?.currency === "USD" && prompt !== undefined && completion !== undefined ? { @@ -288,13 +286,17 @@ export function buildEUrouterModel( ); } + if (releaseDate === undefined) { + throw new Error(`EUrouter model has no authoritative release date: ${model.id}`); + } + const lastUpdated = model.last_updated ?? existing?.last_updated ?? releaseDate; const fullReasoningOptions = reasoning_options === undefined ? {} : { reasoning_options }; return { name, description, family: familyValue, - release_date: releaseDate!, - last_updated: lastUpdated!, + release_date: releaseDate, + last_updated: lastUpdated, attachment, reasoning: effectiveReasoning ?? false, ...fullReasoningOptions, diff --git a/providers/eurouter/models/all-minilm-l6-v2.toml b/providers/eurouter/models/all-minilm-l6-v2.toml deleted file mode 100644 index 9a0b941a8c..0000000000 --- a/providers/eurouter/models/all-minilm-l6-v2.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "All MiniLM L6 v2" -description = "all-MiniLM-L6-v2 is a compact sentence-transformers embedding model for fast English sentence and paragraph retrieval." -release_date = "2026-07-06" -last_updated = "2026-07-06" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.09 -output = 0.45 -cache_read = 0 -cache_write = 0 - -[limit] -context = 256 -output = 256 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/apertus-70b.toml b/providers/eurouter/models/apertus-70b.toml deleted file mode 100644 index d0675a15da..0000000000 --- a/providers/eurouter/models/apertus-70b.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Apertus 70B Instruct" -description = "Apertus 70B is a fully open multilingual model from the Swiss AI Initiative (ETH Zurich, EPFL, CSCS)." -release_date = "2026-06-25" -last_updated = "2026-06-25" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.4 -output = 2.1 -cache_read = 0 -cache_write = 0 - -[limit] -context = 65_536 -output = 65_536 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/bge-en-icl.toml b/providers/eurouter/models/bge-en-icl.toml deleted file mode 100644 index db720849d1..0000000000 --- a/providers/eurouter/models/bge-en-icl.toml +++ /dev/null @@ -1,19 +0,0 @@ -name = "BGE-EN-ICL" -description = "Embedding model from BAAI designed for powerful in-context learning retrieval across domains. Produces 4096-dimensional embeddings optimized for semantic search with few-shot learning capabilities." -family = "bge" -release_date = "2026-01-09" -last_updated = "2026-01-09" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = true - -[limit] -context = 33_000 -output = 33_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/bge-large-en-v1.5.toml b/providers/eurouter/models/bge-large-en-v1.5.toml index bc8c20d83d..7d69e63359 100644 --- a/providers/eurouter/models/bge-large-en-v1.5.toml +++ b/providers/eurouter/models/bge-large-en-v1.5.toml @@ -1,8 +1,8 @@ name = "BGE Large EN v1.5" description = "BGE Large EN v1.5 is an English embedding model with 1024-dimensional vectors, optimized for semantic search and retrieval with long-context inputs." family = "bge" -release_date = "2026-02-05" -last_updated = "2026-02-05" +release_date = "2024-01-28" +last_updated = "2024-01-28" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/bge-m3.toml b/providers/eurouter/models/bge-m3.toml index 092efcbaf2..333d6d0468 100644 --- a/providers/eurouter/models/bge-m3.toml +++ b/providers/eurouter/models/bge-m3.toml @@ -1,8 +1,8 @@ name = "BGE M3" description = "BGE M3 is BAAI's multilingual embedding model for dense, sparse, and multi-vector retrieval with long-context inputs." family = "bge" -release_date = "2026-01-23" -last_updated = "2026-01-23" +release_date = "2024-01-27" +last_updated = "2024-01-27" attachment = false reasoning = false temperature = false @@ -10,12 +10,6 @@ tool_call = false structured_output = false open_weights = true -[cost] -input = 0.01 -output = 0 -cache_read = 0 -cache_write = 0 - [limit] context = 8_192 output = 8_192 diff --git a/providers/eurouter/models/bge-multilingual-gemma2.toml b/providers/eurouter/models/bge-multilingual-gemma2.toml index 8683d0f3cd..a802bbb7e0 100644 --- a/providers/eurouter/models/bge-multilingual-gemma2.toml +++ b/providers/eurouter/models/bge-multilingual-gemma2.toml @@ -1,8 +1,8 @@ name = "BGE Multilingual Gemma2" description = "BGE Multilingual Gemma2 is a BAAI multilingual embedding model based on Gemma2 for dense retrieval and semantic search." family = "bge" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2024-06-29" +last_updated = "2024-06-29" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/claude-3-haiku.toml b/providers/eurouter/models/claude-3-haiku.toml deleted file mode 100644 index af0c5ec191..0000000000 --- a/providers/eurouter/models/claude-3-haiku.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Claude 3 Haiku" -description = "Claude 3 Haiku is the fastest and most compact model in the Claude 3 family, ideal for quick responses." -family = "claude" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 0.25 -output = 1.25 -cache_read = 0 -cache_write = 0 - -[limit] -context = 200_000 -output = 4_096 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/claude-3-sonnet.toml b/providers/eurouter/models/claude-3-sonnet.toml deleted file mode 100644 index dbe37b336c..0000000000 --- a/providers/eurouter/models/claude-3-sonnet.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Claude 3 Sonnet" -description = "Claude 3 Sonnet offers a balance of intelligence and speed for enterprise workloads." -family = "claude" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 3 -output = 15 -cache_read = 0 -cache_write = 0 - -[limit] -context = 200_000 -output = 4_096 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/claude-3.5-sonnet.toml b/providers/eurouter/models/claude-3.5-sonnet.toml deleted file mode 100644 index 6b45cf4266..0000000000 --- a/providers/eurouter/models/claude-3.5-sonnet.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Claude 3.5 Sonnet" -description = "Claude 3.5 Sonnet balances intelligence and speed, excelling at complex tasks while remaining cost-effective." -family = "claude" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 3 -output = 15 -cache_read = 0 -cache_write = 0 - -[limit] -context = 200_000 -output = 8_192 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/claude-3.7-sonnet.toml b/providers/eurouter/models/claude-3.7-sonnet.toml deleted file mode 100644 index bb86b92fe0..0000000000 --- a/providers/eurouter/models/claude-3.7-sonnet.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Claude 3.7 Sonnet" -description = "Claude 3.7 Sonnet offers excellent performance with strong reasoning capabilities. Legacy model - migrate to Claude Sonnet 4.5." -family = "claude" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 3 -output = 15 -cache_read = 0 -cache_write = 0 - -[limit] -context = 200_000 -output = 8_192 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/claude-opus-4-6.toml b/providers/eurouter/models/claude-opus-4-6.toml index 0349734260..44093980d9 100644 --- a/providers/eurouter/models/claude-opus-4-6.toml +++ b/providers/eurouter/models/claude-opus-4-6.toml @@ -1,7 +1,13 @@ base_model = "anthropic/claude-opus-4-6" description = "Claude Opus 4.6 is Anthropic's most capable model for complex coding, enterprise agents, and professional reasoning with a 1M context window." structured_output = true -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "max"] + +[[reasoning_options]] +type = "budget_tokens" [cost] input = 5 diff --git a/providers/eurouter/models/claude-opus-4-7.toml b/providers/eurouter/models/claude-opus-4-7.toml index e2dd985ec1..0c70b104cc 100644 --- a/providers/eurouter/models/claude-opus-4-7.toml +++ b/providers/eurouter/models/claude-opus-4-7.toml @@ -1,7 +1,10 @@ base_model = "anthropic/claude-opus-4-7" description = "Claude Opus 4.7 is Anthropic's frontier model for complex coding, reasoning, and agentic workflows." structured_output = true -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] [cost] input = 5 diff --git a/providers/eurouter/models/claude-opus-4-8.toml b/providers/eurouter/models/claude-opus-4-8.toml deleted file mode 100644 index bb765525c0..0000000000 --- a/providers/eurouter/models/claude-opus-4-8.toml +++ /dev/null @@ -1,14 +0,0 @@ -base_model = "anthropic/claude-opus-4-8" -description = "Claude Opus 4.8 is Anthropic's most capable model for complex coding, autonomous agents, and deep reasoning with a 1M context window." -structured_output = true -reasoning_options = [] - -[cost] -input = 5 -output = 25 -reasoning = 0 -cache_read = 0.5 -cache_write = 6.25 - -[modalities] -input = ["text", "image"] diff --git a/providers/eurouter/models/claude-sonnet-4-6.toml b/providers/eurouter/models/claude-sonnet-4-6.toml index dd5fa1275f..6443ba4efb 100644 --- a/providers/eurouter/models/claude-sonnet-4-6.toml +++ b/providers/eurouter/models/claude-sonnet-4-6.toml @@ -1,7 +1,13 @@ base_model = "anthropic/claude-sonnet-4-6" description = "Claude Sonnet 4.6 is Anthropic's balanced performance model for coding, reasoning, and agentic workflows with a 1M context window." structured_output = true -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "max"] + +[[reasoning_options]] +type = "budget_tokens" [cost] input = 3 diff --git a/providers/eurouter/models/claude-sonnet-5.toml b/providers/eurouter/models/claude-sonnet-5.toml index 9848418d1e..92bfd671e4 100644 --- a/providers/eurouter/models/claude-sonnet-5.toml +++ b/providers/eurouter/models/claude-sonnet-5.toml @@ -1,7 +1,10 @@ base_model = "anthropic/claude-sonnet-5" description = "Claude Sonnet 5 is Anthropic's near-frontier balanced model with a 1M-token context window and always-on adaptive thinking, delivering strong coding, reasoning, and agentic performance." structured_output = true -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high", "xhigh", "max"] [cost] input = 2 diff --git a/providers/eurouter/models/code-llama-13b-instruct.toml b/providers/eurouter/models/code-llama-13b-instruct.toml index 6d4ae64b83..afdafe9f50 100644 --- a/providers/eurouter/models/code-llama-13b-instruct.toml +++ b/providers/eurouter/models/code-llama-13b-instruct.toml @@ -1,8 +1,8 @@ name = "Code Llama 13B Instruct" description = "Code Llama 13B Instruct is a code-focused model from Meta fine-tuned for instruction following. It supports 16K context and is optimized for code generation, completion, and debugging." family = "llama" -release_date = "2026-02-05" -last_updated = "2026-02-05" +release_date = "2024-01-29" +last_updated = "2024-01-29" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/codestral-embed.toml b/providers/eurouter/models/codestral-embed.toml index 5a8e7ad2ce..c92e1d8f71 100644 --- a/providers/eurouter/models/codestral-embed.toml +++ b/providers/eurouter/models/codestral-embed.toml @@ -1,8 +1,8 @@ name = "Codestral Embed" description = "Codestral Embed is Mistral AI's code embedding model for semantic code search and retrieval." family = "codestral-embed" -release_date = "2026-01-08" -last_updated = "2026-01-08" +release_date = "2025-05-01" +last_updated = "2025-05-01" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/codestral.toml b/providers/eurouter/models/codestral.toml index 96f2e52354..1f4d07a923 100644 --- a/providers/eurouter/models/codestral.toml +++ b/providers/eurouter/models/codestral.toml @@ -1,8 +1,8 @@ name = "Codestral" description = "Codestral is Mistral AI's code model for code completion, code generation, and instruction-following coding tasks." family = "codestral" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-08-01" +last_updated = "2025-08-01" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/cohere-embed-english-v3.toml b/providers/eurouter/models/cohere-embed-english-v3.toml deleted file mode 100644 index c0a878f792..0000000000 --- a/providers/eurouter/models/cohere-embed-english-v3.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Cohere Embed English v3" -description = "Cohere Embed English v3 is an English text embedding model available through Amazon Bedrock." -family = "cohere-embed" -release_date = "2026-04-29" -last_updated = "2026-04-29" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = false - -[cost] -input = 0.1 -output = 0 -cache_read = 0 -cache_write = 0 - -[limit] -context = 512 -output = 512 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/cohere-embed-multilingual-v3.toml b/providers/eurouter/models/cohere-embed-multilingual-v3.toml deleted file mode 100644 index b4445b50b5..0000000000 --- a/providers/eurouter/models/cohere-embed-multilingual-v3.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Cohere Embed Multilingual v3" -description = "Cohere Embed Multilingual v3 is a multilingual text embedding model available through Amazon Bedrock." -family = "cohere-embed" -release_date = "2026-04-29" -last_updated = "2026-04-29" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = false - -[cost] -input = 0.1 -output = 0 -cache_read = 0 -cache_write = 0 - -[limit] -context = 512 -output = 512 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/cohere-embed-v4.toml b/providers/eurouter/models/cohere-embed-v4.toml index 15da0d2970..aa76c79c41 100644 --- a/providers/eurouter/models/cohere-embed-v4.toml +++ b/providers/eurouter/models/cohere-embed-v4.toml @@ -1,8 +1,8 @@ name = "Cohere Embed v4" description = "Cohere Embed v4 is a state-of-the-art embedding model supporting 100+ languages with best-in-class retrieval performance." family = "cohere-embed" -release_date = "2026-02-01" -last_updated = "2026-02-01" +release_date = "2025-10-02" +last_updated = "2025-10-02" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/cosmos3-super-reasoner.toml b/providers/eurouter/models/cosmos3-super-reasoner.toml deleted file mode 100644 index cbae88a0f8..0000000000 --- a/providers/eurouter/models/cosmos3-super-reasoner.toml +++ /dev/null @@ -1,26 +0,0 @@ -name = "Cosmos3 Super Reasoner" -description = "NVIDIA Cosmos3 Super Reasoner is a reasoning model for advanced chat, coding, and tool-assisted workloads." -release_date = "2026-07-05" -last_updated = "2026-07-05" -attachment = false -reasoning = true -temperature = true -tool_call = true -structured_output = true -open_weights = false -reasoning_options = [] - -[cost] -input = 0.1 -output = 0.3 -reasoning = 0 -cache_read = 0 -cache_write = 0 - -[limit] -context = 131_072 -output = 131_072 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/deepseek-chat-v3.1.toml b/providers/eurouter/models/deepseek-chat-v3.1.toml deleted file mode 100644 index 8dad6be293..0000000000 --- a/providers/eurouter/models/deepseek-chat-v3.1.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "DeepSeek Chat V3.1" -description = "DeepSeek Chat V3.1 is an upgraded DeepSeek V3 model with long-context chat, function calling, and optional reasoning support." -family = "deepseek" -release_date = "2026-03-30" -last_updated = "2026-03-30" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.2 -output = 0.8 -cache_read = 0 -cache_write = 0 - -[limit] -context = 164_000 -output = 163_840 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/deepseek-r1-distill-llama-70b.toml b/providers/eurouter/models/deepseek-r1-distill-llama-70b.toml deleted file mode 100644 index e74b9a9e64..0000000000 --- a/providers/eurouter/models/deepseek-r1-distill-llama-70b.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "DeepSeek R1 Distill Llama 70B" -description = "DeepSeek-R1-Distill-Llama-70B is a 70B model distilled from DeepSeek-R1 using Llama-3.3-70B-Instruct as the base. Features chain-of-thought reasoning with tokens, 128K context, and strong performance on AIME 2024, MATH-500, and LiveCodeBench. Optimized for complex math, coding, and reasoning tasks." -family = "deepseek" -release_date = "2025-12-08" -last_updated = "2025-12-08" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.9 -output = 0.9 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 32_768 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/deepseek-v3.1.toml b/providers/eurouter/models/deepseek-v3.1.toml deleted file mode 100644 index d0c9a1642a..0000000000 --- a/providers/eurouter/models/deepseek-v3.1.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "DeepSeek V3.1" -description = "DeepSeek V3.1 is a mixture-of-experts chat model with strong coding and instruction-following capabilities." -family = "deepseek" -release_date = "2026-03-30" -last_updated = "2026-03-30" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.58 -output = 1.68 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 8_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/deepseek-v3.2.toml b/providers/eurouter/models/deepseek-v3.2.toml index a5f0c38135..56bc453578 100644 --- a/providers/eurouter/models/deepseek-v3.2.toml +++ b/providers/eurouter/models/deepseek-v3.2.toml @@ -1,8 +1,8 @@ name = "DeepSeek V3.2" description = "DeepSeek V3.2 is a mixture-of-experts model with improved reasoning, coding, and instruction-following capabilities." family = "deepseek" -release_date = "2026-03-30" -last_updated = "2026-03-30" +release_date = "2025-12-01" +last_updated = "2025-12-01" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/deepseek-v3.toml b/providers/eurouter/models/deepseek-v3.toml deleted file mode 100644 index bc7d754288..0000000000 --- a/providers/eurouter/models/deepseek-v3.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "DeepSeek V3" -description = "DeepSeek V3 is DeepSeek's Mixture-of-Experts chat model for general instruction following, coding, and tool use." -family = "deepseek" -release_date = "2025-12-06" -last_updated = "2025-12-06" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.3 -output = 1 -cache_read = 0 -cache_write = 0 - -[limit] -context = 163_840 -output = 8_192 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/deepseek-v4-flash.toml b/providers/eurouter/models/deepseek-v4-flash.toml index fb403daf07..c683310d0f 100644 --- a/providers/eurouter/models/deepseek-v4-flash.toml +++ b/providers/eurouter/models/deepseek-v4-flash.toml @@ -1,6 +1,9 @@ base_model = "deepseek/deepseek-v4-flash" description = "DeepSeek V4 Flash is a DeepSeek V4-series text model with a 1M-token context window, function calling, and optional reasoning support." -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["high", "max"] [cost] input = 0.15 diff --git a/providers/eurouter/models/deepseek-v4-pro.toml b/providers/eurouter/models/deepseek-v4-pro.toml index 1d14a824b8..ba7aa612d4 100644 --- a/providers/eurouter/models/deepseek-v4-pro.toml +++ b/providers/eurouter/models/deepseek-v4-pro.toml @@ -1,6 +1,9 @@ base_model = "deepseek/deepseek-v4-pro" description = "DeepSeek V4 Pro is a DeepSeek V4-series text model with a 1M-token context window, function calling, and optional reasoning support." -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["high", "max"] [cost] input = 1.75 diff --git a/providers/eurouter/models/devstral-2-123b-instruct-2512.toml b/providers/eurouter/models/devstral-2-123b-instruct-2512.toml index 01488fb584..4903a94857 100644 --- a/providers/eurouter/models/devstral-2-123b-instruct-2512.toml +++ b/providers/eurouter/models/devstral-2-123b-instruct-2512.toml @@ -1,8 +1,8 @@ name = "Devstral 2 123B Instruct" description = "Devstral 2 123B Instruct is Mistral's long-context code model for agentic software engineering and multi-file reasoning tasks." family = "devstral" -release_date = "2026-04-29" -last_updated = "2026-04-29" +release_date = "2026-01-01" +last_updated = "2026-01-01" attachment = false reasoning = false temperature = true @@ -10,12 +10,6 @@ tool_call = true structured_output = true open_weights = true -[cost] -input = 0.4 -output = 2 -cache_read = 0 -cache_write = 0 - [limit] context = 200_000 output = 16_000 diff --git a/providers/eurouter/models/devstral-2.toml b/providers/eurouter/models/devstral-2.toml index 3c5695096c..b4aa6b129e 100644 --- a/providers/eurouter/models/devstral-2.toml +++ b/providers/eurouter/models/devstral-2.toml @@ -1,8 +1,8 @@ name = "Devstral 2" description = "Devstral 2 is Mistral AI's frontier code agent model for tool-using software engineering tasks." family = "devstral" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-12-09" +last_updated = "2025-12-09" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/devstral-small-2.toml b/providers/eurouter/models/devstral-small-2.toml index 903d6cad86..53e52eea5e 100644 --- a/providers/eurouter/models/devstral-small-2.toml +++ b/providers/eurouter/models/devstral-small-2.toml @@ -1,8 +1,8 @@ name = "Devstral Small 2" description = "Devstral Small 2 is Mistral AI's compact code agent model for tool-using software engineering tasks." family = "devstral" -release_date = "2026-04-29" -last_updated = "2026-04-29" +release_date = "2025-12-09" +last_updated = "2025-12-09" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/devstral-small.toml b/providers/eurouter/models/devstral-small.toml deleted file mode 100644 index f3346e76a9..0000000000 --- a/providers/eurouter/models/devstral-small.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Devstral Small" -description = "Devstral-Small-2505 is a 24B agentic LLM fine-tuned from Mistral-Small-3.1 by Mistral AI and All Hands AI for software engineering. #1 open source model on SWE-bench (46.8% on Verified). Excels at codebase exploration, multi-file editing, and powering software engineering agents. Text-only (vision encoder removed)." -family = "devstral" -release_date = "2025-12-08" -last_updated = "2025-12-08" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = true - -[cost] -input = 0.15 -output = 0.35 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/e5-mistral-7b-instruct.toml b/providers/eurouter/models/e5-mistral-7b-instruct.toml deleted file mode 100644 index fa663f4037..0000000000 --- a/providers/eurouter/models/e5-mistral-7b-instruct.toml +++ /dev/null @@ -1,19 +0,0 @@ -name = "E5-Mistral-7B-Instruct" -description = "Instruction-tuned embedding model from intfloat based on Mistral 7B. Produces 4096-dimensional embeddings for high-quality semantic search and retrieval tasks. Supports instruction-based queries for improved retrieval accuracy." -family = "mistral" -release_date = "2026-01-09" -last_updated = "2026-01-09" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = true - -[limit] -context = 33_000 -output = 33_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/gemma-2-2b-it.toml b/providers/eurouter/models/gemma-2-2b-it.toml index c28e299869..cedd7b62b6 100644 --- a/providers/eurouter/models/gemma-2-2b-it.toml +++ b/providers/eurouter/models/gemma-2-2b-it.toml @@ -1,8 +1,8 @@ name = "Gemma 2 2B IT" description = "Gemma 2 2B IT is Google's compact instruction-tuned model from the Gemma 2 family for efficient chat and assistant workloads." family = "gemma" -release_date = "2026-01-11" -last_updated = "2026-01-11" +release_date = "2024-06-27" +last_updated = "2024-06-27" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/gemma-2-9b-it.toml b/providers/eurouter/models/gemma-2-9b-it.toml deleted file mode 100644 index 49782bc0e4..0000000000 --- a/providers/eurouter/models/gemma-2-9b-it.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Gemma 2 9B Instruct" -description = "Larger Gemma model delivering high-quality chat and coding with efficient inference." -family = "gemma" -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = false - -[cost] -input = 0.03 -output = 0.09 -cache_read = 0 -cache_write = 0 - -[limit] -context = 8_192 -output = 8_192 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/gemma-3-27b-it.toml b/providers/eurouter/models/gemma-3-27b-it.toml index 09b667415d..ea54bb97c8 100644 --- a/providers/eurouter/models/gemma-3-27b-it.toml +++ b/providers/eurouter/models/gemma-3-27b-it.toml @@ -1,8 +1,8 @@ name = "Gemma 3 27B IT" description = "Gemma 3 27B IT is Google's multimodal instruction-tuned model with text and image input support." family = "gemma" -release_date = "2025-12-08" -last_updated = "2025-12-08" +release_date = "2025-03-12" +last_updated = "2025-03-12" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/gemma-4.toml b/providers/eurouter/models/gemma-4.toml deleted file mode 100644 index 9ac429d851..0000000000 --- a/providers/eurouter/models/gemma-4.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Gemma 4" -description = "Gemma 4 is Google DeepMind's open model family built from Gemini 3 research and technology for high intelligence-per-parameter. The 31B variant offers long-context multimodal reasoning, function-calling support, multilingual understanding, and efficient deployment on personal hardware." -family = "gemma" -release_date = "2026-04-29" -last_updated = "2026-04-29" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.1 -output = 0.5 -cache_read = 0 -cache_write = 0 - -[limit] -context = 256_000 -output = 256_000 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/glm-4.5-air.toml b/providers/eurouter/models/glm-4.5-air.toml deleted file mode 100644 index 11570a55a5..0000000000 --- a/providers/eurouter/models/glm-4.5-air.toml +++ /dev/null @@ -1,15 +0,0 @@ -base_model = "zhipuai/glm-4.5-air" -description = "Cost-efficient GLM variant offering fast inference while keeping the core reasoning strengths." -structured_output = true -reasoning_options = [] - -[cost] -input = 0.2 -output = 1.2 -reasoning = 0 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 diff --git a/providers/eurouter/models/glm-4.5.toml b/providers/eurouter/models/glm-4.5.toml deleted file mode 100644 index 3dc6173c06..0000000000 --- a/providers/eurouter/models/glm-4.5.toml +++ /dev/null @@ -1,15 +0,0 @@ -base_model = "zhipuai/glm-4.5" -description = "Flagship GLM model with strong multilingual reasoning, long context, and robust tool use." -structured_output = true -reasoning_options = [] - -[cost] -input = 0.6 -output = 2.2 -reasoning = 0 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 diff --git a/providers/eurouter/models/glm-4.6.toml b/providers/eurouter/models/glm-4.6.toml deleted file mode 100644 index 377090358c..0000000000 --- a/providers/eurouter/models/glm-4.6.toml +++ /dev/null @@ -1,15 +0,0 @@ -base_model = "zhipuai/glm-4.6" -description = "GLM-4.6 is Z AI's language model for multilingual chat, coding, reasoning, and function calling." -structured_output = true -reasoning_options = [] - -[cost] -input = 0.4 -output = 1.75 -reasoning = 0 -cache_read = 0 -cache_write = 0 - -[limit] -context = 203_000 -output = 131_000 diff --git a/providers/eurouter/models/glm-4.7-fp8.toml b/providers/eurouter/models/glm-4.7-fp8.toml deleted file mode 100644 index 9974d57c2f..0000000000 --- a/providers/eurouter/models/glm-4.7-fp8.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "GLM 4.7 FP8" -description = "GLM-4.7 FP8 is the latest iteration of Zhipu AI's GLM series, served in FP8 precision for efficient inference. Improved capabilities over GLM-4.5 with 128K context and strong reasoning." -family = "glm" -release_date = "2026-02-14" -last_updated = "2026-02-14" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.4 -output = 2 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/glm-5.2.toml b/providers/eurouter/models/glm-5.2.toml index b5a105aab0..e0bcdf4f1e 100644 --- a/providers/eurouter/models/glm-5.2.toml +++ b/providers/eurouter/models/glm-5.2.toml @@ -1,6 +1,9 @@ base_model = "zhipuai/glm-5.2" description = "GLM-5.2 is Z AI's long-context model for reasoning, coding, tool use, and multilingual chat." -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["high", "max"] [cost] input = 1.5 diff --git a/providers/eurouter/models/gpt-4.1-mini.toml b/providers/eurouter/models/gpt-4.1-mini.toml index 1fbce40606..d6bb7b48f4 100644 --- a/providers/eurouter/models/gpt-4.1-mini.toml +++ b/providers/eurouter/models/gpt-4.1-mini.toml @@ -2,13 +2,10 @@ base_model = "openai/gpt-4.1-mini" description = "GPT-4.1 Mini is OpenAI's smaller multimodal GPT-4.1 model for cost-efficient long-context, tool, and structured-output workloads." [cost] -input = 0.4 -output = 1.6 -cache_read = 0 +input = 0.44 +output = 1.76 +cache_read = 0.11 cache_write = 0 -[limit] -context = 1_000_000 - [modalities] input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-4.1.toml b/providers/eurouter/models/gpt-4.1.toml index 19f27ad8b6..a00dc3dfea 100644 --- a/providers/eurouter/models/gpt-4.1.toml +++ b/providers/eurouter/models/gpt-4.1.toml @@ -2,13 +2,10 @@ base_model = "openai/gpt-4.1" description = "GPT-4.1 is OpenAI's multimodal general-purpose model for instruction following, coding, long-context work, function calling, and structured outputs." [cost] -input = 2 -output = 8 -cache_read = 0 +input = 2.2 +output = 8.8 +cache_read = 0.55 cache_write = 0 -[limit] -context = 1_000_000 - [modalities] input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-4o-mini.toml b/providers/eurouter/models/gpt-4o-mini.toml index 362f2af876..c2ccdafd72 100644 --- a/providers/eurouter/models/gpt-4o-mini.toml +++ b/providers/eurouter/models/gpt-4o-mini.toml @@ -2,9 +2,9 @@ base_model = "openai/gpt-4o-mini" description = "GPT-4o Mini is OpenAI's compact multimodal model for low-cost chat, vision, tool use, and structured-output workloads." [cost] -input = 0.15 -output = 0.6 -cache_read = 0 +input = 0.165 +output = 0.66 +cache_read = 0.083 cache_write = 0 [modalities] diff --git a/providers/eurouter/models/gpt-4o.toml b/providers/eurouter/models/gpt-4o.toml index 1cc28c5bda..e808e5249c 100644 --- a/providers/eurouter/models/gpt-4o.toml +++ b/providers/eurouter/models/gpt-4o.toml @@ -2,9 +2,9 @@ base_model = "openai/gpt-4o" description = "GPT-4o is OpenAI's multimodal model for text and image input, text output, tool use, and general-purpose chat workloads." [cost] -input = 2.5 -output = 10 -cache_read = 0 +input = 2.75 +output = 11 +cache_read = 1.375 cache_write = 0 [modalities] diff --git a/providers/eurouter/models/gpt-5-mini.toml b/providers/eurouter/models/gpt-5-mini.toml index 02b017df89..668cb5bbc5 100644 --- a/providers/eurouter/models/gpt-5-mini.toml +++ b/providers/eurouter/models/gpt-5-mini.toml @@ -1,6 +1,9 @@ base_model = "openai/gpt-5-mini" description = "GPT-5 Mini is OpenAI's smaller GPT-5 reasoning model for cost-efficient multimodal, tool, and long-context workloads." -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["minimal", "low", "medium", "high"] [cost] input = 0.275 diff --git a/providers/eurouter/models/gpt-5-nano.toml b/providers/eurouter/models/gpt-5-nano.toml index 14568d1378..fedae28357 100644 --- a/providers/eurouter/models/gpt-5-nano.toml +++ b/providers/eurouter/models/gpt-5-nano.toml @@ -1,6 +1,9 @@ base_model = "openai/gpt-5-nano" description = "GPT-5 Nano is OpenAI's smallest GPT-5 reasoning model for high-volume multimodal and tool-assisted workloads." -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["minimal", "low", "medium", "high"] [cost] input = 0.055 diff --git a/providers/eurouter/models/gpt-5.1.toml b/providers/eurouter/models/gpt-5.1.toml deleted file mode 100644 index 3d4301bd49..0000000000 --- a/providers/eurouter/models/gpt-5.1.toml +++ /dev/null @@ -1,10 +0,0 @@ -base_model = "openai/gpt-5.1" -description = "GPT-5.1 is OpenAI's adaptive reasoning model with multimodal input, structured outputs, tool use, and long-context support." -reasoning_options = [] - -[cost] -input = 1.375 -output = 11 -reasoning = 0 -cache_read = 0.1375 -cache_write = 0 diff --git a/providers/eurouter/models/gpt-5.2.toml b/providers/eurouter/models/gpt-5.2.toml deleted file mode 100644 index fccdc928c1..0000000000 --- a/providers/eurouter/models/gpt-5.2.toml +++ /dev/null @@ -1,10 +0,0 @@ -base_model = "openai/gpt-5.2" -description = "GPT-5.2 is OpenAI's reasoning model for complex multimodal tasks, structured outputs, tool use, coding, and long-context work." -reasoning_options = [] - -[cost] -input = 1.925 -output = 15.4 -reasoning = 0 -cache_read = 0.1925 -cache_write = 0 diff --git a/providers/eurouter/models/gpt-5.4.toml b/providers/eurouter/models/gpt-5.4.toml index 4dd581e37e..db3e0f1cd4 100644 --- a/providers/eurouter/models/gpt-5.4.toml +++ b/providers/eurouter/models/gpt-5.4.toml @@ -1,6 +1,9 @@ base_model = "openai/gpt-5.4" description = "GPT-5.4 is OpenAI's frontier reasoning model for complex professional work, long-context analysis, coding, and agentic automation." -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["none", "low", "medium", "high", "xhigh"] [cost] input = 2.75 diff --git a/providers/eurouter/models/gpt-5.5.toml b/providers/eurouter/models/gpt-5.5.toml deleted file mode 100644 index 831bee7555..0000000000 --- a/providers/eurouter/models/gpt-5.5.toml +++ /dev/null @@ -1,13 +0,0 @@ -base_model = "openai/gpt-5.5" -description = "GPT-5.5 is OpenAI's frontier reasoning model for professional agentic workflows, long-context analysis, coding, and computer-use tasks." -reasoning_options = [] - -[cost] -input = 5.5 -output = 33 -reasoning = 0 -cache_read = 0.55 -cache_write = 0 - -[modalities] -input = ["text", "image"] diff --git a/providers/eurouter/models/gpt-5.toml b/providers/eurouter/models/gpt-5.toml deleted file mode 100644 index 38cdcffe78..0000000000 --- a/providers/eurouter/models/gpt-5.toml +++ /dev/null @@ -1,10 +0,0 @@ -base_model = "openai/gpt-5" -description = "GPT-5 is OpenAI's reasoning model with multimodal input, structured outputs, function calling, and long-context support." -reasoning_options = [] - -[cost] -input = 1.375 -output = 11 -reasoning = 0 -cache_read = 0.1375 -cache_write = 0 diff --git a/providers/eurouter/models/gpt-oss-20b.toml b/providers/eurouter/models/gpt-oss-20b.toml index 014fac5322..90791f5588 100644 --- a/providers/eurouter/models/gpt-oss-20b.toml +++ b/providers/eurouter/models/gpt-oss-20b.toml @@ -2,12 +2,5 @@ base_model = "openai/gpt-oss-20b" description = "GPT-OSS 20B is OpenAI's smaller open-weight reasoning model for efficient chat, coding, and agentic workloads." reasoning_options = [] -[cost] -input = 0.03 -output = 0.14 -reasoning = 0 -cache_read = 0 -cache_write = 0 - [limit] -context = 131_000 +output = 131_072 diff --git a/providers/eurouter/models/green-embedding.toml b/providers/eurouter/models/green-embedding.toml deleted file mode 100644 index 610878dfe2..0000000000 --- a/providers/eurouter/models/green-embedding.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Green Embedding" -description = "High-quality text embeddings for semantic search, similarity matching, and vector database operations. EU-hosted." -release_date = "2026-01-20" -last_updated = "2026-01-20" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = false - -[cost] -input = 0.2 -output = 0 -cache_read = 0 -cache_write = 0 - -[limit] -context = 32_000 -output = 32_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/green-l-raw.toml b/providers/eurouter/models/green-l-raw.toml deleted file mode 100644 index 691aa1e199..0000000000 --- a/providers/eurouter/models/green-l-raw.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "GreenL Raw" -description = "Large generative model with custom system prompt support. Provides more control over model behavior and responses. EU-hosted." -release_date = "2026-01-20" -last_updated = "2026-01-20" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 0.25 -output = 0.8 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/green-l.toml b/providers/eurouter/models/green-l.toml deleted file mode 100644 index 63c1aee1f9..0000000000 --- a/providers/eurouter/models/green-l.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "GreenL" -description = "Large generative model optimized for sustainability. Best for general conversations, content creation, and text analysis. Based on Mistral architecture, hosted entirely in the EU." -release_date = "2026-01-20" -last_updated = "2026-01-20" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 0.25 -output = 0.8 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/green-r-raw.toml b/providers/eurouter/models/green-r-raw.toml deleted file mode 100644 index f0ed485c9a..0000000000 --- a/providers/eurouter/models/green-r-raw.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "GreenR Raw" -description = "Reasoning model with custom system prompt support. Combines advanced reasoning capabilities with customizable behavior. EU-hosted." -release_date = "2026-01-20" -last_updated = "2026-01-20" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.35 -output = 0.95 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/green-r.toml b/providers/eurouter/models/green-r.toml deleted file mode 100644 index d8000a5826..0000000000 --- a/providers/eurouter/models/green-r.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "GreenR" -description = "Reasoning model specialized in logical reasoning and problem-solving. Ideal for complex analytical tasks and mathematical problems. Based on GPT-OSS 120B, EU-hosted." -release_date = "2026-01-20" -last_updated = "2026-01-20" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.35 -output = 0.95 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/hermes-4-405b.toml b/providers/eurouter/models/hermes-4-405b.toml deleted file mode 100644 index e94de4583e..0000000000 --- a/providers/eurouter/models/hermes-4-405b.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Hermes 4 405B" -description = "NousResearch Hermes 4 405B is an open-weight language model for instruction following, chat, tool use, and reasoning-oriented workflows." -family = "hermes" -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 1 -output = 3 -cache_read = 0 -cache_write = 0 - -[limit] -context = 131_072 -output = 131_072 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/hermes-4-70b.toml b/providers/eurouter/models/hermes-4-70b.toml deleted file mode 100644 index c181464815..0000000000 --- a/providers/eurouter/models/hermes-4-70b.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Hermes 4 70B" -description = "NousResearch Hermes 4 70B is an open-weight language model for instruction following, chat, tool use, and reasoning-oriented workflows." -family = "hermes" -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.13 -output = 0.4 -cache_read = 0 -cache_write = 0 - -[limit] -context = 131_072 -output = 131_072 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/holo2-30b-a3b.toml b/providers/eurouter/models/holo2-30b-a3b.toml index cec5d17b54..a2bc46b7ba 100644 --- a/providers/eurouter/models/holo2-30b-a3b.toml +++ b/providers/eurouter/models/holo2-30b-a3b.toml @@ -1,7 +1,7 @@ name = "Holo2 30B A3B" description = "Holo2 30B A3B is H Company's multimodal MoE model optimized for GUI understanding, navigation, and visual reasoning." -release_date = "2025-12-08" -last_updated = "2025-12-08" +release_date = "2025-06-15" +last_updated = "2025-06-15" attachment = true reasoning = false temperature = true @@ -9,12 +9,6 @@ tool_call = true structured_output = true open_weights = true -[cost] -input = 0.3 -output = 0.7 -cache_read = 0 -cache_write = 0 - [limit] context = 22_000 output = 32_000 diff --git a/providers/eurouter/models/inf-retriever-v1.toml b/providers/eurouter/models/inf-retriever-v1.toml deleted file mode 100644 index 09d379e40a..0000000000 --- a/providers/eurouter/models/inf-retriever-v1.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "INF Retriever v1" -description = "INF Retriever v1 is INF Tech's LLM-based dense retrieval embedding model, optimized for English and Chinese retrieval." -release_date = "2026-07-06" -last_updated = "2026-07-06" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.09 -output = 0.45 -cache_read = 0 -cache_write = 0 - -[limit] -context = 32_768 -output = 32_768 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/intellect-3.toml b/providers/eurouter/models/intellect-3.toml deleted file mode 100644 index b84e45fa5b..0000000000 --- a/providers/eurouter/models/intellect-3.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "INTELLECT-3" -description = "Prime Intellect INTELLECT-3 is an open model for reasoning, code, tool-use, and context-augmented chat workloads." -family = "intellect" -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.2 -output = 1.1 -cache_read = 0 -cache_write = 0 - -[limit] -context = 131_072 -output = 131_072 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/kimi-k2-instruct.toml b/providers/eurouter/models/kimi-k2-instruct.toml deleted file mode 100644 index f20623fa8c..0000000000 --- a/providers/eurouter/models/kimi-k2-instruct.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Kimi K2 Instruct" -description = "Kimi-K2 is Moonshot AI's agentic model built for autonomous tool use and reliable instruction following. Designed for reflex-fast agentic tasks." -family = "kimi-k2" -release_date = "2026-01-09" -last_updated = "2026-01-09" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.5 -output = 2.4 -cache_read = 0 -cache_write = 0 - -[limit] -context = 200_000 -output = 200_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/kimi-k2.5.toml b/providers/eurouter/models/kimi-k2.5.toml index 94bae871d1..fb4a40fc9c 100644 --- a/providers/eurouter/models/kimi-k2.5.toml +++ b/providers/eurouter/models/kimi-k2.5.toml @@ -6,7 +6,7 @@ reasoning_options = [] [cost] input = 0.5 -output = 2.5 +output = 2.8 reasoning = 0 cache_read = 0 cache_write = 0 diff --git a/providers/eurouter/models/llama-3.1-405b-instruct.toml b/providers/eurouter/models/llama-3.1-405b-instruct.toml index 49d662c985..a21c76d875 100644 --- a/providers/eurouter/models/llama-3.1-405b-instruct.toml +++ b/providers/eurouter/models/llama-3.1-405b-instruct.toml @@ -1,8 +1,8 @@ name = "Llama 3.1 405B Instruct" description = "Llama 3.1 405B Instruct is Meta's flagship 405B parameter model with a 128K context window. It delivers strong multilingual reasoning, instruction following, and tool-use capabilities at frontier scale." family = "llama" -release_date = "2026-02-05" -last_updated = "2026-02-05" +release_date = "2024-07-23" +last_updated = "2024-07-23" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/llama-3.1-8b-instruct.toml b/providers/eurouter/models/llama-3.1-8b-instruct.toml index b40c2ff5e2..5ad26f2e4c 100644 --- a/providers/eurouter/models/llama-3.1-8b-instruct.toml +++ b/providers/eurouter/models/llama-3.1-8b-instruct.toml @@ -1,8 +1,8 @@ name = "Llama 3.1 8B Instruct" description = "Meta Llama 3.1 8B Instruct is a compact multilingual instruction-tuned model for chat, tool use, and efficient assistant workloads." family = "llama" -release_date = "2025-12-06" -last_updated = "2025-12-06" +release_date = "2024-07-23" +last_updated = "2024-07-23" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/llama-3.2-1b-instruct.toml b/providers/eurouter/models/llama-3.2-1b-instruct.toml deleted file mode 100644 index b428fb67d0..0000000000 --- a/providers/eurouter/models/llama-3.2-1b-instruct.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Llama 3.2 1B Instruct" -description = "Llama 3.2 1B Instruct is Meta's smallest multilingual model, designed for edge deployments with minimal resources." -family = "llama" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.1 -output = 0.1 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/llama-3.2-3b-instruct.toml b/providers/eurouter/models/llama-3.2-3b-instruct.toml deleted file mode 100644 index 4913c9a9d8..0000000000 --- a/providers/eurouter/models/llama-3.2-3b-instruct.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Llama 3.2 3B Instruct" -description = "Llama 3.2 3B Instruct is a compact multilingual model from Meta, optimized for on-device and edge deployments." -family = "llama" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.15 -output = 0.15 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/llama-3.3-70b-instruct.toml b/providers/eurouter/models/llama-3.3-70b-instruct.toml index 1293d02abf..55e442c4d5 100644 --- a/providers/eurouter/models/llama-3.3-70b-instruct.toml +++ b/providers/eurouter/models/llama-3.3-70b-instruct.toml @@ -4,11 +4,11 @@ attachment = false structured_output = true [cost] -input = 0.104 -output = 0.312 +input = 0.12 +output = 0.38 cache_read = 0 cache_write = 0 [limit] -context = 131_000 -output = 131_000 +context = 131_072 +output = 131_072 diff --git a/providers/eurouter/models/llama-4-maverick.toml b/providers/eurouter/models/llama-4-maverick.toml deleted file mode 100644 index 4d0b0c5971..0000000000 --- a/providers/eurouter/models/llama-4-maverick.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Llama 4 Maverick" -description = "Llama 4 Maverick is Meta's Mixture-of-Experts model from the Llama 4 family for long-context chat and function-calling workloads." -family = "llama" -release_date = "2026-03-30" -last_updated = "2026-03-30" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.136 -output = 0.68 -cache_read = 0 -cache_write = 0 - -[limit] -context = 1_050_000 -output = 1_050_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/llama-guard-3-8b.toml b/providers/eurouter/models/llama-guard-3-8b.toml deleted file mode 100644 index 9205036590..0000000000 --- a/providers/eurouter/models/llama-guard-3-8b.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Llama Guard 3 8B" -description = "Moderation model providing robust safety classification and policy enforcement." -family = "llama" -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = false - -[cost] -input = 0.02 -output = 0.06 -cache_read = 0 -cache_write = 0 - -[limit] -context = 8_192 -output = 8_192 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/magistral-medium.toml b/providers/eurouter/models/magistral-medium.toml index b379c4ef79..02498b22cd 100644 --- a/providers/eurouter/models/magistral-medium.toml +++ b/providers/eurouter/models/magistral-medium.toml @@ -1,8 +1,8 @@ name = "Magistral Medium 1.2" description = "Magistral Medium 1.2 is Mistral AI's premier reasoning model for domain-specific, transparent, and multilingual reasoning." family = "magistral-medium" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-09-01" +last_updated = "2025-09-01" attachment = false reasoning = true temperature = true diff --git a/providers/eurouter/models/magistral-small.toml b/providers/eurouter/models/magistral-small.toml index 5007540f3b..0338e15d9f 100644 --- a/providers/eurouter/models/magistral-small.toml +++ b/providers/eurouter/models/magistral-small.toml @@ -1,8 +1,8 @@ name = "Magistral Small 1.2" description = "Magistral Small 1.2 is Mistral AI's small reasoning model for transparent and multilingual reasoning." family = "magistral-small" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-03-17" +last_updated = "2025-03-17" attachment = true reasoning = true temperature = true diff --git a/providers/eurouter/models/minimax-m2.1.toml b/providers/eurouter/models/minimax-m2.1.toml index 5982813d3f..715a1c08a0 100644 --- a/providers/eurouter/models/minimax-m2.1.toml +++ b/providers/eurouter/models/minimax-m2.1.toml @@ -1,19 +1,20 @@ base_model = "minimax/MiniMax-M2.1" description = "MiniMax M2.1 is a long-context Mixture-of-Experts model from MiniMax for chat, coding, reasoning, and multimodal tasks." attachment = true -structured_output = true +tool_call = false +structured_output = false reasoning_options = [] [cost] -input = 0.3 -output = 1.2 +input = 0.36 +output = 1.44 reasoning = 0 cache_read = 0 cache_write = 0 [limit] -context = 128_000 -output = 128_000 +context = 196_608 +output = 196_608 [modalities] input = ["text", "image"] diff --git a/providers/eurouter/models/minimax-m2.5.toml b/providers/eurouter/models/minimax-m2.5.toml index e1cf51a586..f8fde9c0d1 100644 --- a/providers/eurouter/models/minimax-m2.5.toml +++ b/providers/eurouter/models/minimax-m2.5.toml @@ -3,13 +3,6 @@ description = "MiniMax M2.5 is a MiniMax model for agentic coding, tool use, rea structured_output = true reasoning_options = [] -[cost] -input = 0.25 -output = 1.2 -reasoning = 0 -cache_read = 0 -cache_write = 0 - [limit] context = 196_608 output = 196_608 diff --git a/providers/eurouter/models/minimax-m2.7.toml b/providers/eurouter/models/minimax-m2.7.toml index 6c96aef4e7..f1ecf1f11b 100644 --- a/providers/eurouter/models/minimax-m2.7.toml +++ b/providers/eurouter/models/minimax-m2.7.toml @@ -3,13 +3,6 @@ description = "MiniMax M2.7 is MiniMax's 229B parameter reasoning model for agen structured_output = true reasoning_options = [] -[cost] -input = 0.6 -output = 2.4 -reasoning = 0 -cache_read = 0 -cache_write = 0 - [limit] context = 192_000 output = 192_000 diff --git a/providers/eurouter/models/minimax-m2.toml b/providers/eurouter/models/minimax-m2.toml deleted file mode 100644 index 688e9466e2..0000000000 --- a/providers/eurouter/models/minimax-m2.toml +++ /dev/null @@ -1,14 +0,0 @@ -base_model = "minimax/MiniMax-M2" -description = "MiniMax M2 is a Mixture-of-Experts language model from MiniMax for coding, function calling, reasoning, and general chat." -structured_output = true -reasoning_options = [] - -[cost] -input = 0.25 -output = 1 -reasoning = 0 -cache_read = 0 -cache_write = 0 - -[limit] -output = 196_608 diff --git a/providers/eurouter/models/ministral-3-14b.toml b/providers/eurouter/models/ministral-3-14b.toml index 25cc9dcaa1..cbe462585a 100644 --- a/providers/eurouter/models/ministral-3-14b.toml +++ b/providers/eurouter/models/ministral-3-14b.toml @@ -1,8 +1,8 @@ name = "Ministral 3 14B" description = "Ministral 3 14B is an open Mistral AI model for efficient text and vision workloads." family = "ministral" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-12-01" +last_updated = "2025-12-01" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/ministral-3-3b.toml b/providers/eurouter/models/ministral-3-3b.toml index 0e29ac9607..8b0cb4489f 100644 --- a/providers/eurouter/models/ministral-3-3b.toml +++ b/providers/eurouter/models/ministral-3-3b.toml @@ -1,8 +1,8 @@ name = "Ministral 3 3B" description = "Ministral 3 3B is an open Mistral AI model for efficient text and vision workloads." family = "ministral" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-12-01" +last_updated = "2025-12-01" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/ministral-3-8b.toml b/providers/eurouter/models/ministral-3-8b.toml index 313f816acf..6bbb31900b 100644 --- a/providers/eurouter/models/ministral-3-8b.toml +++ b/providers/eurouter/models/ministral-3-8b.toml @@ -1,8 +1,8 @@ name = "Ministral 3 8B" description = "Ministral 3 8B is an open Mistral AI model for efficient text and vision workloads." family = "ministral" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-12-01" +last_updated = "2025-12-01" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/mistral-7b-instruct-v0.3.toml b/providers/eurouter/models/mistral-7b-instruct-v0.3.toml index 39379bf43e..d7e6e1cc82 100644 --- a/providers/eurouter/models/mistral-7b-instruct-v0.3.toml +++ b/providers/eurouter/models/mistral-7b-instruct-v0.3.toml @@ -1,8 +1,8 @@ name = "Mistral 7B Instruct v0.3" description = "Mistral 7B Instruct v0.3 is Mistral AI's 7B instruction-following model for multilingual text generation, coding, extraction, and summarization tasks." family = "mistral" -release_date = "2026-01-23" -last_updated = "2026-01-23" +release_date = "2024-05-22" +last_updated = "2024-05-22" attachment = false reasoning = false temperature = true @@ -10,12 +10,6 @@ tool_call = true structured_output = true open_weights = true -[cost] -input = 0.1 -output = 0.1 -cache_read = 0 -cache_write = 0 - [limit] context = 32_768 output = 32_768 diff --git a/providers/eurouter/models/mistral-7b-instruct.toml b/providers/eurouter/models/mistral-7b-instruct.toml index 56e05376ab..10975c92ad 100644 --- a/providers/eurouter/models/mistral-7b-instruct.toml +++ b/providers/eurouter/models/mistral-7b-instruct.toml @@ -1,8 +1,8 @@ name = "Mistral 7B Instruct" description = "Mistral 7B Instruct is Mistral AI's 7B-parameter instruction-tuned model." family = "mistral" -release_date = "2026-04-29" -last_updated = "2026-04-29" +release_date = "2023-09-28" +last_updated = "2023-09-28" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/mistral-embed.toml b/providers/eurouter/models/mistral-embed.toml index 5421fdecae..181f99083e 100644 --- a/providers/eurouter/models/mistral-embed.toml +++ b/providers/eurouter/models/mistral-embed.toml @@ -1,8 +1,8 @@ name = "Mistral Embed" description = "Mistral Embed is Mistral AI's text embedding model for semantic search, retrieval, clustering, and classification." family = "mistral-embed" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2023-12-11" +last_updated = "2023-12-11" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/mistral-large-2.toml b/providers/eurouter/models/mistral-large-2.toml deleted file mode 100644 index 254697dba9..0000000000 --- a/providers/eurouter/models/mistral-large-2.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Mistral Large 2" -description = "Mistral Large 2 is a 123B parameter flagship model with a 128K context window. It excels at code generation, mathematics, reasoning, and multi-turn conversations. It performs on par with GPT-4o and Claude 3 Opus on most benchmarks." -family = "mistral-large" -release_date = "2025-12-06" -last_updated = "2025-12-06" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 2 -output = 6 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 4_096 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/mistral-large-2402.toml b/providers/eurouter/models/mistral-large-2402.toml index 8ae7ee8a87..5ac68924b8 100644 --- a/providers/eurouter/models/mistral-large-2402.toml +++ b/providers/eurouter/models/mistral-large-2402.toml @@ -1,8 +1,8 @@ name = "Mistral Large 2402" description = "Mistral Large 2402 is Mistral AI's high-capability text model available through Amazon Bedrock." family = "mistral-large" -release_date = "2026-04-29" -last_updated = "2026-04-29" +release_date = "2024-02-26" +last_updated = "2024-02-26" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/mistral-large-3.toml b/providers/eurouter/models/mistral-large-3.toml index 1ccb219a78..ea44066bd1 100644 --- a/providers/eurouter/models/mistral-large-3.toml +++ b/providers/eurouter/models/mistral-large-3.toml @@ -1,8 +1,8 @@ name = "Mistral Large 3" description = "Mistral Large 3 is Mistral AI's 675B-parameter model for coding, reasoning, multilingual tasks, and vision-enabled chat." family = "mistral-large" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-12-02" +last_updated = "2025-12-02" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/mistral-medium-3.1.toml b/providers/eurouter/models/mistral-medium-3.1.toml index b342c65242..4b0bd0b347 100644 --- a/providers/eurouter/models/mistral-medium-3.1.toml +++ b/providers/eurouter/models/mistral-medium-3.1.toml @@ -1,8 +1,8 @@ name = "Mistral Medium 3.1" description = "Mistral Medium 3.1 is Mistral AI's frontier-class multimodal model released in August 2025." family = "mistral-medium" -release_date = "2026-01-20" -last_updated = "2026-01-20" +release_date = "2025-08-01" +last_updated = "2025-08-01" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/mistral-nemo-12b.toml b/providers/eurouter/models/mistral-nemo-12b.toml index 7fe667f0a4..d412b5be50 100644 --- a/providers/eurouter/models/mistral-nemo-12b.toml +++ b/providers/eurouter/models/mistral-nemo-12b.toml @@ -1,8 +1,8 @@ name = "Mistral Nemo 12B" description = "Mistral Nemo 12B is Mistral AI's open multilingual model built with NVIDIA for efficient long-context text generation." family = "mistral-nemo" -release_date = "2025-12-06" -last_updated = "2025-12-06" +release_date = "2024-07-17" +last_updated = "2024-07-17" attachment = false reasoning = false temperature = true @@ -10,12 +10,6 @@ tool_call = true structured_output = true open_weights = true -[cost] -input = 0.13 -output = 0.13 -cache_read = 0 -cache_write = 0 - [limit] context = 120_832 output = 120_832 diff --git a/providers/eurouter/models/mistral-small-24b.toml b/providers/eurouter/models/mistral-small-24b.toml index 21bff44a1a..89c9af833d 100644 --- a/providers/eurouter/models/mistral-small-24b.toml +++ b/providers/eurouter/models/mistral-small-24b.toml @@ -1,8 +1,8 @@ name = "Mistral Small 24B Instruct" description = "Mistral Small 24B Instruct is a 24B parameter model with 128K context and multimodal (text + image) inputs, optimized for instruction following and long-document understanding." family = "mistral-small" -release_date = "2026-02-05" -last_updated = "2026-02-05" +release_date = "2025-06-25" +last_updated = "2025-06-25" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/mistral-small-3.1-24b.toml b/providers/eurouter/models/mistral-small-3.1-24b.toml deleted file mode 100644 index 406fdc4620..0000000000 --- a/providers/eurouter/models/mistral-small-3.1-24b.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Mistral Small 3.1 24B" -description = "Mistral Small 3.1 is a 24B parameter model with a 128K context window. It supports both text and image inputs (vision), features efficient inference at 150 tokens/second, and is optimized for conversational agents, function calling, and long-document comprehension." -family = "mistral-small" -release_date = "2025-12-06" -last_updated = "2025-12-06" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.1 -output = 0.3 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/mistral-small-3.2-24b.toml b/providers/eurouter/models/mistral-small-3.2-24b.toml index 3d3723e67b..d7b124b953 100644 --- a/providers/eurouter/models/mistral-small-3.2-24b.toml +++ b/providers/eurouter/models/mistral-small-3.2-24b.toml @@ -1,8 +1,8 @@ name = "Mistral Small 3.2 24B" description = "Mistral Small 3.2 is a 24B open model with image understanding, function calling, and long-context support." family = "mistral-small" -release_date = "2025-12-08" -last_updated = "2025-12-08" +release_date = "2025-06-01" +last_updated = "2025-06-01" attachment = true reasoning = false temperature = true @@ -10,12 +10,6 @@ tool_call = true structured_output = true open_weights = true -[cost] -input = 0.09 -output = 0.28 -cache_read = 0 -cache_write = 0 - [limit] context = 131_072 output = 131_072 diff --git a/providers/eurouter/models/mistral-small-4.toml b/providers/eurouter/models/mistral-small-4.toml index 9be171411a..04a45268d6 100644 --- a/providers/eurouter/models/mistral-small-4.toml +++ b/providers/eurouter/models/mistral-small-4.toml @@ -1,8 +1,8 @@ name = "Mistral Small 4" description = "Mistral Small 4 is Mistral AI's open hybrid MoE model unifying instruct, reasoning, coding, and multimodal workloads." family = "mistral-small" -release_date = "2026-04-29" -last_updated = "2026-04-29" +release_date = "2026-03-16" +last_updated = "2026-03-16" attachment = true reasoning = true temperature = true diff --git a/providers/eurouter/models/mixtral-8x22b-instruct.toml b/providers/eurouter/models/mixtral-8x22b-instruct.toml deleted file mode 100644 index e52d546544..0000000000 --- a/providers/eurouter/models/mixtral-8x22b-instruct.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Mixtral 8x22B Instruct" -description = "Mixtral 8x22B Instruct is Mistral AI's sparse Mixture-of-Experts model for chat, code, and tool-use workloads." -family = "mixtral" -release_date = "2026-03-30" -last_updated = "2026-03-30" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 2 -output = 6 -cache_read = 0 -cache_write = 0 - -[limit] -context = 66_000 -output = 65_536 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/mixtral-8x7b-instruct.toml b/providers/eurouter/models/mixtral-8x7b-instruct.toml deleted file mode 100644 index cccbff9539..0000000000 --- a/providers/eurouter/models/mixtral-8x7b-instruct.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Mixtral 8x7B Instruct" -description = "Mixtral 8x7B Instruct is Mistral AI's sparse mixture-of-experts instruction model." -family = "mixtral" -release_date = "2026-04-29" -last_updated = "2026-04-29" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = false - -[cost] -input = 0.49 -output = 0.76 -cache_read = 0 -cache_write = 0 - -[limit] -context = 32_000 -output = 32_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/multilingual-e5-large-instruct.toml b/providers/eurouter/models/multilingual-e5-large-instruct.toml deleted file mode 100644 index df8b1d615d..0000000000 --- a/providers/eurouter/models/multilingual-e5-large-instruct.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Multilingual E5 Large Instruct" -description = "Multilingual E5 Large Instruct is an instruction-tuned multilingual embedding model for retrieval across ~100 languages." -release_date = "2026-07-06" -last_updated = "2026-07-06" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.12 -output = 0.6 -cache_read = 0 -cache_write = 0 - -[limit] -context = 8_192 -output = 8_192 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/nemotron-3-nano-omni.toml b/providers/eurouter/models/nemotron-3-nano-omni.toml index 77441e1768..23ae04fb4a 100644 --- a/providers/eurouter/models/nemotron-3-nano-omni.toml +++ b/providers/eurouter/models/nemotron-3-nano-omni.toml @@ -1,8 +1,8 @@ name = "Nemotron 3 Nano Omni" description = "NVIDIA Nemotron 3 Nano Omni is an efficient omni-modal reasoning model for agentic AI, coding, tool use, and long-context workflows." family = "nemotron" -release_date = "2026-04-29" -last_updated = "2026-04-29" +release_date = "2026-04-24" +last_updated = "2026-04-24" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/nemotron-nano-v2-12b.toml b/providers/eurouter/models/nemotron-nano-v2-12b.toml deleted file mode 100644 index 9c9ed1491c..0000000000 --- a/providers/eurouter/models/nemotron-nano-v2-12b.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Nemotron Nano V2 12B" -description = "Compact NVIDIA model optimized for efficient reasoning, safety, and enterprise workloads." -family = "nemotron" -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.07 -output = 0.2 -cache_read = 0 -cache_write = 0 - -[limit] -context = 32_000 -output = 32_000 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/nova-2-lite.toml b/providers/eurouter/models/nova-2-lite.toml index fa45b27174..cf2a9fc6bd 100644 --- a/providers/eurouter/models/nova-2-lite.toml +++ b/providers/eurouter/models/nova-2-lite.toml @@ -1,8 +1,8 @@ name = "Amazon Nova 2 Lite" description = "Amazon Nova 2 Lite is a cost-efficient multimodal model for simple automation, document processing, and customer support across text, images, and video." family = "nova" -release_date = "2026-04-29" -last_updated = "2026-04-29" +release_date = "2025-12-02" +last_updated = "2025-12-02" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/nova-lite.toml b/providers/eurouter/models/nova-lite.toml deleted file mode 100644 index f961452104..0000000000 --- a/providers/eurouter/models/nova-lite.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Amazon Nova Lite" -description = "Amazon Nova Lite is a multimodal model supporting text, images, and video with low-latency responses." -family = "nova-lite" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 0.06 -output = 0.24 -cache_read = 0 -cache_write = 0 - -[limit] -context = 300_000 -output = 300_000 - -[modalities] -input = ["text", "image", "video"] -output = ["text"] diff --git a/providers/eurouter/models/nova-micro.toml b/providers/eurouter/models/nova-micro.toml deleted file mode 100644 index af42ca2146..0000000000 --- a/providers/eurouter/models/nova-micro.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Amazon Nova Micro" -description = "Amazon Nova Micro is the fastest and most cost-effective Nova model, optimized for simple text tasks." -family = "nova-micro" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = false - -[cost] -input = 0.035 -output = 0.14 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/nova-pro.toml b/providers/eurouter/models/nova-pro.toml deleted file mode 100644 index 33ee186742..0000000000 --- a/providers/eurouter/models/nova-pro.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Amazon Nova Pro" -description = "Amazon Nova Pro is a highly capable multimodal model balancing performance and cost for complex tasks." -family = "nova-pro" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 0.8 -output = 3.2 -cache_read = 0 -cache_write = 0 - -[limit] -context = 300_000 -output = 300_000 - -[modalities] -input = ["text", "image", "video"] -output = ["text"] diff --git a/providers/eurouter/models/o1.toml b/providers/eurouter/models/o1.toml deleted file mode 100644 index 773827f971..0000000000 --- a/providers/eurouter/models/o1.toml +++ /dev/null @@ -1,13 +0,0 @@ -base_model = "openai/o1" -description = "o1 is OpenAI's reasoning model for complex tasks with structured outputs, multimodal input, and tool use." -reasoning_options = [] - -[cost] -input = 16.5 -output = 66 -reasoning = 0 -cache_read = 8.25 -cache_write = 0 - -[modalities] -input = ["text", "image"] diff --git a/providers/eurouter/models/o3-mini.toml b/providers/eurouter/models/o3-mini.toml index 62c40704c4..91d11160b4 100644 --- a/providers/eurouter/models/o3-mini.toml +++ b/providers/eurouter/models/o3-mini.toml @@ -1,6 +1,9 @@ base_model = "openai/o3-mini" description = "o3-mini is OpenAI's compact text-only reasoning model optimized for cost-efficient coding, math, science, and structured-output tasks." -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] [cost] input = 1.21 diff --git a/providers/eurouter/models/o3.toml b/providers/eurouter/models/o3.toml deleted file mode 100644 index dffa1c509b..0000000000 --- a/providers/eurouter/models/o3.toml +++ /dev/null @@ -1,13 +0,0 @@ -base_model = "openai/o3" -description = "o3 is OpenAI's reasoning model for advanced problem solving, coding, math, science, visual perception, and tool use." -reasoning_options = [] - -[cost] -input = 2.2 -output = 8.8 -reasoning = 0 -cache_read = 0.55 -cache_write = 0 - -[modalities] -input = ["text", "image"] diff --git a/providers/eurouter/models/o4-mini.toml b/providers/eurouter/models/o4-mini.toml index 421c281526..8ac965b7da 100644 --- a/providers/eurouter/models/o4-mini.toml +++ b/providers/eurouter/models/o4-mini.toml @@ -1,10 +1,13 @@ base_model = "openai/o4-mini" description = "o4-mini is OpenAI's compact reasoning model for math, coding, visual tasks, structured outputs, and tool use." -reasoning_options = [] + +[[reasoning_options]] +type = "effort" +values = ["low", "medium", "high"] [cost] -input = 1.1 -output = 4.4 +input = 1.21 +output = 4.84 reasoning = 0 -cache_read = 0 +cache_read = 0.303 cache_write = 0 diff --git a/providers/eurouter/models/paraphrase-multilingual-mpnet-base-v2.toml b/providers/eurouter/models/paraphrase-multilingual-mpnet-base-v2.toml index f13e188cf0..31c7d2a2f9 100644 --- a/providers/eurouter/models/paraphrase-multilingual-mpnet-base-v2.toml +++ b/providers/eurouter/models/paraphrase-multilingual-mpnet-base-v2.toml @@ -1,7 +1,7 @@ name = "Paraphrase Multilingual MPNet v2" description = "Paraphrase Multilingual MPNet v2 is a sentence-transformer embedding model producing 768-dimensional vectors for multilingual semantic search and similarity." -release_date = "2026-02-05" -last_updated = "2026-02-05" +release_date = "2021-07-23" +last_updated = "2021-07-23" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/pixtral-12b.toml b/providers/eurouter/models/pixtral-12b.toml index 4ba44771fa..aad085afbd 100644 --- a/providers/eurouter/models/pixtral-12b.toml +++ b/providers/eurouter/models/pixtral-12b.toml @@ -1,10 +1,6 @@ base_model = "mistral/pixtral-12b" description = "Pixtral 12B is Mistral's multimodal model for image understanding, visual question answering, and document analysis." -tool_call = false structured_output = true -[cost] -input = 0.15 -output = 0.15 -cache_read = 0 -cache_write = 0 +[limit] +output = 4_000 diff --git a/providers/eurouter/models/pixtral-large-2502.toml b/providers/eurouter/models/pixtral-large-2502.toml index 923d315f01..ead700f300 100644 --- a/providers/eurouter/models/pixtral-large-2502.toml +++ b/providers/eurouter/models/pixtral-large-2502.toml @@ -1,8 +1,8 @@ name = "Pixtral Large 25.02" description = "Pixtral Large is Mistral's flagship multimodal model with exceptional vision and text understanding capabilities." family = "pixtral" -release_date = "2026-02-01" -last_updated = "2026-02-01" +release_date = "2025-02-01" +last_updated = "2025-02-01" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/pixtral-large.toml b/providers/eurouter/models/pixtral-large.toml deleted file mode 100644 index 918d072f3d..0000000000 --- a/providers/eurouter/models/pixtral-large.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Pixtral Large" -description = "Pixtral Large is Mistral's premium multimodal model with 128K context. Excels at complex visual reasoning, document analysis, and image understanding." -family = "pixtral" -release_date = "2026-01-09" -last_updated = "2026-01-09" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = false -open_weights = false - -[cost] -input = 2 -output = 6 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/qwen-2.5-72b-instruct.toml b/providers/eurouter/models/qwen-2.5-72b-instruct.toml deleted file mode 100644 index cc0e37f6bd..0000000000 --- a/providers/eurouter/models/qwen-2.5-72b-instruct.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Qwen 2.5 72B Instruct" -description = "Qwen 2.5 72B Instruct is Alibaba's instruction-tuned language model for multilingual chat, coding, and tool use." -family = "qwen" -release_date = "2025-12-06" -last_updated = "2025-12-06" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.07 -output = 0.26 -cache_read = 0 -cache_write = 0 - -[limit] -context = 33_000 -output = 33_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/qwen-2.5-coder-32b-instruct.toml b/providers/eurouter/models/qwen-2.5-coder-32b-instruct.toml deleted file mode 100644 index d288a55606..0000000000 --- a/providers/eurouter/models/qwen-2.5-coder-32b-instruct.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Qwen 2.5 Coder 32B Instruct" -description = "Qwen 2.5 Coder 32B is a specialized code generation model from Alibaba. It excels at code completion, debugging, and explanation tasks across multiple programming languages." -family = "qwen" -release_date = "2025-12-06" -last_updated = "2025-12-06" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.9 -output = 0.9 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/qwen-2.5-coder-7b.toml b/providers/eurouter/models/qwen-2.5-coder-7b.toml deleted file mode 100644 index 8dffa40dc2..0000000000 --- a/providers/eurouter/models/qwen-2.5-coder-7b.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Qwen 2.5 Coder 7B" -description = "Lightweight Qwen coder offering high-quality code generation and repo-level editing at small scale." -family = "qwen" -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = true -open_weights = false - -[cost] -input = 0.03 -output = 0.09 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/qwen-2.5-vl-72b-instruct.toml b/providers/eurouter/models/qwen-2.5-vl-72b-instruct.toml index d6f776032b..fc9db5beb7 100644 --- a/providers/eurouter/models/qwen-2.5-vl-72b-instruct.toml +++ b/providers/eurouter/models/qwen-2.5-vl-72b-instruct.toml @@ -1,8 +1,8 @@ name = "Qwen 2.5 VL 72B Instruct" description = "Qwen 2.5 VL 72B Instruct is Alibaba's vision-language model for image understanding, OCR, document analysis, and multimodal instruction following." family = "qwen" -release_date = "2026-01-11" -last_updated = "2026-01-11" +release_date = "2025-01-27" +last_updated = "2025-01-27" attachment = true reasoning = false temperature = true diff --git a/providers/eurouter/models/qwen3-235b-a22b-instruct.toml b/providers/eurouter/models/qwen3-235b-a22b-instruct.toml index 6bcef77c52..a383507c5b 100644 --- a/providers/eurouter/models/qwen3-235b-a22b-instruct.toml +++ b/providers/eurouter/models/qwen3-235b-a22b-instruct.toml @@ -1,7 +1,7 @@ name = "Qwen3 235B A22B Instruct" description = "Qwen3 235B A22B Instruct is Alibaba's Mixture-of-Experts model for multilingual chat, reasoning, coding, and tool use." -release_date = "2025-12-08" -last_updated = "2025-12-08" +release_date = "2025-07-21" +last_updated = "2025-07-21" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/qwen3-235b-a22b-thinking.toml b/providers/eurouter/models/qwen3-235b-a22b-thinking.toml deleted file mode 100644 index acb7e40eb5..0000000000 --- a/providers/eurouter/models/qwen3-235b-a22b-thinking.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Qwen3 235B A22B Thinking" -description = "High-depth thinking mode model optimized for extended reasoning, planning, and multi-step tasks." -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.2 -output = 0.8 -cache_read = 0 -cache_write = 0 - -[limit] -context = 262_144 -output = 262_144 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/qwen3-30b-a3b-instruct.toml b/providers/eurouter/models/qwen3-30b-a3b-instruct.toml index 96d0c3fdd0..40ba9268f8 100644 --- a/providers/eurouter/models/qwen3-30b-a3b-instruct.toml +++ b/providers/eurouter/models/qwen3-30b-a3b-instruct.toml @@ -1,7 +1,7 @@ name = "Qwen3 30B A3B Instruct" description = "Qwen3 30B A3B Instruct is an Alibaba/Qwen compact MoE instruction model for chat, code, tool use, and context-augmented generation." -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-07-01" +last_updated = "2025-07-01" attachment = false reasoning = false temperature = true diff --git a/providers/eurouter/models/qwen3-30b-a3b-thinking.toml b/providers/eurouter/models/qwen3-30b-a3b-thinking.toml deleted file mode 100644 index 8268bf8c8d..0000000000 --- a/providers/eurouter/models/qwen3-30b-a3b-thinking.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Qwen3 30B A3B Thinking" -description = "Mid-size Qwen thinking model delivering long reasoning chains at efficient cost." -release_date = "2026-01-11" -last_updated = "2026-01-11" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.1 -output = 0.3 -cache_read = 0 -cache_write = 0 - -[limit] -context = 128_000 -output = 128_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/qwen3-32b.toml b/providers/eurouter/models/qwen3-32b.toml index a36ffce18c..d0c96f5c4a 100644 --- a/providers/eurouter/models/qwen3-32b.toml +++ b/providers/eurouter/models/qwen3-32b.toml @@ -1,14 +1,9 @@ base_model = "alibaba/qwen3-32b" description = "Qwen3 32B is Alibaba's dense multilingual model with tool calling and optional reasoning mode for math, code, and general instruction-following tasks." structured_output = true -reasoning_options = [] -[cost] -input = 0.08 -output = 0.23 -reasoning = 0 -cache_read = 0 -cache_write = 0 +[[reasoning_options]] +type = "budget_tokens" [limit] context = 32_768 diff --git a/providers/eurouter/models/qwen3-coder-30b-a3b.toml b/providers/eurouter/models/qwen3-coder-30b-a3b.toml index 548d0b4a1c..2704c53317 100644 --- a/providers/eurouter/models/qwen3-coder-30b-a3b.toml +++ b/providers/eurouter/models/qwen3-coder-30b-a3b.toml @@ -1,7 +1,7 @@ name = "Qwen3 Coder 30B A3B" description = "Qwen3 Coder 30B A3B is Alibaba's Mixture-of-Experts coding model for software engineering and agentic code tasks." -release_date = "2025-12-08" -last_updated = "2025-12-08" +release_date = "2025-07-01" +last_updated = "2025-07-01" attachment = false reasoning = false temperature = true @@ -9,12 +9,6 @@ tool_call = true structured_output = true open_weights = true -[cost] -input = 0.06 -output = 0.22 -cache_read = 0 -cache_write = 0 - [limit] context = 262_144 output = 262_144 diff --git a/providers/eurouter/models/qwen3-coder-480b-a35b-instruct.toml b/providers/eurouter/models/qwen3-coder-480b-a35b-instruct.toml index 84d894b4bf..2645fbcc8c 100644 --- a/providers/eurouter/models/qwen3-coder-480b-a35b-instruct.toml +++ b/providers/eurouter/models/qwen3-coder-480b-a35b-instruct.toml @@ -1,9 +1,10 @@ base_model = "alibaba/qwen3-coder-480b-a35b-instruct" description = "Massive code-specialist model optimized for repo-scale coding, long-context understanding, and precise tool calls." -structured_output = true +tool_call = false +structured_output = false [cost] -input = 0.4 +input = 0.45 output = 1.8 cache_read = 0 cache_write = 0 diff --git a/providers/eurouter/models/qwen3-coder-next-80b.toml b/providers/eurouter/models/qwen3-coder-next-80b.toml index dd93297cd9..33b80597d8 100644 --- a/providers/eurouter/models/qwen3-coder-next-80b.toml +++ b/providers/eurouter/models/qwen3-coder-next-80b.toml @@ -1,7 +1,7 @@ name = "Qwen3 Coder Next 80B" description = "Qwen3-Coder-Next is Alibaba's open-weight 80B total, 3B active MoE coding model for coding agents, long-horizon tool use, and local development workflows." -release_date = "2026-04-29" -last_updated = "2026-04-29" +release_date = "2026-02-03" +last_updated = "2026-02-03" attachment = false reasoning = true temperature = true diff --git a/providers/eurouter/models/qwen3-coder-next.toml b/providers/eurouter/models/qwen3-coder-next.toml deleted file mode 100644 index daaec90d07..0000000000 --- a/providers/eurouter/models/qwen3-coder-next.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Qwen3 Coder Next" -description = "Qwen3 Coder Next is Alibaba's Qwen3 coding model for software engineering and agentic code tasks." -release_date = "2026-06-25" -last_updated = "2026-06-25" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.5 -output = 2 -cache_read = 0 -cache_write = 0 - -[limit] -context = 256_000 -output = 256_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/qwen3-embedding-8b.toml b/providers/eurouter/models/qwen3-embedding-8b.toml index d993635edf..b343496ae9 100644 --- a/providers/eurouter/models/qwen3-embedding-8b.toml +++ b/providers/eurouter/models/qwen3-embedding-8b.toml @@ -1,7 +1,7 @@ name = "Qwen3 Embedding 8B" description = "Qwen3 Embedding 8B is Alibaba's embedding model for multilingual semantic search, retrieval, and representation learning." -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2025-06-05" +last_updated = "2025-06-05" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/qwen3-next-80b-a3b-thinking.toml b/providers/eurouter/models/qwen3-next-80b-a3b-thinking.toml index a3855f3396..1f0b59cb18 100644 --- a/providers/eurouter/models/qwen3-next-80b-a3b-thinking.toml +++ b/providers/eurouter/models/qwen3-next-80b-a3b-thinking.toml @@ -1,7 +1,9 @@ base_model = "alibaba/qwen3-next-80b-a3b-thinking" description = "Qwen3 Next 80B A3B Thinking is an Alibaba/Qwen thinking model for reasoning, code, context-augmented generation, and tool use." structured_output = true -reasoning_options = [] + +[[reasoning_options]] +type = "budget_tokens" [cost] input = 0.15 diff --git a/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml b/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml deleted file mode 100644 index 49edf36aa1..0000000000 --- a/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Qwen3 VL 235B A22B Instruct" -description = "Qwen3 VL 235B A22B Instruct is Alibaba's vision-language Mixture-of-Experts model for multimodal understanding and chat." -release_date = "2026-03-30" -last_updated = "2026-03-30" -attachment = true -reasoning = false -temperature = true -tool_call = false -structured_output = false -open_weights = true - -[cost] -input = 0.21 -output = 1.9 -cache_read = 0 -cache_write = 0 - -[limit] -context = 131_000 -output = 131_000 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml b/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml deleted file mode 100644 index 3acde9fa01..0000000000 --- a/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Qwen3 VL 235B A22B Thinking" -description = "Qwen3 VL 235B A22B Thinking is Alibaba's reasoning vision-language Mixture-of-Experts model for complex multimodal analysis." -release_date = "2026-07-06" -last_updated = "2026-07-06" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 1.08 -output = 5.38 -cache_read = 0 -cache_write = 0 - -[limit] -context = 262_144 -output = 262_144 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/qwen3.5-122b-a10b.toml b/providers/eurouter/models/qwen3.5-122b-a10b.toml index 991ad12893..241097a60a 100644 --- a/providers/eurouter/models/qwen3.5-122b-a10b.toml +++ b/providers/eurouter/models/qwen3.5-122b-a10b.toml @@ -1,6 +1,8 @@ base_model = "alibaba/qwen3.5-122b-a10b" description = "Qwen3.5 122B A10B is Alibaba's natively multimodal Mixture-of-Experts model for reasoning, coding, multilingual chat, vision-language understanding, and tool use." -reasoning_options = [] + +[[reasoning_options]] +type = "budget_tokens" [cost] input = 0.5 diff --git a/providers/eurouter/models/qwen3.5-397b-a17b.toml b/providers/eurouter/models/qwen3.5-397b-a17b.toml index 9e084c6b99..5c3896a218 100644 --- a/providers/eurouter/models/qwen3.5-397b-a17b.toml +++ b/providers/eurouter/models/qwen3.5-397b-a17b.toml @@ -2,13 +2,6 @@ base_model = "alibaba/qwen3.5-397b-a17b" description = "Qwen3.5 397B A17B is an Alibaba/Qwen MoE model for long-context reasoning, coding, agentic tasks, tool use, and multimodal understanding." reasoning_options = [] -[cost] -input = 0.6 -output = 3.6 -reasoning = 0 -cache_read = 0 -cache_write = 0 - [limit] context = 250_000 output = 16_000 diff --git a/providers/eurouter/models/qwen3.5-9b.toml b/providers/eurouter/models/qwen3.5-9b.toml index d37e1acd34..8a9041470d 100644 --- a/providers/eurouter/models/qwen3.5-9b.toml +++ b/providers/eurouter/models/qwen3.5-9b.toml @@ -2,13 +2,6 @@ base_model = "alibaba/qwen3.5-9b" description = "Qwen3.5 9B is Alibaba's compact Qwen3.5 model for efficient long-context chat, reasoning, and tool use." reasoning_options = [] -[cost] -input = 0.07 -output = 0.35 -reasoning = 0 -cache_read = 0 -cache_write = 0 - [limit] context = 262_000 output = 262_000 diff --git a/providers/eurouter/models/qwen3.6-27b.toml b/providers/eurouter/models/qwen3.6-27b.toml index 2c845d76c7..889a947c0b 100644 --- a/providers/eurouter/models/qwen3.6-27b.toml +++ b/providers/eurouter/models/qwen3.6-27b.toml @@ -2,13 +2,6 @@ base_model = "alibaba/qwen3.6-27b" description = "Qwen3.6 27B is Alibaba's multimodal Qwen3.6 model for vision, chat, reasoning, and tool use." reasoning_options = [] -[cost] -input = 0.5 -output = 2.1 -reasoning = 0 -cache_read = 0 -cache_write = 0 - [limit] context = 262_000 output = 262_000 diff --git a/providers/eurouter/models/qwen3.6-35b.toml b/providers/eurouter/models/qwen3.6-35b.toml deleted file mode 100644 index 2f627a0e47..0000000000 --- a/providers/eurouter/models/qwen3.6-35b.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Qwen3.6 35B" -description = "Qwen3.6 35B is Alibaba's Qwen3.6-series model for multilingual chat, reasoning, and tool use." -family = "qwen3.6" -release_date = "2026-06-25" -last_updated = "2026-06-25" -attachment = false -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = true - -[cost] -input = 0.15 -output = 0.5 -cache_read = 0 -cache_write = 0 - -[limit] -context = 262_144 -output = 262_144 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/teuken-7b-instruct.toml b/providers/eurouter/models/teuken-7b-instruct.toml deleted file mode 100644 index e410a97e0f..0000000000 --- a/providers/eurouter/models/teuken-7b-instruct.toml +++ /dev/null @@ -1,24 +0,0 @@ -name = "Teuken-7B Instruct" -description = "Teuken 7B Instruct is an OpenGPT-X model optimized for German and European languages, offering an 8K context window for instruction-following tasks." -release_date = "2026-02-05" -last_updated = "2026-02-05" -attachment = false -reasoning = false -temperature = true -tool_call = false -structured_output = true -open_weights = true - -[cost] -input = 0.17 -output = 0.17 -cache_read = 0 -cache_write = 0 - -[limit] -context = 8_192 -output = 8_192 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/text-embedding-3-large.toml b/providers/eurouter/models/text-embedding-3-large.toml index d8cca091f7..176aae7263 100644 --- a/providers/eurouter/models/text-embedding-3-large.toml +++ b/providers/eurouter/models/text-embedding-3-large.toml @@ -1,8 +1,8 @@ name = "Text Embedding 3 Large" description = "text-embedding-3-large is OpenAI's most capable text embedding model with up to 3,072 output dimensions." family = "text-embedding" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2024-01-25" +last_updated = "2024-01-25" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/text-embedding-3-small.toml b/providers/eurouter/models/text-embedding-3-small.toml index 4aa2550da6..50e1310720 100644 --- a/providers/eurouter/models/text-embedding-3-small.toml +++ b/providers/eurouter/models/text-embedding-3-small.toml @@ -1,8 +1,8 @@ name = "Text Embedding 3 Small" description = "text-embedding-3-small is OpenAI's efficient text embedding model with 1,536 output dimensions." family = "text-embedding" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2024-01-25" +last_updated = "2024-01-25" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/text-embedding-ada-002.toml b/providers/eurouter/models/text-embedding-ada-002.toml index 4e7617fb64..33447ee913 100644 --- a/providers/eurouter/models/text-embedding-ada-002.toml +++ b/providers/eurouter/models/text-embedding-ada-002.toml @@ -1,8 +1,8 @@ name = "Text Embedding Ada 002" description = "text-embedding-ada-002 is OpenAI's older general-purpose text embedding model with 1,536 output dimensions." family = "text-embedding" -release_date = "2026-01-09" -last_updated = "2026-01-09" +release_date = "2022-12-15" +last_updated = "2022-12-15" attachment = false reasoning = false temperature = false diff --git a/providers/eurouter/models/titan-embed-text-v1.toml b/providers/eurouter/models/titan-embed-text-v1.toml deleted file mode 100644 index 0184a96221..0000000000 --- a/providers/eurouter/models/titan-embed-text-v1.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Amazon Titan Embeddings G1 - Text" -description = "Amazon Titan Embeddings G1 - Text is a text embedding model available through Amazon Bedrock." -family = "titan-embed" -release_date = "2026-04-29" -last_updated = "2026-04-29" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = false - -[cost] -input = 0.2 -output = 0 -cache_read = 0 -cache_write = 0 - -[limit] -context = 8_000 -output = 8_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/titan-embed-text-v2.toml b/providers/eurouter/models/titan-embed-text-v2.toml deleted file mode 100644 index 5fcd0fb451..0000000000 --- a/providers/eurouter/models/titan-embed-text-v2.toml +++ /dev/null @@ -1,19 +0,0 @@ -name = "Amazon Titan Embeddings v2" -description = "Amazon Titan Embeddings v2 offers configurable embedding dimensions (256-1024) and improved multilingual support." -family = "titan-embed" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = false -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = false - -[limit] -context = 8_000 -output = 8_000 - -[modalities] -input = ["text"] -output = ["text"] diff --git a/providers/eurouter/models/titan-multimodal-embed.toml b/providers/eurouter/models/titan-multimodal-embed.toml deleted file mode 100644 index ad7f5cc3ed..0000000000 --- a/providers/eurouter/models/titan-multimodal-embed.toml +++ /dev/null @@ -1,19 +0,0 @@ -name = "Amazon Titan Multimodal Embeddings" -description = "Amazon Titan Multimodal Embeddings generates embeddings for both text and images for cross-modal search." -family = "titan" -release_date = "2026-02-01" -last_updated = "2026-02-01" -attachment = true -reasoning = false -temperature = false -tool_call = false -structured_output = false -open_weights = false - -[limit] -context = 8_000 -output = 8_000 - -[modalities] -input = ["text", "image"] -output = ["text"] diff --git a/providers/eurouter/models/voxtral-mini.toml b/providers/eurouter/models/voxtral-mini.toml deleted file mode 100644 index 357523753f..0000000000 --- a/providers/eurouter/models/voxtral-mini.toml +++ /dev/null @@ -1,25 +0,0 @@ -name = "Voxtral Mini" -description = "Low-latency speech recognition for edge and devices. Mini version of audio input model optimized for speed." -family = "voxtral" -release_date = "2026-01-20" -last_updated = "2026-01-20" -attachment = true -reasoning = false -temperature = true -tool_call = true -structured_output = true -open_weights = false - -[cost] -input = 0.04 -output = 0.04 -cache_read = 0 -cache_write = 0 - -[limit] -context = 32_000 -output = 32_000 - -[modalities] -input = ["audio", "text"] -output = ["text"] diff --git a/providers/eurouter/models/voxtral-small-24b.toml b/providers/eurouter/models/voxtral-small-24b.toml index 771295a4a4..d04cb4af57 100644 --- a/providers/eurouter/models/voxtral-small-24b.toml +++ b/providers/eurouter/models/voxtral-small-24b.toml @@ -1,8 +1,8 @@ name = "Voxtral Small 24B" description = "Voxtral Small 24B is Mistral AI's open audio-capable chat model for speech understanding and text generation." family = "voxtral" -release_date = "2025-12-08" -last_updated = "2025-12-08" +release_date = "2025-07-25" +last_updated = "2025-07-25" attachment = true reasoning = false temperature = true From eaab167701102d386e02c8d187bb93ffabe4d128 Mon Sep 17 00:00:00 2001 From: David Lo Dico Date: Sun, 12 Jul 2026 20:51:51 +0200 Subject: [PATCH 4/4] chore: sync complete EUrouter catalog --- .../eurouter/models/all-minilm-l6-v2.toml | 18 +++++++++++++ providers/eurouter/models/apertus-70b.toml | 18 +++++++++++++ .../models/cohere-embed-english-v3.toml | 25 ++++++++++++++++++ .../models/cohere-embed-multilingual-v3.toml | 25 ++++++++++++++++++ .../models/cosmos3-super-reasoner.toml | 26 +++++++++++++++++++ .../eurouter/models/deepseek-chat-v3.1.toml | 25 ++++++++++++++++++ providers/eurouter/models/deepseek-v3.1.toml | 25 ++++++++++++++++++ providers/eurouter/models/gemma-4.toml | 19 ++++++++++++++ .../eurouter/models/green-embedding.toml | 18 +++++++++++++ providers/eurouter/models/green-l-raw.toml | 18 +++++++++++++ providers/eurouter/models/green-l.toml | 18 +++++++++++++ providers/eurouter/models/green-r-raw.toml | 19 ++++++++++++++ providers/eurouter/models/green-r.toml | 19 ++++++++++++++ providers/eurouter/models/hermes-4-405b.toml | 25 ++++++++++++++++++ providers/eurouter/models/hermes-4-70b.toml | 25 ++++++++++++++++++ .../eurouter/models/inf-retriever-v1.toml | 18 +++++++++++++ providers/eurouter/models/intellect-3.toml | 25 ++++++++++++++++++ .../models/mixtral-8x7b-instruct.toml | 25 ++++++++++++++++++ .../multilingual-e5-large-instruct.toml | 18 +++++++++++++ providers/eurouter/models/nova-lite.toml | 25 ++++++++++++++++++ providers/eurouter/models/nova-micro.toml | 25 ++++++++++++++++++ providers/eurouter/models/nova-pro.toml | 25 ++++++++++++++++++ .../eurouter/models/qwen3-coder-next.toml | 18 +++++++++++++ .../models/qwen3-vl-235b-a22b-instruct.toml | 24 +++++++++++++++++ .../models/qwen3-vl-235b-a22b-thinking.toml | 19 ++++++++++++++ providers/eurouter/models/qwen3.6-35b.toml | 19 ++++++++++++++ .../eurouter/models/titan-embed-text-v1.toml | 25 ++++++++++++++++++ .../eurouter/models/titan-embed-text-v2.toml | 19 ++++++++++++++ .../models/titan-multimodal-embed.toml | 19 ++++++++++++++ 29 files changed, 627 insertions(+) create mode 100644 providers/eurouter/models/all-minilm-l6-v2.toml create mode 100644 providers/eurouter/models/apertus-70b.toml create mode 100644 providers/eurouter/models/cohere-embed-english-v3.toml create mode 100644 providers/eurouter/models/cohere-embed-multilingual-v3.toml create mode 100644 providers/eurouter/models/cosmos3-super-reasoner.toml create mode 100644 providers/eurouter/models/deepseek-chat-v3.1.toml create mode 100644 providers/eurouter/models/deepseek-v3.1.toml create mode 100644 providers/eurouter/models/gemma-4.toml create mode 100644 providers/eurouter/models/green-embedding.toml create mode 100644 providers/eurouter/models/green-l-raw.toml create mode 100644 providers/eurouter/models/green-l.toml create mode 100644 providers/eurouter/models/green-r-raw.toml create mode 100644 providers/eurouter/models/green-r.toml create mode 100644 providers/eurouter/models/hermes-4-405b.toml create mode 100644 providers/eurouter/models/hermes-4-70b.toml create mode 100644 providers/eurouter/models/inf-retriever-v1.toml create mode 100644 providers/eurouter/models/intellect-3.toml create mode 100644 providers/eurouter/models/mixtral-8x7b-instruct.toml create mode 100644 providers/eurouter/models/multilingual-e5-large-instruct.toml create mode 100644 providers/eurouter/models/nova-lite.toml create mode 100644 providers/eurouter/models/nova-micro.toml create mode 100644 providers/eurouter/models/nova-pro.toml create mode 100644 providers/eurouter/models/qwen3-coder-next.toml create mode 100644 providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml create mode 100644 providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml create mode 100644 providers/eurouter/models/qwen3.6-35b.toml create mode 100644 providers/eurouter/models/titan-embed-text-v1.toml create mode 100644 providers/eurouter/models/titan-embed-text-v2.toml create mode 100644 providers/eurouter/models/titan-multimodal-embed.toml diff --git a/providers/eurouter/models/all-minilm-l6-v2.toml b/providers/eurouter/models/all-minilm-l6-v2.toml new file mode 100644 index 0000000000..3a09039b85 --- /dev/null +++ b/providers/eurouter/models/all-minilm-l6-v2.toml @@ -0,0 +1,18 @@ +name = "All MiniLM L6 v2" +description = "all-MiniLM-L6-v2 is a compact sentence-transformers embedding model for fast English sentence and paragraph retrieval." +release_date = "2021-08-30" +last_updated = "2021-08-30" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[limit] +context = 256 +output = 256 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/apertus-70b.toml b/providers/eurouter/models/apertus-70b.toml new file mode 100644 index 0000000000..0ac3d6dd84 --- /dev/null +++ b/providers/eurouter/models/apertus-70b.toml @@ -0,0 +1,18 @@ +name = "Apertus 70B Instruct" +description = "Apertus 70B is a fully open multilingual model from the Swiss AI Initiative (ETH Zurich, EPFL, CSCS)." +release_date = "2025-09-02" +last_updated = "2025-09-02" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[limit] +context = 65_536 +output = 65_536 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/cohere-embed-english-v3.toml b/providers/eurouter/models/cohere-embed-english-v3.toml new file mode 100644 index 0000000000..3c2668f503 --- /dev/null +++ b/providers/eurouter/models/cohere-embed-english-v3.toml @@ -0,0 +1,25 @@ +name = "Cohere Embed English v3" +description = "Cohere Embed English v3 is an English text embedding model available through Amazon Bedrock." +family = "cohere-embed" +release_date = "2023-11-02" +last_updated = "2023-11-02" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.1 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 512 +output = 512 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/cohere-embed-multilingual-v3.toml b/providers/eurouter/models/cohere-embed-multilingual-v3.toml new file mode 100644 index 0000000000..963a173b8c --- /dev/null +++ b/providers/eurouter/models/cohere-embed-multilingual-v3.toml @@ -0,0 +1,25 @@ +name = "Cohere Embed Multilingual v3" +description = "Cohere Embed Multilingual v3 is a multilingual text embedding model available through Amazon Bedrock." +family = "cohere-embed" +release_date = "2023-11-02" +last_updated = "2023-11-02" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.1 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 512 +output = 512 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/cosmos3-super-reasoner.toml b/providers/eurouter/models/cosmos3-super-reasoner.toml new file mode 100644 index 0000000000..8eb0fe2b08 --- /dev/null +++ b/providers/eurouter/models/cosmos3-super-reasoner.toml @@ -0,0 +1,26 @@ +name = "Cosmos3 Super Reasoner" +description = "NVIDIA Cosmos3 Super Reasoner is a reasoning model for advanced chat, coding, and tool-assisted workloads." +release_date = "2026-05-31" +last_updated = "2026-05-31" +attachment = false +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = false +reasoning_options = [] + +[cost] +input = 0.1 +output = 0.3 +reasoning = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/deepseek-chat-v3.1.toml b/providers/eurouter/models/deepseek-chat-v3.1.toml new file mode 100644 index 0000000000..2b8212efce --- /dev/null +++ b/providers/eurouter/models/deepseek-chat-v3.1.toml @@ -0,0 +1,25 @@ +name = "DeepSeek Chat V3.1" +description = "DeepSeek Chat V3.1 is an upgraded DeepSeek V3 model with long-context chat, function calling, and optional reasoning support." +family = "deepseek" +release_date = "2025-08-21" +last_updated = "2025-08-21" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.2 +output = 0.8 +cache_read = 0 +cache_write = 0 + +[limit] +context = 164_000 +output = 163_840 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/deepseek-v3.1.toml b/providers/eurouter/models/deepseek-v3.1.toml new file mode 100644 index 0000000000..f5b4ebb361 --- /dev/null +++ b/providers/eurouter/models/deepseek-v3.1.toml @@ -0,0 +1,25 @@ +name = "DeepSeek V3.1" +description = "DeepSeek V3.1 is a mixture-of-experts chat model with strong coding and instruction-following capabilities." +family = "deepseek" +release_date = "2025-08-21" +last_updated = "2025-08-21" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.58 +output = 1.68 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 8_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/gemma-4.toml b/providers/eurouter/models/gemma-4.toml new file mode 100644 index 0000000000..115a0c362c --- /dev/null +++ b/providers/eurouter/models/gemma-4.toml @@ -0,0 +1,19 @@ +name = "Gemma 4" +description = "Gemma 4 is Google DeepMind's open model family built from Gemini 3 research and technology for high intelligence-per-parameter. The 31B variant offers long-context multimodal reasoning, function-calling support, multilingual understanding, and efficient deployment on personal hardware." +family = "gemma" +release_date = "2026-04-02" +last_updated = "2026-04-02" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[limit] +context = 256_000 +output = 256_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/green-embedding.toml b/providers/eurouter/models/green-embedding.toml new file mode 100644 index 0000000000..8fa8a8a569 --- /dev/null +++ b/providers/eurouter/models/green-embedding.toml @@ -0,0 +1,18 @@ +name = "Green Embedding" +description = "High-quality text embeddings for semantic search, similarity matching, and vector database operations. EU-hosted." +release_date = "2025-06-01" +last_updated = "2025-06-01" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/green-l-raw.toml b/providers/eurouter/models/green-l-raw.toml new file mode 100644 index 0000000000..619d4f2f01 --- /dev/null +++ b/providers/eurouter/models/green-l-raw.toml @@ -0,0 +1,18 @@ +name = "GreenL Raw" +description = "Large generative model with custom system prompt support. Provides more control over model behavior and responses. EU-hosted." +release_date = "2025-06-01" +last_updated = "2025-06-01" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/green-l.toml b/providers/eurouter/models/green-l.toml new file mode 100644 index 0000000000..205104a475 --- /dev/null +++ b/providers/eurouter/models/green-l.toml @@ -0,0 +1,18 @@ +name = "GreenL" +description = "Large generative model optimized for sustainability. Best for general conversations, content creation, and text analysis. Based on Mistral architecture, hosted entirely in the EU." +release_date = "2025-01-01" +last_updated = "2025-01-01" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/green-r-raw.toml b/providers/eurouter/models/green-r-raw.toml new file mode 100644 index 0000000000..94634d3826 --- /dev/null +++ b/providers/eurouter/models/green-r-raw.toml @@ -0,0 +1,19 @@ +name = "GreenR Raw" +description = "Reasoning model with custom system prompt support. Combines advanced reasoning capabilities with customizable behavior. EU-hosted." +release_date = "2025-08-01" +last_updated = "2025-08-01" +attachment = false +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = false +reasoning_options = [] + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/green-r.toml b/providers/eurouter/models/green-r.toml new file mode 100644 index 0000000000..ca9cc549cb --- /dev/null +++ b/providers/eurouter/models/green-r.toml @@ -0,0 +1,19 @@ +name = "GreenR" +description = "Reasoning model specialized in logical reasoning and problem-solving. Ideal for complex analytical tasks and mathematical problems. Based on GPT-OSS 120B, EU-hosted." +release_date = "2025-08-01" +last_updated = "2025-08-01" +attachment = false +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = false +reasoning_options = [] + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/hermes-4-405b.toml b/providers/eurouter/models/hermes-4-405b.toml new file mode 100644 index 0000000000..588323239f --- /dev/null +++ b/providers/eurouter/models/hermes-4-405b.toml @@ -0,0 +1,25 @@ +name = "Hermes 4 405B" +description = "NousResearch Hermes 4 405B is an open-weight language model for instruction following, chat, tool use, and reasoning-oriented workflows." +family = "hermes" +release_date = "2025-08-26" +last_updated = "2025-08-26" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 1 +output = 3 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/hermes-4-70b.toml b/providers/eurouter/models/hermes-4-70b.toml new file mode 100644 index 0000000000..b02722f985 --- /dev/null +++ b/providers/eurouter/models/hermes-4-70b.toml @@ -0,0 +1,25 @@ +name = "Hermes 4 70B" +description = "NousResearch Hermes 4 70B is an open-weight language model for instruction following, chat, tool use, and reasoning-oriented workflows." +family = "hermes" +release_date = "2025-08-26" +last_updated = "2025-08-26" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.13 +output = 0.4 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/inf-retriever-v1.toml b/providers/eurouter/models/inf-retriever-v1.toml new file mode 100644 index 0000000000..24e1784a08 --- /dev/null +++ b/providers/eurouter/models/inf-retriever-v1.toml @@ -0,0 +1,18 @@ +name = "INF Retriever v1" +description = "INF Retriever v1 is INF Tech's LLM-based dense retrieval embedding model, optimized for English and Chinese retrieval." +release_date = "2024-12-23" +last_updated = "2024-12-23" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[limit] +context = 32_768 +output = 32_768 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/intellect-3.toml b/providers/eurouter/models/intellect-3.toml new file mode 100644 index 0000000000..c0a973998c --- /dev/null +++ b/providers/eurouter/models/intellect-3.toml @@ -0,0 +1,25 @@ +name = "INTELLECT-3" +description = "Prime Intellect INTELLECT-3 is an open model for reasoning, code, tool-use, and context-augmented chat workloads." +family = "intellect" +release_date = "2025-11-26" +last_updated = "2025-11-26" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[cost] +input = 0.2 +output = 1.1 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_072 +output = 131_072 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/mixtral-8x7b-instruct.toml b/providers/eurouter/models/mixtral-8x7b-instruct.toml new file mode 100644 index 0000000000..061121be4c --- /dev/null +++ b/providers/eurouter/models/mixtral-8x7b-instruct.toml @@ -0,0 +1,25 @@ +name = "Mixtral 8x7B Instruct" +description = "Mixtral 8x7B Instruct is Mistral AI's sparse mixture-of-experts instruction model." +family = "mixtral" +release_date = "2023-12-11" +last_updated = "2023-12-11" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.49 +output = 0.76 +cache_read = 0 +cache_write = 0 + +[limit] +context = 32_000 +output = 32_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/multilingual-e5-large-instruct.toml b/providers/eurouter/models/multilingual-e5-large-instruct.toml new file mode 100644 index 0000000000..b5cd48dbee --- /dev/null +++ b/providers/eurouter/models/multilingual-e5-large-instruct.toml @@ -0,0 +1,18 @@ +name = "Multilingual E5 Large Instruct" +description = "Multilingual E5 Large Instruct is an instruction-tuned multilingual embedding model for retrieval across ~100 languages." +release_date = "2024-02-08" +last_updated = "2024-02-08" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = true + +[limit] +context = 8_192 +output = 8_192 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/nova-lite.toml b/providers/eurouter/models/nova-lite.toml new file mode 100644 index 0000000000..530496b84b --- /dev/null +++ b/providers/eurouter/models/nova-lite.toml @@ -0,0 +1,25 @@ +name = "Amazon Nova Lite" +description = "Amazon Nova Lite is a multimodal model supporting text, images, and video with low-latency responses." +family = "nova-lite" +release_date = "2024-12-03" +last_updated = "2024-12-03" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 0.06 +output = 0.24 +cache_read = 0 +cache_write = 0 + +[limit] +context = 300_000 +output = 300_000 + +[modalities] +input = ["text", "image", "video"] +output = ["text"] diff --git a/providers/eurouter/models/nova-micro.toml b/providers/eurouter/models/nova-micro.toml new file mode 100644 index 0000000000..3b9296f167 --- /dev/null +++ b/providers/eurouter/models/nova-micro.toml @@ -0,0 +1,25 @@ +name = "Amazon Nova Micro" +description = "Amazon Nova Micro is the fastest and most cost-effective Nova model, optimized for simple text tasks." +family = "nova-micro" +release_date = "2024-12-03" +last_updated = "2024-12-03" +attachment = false +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.035 +output = 0.14 +cache_read = 0 +cache_write = 0 + +[limit] +context = 128_000 +output = 128_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/nova-pro.toml b/providers/eurouter/models/nova-pro.toml new file mode 100644 index 0000000000..8b1128fa7e --- /dev/null +++ b/providers/eurouter/models/nova-pro.toml @@ -0,0 +1,25 @@ +name = "Amazon Nova Pro" +description = "Amazon Nova Pro is a highly capable multimodal model balancing performance and cost for complex tasks." +family = "nova-pro" +release_date = "2024-12-03" +last_updated = "2024-12-03" +attachment = true +reasoning = false +temperature = true +tool_call = true +structured_output = false +open_weights = false + +[cost] +input = 0.8 +output = 3.2 +cache_read = 0 +cache_write = 0 + +[limit] +context = 300_000 +output = 300_000 + +[modalities] +input = ["text", "image", "video"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-coder-next.toml b/providers/eurouter/models/qwen3-coder-next.toml new file mode 100644 index 0000000000..9a96a121c6 --- /dev/null +++ b/providers/eurouter/models/qwen3-coder-next.toml @@ -0,0 +1,18 @@ +name = "Qwen3 Coder Next" +description = "Qwen3 Coder Next is Alibaba's Qwen3 coding model for software engineering and agentic code tasks." +release_date = "2026-02-03" +last_updated = "2026-02-03" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = false + +[limit] +context = 256_000 +output = 256_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml b/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml new file mode 100644 index 0000000000..53080a7d88 --- /dev/null +++ b/providers/eurouter/models/qwen3-vl-235b-a22b-instruct.toml @@ -0,0 +1,24 @@ +name = "Qwen3 VL 235B A22B Instruct" +description = "Qwen3 VL 235B A22B Instruct is Alibaba's vision-language Mixture-of-Experts model for multimodal understanding and chat." +release_date = "2025-09-23" +last_updated = "2025-09-23" +attachment = true +reasoning = false +temperature = true +tool_call = false +structured_output = false +open_weights = true + +[cost] +input = 0.21 +output = 1.9 +cache_read = 0 +cache_write = 0 + +[limit] +context = 131_000 +output = 131_000 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml b/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml new file mode 100644 index 0000000000..d5a83c814a --- /dev/null +++ b/providers/eurouter/models/qwen3-vl-235b-a22b-thinking.toml @@ -0,0 +1,19 @@ +name = "Qwen3 VL 235B A22B Thinking" +description = "Qwen3 VL 235B A22B Thinking is Alibaba's reasoning vision-language Mixture-of-Experts model for complex multimodal analysis." +release_date = "2025-09-23" +last_updated = "2025-09-23" +attachment = true +reasoning = true +temperature = true +tool_call = true +structured_output = true +open_weights = true +reasoning_options = [] + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text", "image"] +output = ["text"] diff --git a/providers/eurouter/models/qwen3.6-35b.toml b/providers/eurouter/models/qwen3.6-35b.toml new file mode 100644 index 0000000000..ae4073db84 --- /dev/null +++ b/providers/eurouter/models/qwen3.6-35b.toml @@ -0,0 +1,19 @@ +name = "Qwen3.6 35B" +description = "Qwen3.6 35B is Alibaba's Qwen3.6-series model for multilingual chat, reasoning, and tool use." +family = "qwen3.6" +release_date = "2026-04-16" +last_updated = "2026-04-16" +attachment = false +reasoning = false +temperature = true +tool_call = true +structured_output = true +open_weights = true + +[limit] +context = 262_144 +output = 262_144 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/titan-embed-text-v1.toml b/providers/eurouter/models/titan-embed-text-v1.toml new file mode 100644 index 0000000000..b40354e9f0 --- /dev/null +++ b/providers/eurouter/models/titan-embed-text-v1.toml @@ -0,0 +1,25 @@ +name = "Amazon Titan Embeddings G1 - Text" +description = "Amazon Titan Embeddings G1 - Text is a text embedding model available through Amazon Bedrock." +family = "titan-embed" +release_date = "2023-09-28" +last_updated = "2023-09-28" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[cost] +input = 0.2 +output = 0 +cache_read = 0 +cache_write = 0 + +[limit] +context = 8_000 +output = 8_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/titan-embed-text-v2.toml b/providers/eurouter/models/titan-embed-text-v2.toml new file mode 100644 index 0000000000..00b6589a90 --- /dev/null +++ b/providers/eurouter/models/titan-embed-text-v2.toml @@ -0,0 +1,19 @@ +name = "Amazon Titan Embeddings v2" +description = "Amazon Titan Embeddings v2 offers configurable embedding dimensions (256-1024) and improved multilingual support." +family = "titan-embed" +release_date = "2024-04-30" +last_updated = "2024-04-30" +attachment = false +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[limit] +context = 8_000 +output = 8_000 + +[modalities] +input = ["text"] +output = ["text"] diff --git a/providers/eurouter/models/titan-multimodal-embed.toml b/providers/eurouter/models/titan-multimodal-embed.toml new file mode 100644 index 0000000000..7656335233 --- /dev/null +++ b/providers/eurouter/models/titan-multimodal-embed.toml @@ -0,0 +1,19 @@ +name = "Amazon Titan Multimodal Embeddings" +description = "Amazon Titan Multimodal Embeddings generates embeddings for both text and images for cross-modal search." +family = "titan" +release_date = "2023-11-29" +last_updated = "2023-11-29" +attachment = true +reasoning = false +temperature = false +tool_call = false +structured_output = false +open_weights = false + +[limit] +context = 8_000 +output = 8_000 + +[modalities] +input = ["text", "image"] +output = ["text"]