Merge remote-tracking branch 'origin/main' into aihubmix

Carlos Alexandro Becker created

Change summary

internal/providers/configs/openrouter.json | 217 ++++++++++++++---------
internal/providers/configs/vercel.json     |  78 +++-----
2 files changed, 163 insertions(+), 132 deletions(-)

Detailed changes

internal/providers/configs/openrouter.json 🔗

@@ -148,8 +148,8 @@
       "name": "Anthropic: Claude 3.5 Sonnet",
       "cost_per_1m_in": 6,
       "cost_per_1m_out": 30,
-      "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0,
+      "cost_per_1m_in_cached": 7.5,
+      "cost_per_1m_out_cached": 0.6,
       "context_window": 200000,
       "default_max_tokens": 4096,
       "can_reason": false,
@@ -418,7 +418,7 @@
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 262144,
-      "default_max_tokens": 8192,
+      "default_max_tokens": 16384,
       "can_reason": true,
       "reasoning_levels": [
         "low",
@@ -547,12 +547,12 @@
     {
       "id": "deepseek/deepseek-chat-v3.1",
       "name": "DeepSeek: DeepSeek V3.1",
-      "cost_per_1m_in": 0.19999999999999998,
-      "cost_per_1m_out": 0.7999999999999999,
+      "cost_per_1m_in": 0.21,
+      "cost_per_1m_out": 0.7899999999999999,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0,
+      "cost_per_1m_out_cached": 0.16799999999999998,
       "context_window": 163840,
-      "default_max_tokens": 32768,
+      "default_max_tokens": 16384,
       "can_reason": true,
       "reasoning_levels": [
         "low",
@@ -604,12 +604,12 @@
     {
       "id": "deepseek/deepseek-v3.2",
       "name": "DeepSeek: DeepSeek V3.2",
-      "cost_per_1m_in": 0.56,
-      "cost_per_1m_out": 1.68,
+      "cost_per_1m_in": 0.26,
+      "cost_per_1m_out": 0.39,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0,
+      "cost_per_1m_out_cached": 0.13,
       "context_window": 163840,
-      "default_max_tokens": 32768,
+      "default_max_tokens": 16384,
       "can_reason": true,
       "reasoning_levels": [
         "low",
@@ -623,8 +623,8 @@
     {
       "id": "deepseek/deepseek-v3.2-exp",
       "name": "DeepSeek: DeepSeek V3.2 Exp",
-      "cost_per_1m_in": 0.21,
-      "cost_per_1m_out": 0.32,
+      "cost_per_1m_in": 0.27,
+      "cost_per_1m_out": 0.41,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 163840,
@@ -677,12 +677,31 @@
       "supports_attachments": false,
       "options": {}
     },
+    {
+      "id": "deepseek/deepseek-r1-distill-llama-70b",
+      "name": "DeepSeek: R1 Distill Llama 70B",
+      "cost_per_1m_in": 0.03,
+      "cost_per_1m_out": 0.11,
+      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 131072,
+      "default_max_tokens": 65536,
+      "can_reason": true,
+      "reasoning_levels": [
+        "low",
+        "medium",
+        "high"
+      ],
+      "default_reasoning_effort": "medium",
+      "supports_attachments": false,
+      "options": {}
+    },
     {
       "id": "google/gemini-2.0-flash-001",
       "name": "Google: Gemini 2.0 Flash",
       "cost_per_1m_in": 0.09999999999999999,
       "cost_per_1m_out": 0.39999999999999997,
-      "cost_per_1m_in_cached": 0.0833,
+      "cost_per_1m_in_cached": 0.08333333333333333,
       "cost_per_1m_out_cached": 0.024999999999999998,
       "context_window": 1048576,
       "default_max_tokens": 4096,
@@ -693,10 +712,10 @@
     {
       "id": "google/gemini-2.0-flash-exp:free",
       "name": "Google: Gemini 2.0 Flash Experimental (free)",
-      "cost_per_1m_in": 0,
-      "cost_per_1m_out": 0,
-      "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0,
+      "cost_per_1m_in": 0.09999999999999999,
+      "cost_per_1m_out": 0.39999999999999997,
+      "cost_per_1m_in_cached": 0.08333333333333333,
+      "cost_per_1m_out_cached": 0.024999999999999998,
       "context_window": 1048576,
       "default_max_tokens": 4096,
       "can_reason": false,
@@ -721,7 +740,7 @@
       "name": "Google: Gemini 2.5 Flash",
       "cost_per_1m_in": 0.3,
       "cost_per_1m_out": 2.5,
-      "cost_per_1m_in_cached": 0.08333333333333334,
+      "cost_per_1m_in_cached": 0.08333333333333333,
       "cost_per_1m_out_cached": 0.03,
       "context_window": 1048576,
       "default_max_tokens": 32767,
@@ -740,7 +759,7 @@
       "name": "Google: Gemini 2.5 Flash Lite",
       "cost_per_1m_in": 0.09999999999999999,
       "cost_per_1m_out": 0.39999999999999997,
-      "cost_per_1m_in_cached": 0.0833,
+      "cost_per_1m_in_cached": 0.08333333333333333,
       "cost_per_1m_out_cached": 0.01,
       "context_window": 1048576,
       "default_max_tokens": 32767,
@@ -759,7 +778,7 @@
       "name": "Google: Gemini 2.5 Flash Lite Preview 09-2025",
       "cost_per_1m_in": 0.09999999999999999,
       "cost_per_1m_out": 0.39999999999999997,
-      "cost_per_1m_in_cached": 0.0833,
+      "cost_per_1m_in_cached": 0.08333333333333333,
       "cost_per_1m_out_cached": 0.01,
       "context_window": 1048576,
       "default_max_tokens": 32768,
@@ -778,8 +797,8 @@
       "name": "Google: Gemini 2.5 Flash Preview 09-2025",
       "cost_per_1m_in": 0.3,
       "cost_per_1m_out": 2.5,
-      "cost_per_1m_in_cached": 0.0833,
-      "cost_per_1m_out_cached": 0.075,
+      "cost_per_1m_in_cached": 0.08333333333333333,
+      "cost_per_1m_out_cached": 0.03,
       "context_window": 1048576,
       "default_max_tokens": 32767,
       "can_reason": true,
@@ -854,10 +873,10 @@
       "name": "Google: Gemini 3 Flash Preview",
       "cost_per_1m_in": 0.5,
       "cost_per_1m_out": 3,
-      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_in_cached": 0.08333333333333333,
       "cost_per_1m_out_cached": 0.049999999999999996,
       "context_window": 1048576,
-      "default_max_tokens": 32768,
+      "default_max_tokens": 32767,
       "can_reason": true,
       "reasoning_levels": [
         "low",
@@ -900,6 +919,19 @@
       "supports_attachments": true,
       "options": {}
     },
+    {
+      "id": "google/gemma-3-27b-it:free",
+      "name": "Google: Gemma 3 27B (free)",
+      "cost_per_1m_in": 0,
+      "cost_per_1m_out": 0,
+      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 128000,
+      "default_max_tokens": 12800,
+      "can_reason": false,
+      "supports_attachments": true,
+      "options": {}
+    },
     {
       "id": "inception/mercury",
       "name": "Inception: Mercury",
@@ -972,8 +1004,8 @@
       "cost_per_1m_out": 0,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
-      "context_window": 131072,
-      "default_max_tokens": 13107,
+      "context_window": 128000,
+      "default_max_tokens": 12800,
       "can_reason": false,
       "supports_attachments": false,
       "options": {}
@@ -981,12 +1013,12 @@
     {
       "id": "meta-llama/llama-4-maverick",
       "name": "Meta: Llama 4 Maverick",
-      "cost_per_1m_in": 0.27,
-      "cost_per_1m_out": 0.85,
+      "cost_per_1m_in": 0.35,
+      "cost_per_1m_out": 1.15,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
-      "context_window": 1048576,
-      "default_max_tokens": 104857,
+      "context_window": 524288,
+      "default_max_tokens": 4096,
       "can_reason": false,
       "supports_attachments": true,
       "options": {}
@@ -1007,10 +1039,10 @@
     {
       "id": "minimax/minimax-m2",
       "name": "MiniMax: MiniMax M2",
-      "cost_per_1m_in": 0.3,
-      "cost_per_1m_out": 1.2,
-      "cost_per_1m_in_cached": 0.375,
-      "cost_per_1m_out_cached": 0.03,
+      "cost_per_1m_in": 0.255,
+      "cost_per_1m_out": 1.02,
+      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_out_cached": 0,
       "context_window": 204800,
       "default_max_tokens": 65536,
       "can_reason": true,
@@ -1289,19 +1321,6 @@
       "supports_attachments": false,
       "options": {}
     },
-    {
-      "id": "mistralai/mistral-small-3.1-24b-instruct",
-      "name": "Mistral: Mistral Small 3.1 24B",
-      "cost_per_1m_in": 0.03,
-      "cost_per_1m_out": 0.11,
-      "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0,
-      "context_window": 131072,
-      "default_max_tokens": 65536,
-      "can_reason": false,
-      "supports_attachments": true,
-      "options": {}
-    },
     {
       "id": "mistralai/mistral-small-3.1-24b-instruct:free",
       "name": "Mistral: Mistral Small 3.1 24B (free)",
@@ -1409,12 +1428,12 @@
     {
       "id": "moonshotai/kimi-k2",
       "name": "MoonshotAI: Kimi K2 0711",
-      "cost_per_1m_in": 0.5,
-      "cost_per_1m_out": 2.4,
+      "cost_per_1m_in": 0.5700000000000001,
+      "cost_per_1m_out": 2.3,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 131072,
-      "default_max_tokens": 13107,
+      "default_max_tokens": 65536,
       "can_reason": false,
       "supports_attachments": false,
       "options": {}
@@ -1435,12 +1454,12 @@
     {
       "id": "moonshotai/kimi-k2-0905:exacto",
       "name": "MoonshotAI: Kimi K2 0905 (exacto)",
-      "cost_per_1m_in": 1.15,
-      "cost_per_1m_out": 8,
+      "cost_per_1m_in": 1,
+      "cost_per_1m_out": 3,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0.15,
+      "cost_per_1m_out_cached": 0,
       "context_window": 262144,
-      "default_max_tokens": 26214,
+      "default_max_tokens": 8192,
       "can_reason": false,
       "supports_attachments": false,
       "options": {}
@@ -1623,6 +1642,25 @@
       "supports_attachments": false,
       "options": {}
     },
+    {
+      "id": "nousresearch/hermes-4-70b",
+      "name": "Nous: Hermes 4 70B",
+      "cost_per_1m_in": 0.11,
+      "cost_per_1m_out": 0.38,
+      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 131072,
+      "default_max_tokens": 65536,
+      "can_reason": true,
+      "reasoning_levels": [
+        "low",
+        "medium",
+        "high"
+      ],
+      "default_reasoning_effort": "medium",
+      "supports_attachments": false,
+      "options": {}
+    },
     {
       "id": "openai/gpt-4-turbo",
       "name": "OpenAI: GPT-4 Turbo",
@@ -1887,9 +1925,9 @@
       "cost_per_1m_in": 0.25,
       "cost_per_1m_out": 2,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0.024999999999999998,
+      "cost_per_1m_out_cached": 0.03,
       "context_window": 400000,
-      "default_max_tokens": 64000,
+      "default_max_tokens": 40000,
       "can_reason": true,
       "reasoning_levels": [
         "low",
@@ -1906,9 +1944,9 @@
       "cost_per_1m_in": 0.049999999999999996,
       "cost_per_1m_out": 0.39999999999999997,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0.005,
+      "cost_per_1m_out_cached": 0.01,
       "context_window": 400000,
-      "default_max_tokens": 64000,
+      "default_max_tokens": 40000,
       "can_reason": true,
       "reasoning_levels": [
         "low",
@@ -2157,12 +2195,12 @@
     {
       "id": "openai/gpt-oss-20b",
       "name": "OpenAI: gpt-oss-20b",
-      "cost_per_1m_in": 0.02,
-      "cost_per_1m_out": 0.09999999999999999,
+      "cost_per_1m_in": 0.04,
+      "cost_per_1m_out": 0.15,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 131072,
-      "default_max_tokens": 65536,
+      "default_max_tokens": 13107,
       "can_reason": true,
       "reasoning_levels": [
         "low",
@@ -2566,8 +2604,8 @@
     {
       "id": "qwen/qwen3-30b-a3b",
       "name": "Qwen: Qwen3 30B A3B",
-      "cost_per_1m_in": 0.15,
-      "cost_per_1m_out": 0.6,
+      "cost_per_1m_in": 0.09,
+      "cost_per_1m_out": 0.44999999999999996,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 131072,
@@ -2668,12 +2706,12 @@
     {
       "id": "qwen/qwen3-coder",
       "name": "Qwen: Qwen3 Coder 480B A35B",
-      "cost_per_1m_in": 0.22,
-      "cost_per_1m_out": 0.95,
+      "cost_per_1m_in": 0.28,
+      "cost_per_1m_out": 1.2,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 262144,
-      "default_max_tokens": 131072,
+      "default_max_tokens": 26214,
       "can_reason": false,
       "supports_attachments": false,
       "options": {}
@@ -2746,8 +2784,8 @@
     {
       "id": "qwen/qwen3-next-80b-a3b-instruct",
       "name": "Qwen: Qwen3 Next 80B A3B Instruct",
-      "cost_per_1m_in": 0.14,
-      "cost_per_1m_out": 1.4,
+      "cost_per_1m_in": 0.09999999999999999,
+      "cost_per_1m_out": 0.7999999999999999,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 262144,
@@ -2772,8 +2810,8 @@
     {
       "id": "qwen/qwen3-next-80b-a3b-thinking",
       "name": "Qwen: Qwen3 Next 80B A3B Thinking",
-      "cost_per_1m_in": 0.15,
-      "cost_per_1m_out": 1.2,
+      "cost_per_1m_in": 0.3,
+      "cost_per_1m_out": 0.3,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 262144,
@@ -2801,6 +2839,19 @@
       "supports_attachments": true,
       "options": {}
     },
+    {
+      "id": "qwen/qwen3-vl-30b-a3b-instruct",
+      "name": "Qwen: Qwen3 VL 30B A3B Instruct",
+      "cost_per_1m_in": 0.15,
+      "cost_per_1m_out": 0.6,
+      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 262144,
+      "default_max_tokens": 26214,
+      "can_reason": false,
+      "supports_attachments": true,
+      "options": {}
+    },
     {
       "id": "qwen/qwen3-vl-30b-a3b-thinking",
       "name": "Qwen: Qwen3 VL 30B A3B Thinking",
@@ -3211,10 +3262,10 @@
     {
       "id": "x-ai/grok-3",
       "name": "xAI: Grok 3",
-      "cost_per_1m_in": 3,
-      "cost_per_1m_out": 15,
+      "cost_per_1m_in": 5,
+      "cost_per_1m_out": 25,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0.75,
+      "cost_per_1m_out_cached": 1.25,
       "context_window": 131072,
       "default_max_tokens": 13107,
       "can_reason": false,
@@ -3224,10 +3275,10 @@
     {
       "id": "x-ai/grok-3-beta",
       "name": "xAI: Grok 3 Beta",
-      "cost_per_1m_in": 3,
-      "cost_per_1m_out": 15,
+      "cost_per_1m_in": 5,
+      "cost_per_1m_out": 25,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0.75,
+      "cost_per_1m_out_cached": 1.25,
       "context_window": 131072,
       "default_max_tokens": 13107,
       "can_reason": false,
@@ -3237,10 +3288,10 @@
     {
       "id": "x-ai/grok-3-mini",
       "name": "xAI: Grok 3 Mini",
-      "cost_per_1m_in": 0.3,
-      "cost_per_1m_out": 0.5,
+      "cost_per_1m_in": 0.6,
+      "cost_per_1m_out": 4,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0.075,
+      "cost_per_1m_out_cached": 0.15,
       "context_window": 131072,
       "default_max_tokens": 13107,
       "can_reason": true,
@@ -3256,10 +3307,10 @@
     {
       "id": "x-ai/grok-3-mini-beta",
       "name": "xAI: Grok 3 Mini Beta",
-      "cost_per_1m_in": 0.3,
-      "cost_per_1m_out": 0.5,
+      "cost_per_1m_in": 0.6,
+      "cost_per_1m_out": 4,
       "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0.075,
+      "cost_per_1m_out_cached": 0.15,
       "context_window": 131072,
       "default_max_tokens": 13107,
       "can_reason": true,

internal/providers/configs/vercel.json 🔗

@@ -20,19 +20,6 @@
       "supports_attachments": true,
       "options": {}
     },
-    {
-      "id": "anthropic/claude-3-opus",
-      "name": "Claude 3 Opus",
-      "cost_per_1m_in": 15,
-      "cost_per_1m_out": 75,
-      "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0,
-      "context_window": 200000,
-      "default_max_tokens": 8000,
-      "can_reason": false,
-      "supports_attachments": true,
-      "options": {}
-    },
     {
       "id": "anthropic/claude-3.5-haiku",
       "name": "Claude 3.5 Haiku",
@@ -174,7 +161,7 @@
       "cost_per_1m_out": 15,
       "cost_per_1m_in_cached": 0.3,
       "cost_per_1m_out_cached": 3.75,
-      "context_window": 200000,
+      "context_window": 1000000,
       "default_max_tokens": 8000,
       "can_reason": true,
       "reasoning_levels": [
@@ -193,7 +180,7 @@
       "cost_per_1m_out": 15,
       "cost_per_1m_in_cached": 0.3,
       "cost_per_1m_out_cached": 3.75,
-      "context_window": 200000,
+      "context_window": 1000000,
       "default_max_tokens": 8000,
       "can_reason": true,
       "reasoning_levels": [
@@ -370,7 +357,7 @@
       "name": "GLM 4.5 Air",
       "cost_per_1m_in": 0.19999999999999998,
       "cost_per_1m_out": 1.1,
-      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_in_cached": 0.03,
       "cost_per_1m_out_cached": 0,
       "context_window": 128000,
       "default_max_tokens": 8000,
@@ -441,6 +428,25 @@
       "supports_attachments": false,
       "options": {}
     },
+    {
+      "id": "zai/glm-4.7-flashx",
+      "name": "GLM 4.7 FlashX",
+      "cost_per_1m_in": 0.06,
+      "cost_per_1m_out": 0.39999999999999997,
+      "cost_per_1m_in_cached": 0.01,
+      "cost_per_1m_out_cached": 0,
+      "context_window": 200000,
+      "default_max_tokens": 8000,
+      "can_reason": true,
+      "reasoning_levels": [
+        "low",
+        "medium",
+        "high"
+      ],
+      "default_reasoning_effort": "medium",
+      "supports_attachments": false,
+      "options": {}
+    },
     {
       "id": "zai/glm-4.5",
       "name": "GLM-4.5",
@@ -861,38 +867,12 @@
       "supports_attachments": true,
       "options": {}
     },
-    {
-      "id": "google/gemini-2.0-flash",
-      "name": "Gemini 2.0 Flash",
-      "cost_per_1m_in": 0.09999999999999999,
-      "cost_per_1m_out": 0.39999999999999997,
-      "cost_per_1m_in_cached": 0.024999999999999998,
-      "cost_per_1m_out_cached": 0,
-      "context_window": 1000000,
-      "default_max_tokens": 8000,
-      "can_reason": false,
-      "supports_attachments": true,
-      "options": {}
-    },
-    {
-      "id": "google/gemini-2.0-flash-lite",
-      "name": "Gemini 2.0 Flash Lite",
-      "cost_per_1m_in": 0.075,
-      "cost_per_1m_out": 0.3,
-      "cost_per_1m_in_cached": 0,
-      "cost_per_1m_out_cached": 0,
-      "context_window": 1048576,
-      "default_max_tokens": 8000,
-      "can_reason": false,
-      "supports_attachments": true,
-      "options": {}
-    },
     {
       "id": "google/gemini-2.5-flash",
       "name": "Gemini 2.5 Flash",
       "cost_per_1m_in": 0.3,
       "cost_per_1m_out": 2.5,
-      "cost_per_1m_in_cached": 0.03,
+      "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 1000000,
       "default_max_tokens": 8000,
@@ -903,7 +883,7 @@
         "high"
       ],
       "default_reasoning_effort": "medium",
-      "supports_attachments": true,
+      "supports_attachments": false,
       "options": {}
     },
     {
@@ -968,7 +948,7 @@
       "name": "Gemini 2.5 Pro",
       "cost_per_1m_in": 1.25,
       "cost_per_1m_out": 10,
-      "cost_per_1m_in_cached": 0.125,
+      "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 1048576,
       "default_max_tokens": 8000,
@@ -979,7 +959,7 @@
         "high"
       ],
       "default_reasoning_effort": "medium",
-      "supports_attachments": true,
+      "supports_attachments": false,
       "options": {}
     },
     {
@@ -1409,8 +1389,8 @@
     {
       "id": "xiaomi/mimo-v2-flash",
       "name": "MiMo V2 Flash",
-      "cost_per_1m_in": 0.098,
-      "cost_per_1m_out": 0.293,
+      "cost_per_1m_in": 0.09,
+      "cost_per_1m_out": 0.29,
       "cost_per_1m_in_cached": 0,
       "cost_per_1m_out_cached": 0,
       "context_window": 262144,
@@ -1699,7 +1679,7 @@
       "name": "Qwen3 Coder Plus",
       "cost_per_1m_in": 1,
       "cost_per_1m_out": 5,
-      "cost_per_1m_in_cached": 0,
+      "cost_per_1m_in_cached": 0.19999999999999998,
       "cost_per_1m_out_cached": 0,
       "context_window": 1000000,
       "default_max_tokens": 8000,