@clinebot/llms 0.0.15 → 0.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.browser.js +14 -14
- package/dist/index.js +12 -12
- package/package.json +2 -2
- package/src/live-providers.test.ts +9 -9
- package/src/models/generated.ts +15 -1
package/dist/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import{createRequire as Ic}from"node:module";var Hc=Object.defineProperty;var Jc=(e)=>e;function Zc(e,t){this[e]=Jc.bind(null,t)}var x=(e,t)=>{for(var i in t)Hc(e,i,{get:t[i],enumerable:!0,configurable:!0,set:Zc.bind(t,i)})};var W=(e,t)=>()=>(e&&(t=e(e=0)),t);var ji=Ic(import.meta.url);var zi;var qn=W(()=>{zi={version:1774472249946,providers:{aihubmix:{"claude-sonnet-4-6":{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"claude-sonnet-4-6-think":{id:"claude-sonnet-4-6-think",name:"Claude Sonnet 4.6 Think",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"qwen3.5-plus":{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",contextWindow:1e6,maxTokens:65536,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.11,output:0.66,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-16"},"minimax-m2.5":{id:"minimax-m2.5",name:"MiniMax-M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.29,output:1.15,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-12"},"coding-glm-5-free":{id:"coding-glm-5-free",name:"Coding-GLM-5-Free",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-11"},"glm-5":{id:"glm-5",name:"GLM-5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.88,output:2.82,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-11"},"claude-opus-4-6":{id:"claude-opus-4-6",name:"Claude Opus 4.6",contextWindow:200000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-05"},"claude-opus-4-6-think":{id:"claude-opus-4-6-think",name:"Claude Opus 4.6 Think",contextWindow:200000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-05"},"qwen3-coder-next":{id:"qwen3-coder-next",name:"Qwen3 Coder Next",contextWindow:262144,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0.14,output:0.55,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-04"},"kimi-k2.5":{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01-27"},"gpt-5.2-codex":{id:"gpt-5.2-codex",name:"GPT-5.2-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-01-14"},"coding-minimax-m2.1-free":{id:"coding-minimax-m2.1-free",name:"Coding MiniMax M2.1 Free",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"minimax-m2.1":{id:"minimax-m2.1",name:"MiniMax M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.29,output:1.15,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"coding-glm-4.7":{id:"coding-glm-4.7",name:"Coding-GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:1.1,cacheRead:0.548,cacheWrite:0},releaseDate:"2025-12-22"},"coding-glm-4.7-free":{id:"coding-glm-4.7-free",name:"Coding GLM 4.7 Free",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-22"},"glm-4.7":{id:"glm-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:1.1,cacheRead:0.548,cacheWrite:0},releaseDate:"2025-12-22"},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"glm-4.6v":{id:"glm-4.6v",name:"GLM-4.6V",contextWindow:128000,maxTokens:32768,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.14,output:0.41,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-08"},"deepseek-v3.2":{id:"deepseek-v3.2",name:"DeepSeek-V3.2",contextWindow:131000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.45,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"deepseek-v3.2-think":{id:"deepseek-v3.2-think",name:"DeepSeek-V3.2-Think",contextWindow:131000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.45,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"claude-opus-4-5":{id:"claude-opus-4-5",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:32000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-25"},"gemini-3-pro-preview":{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1e6,maxTokens:65000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-11-19"},"gemini-3-pro-preview-search":{id:"gemini-3-pro-preview-search",name:"Gemini 3 Pro Preview Search",contextWindow:1e6,maxTokens:65000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-11-19"},"gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-15"},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-11-15"},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.25,output:2,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-11-15"},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1-Codex-Max",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"claude-haiku-4-5":{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.1,output:5.5,cacheRead:0.11,cacheWrite:1.25},releaseDate:"2025-09-29"},"claude-sonnet-4-5":{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3.3,output:16.5,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"qwen3-max-2026-01-23":{id:"qwen3-max-2026-01-23",name:"Qwen3 Max",contextWindow:262144,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0.34,output:1.37,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-23"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1e6,maxTokens:65000,capabilities:["images","tools","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0.02,cacheWrite:0},releaseDate:"2025-09-15"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:2000000,maxTokens:65000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.25,output:5,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5":{id:"gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:5,output:20,cacheRead:2.5,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5-codex":{id:"gpt-5-codex",name:"GPT-5-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5-Mini",contextWindow:200000,maxTokens:64000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.5,output:6,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5-Nano",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.5,output:2,cacheRead:0.25,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5-Pro",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:7,output:28,cacheRead:3.5,cacheWrite:0},releaseDate:"2025-09-15"},"Kimi-K2-0905":{id:"Kimi-K2-0905",name:"Kimi K2 0905",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:0.55,output:2.19,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"claude-opus-4-1":{id:"claude-opus-4-1",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:16.5,output:82.5,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"qwen3-coder-480b-a35b-instruct":{id:"qwen3-coder-480b-a35b-instruct",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:262144,maxTokens:131000,capabilities:["tools","temperature"],pricing:{input:0.82,output:3.29,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-01"},"qwen3-235b-a22b-instruct-2507":{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct 2507",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:0.28,output:1.12,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-30"},"qwen3-235b-a22b-thinking-2507":{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.28,output:2.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-30"},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 nano",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4o":{id:"gpt-4o",name:"GPT-4o",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-05-13"}},anthropic:{"claude-sonnet-4-6":{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"claude-opus-4-6":{id:"claude-opus-4-6",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"claude-opus-4-5":{id:"claude-opus-4-5",name:"Claude Opus 4.5 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"claude-opus-4-5-20251101":{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-01"},"claude-haiku-4-5":{id:"claude-haiku-4-5",name:"Claude Haiku 4.5 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"claude-haiku-4-5-20251001":{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"claude-sonnet-4-5":{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"claude-sonnet-4-5-20250929":{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"claude-opus-4-1":{id:"claude-opus-4-1",name:"Claude Opus 4.1 (latest)",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"claude-opus-4-1-20250805":{id:"claude-opus-4-1-20250805",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"claude-opus-4-0":{id:"claude-opus-4-0",name:"Claude Opus 4 (latest)",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"claude-opus-4-20250514":{id:"claude-opus-4-20250514",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"claude-sonnet-4-0":{id:"claude-sonnet-4-0",name:"Claude Sonnet 4 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"claude-sonnet-4-20250514":{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"claude-3-7-sonnet-20250219":{id:"claude-3-7-sonnet-20250219",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"claude-3-7-sonnet-latest":{id:"claude-3-7-sonnet-latest",name:"Claude Sonnet 3.7 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"claude-3-5-haiku-20241022":{id:"claude-3-5-haiku-20241022",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"claude-3-5-haiku-latest":{id:"claude-3-5-haiku-latest",name:"Claude Haiku 3.5 (latest)",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"claude-3-5-sonnet-20241022":{id:"claude-3-5-sonnet-20241022",name:"Claude Sonnet 3.5 v2",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"},"claude-3-5-sonnet-20240620":{id:"claude-3-5-sonnet-20240620",name:"Claude Sonnet 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-06-20"},"claude-3-haiku-20240307":{id:"claude-3-haiku-20240307",name:"Claude Haiku 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:0.25,output:1.25,cacheRead:0.03,cacheWrite:0.3},releaseDate:"2024-03-13"},"claude-3-sonnet-20240229":{id:"claude-3-sonnet-20240229",name:"Claude Sonnet 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:0.3},releaseDate:"2024-03-04"},"claude-3-opus-20240229":{id:"claude-3-opus-20240229",name:"Claude Opus 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2024-02-29"}},baseten:{"nvidia/Nemotron-120B-A12B":{id:"nvidia/Nemotron-120B-A12B",name:"Nemotron 3 Super",contextWindow:262144,maxTokens:32678,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.75,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"MiniMaxAI/MiniMax-M2.5":{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5",contextWindow:204000,maxTokens:10200,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-12"},"zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.95,output:3.15,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-12"},"moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-30"},"zai-org/GLM-4.7":{id:"zai-org/GLM-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-22"},"zai-org/GLM-4.6":{id:"zai-org/GLM-4.6",name:"GLM 4.6",contextWindow:200000,maxTokens:1e4,capabilities:["tools","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-16"},"deepseek-ai/DeepSeek-V3.1":{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1",contextWindow:164000,maxTokens:131000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-25"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:128000,maxTokens:6400,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"deepseek-ai/DeepSeek-V3-0324":{id:"deepseek-ai/DeepSeek-V3-0324",name:"DeepSeek V3 0324",contextWindow:164000,maxTokens:131000,capabilities:["tools","temperature"],pricing:{input:0.77,output:0.77,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-24"}},bedrock:{"minimax.minimax-m2.5":{id:"minimax.minimax-m2.5",name:"MiniMax M2.5",contextWindow:196608,maxTokens:98304,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"zai.glm-5":{id:"zai.glm-5",name:"GLM-5",contextWindow:202752,maxTokens:101376,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"nvidia.nemotron-super-3-120b":{id:"nvidia.nemotron-super-3-120b",name:"NVIDIA Nemotron 3 Super 120B A12B",contextWindow:262144,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:0.65,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"anthropic.claude-sonnet-4-6":{id:"anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"eu.anthropic.claude-sonnet-4-6":{id:"eu.anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6 (EU)",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"global.anthropic.claude-sonnet-4-6":{id:"global.anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Global)",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"mistral.devstral-2-123b":{id:"mistral.devstral-2-123b",name:"Devstral 2 123B",contextWindow:256000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-17"},"us.anthropic.claude-sonnet-4-6":{id:"us.anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6 (US)",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"deepseek.v3.2":{id:"deepseek.v3.2",name:"DeepSeek-V3.2",contextWindow:163840,maxTokens:81920,capabilities:["tools","reasoning","temperature"],pricing:{input:0.62,output:1.85,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-06"},"moonshotai.kimi-k2.5":{id:"moonshotai.kimi-k2.5",name:"Kimi K2.5",contextWindow:256000,maxTokens:12800,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-06"},"anthropic.claude-opus-4-6-v1":{id:"anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"eu.anthropic.claude-opus-4-6-v1":{id:"eu.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (EU)",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"global.anthropic.claude-opus-4-6-v1":{id:"global.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (Global)",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"us.anthropic.claude-opus-4-6-v1":{id:"us.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (US)",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"zai.glm-4.7-flash":{id:"zai.glm-4.7-flash",name:"GLM-4.7-Flash",contextWindow:200000,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-19"},"minimax.minimax-m2.1":{id:"minimax.minimax-m2.1",name:"MiniMax M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"nvidia.nemotron-nano-3-30b":{id:"nvidia.nemotron-nano-3-30b",name:"NVIDIA Nemotron Nano 3 30B",contextWindow:128000,maxTokens:4096,capabilities:["tools","reasoning","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"zai.glm-4.7":{id:"zai.glm-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-22"},"mistral.magistral-small-2509":{id:"mistral.magistral-small-2509",name:"Magistral Small 1.2",contextWindow:128000,maxTokens:40000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"mistral.ministral-3-3b-instruct":{id:"mistral.ministral-3-3b-instruct",name:"Ministral 3 3B",contextWindow:256000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.1,output:0.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"mistral.mistral-large-3-675b-instruct":{id:"mistral.mistral-large-3-675b-instruct",name:"Mistral Large 3",contextWindow:256000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"moonshot.kimi-k2-thinking":{id:"moonshot.kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"anthropic.claude-opus-4-5-20251101-v1:0":{id:"anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{id:"eu.anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5 (EU)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"global.anthropic.claude-opus-4-5-20251101-v1:0":{id:"global.anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5 (Global)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"us.anthropic.claude-opus-4-5-20251101-v1:0":{id:"us.anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5 (US)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"minimax.minimax-m2":{id:"minimax.minimax-m2",name:"MiniMax M2",contextWindow:204608,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-27"},"anthropic.claude-haiku-4-5-20251001-v1:0":{id:"anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{id:"eu.anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5 (EU)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{id:"global.anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5 (Global)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{id:"us.anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5 (US)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"qwen.qwen3-vl-235b-a22b":{id:"qwen.qwen3-vl-235b-a22b",name:"Qwen/Qwen3-VL-235B-A22B-Instruct",contextWindow:262000,maxTokens:13100,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.3,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-04"},"anthropic.claude-sonnet-4-5-20250929-v1:0":{id:"anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:"eu.anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5 (EU)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:"global.anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5 (Global)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:"us.anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5 (US)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"deepseek.v3-v1:0":{id:"deepseek.v3-v1:0",name:"DeepSeek-V3.1",contextWindow:163840,maxTokens:81920,capabilities:["tools","reasoning","temperature"],pricing:{input:0.58,output:1.68,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-235b-a22b-2507-v1:0":{id:"qwen.qwen3-235b-a22b-2507-v1:0",name:"Qwen3 235B A22B 2507",contextWindow:262144,maxTokens:131072,capabilities:["tools","temperature"],pricing:{input:0.22,output:0.88,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-32b-v1:0":{id:"qwen.qwen3-32b-v1:0",name:"Qwen3 32B (dense)",contextWindow:16384,maxTokens:819,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-coder-30b-a3b-v1:0":{id:"qwen.qwen3-coder-30b-a3b-v1:0",name:"Qwen3 Coder 30B A3B Instruct",contextWindow:262144,maxTokens:131072,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-coder-480b-a35b-v1:0":{id:"qwen.qwen3-coder-480b-a35b-v1:0",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:131072,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0.22,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-next-80b-a3b":{id:"qwen.qwen3-next-80b-a3b",name:"Qwen/Qwen3-Next-80B-A3B-Instruct",contextWindow:262000,maxTokens:13100,capabilities:["tools","structured_output","temperature"],pricing:{input:0.14,output:1.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"anthropic.claude-opus-4-1-20250805-v1:0":{id:"anthropic.claude-opus-4-1-20250805-v1:0",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"us.anthropic.claude-opus-4-1-20250805-v1:0":{id:"us.anthropic.claude-opus-4-1-20250805-v1:0",name:"Claude Opus 4.1 (US)",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"google.gemma-3-27b-it":{id:"google.gemma-3-27b-it",name:"Google Gemma 3 27B Instruct",contextWindow:202752,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.12,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-27"},"mistral.voxtral-small-24b-2507":{id:"mistral.voxtral-small-24b-2507",name:"Voxtral Small 24B 2507",contextWindow:32000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.35,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-01"},"anthropic.claude-opus-4-20250514-v1:0":{id:"anthropic.claude-opus-4-20250514-v1:0",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic.claude-sonnet-4-20250514-v1:0":{id:"anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"eu.anthropic.claude-sonnet-4-20250514-v1:0":{id:"eu.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (EU)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"global.anthropic.claude-sonnet-4-20250514-v1:0":{id:"global.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (Global)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"us.anthropic.claude-opus-4-20250514-v1:0":{id:"us.anthropic.claude-opus-4-20250514-v1:0",name:"Claude Opus 4 (US)",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"us.anthropic.claude-sonnet-4-20250514-v1:0":{id:"us.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (US)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"writer.palmyra-x4-v1:0":{id:"writer.palmyra-x4-v1:0",name:"Palmyra X4",contextWindow:122880,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:2.5,output:10,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-28"},"writer.palmyra-x5-v1:0":{id:"writer.palmyra-x5-v1:0",name:"Palmyra X5",contextWindow:1040000,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-28"},"mistral.pixtral-large-2502-v1:0":{id:"mistral.pixtral-large-2502-v1:0",name:"Pixtral Large (25.02)",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-08"},"meta.llama4-maverick-17b-instruct-v1:0":{id:"meta.llama4-maverick-17b-instruct-v1:0",name:"Llama 4 Maverick 17B Instruct",contextWindow:1e6,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.24,output:0.97,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"meta.llama4-scout-17b-instruct-v1:0":{id:"meta.llama4-scout-17b-instruct-v1:0",name:"Llama 4 Scout 17B Instruct",contextWindow:3500000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.17,output:0.66,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"anthropic.claude-3-7-sonnet-20250219-v1:0":{id:"anthropic.claude-3-7-sonnet-20250219-v1:0",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"deepseek.r1-v1:0":{id:"deepseek.r1-v1:0",name:"DeepSeek-R1",contextWindow:128000,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-20"},"meta.llama3-3-70b-instruct-v1:0":{id:"meta.llama3-3-70b-instruct-v1:0",name:"Llama 3.3 70B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.72,output:0.72,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"},"amazon.nova-lite-v1:0":{id:"amazon.nova-lite-v1:0",name:"Nova Lite",contextWindow:300000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0.015,cacheWrite:0},releaseDate:"2024-12-03"},"amazon.nova-micro-v1:0":{id:"amazon.nova-micro-v1:0",name:"Nova Micro",contextWindow:128000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.035,output:0.14,cacheRead:0.00875,cacheWrite:0},releaseDate:"2024-12-03"},"amazon.nova-premier-v1:0":{id:"amazon.nova-premier-v1:0",name:"Nova Premier",contextWindow:1e6,maxTokens:16384,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2.5,output:12.5,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-03"},"amazon.nova-pro-v1:0":{id:"amazon.nova-pro-v1:0",name:"Nova Pro",contextWindow:300000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.8,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2024-12-03"},"amazon.nova-2-lite-v1:0":{id:"amazon.nova-2-lite-v1:0",name:"Nova 2 Lite",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.33,output:2.75,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"google.gemma-3-4b-it":{id:"google.gemma-3-4b-it",name:"Gemma 3 4B IT",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.04,output:0.08,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"mistral.ministral-3-14b-instruct":{id:"mistral.ministral-3-14b-instruct",name:"Ministral 14B 3.0",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.2,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"mistral.ministral-3-8b-instruct":{id:"mistral.ministral-3-8b-instruct",name:"Ministral 3 8B",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"mistral.voxtral-mini-3b-2507":{id:"mistral.voxtral-mini-3b-2507",name:"Voxtral Mini 3B 2507",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.04,output:0.04,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"nvidia.nemotron-nano-12b-v2":{id:"nvidia.nemotron-nano-12b-v2",name:"NVIDIA Nemotron Nano 12B v2 VL BF16",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"nvidia.nemotron-nano-9b-v2":{id:"nvidia.nemotron-nano-9b-v2",name:"NVIDIA Nemotron Nano 9B v2",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.06,output:0.23,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"openai.gpt-oss-120b-1:0":{id:"openai.gpt-oss-120b-1:0",name:"gpt-oss-120b",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"openai.gpt-oss-20b-1:0":{id:"openai.gpt-oss-20b-1:0",name:"gpt-oss-20b",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.07,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"openai.gpt-oss-safeguard-120b":{id:"openai.gpt-oss-safeguard-120b",name:"GPT OSS Safeguard 120B",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"openai.gpt-oss-safeguard-20b":{id:"openai.gpt-oss-safeguard-20b",name:"GPT OSS Safeguard 20B",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.07,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"anthropic.claude-3-5-haiku-20241022-v1:0":{id:"anthropic.claude-3-5-haiku-20241022-v1:0",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"anthropic.claude-3-5-sonnet-20241022-v2:0":{id:"anthropic.claude-3-5-sonnet-20241022-v2:0",name:"Claude Sonnet 3.5 v2",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"},"meta.llama3-2-11b-instruct-v1:0":{id:"meta.llama3-2-11b-instruct-v1:0",name:"Llama 3.2 11B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.16,output:0.16,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta.llama3-2-1b-instruct-v1:0":{id:"meta.llama3-2-1b-instruct-v1:0",name:"Llama 3.2 1B Instruct",contextWindow:131000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.1,output:0.1,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta.llama3-2-3b-instruct-v1:0":{id:"meta.llama3-2-3b-instruct-v1:0",name:"Llama 3.2 3B Instruct",contextWindow:131000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta.llama3-2-90b-instruct-v1:0":{id:"meta.llama3-2-90b-instruct-v1:0",name:"Llama 3.2 90B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.72,output:0.72,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta.llama3-1-405b-instruct-v1:0":{id:"meta.llama3-1-405b-instruct-v1:0",name:"Llama 3.1 405B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:2.4,output:2.4,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"meta.llama3-1-70b-instruct-v1:0":{id:"meta.llama3-1-70b-instruct-v1:0",name:"Llama 3.1 70B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.72,output:0.72,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"meta.llama3-1-8b-instruct-v1:0":{id:"meta.llama3-1-8b-instruct-v1:0",name:"Llama 3.1 8B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.22,output:0.22,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"anthropic.claude-3-5-sonnet-20240620-v1:0":{id:"anthropic.claude-3-5-sonnet-20240620-v1:0",name:"Claude Sonnet 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-06-20"},"anthropic.claude-3-haiku-20240307-v1:0":{id:"anthropic.claude-3-haiku-20240307-v1:0",name:"Claude Haiku 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:0.25,output:1.25,cacheRead:0,cacheWrite:0},releaseDate:"2024-03-13"}},cerebras:{"zai-glm-4.7":{id:"zai-glm-4.7",name:"Z.AI GLM-4.7",contextWindow:131072,maxTokens:40000,capabilities:["tools","temperature"],pricing:{input:2.25,output:2.75,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-10"},"gpt-oss-120b":{id:"gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.25,output:0.69,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"qwen-3-235b-a22b-instruct-2507":{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen 3 235B Instruct",contextWindow:131000,maxTokens:32000,capabilities:["tools","temperature"],pricing:{input:0.6,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-22"},"llama3.1-8b":{id:"llama3.1-8b",name:"Llama 3.1 8B",contextWindow:32000,maxTokens:8000,capabilities:["tools","temperature"],pricing:{input:0.1,output:0.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-01"}},deepseek:{"deepseek-chat":{id:"deepseek-chat",name:"DeepSeek Chat",contextWindow:128000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.28,output:0.42,cacheRead:0.028,cacheWrite:0},releaseDate:"2025-12-01"},"deepseek-reasoner":{id:"deepseek-reasoner",name:"DeepSeek Reasoner",contextWindow:128000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.28,output:0.42,cacheRead:0.028,cacheWrite:0},releaseDate:"2025-12-01"}},fireworks:{"accounts/fireworks/models/minimax-m2p5":{id:"accounts/fireworks/models/minimax-m2p5",name:"MiniMax-M2.5",contextWindow:196608,maxTokens:9830,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0},releaseDate:"2026-02-12"},"accounts/fireworks/models/glm-5":{id:"accounts/fireworks/models/glm-5",name:"GLM 5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0.5,cacheWrite:0},releaseDate:"2026-02-11"},"accounts/fireworks/models/kimi-k2p5":{id:"accounts/fireworks/models/kimi-k2p5",name:"Kimi K2.5",contextWindow:256000,maxTokens:12800,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01-27"},"accounts/fireworks/routers/kimi-k2p5-turbo":{id:"accounts/fireworks/routers/kimi-k2p5-turbo",name:"Kimi K2.5 Turbo",contextWindow:256000,maxTokens:12800,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-27"},"accounts/fireworks/models/minimax-m2p1":{id:"accounts/fireworks/models/minimax-m2p1",name:"MiniMax-M2.1",contextWindow:200000,maxTokens:1e4,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-12-23"},"accounts/fireworks/models/glm-4p7":{id:"accounts/fireworks/models/glm-4p7",name:"GLM 4.7",contextWindow:198000,maxTokens:9900,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.3,cacheWrite:0},releaseDate:"2025-12-22"},"accounts/fireworks/models/deepseek-v3p2":{id:"accounts/fireworks/models/deepseek-v3p2",name:"DeepSeek V3.2",contextWindow:160000,maxTokens:8000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.56,output:1.68,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-12-01"},"accounts/fireworks/models/kimi-k2-thinking":{id:"accounts/fireworks/models/kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.3,cacheWrite:0},releaseDate:"2025-11-06"},"accounts/fireworks/models/deepseek-v3p1":{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.56,output:1.68,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"accounts/fireworks/models/gpt-oss-120b":{id:"accounts/fireworks/models/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"accounts/fireworks/models/gpt-oss-20b":{id:"accounts/fireworks/models/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.05,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"accounts/fireworks/models/glm-4p5-air":{id:"accounts/fireworks/models/glm-4p5-air",name:"GLM 4.5 Air",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.22,output:0.88,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-01"},"accounts/fireworks/models/glm-4p5":{id:"accounts/fireworks/models/glm-4p5",name:"GLM 4.5",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.55,output:2.19,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-29"},"accounts/fireworks/models/kimi-k2-instruct":{id:"accounts/fireworks/models/kimi-k2-instruct",name:"Kimi K2 Instruct",contextWindow:128000,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-11"}},gemini:{"gemini-3.1-flash-lite-preview":{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:1.5,cacheRead:0.025,cacheWrite:1},releaseDate:"2026-03-03"},"gemini-3.1-pro-preview":{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-19"},"gemini-3.1-pro-preview-customtools":{id:"gemini-3.1-pro-preview-customtools",name:"Gemini 3.1 Pro Preview Custom Tools",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-19"},"gemini-3-flash-preview":{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.5,output:3,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-12-17"},"gemini-3-pro-preview":{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2025-11-18"},"gemini-2.5-flash-lite-preview-09-2025":{id:"gemini-2.5-flash-lite-preview-09-2025",name:"Gemini 2.5 Flash Lite Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-09-25"},"gemini-2.5-flash-preview-09-2025":{id:"gemini-2.5-flash-preview-09-2025",name:"Gemini 2.5 Flash Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-09-25"},"gemini-flash-latest":{id:"gemini-flash-latest",name:"Gemini Flash Latest",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-09-25"},"gemini-flash-lite-latest":{id:"gemini-flash-lite-latest",name:"Gemini Flash-Lite Latest",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-09-25"},"gemini-live-2.5-flash":{id:"gemini-live-2.5-flash",name:"Gemini Live 2.5 Flash",contextWindow:128000,maxTokens:8000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.5,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-01"},"gemini-2.5-flash-lite":{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-17"},"gemini-2.5-flash-lite-preview-06-17":{id:"gemini-2.5-flash-lite-preview-06-17",name:"Gemini 2.5 Flash Lite Preview 06-17",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-17"},"gemini-live-2.5-flash-preview-native-audio":{id:"gemini-live-2.5-flash-preview-native-audio",name:"Gemini Live 2.5 Flash Preview Native Audio",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning"],pricing:{input:0.5,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-17"},"gemini-2.5-pro-preview-06-05":{id:"gemini-2.5-pro-preview-06-05",name:"Gemini 2.5 Pro Preview 06-05",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-06-05"},"gemini-2.5-flash-preview-05-20":{id:"gemini-2.5-flash-preview-05-20",name:"Gemini 2.5 Flash Preview 05-20",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.0375,cacheWrite:0},releaseDate:"2025-05-20"},"gemini-2.5-pro-preview-05-06":{id:"gemini-2.5-pro-preview-05-06",name:"Gemini 2.5 Pro Preview 05-06",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-05-06"},"gemini-2.5-flash-preview-04-17":{id:"gemini-2.5-flash-preview-04-17",name:"Gemini 2.5 Flash Preview 04-17",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.0375,cacheWrite:0},releaseDate:"2025-04-17"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-03-20"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-03-20"},"gemini-2.0-flash":{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2024-12-11"},"gemini-2.0-flash-lite":{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-11"},"gemini-1.5-flash-8b":{id:"gemini-1.5-flash-8b",name:"Gemini 1.5 Flash-8B",contextWindow:1e6,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.0375,output:0.15,cacheRead:0.01,cacheWrite:0},releaseDate:"2024-10-03"},"gemini-1.5-flash":{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",contextWindow:1e6,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0.01875,cacheWrite:0},releaseDate:"2024-05-14"},"gemini-1.5-pro":{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",contextWindow:1e6,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:1.25,output:5,cacheRead:0.3125,cacheWrite:0},releaseDate:"2024-02-15"}},groq:{"moonshotai/kimi-k2-instruct-0905":{id:"moonshotai/kimi-k2-instruct-0905",name:"Kimi K2 Instruct 0905",contextWindow:262144,maxTokens:16384,capabilities:["tools","structured_output","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"meta-llama/llama-4-maverick-17b-128e-instruct":{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick 17B",contextWindow:131072,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"meta-llama/llama-4-scout-17b-16e-instruct":{id:"meta-llama/llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout 17B",contextWindow:131072,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.11,output:0.34,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"qwen/qwen3-32b":{id:"qwen/qwen3-32b",name:"Qwen3 32B",contextWindow:131072,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:0.29,output:0.59,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-23"},"llama-3.3-70b-versatile":{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B Versatile",contextWindow:131072,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:0.59,output:0.79,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"},"llama-3.1-8b-instant":{id:"llama-3.1-8b-instant",name:"Llama 3.1 8B Instant",contextWindow:131072,maxTokens:6553,capabilities:["tools","temperature"],pricing:{input:0.05,output:0.08,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"}},huggingface:{"MiniMaxAI/MiniMax-M2.5":{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0},releaseDate:"2026-02-12"},"zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-11"},"Qwen/Qwen3-Coder-Next":{id:"Qwen/Qwen3-Coder-Next",name:"Qwen3-Coder-Next",contextWindow:262144,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0.2,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-03"},"Qwen/Qwen3.5-397B-A17B":{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen3.5-397B-A17B",contextWindow:262144,maxTokens:32768,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3.6,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-01"},"moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi-K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01-01"},"MiniMaxAI/MiniMax-M2.1":{id:"MiniMaxAI/MiniMax-M2.1",name:"MiniMax-M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"zai-org/GLM-4.7":{id:"zai-org/GLM-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-12-22"},"XiaomiMiMo/MiMo-V2-Flash":{id:"XiaomiMiMo/MiMo-V2-Flash",name:"MiMo-V2-Flash",contextWindow:262144,maxTokens:4096,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-16"},"deepseek-ai/DeepSeek-V3.2":{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek-V3.2",contextWindow:163840,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.28,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"moonshotai/Kimi-K2-Thinking":{id:"moonshotai/Kimi-K2-Thinking",name:"Kimi-K2-Thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"Qwen/Qwen3-Next-80B-A3B-Instruct":{id:"Qwen/Qwen3-Next-80B-A3B-Instruct",name:"Qwen3-Next-80B-A3B-Instruct",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0.25,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"Qwen/Qwen3-Next-80B-A3B-Thinking":{id:"Qwen/Qwen3-Next-80B-A3B-Thinking",name:"Qwen3-Next-80B-A3B-Thinking",contextWindow:262144,maxTokens:131072,capabilities:["tools","temperature"],pricing:{input:0.3,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"moonshotai/Kimi-K2-Instruct-0905":{id:"moonshotai/Kimi-K2-Instruct-0905",name:"Kimi-K2-Instruct-0905",contextWindow:262144,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-04"},"zai-org/GLM-4.7-Flash":{id:"zai-org/GLM-4.7-Flash",name:"GLM-4.7-Flash",contextWindow:200000,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-08"},"Qwen/Qwen3-235B-A22B-Thinking-2507":{id:"Qwen/Qwen3-235B-A22B-Thinking-2507",name:"Qwen3-235B-A22B-Thinking-2507",contextWindow:262144,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3-Coder-480B-A35B-Instruct",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:2,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi-K2-Instruct",contextWindow:131072,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-14"},"deepseek-ai/DeepSeek-R1-0528":{id:"deepseek-ai/DeepSeek-R1-0528",name:"DeepSeek-R1-0528",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:3,output:5,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-28"}},lmstudio:{"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"qwen/qwen3-30b-a3b-2507":{id:"qwen/qwen3-30b-a3b-2507",name:"Qwen3 30B A3B 2507",contextWindow:262144,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-30"},"qwen/qwen3-coder-30b":{id:"qwen/qwen3-coder-30b",name:"Qwen3 Coder 30B",contextWindow:262144,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"}},minimax:{"MiniMax-M2.7":{id:"MiniMax-M2.7",name:"MiniMax-M2.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"MiniMax-M2.7-highspeed":{id:"MiniMax-M2.7-highspeed",name:"MiniMax-M2.7-highspeed",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.4,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"MiniMax-M2.5-highspeed":{id:"MiniMax-M2.5-highspeed",name:"MiniMax-M2.5-highspeed",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.4,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-02-13"},"MiniMax-M2.5":{id:"MiniMax-M2.5",name:"MiniMax-M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-02-12"},"MiniMax-M2.1":{id:"MiniMax-M2.1",name:"MiniMax-M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"MiniMax-M2":{id:"MiniMax-M2",name:"MiniMax-M2",contextWindow:196608,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-27"}},moonshot:{"kimi-k2.5":{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01"},"kimi-k2-thinking":{id:"kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"kimi-k2-thinking-turbo":{id:"kimi-k2-thinking-turbo",name:"Kimi K2 Thinking Turbo",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:1.15,output:8,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"kimi-k2-0905-preview":{id:"kimi-k2-0905-preview",name:"Kimi K2 0905",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-09-05"},"kimi-k2-turbo-preview":{id:"kimi-k2-turbo-preview",name:"Kimi K2 Turbo",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:2.4,output:10,cacheRead:0.6,cacheWrite:0},releaseDate:"2025-09-05"},"kimi-k2-0711-preview":{id:"kimi-k2-0711-preview",name:"Kimi K2 0711",contextWindow:131072,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-07-14"}},nebius:{"nvidia/nemotron-3-super-120b-a12b":{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron-3-Super-120B-A12B",contextWindow:256000,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",contextWindow:200000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3.2,cacheRead:0.1,cacheWrite:1},releaseDate:"2026-03-01"},"MiniMaxAI/MiniMax-M2.1":{id:"MiniMaxAI/MiniMax-M2.1",name:"MiniMax-M2.1",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-02-01"},"NousResearch/Hermes-4-405B":{id:"NousResearch/Hermes-4-405B",name:"Hermes-4-405B",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2026-01-30"},"NousResearch/Hermes-4-70B":{id:"NousResearch/Hermes-4-70B",name:"Hermes-4-70B",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.13,output:0.4,cacheRead:0.013,cacheWrite:0.16},releaseDate:"2026-01-30"},"Qwen/Qwen3-30B-A3B-Instruct-2507":{id:"Qwen/Qwen3-30B-A3B-Instruct-2507",name:"Qwen3-30B-A3B-Instruct-2507",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-28"},"Qwen/Qwen3-30B-A3B-Thinking-2507":{id:"Qwen/Qwen3-30B-A3B-Thinking-2507",name:"Qwen3-30B-A3B-Thinking-2507",contextWindow:128000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-28"},"Qwen/Qwen3-32B":{id:"Qwen/Qwen3-32B",name:"Qwen3-32B",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-28"},"Qwen/Qwen3-32B-fast":{id:"Qwen/Qwen3-32B-fast",name:"Qwen3-32B (Fast)",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0.02,cacheWrite:0.25},releaseDate:"2026-01-28"},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{id:"Qwen/Qwen3-Coder-30B-A3B-Instruct",name:"Qwen3-Coder-30B-A3B-Instruct",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-28"},"Qwen/Qwen3-Next-80B-A3B-Thinking":{id:"Qwen/Qwen3-Next-80B-A3B-Thinking",name:"Qwen3-Next-80B-A3B-Thinking",contextWindow:128000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.15,output:1.2,cacheRead:0.015,cacheWrite:0.18},releaseDate:"2026-01-28"},"PrimeIntellect/INTELLECT-3":{id:"PrimeIntellect/INTELLECT-3",name:"INTELLECT-3",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0.02,cacheWrite:0.25},releaseDate:"2026-01-25"},"deepseek-ai/DeepSeek-V3.2":{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek-V3.2",contextWindow:163000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:0.45,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-01-20"},"google/gemma-3-27b-it":{id:"google/gemma-3-27b-it",name:"Gemma-3-27b-it",contextWindow:110000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-20"},"google/gemma-3-27b-it-fast":{id:"google/gemma-3-27b-it-fast",name:"Gemma-3-27b-it (Fast)",contextWindow:110000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0.02,cacheWrite:0.25},releaseDate:"2026-01-20"},"deepseek-ai/DeepSeek-R1-0528":{id:"deepseek-ai/DeepSeek-R1-0528",name:"DeepSeek-R1-0528",contextWindow:128000,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.8,output:2.4,cacheRead:0.08,cacheWrite:1},releaseDate:"2026-01-15"},"zai-org/GLM-4.7-FP8":{id:"zai-org/GLM-4.7-FP8",name:"GLM-4.7 (FP8)",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0.04,cacheWrite:0.5},releaseDate:"2026-01-15"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"gpt-oss-120b",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.015,cacheWrite:0.18},releaseDate:"2026-01-10"},"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"gpt-oss-20b",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.05,output:0.2,cacheRead:0.005,cacheWrite:0.06},releaseDate:"2026-01-10"},"moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi-K2-Instruct",contextWindow:200000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.5,output:2.4,cacheRead:0.05,cacheWrite:0.625},releaseDate:"2026-01-05"},"moonshotai/Kimi-K2-Thinking":{id:"moonshotai/Kimi-K2-Thinking",name:"Kimi-K2-Thinking",contextWindow:128000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.06,cacheWrite:0.75},releaseDate:"2026-01-05"},"moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi-K2.5",contextWindow:256000,maxTokens:8192,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.5,output:2.5,cacheRead:0.05,cacheWrite:0.625},releaseDate:"2025-12-15"},"moonshotai/Kimi-K2.5-fast":{id:"moonshotai/Kimi-K2.5-fast",name:"Kimi-K2.5-fast",contextWindow:256000,maxTokens:8192,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.5,output:2.5,cacheRead:0.05,cacheWrite:0.625},releaseDate:"2025-12-15"},"meta-llama/Llama-3.3-70B-Instruct":{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama-3.3-70B-Instruct",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.13,output:0.4,cacheRead:0.013,cacheWrite:0.16},releaseDate:"2025-12-05"},"meta-llama/Llama-3.3-70B-Instruct-fast":{id:"meta-llama/Llama-3.3-70B-Instruct-fast",name:"Llama-3.3-70B-Instruct (Fast)",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0.31},releaseDate:"2025-12-05"},"zai-org/GLM-4.5":{id:"zai-org/GLM-4.5",name:"GLM-4.5",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.06,cacheWrite:0.75},releaseDate:"2025-11-15"},"zai-org/GLM-4.5-Air":{id:"zai-org/GLM-4.5-Air",name:"GLM-4.5-Air",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.2,output:1.2,cacheRead:0.02,cacheWrite:0.25},releaseDate:"2025-11-15"},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B":{id:"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B",name:"Nemotron-3-Nano-30B-A3B",contextWindow:32000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0.006,cacheWrite:0.075},releaseDate:"2025-08-10"},"Qwen/Qwen3-235B-A22B-Instruct-2507":{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B A22B Instruct 2507",contextWindow:262144,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-235B-A22B-Thinking-2507":{id:"Qwen/Qwen3-235B-A22B-Thinking-2507",name:"Qwen3 235B A22B Thinking 2507",contextWindow:262144,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0.4,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"deepseek-ai/DeepSeek-V3-0324":{id:"deepseek-ai/DeepSeek-V3-0324",name:"DeepSeek-V3-0324",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0.05,cacheWrite:0.1875},releaseDate:"2025-03-24"},"deepseek-ai/DeepSeek-V3-0324-fast":{id:"deepseek-ai/DeepSeek-V3-0324-fast",name:"DeepSeek-V3-0324 (Fast)",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.75,output:2.25,cacheRead:0.075,cacheWrite:0.28125},releaseDate:"2025-03-24"},"nvidia/Nemotron-Nano-V2-12b":{id:"nvidia/Nemotron-Nano-V2-12b",name:"Nemotron-Nano-V2-12b",contextWindow:32000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.07,output:0.2,cacheRead:0.007,cacheWrite:0.08},releaseDate:"2025-03-15"},"Qwen/Qwen2.5-VL-72B-Instruct":{id:"Qwen/Qwen2.5-VL-72B-Instruct",name:"Qwen2.5-VL-72B-Instruct",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0.31},releaseDate:"2025-01-20"},"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1":{id:"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1",name:"Llama-3.1-Nemotron-Ultra-253B-v1",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.6,output:1.8,cacheRead:0.06,cacheWrite:0.75},releaseDate:"2025-01-15"},"deepseek-ai/DeepSeek-R1-0528-fast":{id:"deepseek-ai/DeepSeek-R1-0528-fast",name:"DeepSeek R1 0528 Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-01"},"Qwen/Qwen2.5-Coder-7B-fast":{id:"Qwen/Qwen2.5-Coder-7B-fast",name:"Qwen2.5-Coder-7B (Fast)",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.03,output:0.09,cacheRead:0.003,cacheWrite:0.03},releaseDate:"2024-09-19"},"meta-llama/Meta-Llama-3.1-8B-Instruct":{id:"meta-llama/Meta-Llama-3.1-8B-Instruct",name:"Meta-Llama-3.1-8B-Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.02,output:0.06,cacheRead:0.002,cacheWrite:0.025},releaseDate:"2024-07-23"},"meta-llama/Meta-Llama-3.1-8B-Instruct-fast":{id:"meta-llama/Meta-Llama-3.1-8B-Instruct-fast",name:"Meta-Llama-3.1-8B-Instruct (Fast)",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.03,output:0.09,cacheRead:0.003,cacheWrite:0.03},releaseDate:"2024-07-23"}},ollama:{"minimax-m2.7":{id:"minimax-m2.7",name:"minimax-m2.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"nemotron-3-super":{id:"nemotron-3-super",name:"nemotron-3-super",contextWindow:262144,maxTokens:65536,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"qwen3.5:397b":{id:"qwen3.5:397b",name:"qwen3.5:397b",contextWindow:262144,maxTokens:81920,capabilities:["images","tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-15"},"minimax-m2.5":{id:"minimax-m2.5",name:"minimax-m2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-12"},"glm-5":{id:"glm-5",name:"glm-5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-11"},"qwen3-coder-next":{id:"qwen3-coder-next",name:"qwen3-coder-next",contextWindow:262144,maxTokens:65536,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-02"},"kimi-k2.5":{id:"kimi-k2.5",name:"kimi-k2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-27"},"minimax-m2.1":{id:"minimax-m2.1",name:"minimax-m2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"glm-4.7":{id:"glm-4.7",name:"glm-4.7",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-22"},"gemini-3-flash-preview":{id:"gemini-3-flash-preview",name:"gemini-3-flash-preview",contextWindow:1048576,maxTokens:65536,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-17"},"nemotron-3-nano:30b":{id:"nemotron-3-nano:30b",name:"nemotron-3-nano:30b",contextWindow:1048576,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-15"},"devstral-2:123b":{id:"devstral-2:123b",name:"devstral-2:123b",contextWindow:262144,maxTokens:13107,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-09"},"devstral-small-2:24b":{id:"devstral-small-2:24b",name:"devstral-small-2:24b",contextWindow:262144,maxTokens:13107,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-09"},"rnj-1:8b":{id:"rnj-1:8b",name:"rnj-1:8b",contextWindow:32768,maxTokens:4096,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-06"},"mistral-large-3:675b":{id:"mistral-large-3:675b",name:"mistral-large-3:675b",contextWindow:262144,maxTokens:13107,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"cogito-2.1:671b":{id:"cogito-2.1:671b",name:"cogito-2.1:671b",contextWindow:163840,maxTokens:32000,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-11-19"},"kimi-k2-thinking":{id:"kimi-k2-thinking",name:"kimi-k2-thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-11-06"},"minimax-m2":{id:"minimax-m2",name:"minimax-m2",contextWindow:204800,maxTokens:128000,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-23"},"glm-4.6":{id:"glm-4.6",name:"glm-4.6",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-29"},"qwen3-vl:235b":{id:"qwen3-vl:235b",name:"qwen3-vl:235b",contextWindow:262144,maxTokens:32768,capabilities:["images","tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"qwen3-vl:235b-instruct":{id:"qwen3-vl:235b-instruct",name:"qwen3-vl:235b-instruct",contextWindow:262144,maxTokens:131072,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"qwen3-next:80b":{id:"qwen3-next:80b",name:"qwen3-next:80b",contextWindow:262144,maxTokens:32768,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-15"},"deepseek-v3.1:671b":{id:"deepseek-v3.1:671b",name:"deepseek-v3.1:671b",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"gpt-oss:120b":{id:"gpt-oss:120b",name:"gpt-oss:120b",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"gpt-oss:20b":{id:"gpt-oss:20b",name:"gpt-oss:20b",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"qwen3-coder:480b":{id:"qwen3-coder:480b",name:"qwen3-coder:480b",contextWindow:262144,maxTokens:65536,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-22"},"kimi-k2:1t":{id:"kimi-k2:1t",name:"kimi-k2:1t",contextWindow:262144,maxTokens:13107,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-11"},"deepseek-v3.2":{id:"deepseek-v3.2",name:"deepseek-v3.2",contextWindow:163840,maxTokens:65536,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-15"},"ministral-3:14b":{id:"ministral-3:14b",name:"ministral-3:14b",contextWindow:262144,maxTokens:128000,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"ministral-3:8b":{id:"ministral-3:8b",name:"ministral-3:8b",contextWindow:262144,maxTokens:128000,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"ministral-3:3b":{id:"ministral-3:3b",name:"ministral-3:3b",contextWindow:262144,maxTokens:128000,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-10-22"}},openai:{"gpt-5.4-mini":{id:"gpt-5.4-mini",name:"GPT-5.4 mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.75,output:4.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2026-03-17"},"gpt-5.4-nano":{id:"gpt-5.4-nano",name:"GPT-5.4 nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.2,output:1.25,cacheRead:0.02,cacheWrite:0},releaseDate:"2026-03-17"},"gpt-5.4":{id:"gpt-5.4",name:"GPT-5.4",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:2.5,output:15,cacheRead:0.25,cacheWrite:0},releaseDate:"2026-03-05"},"gpt-5.4-pro":{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",contextWindow:1050000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:30,output:180,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-05"},"gpt-5.3-codex":{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-05"},"gpt-5.3-codex-spark":{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",contextWindow:128000,maxTokens:32000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-05"},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"gpt-5.2-chat-latest":{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"gpt-5.2-codex":{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"gpt-5.2-pro":{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:21,output:168,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-11"},"gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5.1-chat-latest":{id:"gpt-5.1-chat-latest",name:"GPT-5.1 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5 Pro",contextWindow:400000,maxTokens:272000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:120,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-06"},"gpt-5-codex":{id:"gpt-5-codex",name:"GPT-5-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5":{id:"gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-08-07"},"gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-08-07"},"gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.05,output:0.4,cacheRead:0.005,cacheWrite:0},releaseDate:"2025-08-07"},"o3-pro":{id:"o3-pro",name:"o3-pro",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:20,output:80,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-10"},"codex-mini-latest":{id:"codex-mini-latest",name:"Codex Mini",contextWindow:200000,maxTokens:1e5,capabilities:["tools","reasoning"],pricing:{input:1.5,output:6,cacheRead:0.375,cacheWrite:0},releaseDate:"2025-05-16"},o3:{id:"o3",name:"o3",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-16"},"o4-mini":{id:"o4-mini",name:"o4-mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.1,output:4.4,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-04-16"},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 nano",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-04-14"},"o1-pro":{id:"o1-pro",name:"o1-pro",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:150,output:600,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-19"},"o3-mini":{id:"o3-mini",name:"o3-mini",contextWindow:200000,maxTokens:1e5,capabilities:["tools","reasoning","structured_output"],pricing:{input:1.1,output:4.4,cacheRead:0.55,cacheWrite:0},releaseDate:"2024-12-20"},o1:{id:"o1",name:"o1",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:60,cacheRead:7.5,cacheWrite:0},releaseDate:"2024-12-05"},"gpt-4o-2024-11-20":{id:"gpt-4o-2024-11-20",name:"GPT-4o (2024-11-20)",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-11-20"},"gpt-4o-2024-08-06":{id:"gpt-4o-2024-08-06",name:"GPT-4o (2024-08-06)",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-08-06"},"gpt-4o-mini":{id:"gpt-4o-mini",name:"GPT-4o mini",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.08,cacheWrite:0},releaseDate:"2024-07-18"},"o3-deep-research":{id:"o3-deep-research",name:"o3-deep-research",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning"],pricing:{input:10,output:40,cacheRead:2.5,cacheWrite:0},releaseDate:"2024-06-26"},"o4-mini-deep-research":{id:"o4-mini-deep-research",name:"o4-mini-deep-research",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2024-06-26"},"gpt-4o":{id:"gpt-4o",name:"GPT-4o",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-05-13"},"gpt-4o-2024-05-13":{id:"gpt-4o-2024-05-13",name:"GPT-4o (2024-05-13)",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","structured_output","temperature"],pricing:{input:5,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2024-05-13"},"gpt-4":{id:"gpt-4",name:"GPT-4",contextWindow:8192,maxTokens:409,capabilities:["tools","temperature"],pricing:{input:30,output:60,cacheRead:0,cacheWrite:0},releaseDate:"2023-11-06"},"gpt-4-turbo":{id:"gpt-4-turbo",name:"GPT-4 Turbo",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:10,output:30,cacheRead:0,cacheWrite:0},releaseDate:"2023-11-06"}},openrouter:{"minimax/minimax-m2.7":{id:"minimax/minimax-m2.7",name:"MiniMax M2.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"xiaomi/mimo-v2-omni":{id:"xiaomi/mimo-v2-omni",name:"MiMo-V2-Omni",contextWindow:262144,maxTokens:65536,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"xiaomi/mimo-v2-pro":{id:"xiaomi/mimo-v2-pro",name:"MiMo-V2-Pro",contextWindow:1048576,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"openai/gpt-5.4-mini":{id:"openai/gpt-5.4-mini",name:"GPT-5.4 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.00000075,output:0.0000045,cacheRead:0.000000075,cacheWrite:0},releaseDate:"2026-03-17"},"openai/gpt-5.4-nano":{id:"openai/gpt-5.4-nano",name:"GPT-5.4 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.0000002,output:0.00000125,cacheRead:0.00000002,cacheWrite:0},releaseDate:"2026-03-17"},"x-ai/grok-4.20-beta":{id:"x-ai/grok-4.20-beta",name:"Grok 4.20 Beta",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-03-12"},"nvidia/nemotron-3-super-120b-a12b":{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.5,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"nvidia/nemotron-3-super-120b-a12b-free":{id:"nvidia/nemotron-3-super-120b-a12b-free",name:"Nemotron 3 Super (free)",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"openai/gpt-5.4":{id:"openai/gpt-5.4",name:"GPT-5.4",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:2.5,output:15,cacheRead:0.25,cacheWrite:0},releaseDate:"2026-03-05"},"openai/gpt-5.4-pro":{id:"openai/gpt-5.4-pro",name:"GPT-5.4 Pro",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning"],pricing:{input:30,output:180,cacheRead:30,cacheWrite:0},releaseDate:"2026-03-05"},"inception/mercury-2":{id:"inception/mercury-2",name:"Mercury 2",contextWindow:128000,maxTokens:50000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0},releaseDate:"2026-03-04"},"google/gemini-3.1-flash-lite-preview":{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:1.5,cacheRead:0.025,cacheWrite:0.083},releaseDate:"2026-03-03"},"openai/gpt-5.3-codex":{id:"openai/gpt-5.3-codex",name:"GPT-5.3-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-24"},"google/gemini-3.1-pro-preview":{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-19"},"google/gemini-3.1-pro-preview-customtools":{id:"google/gemini-3.1-pro-preview-customtools",name:"Gemini 3.1 Pro Preview Custom Tools",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-19"},"anthropic/claude-sonnet-4.6":{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"qwen/qwen3.5-397b-a17b":{id:"qwen/qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B",contextWindow:262144,maxTokens:65536,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:3.6,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-16"},"qwen/qwen3.5-plus-02-15":{id:"qwen/qwen3.5-plus-02-15",name:"Qwen3.5 Plus 2026-02-15",contextWindow:1e6,maxTokens:65536,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.4,output:2.4,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-16"},"minimax/minimax-m2.5":{id:"minimax/minimax-m2.5",name:"MiniMax M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0},releaseDate:"2026-02-12"},"z-ai/glm-5":{id:"z-ai/glm-5",name:"GLM-5",contextWindow:202752,maxTokens:131000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-12"},"anthropic/claude-opus-4.6":{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"openrouter/free":{id:"openrouter/free",name:"Free Models Router",contextWindow:200000,maxTokens:8000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-01"},"stepfun/step-3.5-flash":{id:"stepfun/step-3.5-flash",name:"Step 3.5 Flash",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.02,cacheWrite:0},releaseDate:"2026-01-29"},"stepfun/step-3.5-flash:free":{id:"stepfun/step-3.5-flash:free",name:"Step 3.5 Flash (free)",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-29"},"arcee-ai/trinity-large-preview:free":{id:"arcee-ai/trinity-large-preview:free",name:"Trinity Large Preview",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-28"},"arcee-ai/trinity-mini:free":{id:"arcee-ai/trinity-mini:free",name:"Trinity Mini",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-28"},"moonshotai/kimi-k2.5":{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01-27"},"z-ai/glm-4.7-flash":{id:"z-ai/glm-4.7-flash",name:"GLM-4.7-Flash",contextWindow:200000,maxTokens:65535,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.07,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-19"},"openai/gpt-5.2-codex":{id:"openai/gpt-5.2-codex",name:"GPT-5.2-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-01-14"},"minimax/minimax-m2.1":{id:"minimax/minimax-m2.1",name:"MiniMax M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"z-ai/glm-4.7":{id:"z-ai/glm-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-12-22"},"google/gemini-3-flash-preview":{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.5,output:3,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-12-17"},"nvidia/nemotron-3-nano-30b-a3b:free":{id:"nvidia/nemotron-3-nano-30b-a3b:free",name:"Nemotron 3 Nano 30B A3B (free)",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-14"},"xiaomi/mimo-v2-flash":{id:"xiaomi/mimo-v2-flash",name:"MiMo-V2-Flash",contextWindow:262144,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-12-14"},"openai/gpt-5.2":{id:"openai/gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"openai/gpt-5.2-chat":{id:"openai/gpt-5.2-chat",name:"GPT-5.2 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"openai/gpt-5.2-pro":{id:"openai/gpt-5.2-pro",name:"GPT-5.2 Pro",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:21,output:168,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-11"},"deepseek/deepseek-v3.2":{id:"deepseek/deepseek-v3.2",name:"DeepSeek V3.2",contextWindow:163840,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.28,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"deepseek/deepseek-v3.2-speciale":{id:"deepseek/deepseek-v3.2-speciale",name:"DeepSeek V3.2 Speciale",contextWindow:163840,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.27,output:0.41,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"anthropic/claude-opus-4.5":{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"x-ai/grok-4.1-fast":{id:"x-ai/grok-4.1-fast",name:"Grok 4.1 Fast",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0.05},releaseDate:"2025-11-19"},"google/gemini-3-pro-preview":{id:"google/gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1050000,maxTokens:66000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0,cacheWrite:0},releaseDate:"2025-11-18"},"openai/gpt-5.1":{id:"openai/gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-chat":{id:"openai/gpt-5.1-chat",name:"GPT-5.1 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex":{id:"openai/gpt-5.1-codex",name:"GPT-5.1-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex-max":{id:"openai/gpt-5.1-codex-max",name:"GPT-5.1-Codex-Max",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.1,output:9,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex-mini":{id:"openai/gpt-5.1-codex-mini",name:"GPT-5.1-Codex-Mini",contextWindow:400000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-11-13"},"moonshotai/kimi-k2-thinking":{id:"moonshotai/kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"openai/gpt-oss-safeguard-20b":{id:"openai/gpt-oss-safeguard-20b",name:"GPT OSS Safeguard 20B",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-29"},"nvidia/nemotron-nano-12b-v2-vl:free":{id:"nvidia/nemotron-nano-12b-v2-vl:free",name:"Nemotron Nano 12B 2 VL (free)",contextWindow:128000,maxTokens:6400,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-28"},"minimax/minimax-m2":{id:"minimax/minimax-m2",name:"MiniMax M2",contextWindow:196600,maxTokens:118000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.28,output:1.15,cacheRead:0.28,cacheWrite:1.15},releaseDate:"2025-10-23"},"anthropic/claude-haiku-4.5":{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"openai/gpt-5-image":{id:"openai/gpt-5-image",name:"GPT-5 Image",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-10-14"},"openai/gpt-5-pro":{id:"openai/gpt-5-pro",name:"GPT-5 Pro",contextWindow:400000,maxTokens:272000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:120,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-06"},"z-ai/glm-4.6":{id:"z-ai/glm-4.6",name:"GLM 4.6",contextWindow:200000,maxTokens:128000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-09-30"},"z-ai/glm-4.6:exacto":{id:"z-ai/glm-4.6:exacto",name:"GLM 4.6 (exacto)",contextWindow:200000,maxTokens:128000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:1.9,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-09-30"},"anthropic/claude-sonnet-4.5":{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"google/gemini-2.5-flash-lite-preview-09-2025":{id:"google/gemini-2.5-flash-lite-preview-09-2025",name:"Gemini 2.5 Flash Lite Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-09-25"},"google/gemini-2.5-flash-preview-09-2025":{id:"google/gemini-2.5-flash-preview-09-2025",name:"Gemini 2.5 Flash Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.031,cacheWrite:0},releaseDate:"2025-09-25"},"deepseek/deepseek-v3.1-terminus":{id:"deepseek/deepseek-v3.1-terminus",name:"DeepSeek V3.1 Terminus",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.27,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"deepseek/deepseek-v3.1-terminus:exacto":{id:"deepseek/deepseek-v3.1-terminus:exacto",name:"DeepSeek V3.1 Terminus (exacto)",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.27,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"openai/gpt-5-codex":{id:"openai/gpt-5-codex",name:"GPT-5 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-09-15"},"mistralai/devstral-2512":{id:"mistralai/devstral-2512",name:"Devstral 2 2512",contextWindow:262144,maxTokens:13107,capabilities:["tools","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-12"},"qwen/qwen3-next-80b-a3b-instruct":{id:"qwen/qwen3-next-80b-a3b-instruct",name:"Qwen3 Next 80B A3B Instruct",contextWindow:262144,maxTokens:13107,capabilities:["tools","structured_output","temperature"],pricing:{input:0.14,output:1.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"qwen/qwen3-next-80b-a3b-instruct:free":{id:"qwen/qwen3-next-80b-a3b-instruct:free",name:"Qwen3 Next 80B A3B Instruct (free)",contextWindow:262144,maxTokens:13107,capabilities:["tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"qwen/qwen3-next-80b-a3b-thinking":{id:"qwen/qwen3-next-80b-a3b-thinking",name:"Qwen3 Next 80B A3B Thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.14,output:1.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"moonshotai/kimi-k2-0905":{id:"moonshotai/kimi-k2-0905",name:"Kimi K2 Instruct 0905",contextWindow:262144,maxTokens:16384,capabilities:["tools","structured_output","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"moonshotai/kimi-k2-0905:exacto":{id:"moonshotai/kimi-k2-0905:exacto",name:"Kimi K2 Instruct 0905 (exacto)",contextWindow:262144,maxTokens:16384,capabilities:["tools","structured_output","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"nvidia/nemotron-nano-9b-v2:free":{id:"nvidia/nemotron-nano-9b-v2:free",name:"Nemotron Nano 9B V2 (free)",contextWindow:128000,maxTokens:6400,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"qwen/qwen3-max":{id:"qwen/qwen3-max",name:"Qwen3 Max",contextWindow:262144,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:1.2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"x-ai/grok-code-fast-1":{id:"x-ai/grok-code-fast-1",name:"Grok Code Fast 1",contextWindow:256000,maxTokens:1e4,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:1.5,cacheRead:0.02,cacheWrite:0},releaseDate:"2025-08-26"},"nousresearch/hermes-4-405b":{id:"nousresearch/hermes-4-405b",name:"Hermes 4 405B",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-25"},"nousresearch/hermes-4-70b":{id:"nousresearch/hermes-4-70b",name:"Hermes 4 70B",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.13,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-25"},"deepseek/deepseek-chat-v3.1":{id:"deepseek/deepseek-chat-v3.1",name:"DeepSeek-V3.1",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:0.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"x-ai/grok-4-fast":{id:"x-ai/grok-4-fast",name:"Grok 4 Fast",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0.05},releaseDate:"2025-08-19"},"nvidia/nemotron-nano-9b-v2":{id:"nvidia/nemotron-nano-9b-v2",name:"nvidia-nemotron-nano-9b-v2",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.04,output:0.16,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-18"},"mistralai/mistral-medium-3.1":{id:"mistralai/mistral-medium-3.1",name:"Mistral Medium 3.1",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-12"},"z-ai/glm-4.5v":{id:"z-ai/glm-4.5v",name:"GLM 4.5V",contextWindow:64000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-11"},"openai/gpt-5":{id:"openai/gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-mini":{id:"openai/gpt-5-mini",name:"GPT-5 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-nano":{id:"openai/gpt-5-nano",name:"GPT-5 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.05,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"anthropic/claude-opus-4.1":{id:"anthropic/claude-opus-4.1",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.072,output:0.28,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-120b:exacto":{id:"openai/gpt-oss-120b:exacto",name:"GPT OSS 120B (exacto)",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.05,output:0.24,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-120b:free":{id:"openai/gpt-oss-120b:free",name:"gpt-oss-120b (free)",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.05,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-20b:free":{id:"openai/gpt-oss-20b:free",name:"gpt-oss-20b (free)",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"mistralai/codestral-2508":{id:"mistralai/codestral-2508",name:"Codestral 2508",contextWindow:256000,maxTokens:12800,capabilities:["tools","structured_output","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-01"},"qwen/qwen3-coder-30b-a3b-instruct":{id:"qwen/qwen3-coder-30b-a3b-instruct",name:"Qwen3 Coder 30B A3B Instruct",contextWindow:160000,maxTokens:65536,capabilities:["tools","structured_output","temperature"],pricing:{input:0.07,output:0.27,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-31"},"qwen/qwen3-30b-a3b-instruct-2507":{id:"qwen/qwen3-30b-a3b-instruct-2507",name:"Qwen3 30B A3B Instruct 2507",contextWindow:262000,maxTokens:13100,capabilities:["tools","structured_output","temperature"],pricing:{input:0.2,output:0.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-29"},"qwen/qwen3-30b-a3b-thinking-2507":{id:"qwen/qwen3-30b-a3b-thinking-2507",name:"Qwen3 30B A3B Thinking 2507",contextWindow:262000,maxTokens:13100,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:0.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-29"},"z-ai/glm-4.5":{id:"z-ai/glm-4.5",name:"GLM 4.5",contextWindow:128000,maxTokens:96000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"},"z-ai/glm-4.5-air":{id:"z-ai/glm-4.5-air",name:"GLM 4.5 Air",contextWindow:128000,maxTokens:96000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"},"qwen/qwen3-235b-a22b-thinking-2507":{id:"qwen/qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507",contextWindow:262144,maxTokens:81920,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.078,output:0.312,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"qwen/qwen3-coder":{id:"qwen/qwen3-coder",name:"Qwen3 Coder",contextWindow:262144,maxTokens:66536,capabilities:["tools","structured_output","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"qwen/qwen3-coder-flash":{id:"qwen/qwen3-coder-flash",name:"Qwen3 Coder Flash",contextWindow:128000,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0.3,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"qwen/qwen3-coder:exacto":{id:"qwen/qwen3-coder:exacto",name:"Qwen3 Coder (exacto)",contextWindow:131072,maxTokens:32768,capabilities:["tools","structured_output","temperature"],pricing:{input:0.38,output:1.53,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"qwen/qwen3-coder:free":{id:"qwen/qwen3-coder:free",name:"Qwen3 Coder 480B A35B Instruct (free)",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"google/gemini-2.5-flash":{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.0375,cacheWrite:0},releaseDate:"2025-07-17"},"moonshotai/kimi-k2":{id:"moonshotai/kimi-k2",name:"Kimi K2",contextWindow:131072,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:0.55,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-11"},"moonshotai/kimi-k2:free":{id:"moonshotai/kimi-k2:free",name:"Kimi K2 (free)",contextWindow:32800,maxTokens:1640,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-11"},"mistralai/devstral-medium-2507":{id:"mistralai/devstral-medium-2507",name:"Devstral Medium",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-10"},"mistralai/devstral-small-2507":{id:"mistralai/devstral-small-2507",name:"Devstral Small 1.1",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-10"},"x-ai/grok-4":{id:"x-ai/grok-4",name:"Grok 4",contextWindow:256000,maxTokens:64000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:15},releaseDate:"2025-07-09"},"inception/mercury":{id:"inception/mercury",name:"Mercury",contextWindow:128000,maxTokens:32000,capabilities:["tools","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-26"},"mistralai/mistral-small-3.2-24b-instruct":{id:"mistralai/mistral-small-3.2-24b-instruct",name:"Mistral Small 3.2 24B Instruct",contextWindow:96000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-20"},"google/gemini-2.5-flash-lite":{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-17"},"minimax/minimax-m1":{id:"minimax/minimax-m1",name:"MiniMax M1",contextWindow:1e6,maxTokens:40000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.4,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-17"},"google/gemini-2.5-pro-preview-06-05":{id:"google/gemini-2.5-pro-preview-06-05",name:"Gemini 2.5 Pro Preview 06-05",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-06-05"},"anthropic/claude-opus-4":{id:"anthropic/claude-opus-4",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic/claude-sonnet-4":{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"mistralai/devstral-small-2505":{id:"mistralai/devstral-small-2505",name:"Devstral Small",contextWindow:128000,maxTokens:6400,capabilities:["tools","temperature"],pricing:{input:0.06,output:0.12,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"mistralai/mistral-medium-3":{id:"mistralai/mistral-medium-3",name:"Mistral Medium 3",contextWindow:131072,maxTokens:6553,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"google/gemini-2.5-pro-preview-05-06":{id:"google/gemini-2.5-pro-preview-05-06",name:"Gemini 2.5 Pro Preview 05-06",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-05-06"},"inception/mercury-coder":{id:"inception/mercury-coder",name:"Mercury Coder",contextWindow:128000,maxTokens:32000,capabilities:["tools","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-04-30"},"qwen/qwen3-4b:free":{id:"qwen/qwen3-4b:free",name:"Qwen3 4B (free)",contextWindow:40960,maxTokens:2048,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-30"},"qwen/qwen3-235b-a22b-07-25":{id:"qwen/qwen3-235b-a22b-07-25",name:"Qwen3 235B A22B Instruct 2507",contextWindow:262144,maxTokens:131072,capabilities:["tools","structured_output","temperature"],pricing:{input:0.15,output:0.85,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-28"},"openai/o4-mini":{id:"openai/o4-mini",name:"o4 Mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.1,output:4.4,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-04-16"},"openai/gpt-4.1":{id:"openai/gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"openai/gpt-4.1-mini":{id:"openai/gpt-4.1-mini",name:"GPT-4.1 Mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"google/gemini-2.5-pro":{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-03-20"},"mistralai/mistral-small-3.1-24b-instruct":{id:"mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-17"},"google/gemma-3-27b-it":{id:"google/gemma-3-27b-it",name:"Gemma 3 27B",contextWindow:96000,maxTokens:4800,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.04,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-12"},"google/gemma-3-27b-it:free":{id:"google/gemma-3-27b-it:free",name:"Gemma 3 27B (free)",contextWindow:131072,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-12"},"anthropic/claude-3.7-sonnet":{id:"anthropic/claude-3.7-sonnet",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-02-19"},"x-ai/grok-3":{id:"x-ai/grok-3",name:"Grok 3",contextWindow:131072,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:15},releaseDate:"2025-02-17"},"x-ai/grok-3-beta":{id:"x-ai/grok-3-beta",name:"Grok 3 Beta",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:15},releaseDate:"2025-02-17"},"x-ai/grok-3-mini":{id:"x-ai/grok-3-mini",name:"Grok 3 Mini",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0.5},releaseDate:"2025-02-17"},"x-ai/grok-3-mini-beta":{id:"x-ai/grok-3-mini-beta",name:"Grok 3 Mini Beta",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0.5},releaseDate:"2025-02-17"},"minimax/minimax-01":{id:"minimax/minimax-01",name:"MiniMax-01",contextWindow:1e6,maxTokens:50000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-15"},"prime-intellect/intellect-3":{id:"prime-intellect/intellect-3",name:"Intellect 3",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-15"},"google/gemini-2.0-flash-001":{id:"google/gemini-2.0-flash-001",name:"Gemini 2.0 Flash",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2024-12-11"},"meta-llama/llama-3.3-70b-instruct:free":{id:"meta-llama/llama-3.3-70b-instruct:free",name:"Llama 3.3 70B Instruct (free)",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"},"anthropic/claude-3.5-haiku":{id:"anthropic/claude-3.5-haiku",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"openai/gpt-4o-mini":{id:"openai/gpt-4o-mini",name:"GPT-4o-mini",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.08,cacheWrite:0},releaseDate:"2024-07-18"}},requesty:{"openai/gpt-5.4":{id:"openai/gpt-5.4",name:"GPT-5.4",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:2.5,output:15,cacheRead:0.25,cacheWrite:0},releaseDate:"2026-03-05"},"openai/gpt-5.4-pro":{id:"openai/gpt-5.4-pro",name:"GPT-5.4 Pro",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning"],pricing:{input:30,output:180,cacheRead:30,cacheWrite:0},releaseDate:"2026-03-05"},"openai/gpt-5.3-codex":{id:"openai/gpt-5.3-codex",name:"GPT-5.3-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-24"},"anthropic/claude-sonnet-4-6":{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"anthropic/claude-opus-4-6":{id:"anthropic/claude-opus-4-6",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"openai/gpt-5.2-codex":{id:"openai/gpt-5.2-codex",name:"GPT-5.2-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-01-14"},"google/gemini-3-flash-preview":{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.5,output:3,cacheRead:0.05,cacheWrite:1},releaseDate:"2025-12-17"},"openai/gpt-5.2":{id:"openai/gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"openai/gpt-5.2-chat":{id:"openai/gpt-5.2-chat",name:"GPT-5.2 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"openai/gpt-5.2-pro":{id:"openai/gpt-5.2-pro",name:"GPT-5.2 Pro",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:21,output:168,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-11"},"anthropic/claude-opus-4-5":{id:"anthropic/claude-opus-4-5",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"google/gemini-3-pro-preview":{id:"google/gemini-3-pro-preview",name:"Gemini 3 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:4.5},releaseDate:"2025-11-18"},"openai/gpt-5.1":{id:"openai/gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-chat":{id:"openai/gpt-5.1-chat",name:"GPT-5.1 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex":{id:"openai/gpt-5.1-codex",name:"GPT-5.1-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex-max":{id:"openai/gpt-5.1-codex-max",name:"GPT-5.1-Codex-Max",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.1,output:9,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex-mini":{id:"openai/gpt-5.1-codex-mini",name:"GPT-5.1-Codex-Mini",contextWindow:400000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-11-13"},"anthropic/claude-haiku-4-5":{id:"anthropic/claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:62000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"openai/gpt-5-image":{id:"openai/gpt-5-image",name:"GPT-5 Image",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-10-14"},"openai/gpt-5-pro":{id:"openai/gpt-5-pro",name:"GPT-5 Pro",contextWindow:400000,maxTokens:272000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:120,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-06"},"anthropic/claude-sonnet-4-5":{id:"anthropic/claude-sonnet-4-5",name:"Claude Sonnet 4.5",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"xai/grok-4-fast":{id:"xai/grok-4-fast",name:"Grok 4 Fast",contextWindow:2000000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0.2},releaseDate:"2025-09-19"},"openai/gpt-5-codex":{id:"openai/gpt-5-codex",name:"GPT-5 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-09-15"},"xai/grok-4":{id:"xai/grok-4",name:"Grok 4",contextWindow:256000,maxTokens:64000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:3},releaseDate:"2025-09-09"},"openai/gpt-5":{id:"openai/gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-mini":{id:"openai/gpt-5-mini",name:"GPT-5 Mini",contextWindow:128000,maxTokens:32000,capabilities:["images","tools","reasoning"],pricing:{input:0.25,output:2,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-nano":{id:"openai/gpt-5-nano",name:"GPT-5 Nano",contextWindow:16000,maxTokens:4000,capabilities:["tools","reasoning"],pricing:{input:0.05,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-08-07"},"anthropic/claude-opus-4-1":{id:"anthropic/claude-opus-4-1",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"google/gemini-2.5-flash":{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0.55},releaseDate:"2025-06-17"},"google/gemini-2.5-pro":{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:2.375},releaseDate:"2025-06-17"},"anthropic/claude-opus-4":{id:"anthropic/claude-opus-4",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic/claude-sonnet-4":{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"openai/o4-mini":{id:"openai/o4-mini",name:"o4 Mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.1,output:4.4,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-04-16"},"openai/gpt-4.1":{id:"openai/gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"openai/gpt-4.1-mini":{id:"openai/gpt-4.1-mini",name:"GPT-4.1 Mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"anthropic/claude-3-7-sonnet":{id:"anthropic/claude-3-7-sonnet",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"openai/gpt-4o-mini":{id:"openai/gpt-4o-mini",name:"GPT-4o Mini",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.08,cacheWrite:0},releaseDate:"2024-07-18"}},sapaicore:{"anthropic--claude-4.6-sonnet":{id:"anthropic--claude-4.6-sonnet",name:"anthropic--claude-4.6-sonnet",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"anthropic--claude-4.6-opus":{id:"anthropic--claude-4.6-opus",name:"anthropic--claude-4.6-opus",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"anthropic--claude-4.5-opus":{id:"anthropic--claude-4.5-opus",name:"anthropic--claude-4.5-opus",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"anthropic--claude-4.5-haiku":{id:"anthropic--claude-4.5-haiku",name:"anthropic--claude-4.5-haiku",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"anthropic--claude-4.5-sonnet":{id:"anthropic--claude-4.5-sonnet",name:"anthropic--claude-4.5-sonnet",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"gpt-5":{id:"gpt-5",name:"gpt-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-08-07"},"gpt-5-mini":{id:"gpt-5-mini",name:"gpt-5-mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-08-07"},"gpt-5-nano":{id:"gpt-5-nano",name:"gpt-5-nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.05,output:0.4,cacheRead:0.005,cacheWrite:0},releaseDate:"2025-08-07"},"gemini-2.5-flash-lite":{id:"gemini-2.5-flash-lite",name:"gemini-2.5-flash-lite",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-17"},"anthropic--claude-4-opus":{id:"anthropic--claude-4-opus",name:"anthropic--claude-4-opus",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic--claude-4-sonnet":{id:"anthropic--claude-4-sonnet",name:"anthropic--claude-4-sonnet",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"gpt-4.1":{id:"gpt-4.1",name:"gpt-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"gpt-4.1-mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"gemini-2.5-flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-03-25"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"gemini-2.5-pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-03-25"},"anthropic--claude-3.7-sonnet":{id:"anthropic--claude-3.7-sonnet",name:"anthropic--claude-3.7-sonnet",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-24"},"anthropic--claude-3.5-sonnet":{id:"anthropic--claude-3.5-sonnet",name:"anthropic--claude-3.5-sonnet",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"},"anthropic--claude-3-haiku":{id:"anthropic--claude-3-haiku",name:"anthropic--claude-3-haiku",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:0.25,output:1.25,cacheRead:0.03,cacheWrite:0.3},releaseDate:"2024-03-13"},"anthropic--claude-3-sonnet":{id:"anthropic--claude-3-sonnet",name:"anthropic--claude-3-sonnet",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-03-04"},"anthropic--claude-3-opus":{id:"anthropic--claude-3-opus",name:"anthropic--claude-3-opus",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2024-02-29"}},together:{"Qwen/Qwen3.5-397B-A17B":{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen3.5 397B A17B",contextWindow:262144,maxTokens:130000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3.6,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-16"},"MiniMaxAI/MiniMax-M2.5":{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.06,cacheWrite:0},releaseDate:"2026-02-12"},"zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-11"},"Qwen/Qwen3-Coder-Next-FP8":{id:"Qwen/Qwen3-Coder-Next-FP8",name:"Qwen3 Coder Next FP8",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.5,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-03"},"moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.5,output:2.8,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-27"},"essentialai/Rnj-1-Instruct":{id:"essentialai/Rnj-1-Instruct",name:"Rnj-1 Instruct",contextWindow:32768,maxTokens:1638,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-05"},"zai-org/GLM-4.6":{id:"zai-org/GLM-4.6",name:"GLM 4.6",contextWindow:200000,maxTokens:1e4,capabilities:["tools","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-30"},"deepseek-ai/DeepSeek-V3-1":{id:"deepseek-ai/DeepSeek-V3-1",name:"DeepSeek V3.1",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:1.7,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{id:"Qwen/Qwen3-235B-A22B-Instruct-2507-tput",name:"Qwen3 235B A22B Instruct 2507 FP8",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-Next-80B-A3B-Instruct":{id:"Qwen/Qwen3-Next-80B-A3B-Instruct",name:"Qwen3-Next-80B-A3B-Instruct",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:0.15,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"zai-org/GLM-4.7":{id:"zai-org/GLM-4.7",name:"GLM-4.7",contextWindow:200000,maxTokens:1e4,capabilities:["tools","reasoning","temperature"],pricing:{input:0.45,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:2,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi K2 Instruct",contextWindow:131072,maxTokens:6553,capabilities:["tools","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-14"},"deepseek-ai/DeepSeek-V3":{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:1.25,output:1.25,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-20"},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B",contextWindow:131072,maxTokens:6553,capabilities:["tools","temperature"],pricing:{input:0.88,output:0.88,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"}},"vercel-ai-gateway":{"minimax/minimax-m2.7":{id:"minimax/minimax-m2.7",name:"Minimax M2.7",contextWindow:204800,maxTokens:131000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"minimax/minimax-m2.7-highspeed":{id:"minimax/minimax-m2.7-highspeed",name:"MiniMax M2.7 High Speed",contextWindow:204800,maxTokens:131100,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:2.4,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"xiaomi/mimo-v2-pro":{id:"xiaomi/mimo-v2-pro",name:"MiMo V2 Pro",contextWindow:1e6,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-18"},"openai/gpt-5.4-mini":{id:"openai/gpt-5.4-mini",name:"GPT 5.4 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.75,output:4.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2026-03-17"},"openai/gpt-5.4-nano":{id:"openai/gpt-5.4-nano",name:"GPT 5.4 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.19999999999999998,output:1.25,cacheRead:0.02,cacheWrite:0},releaseDate:"2026-03-17"},"zai/glm-5-turbo":{id:"zai/glm-5-turbo",name:"GLM 5 Turbo",contextWindow:202800,maxTokens:131100,capabilities:["tools","reasoning","temperature"],pricing:{input:1.2,output:4,cacheRead:0.24,cacheWrite:0},releaseDate:"2026-03-15"},"zai/glm-4.7-flash":{id:"zai/glm-4.7-flash",name:"GLM 4.7 Flash",contextWindow:200000,maxTokens:131000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.39999999999999997,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-13"},"xai/grok-4.20-multi-agent-beta":{id:"xai/grok-4.20-multi-agent-beta",name:"Grok 4.20 Multi Agent Beta",contextWindow:2000000,maxTokens:1e5,capabilities:["tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-11"},"xai/grok-4.20-non-reasoning-beta":{id:"xai/grok-4.20-non-reasoning-beta",name:"Grok 4.20 Beta Non-Reasoning",contextWindow:2000000,maxTokens:1e5,capabilities:["images","files","tools","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-11"},"xai/grok-4.20-reasoning-beta":{id:"xai/grok-4.20-reasoning-beta",name:"Grok 4.20 Beta Reasoning",contextWindow:2000000,maxTokens:1e5,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-11"},"xai/grok-4.20-multi-agent":{id:"xai/grok-4.20-multi-agent",name:"Grok 4.20 Multi-Agent",contextWindow:2000000,maxTokens:1e5,capabilities:["tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-09"},"xai/grok-4.20-non-reasoning":{id:"xai/grok-4.20-non-reasoning",name:"Grok 4.20 Non-Reasoning",contextWindow:2000000,maxTokens:1e5,capabilities:["images","files","tools","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-09"},"xai/grok-4.20-reasoning":{id:"xai/grok-4.20-reasoning",name:"Grok 4.20 Reasoning",contextWindow:2000000,maxTokens:1e5,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-09"},"openai/gpt-5.4":{id:"openai/gpt-5.4",name:"GPT 5.4",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2.5,output:15,cacheRead:0.25,cacheWrite:0},releaseDate:"2026-03-05"},"openai/gpt-5.4-pro":{id:"openai/gpt-5.4-pro",name:"GPT 5.4 Pro",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:30,output:180,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-05"},"google/gemini-3.1-flash-lite-preview":{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",contextWindow:1e6,maxTokens:65000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.25,output:1.5,cacheRead:0.025,cacheWrite:1},releaseDate:"2026-03-03"},"openai/gpt-5.3-chat":{id:"openai/gpt-5.3-chat",name:"GPT-5.3 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-03-03"},"alibaba/qwen3.5-flash":{id:"alibaba/qwen3.5-flash",name:"Qwen 3.5 Flash",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.001,cacheWrite:0.125},releaseDate:"2026-02-24"},"inception/mercury-2":{id:"inception/mercury-2",name:"Mercury 2",contextWindow:128000,maxTokens:6400,capabilities:["tools","reasoning","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.024999999999999998,cacheWrite:0},releaseDate:"2026-02-24"},"openai/gpt-5.3-codex":{id:"openai/gpt-5.3-codex",name:"GPT 5.3 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-24"},"google/gemini-3.1-pro-preview":{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-19"},"anthropic/claude-sonnet-4.6":{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"alibaba/qwen3.5-plus":{id:"alibaba/qwen3.5-plus",name:"Qwen 3.5 Plus",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.4,output:2.4,cacheRead:0.04,cacheWrite:0.5},releaseDate:"2026-02-16"},"minimax/minimax-m2.5":{id:"minimax/minimax-m2.5",name:"MiniMax M2.5",contextWindow:204800,maxTokens:131000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-02-12"},"minimax/minimax-m2.5-highspeed":{id:"minimax/minimax-m2.5-highspeed",name:"MiniMax M2.5 High Speed",contextWindow:0,maxTokens:0,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.4,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-02-12"},"zai/glm-5":{id:"zai/glm-5",name:"GLM-5",contextWindow:202800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-12"},"anthropic/claude-opus-4.6":{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02"},"moonshotai/kimi-k2.5":{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-26"},"zai/glm-4.7":{id:"zai/glm-4.7",name:"GLM 4.7",contextWindow:202752,maxTokens:120000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.43,output:1.75,cacheRead:0.08,cacheWrite:0},releaseDate:"2025-12-22"},"google/gemini-3-flash":{id:"google/gemini-3-flash",name:"Gemini 3 Flash",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.5,output:3,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-12-17"},"xiaomi/mimo-v2-flash":{id:"xiaomi/mimo-v2-flash",name:"MiMo V2 Flash",contextWindow:262144,maxTokens:32000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.29,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-17"},"mistral/devstral-2":{id:"mistral/devstral-2",name:"Devstral 2",contextWindow:256000,maxTokens:12800,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-09"},"deepseek/deepseek-v3.2-thinking":{id:"deepseek/deepseek-v3.2-thinking",name:"DeepSeek V3.2 Thinking",contextWindow:128000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.28,output:0.42,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-12-01"},"openai/gpt-5.2-codex":{id:"openai/gpt-5.2-codex",name:"GPT-5.2-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12"},"prime-intellect/intellect-3":{id:"prime-intellect/intellect-3",name:"INTELLECT 3",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-11-26"},"anthropic/claude-opus-4.5":{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:18.75},releaseDate:"2025-11-24"},"google/gemini-3-pro-preview":{id:"google/gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2025-11-18"},"moonshotai/kimi-k2-thinking":{id:"moonshotai/kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:216144,maxTokens:10807,capabilities:["tools","reasoning","temperature"],pricing:{input:0.47,output:2,cacheRead:0.14,cacheWrite:0},releaseDate:"2025-11-06"},"moonshotai/kimi-k2-thinking-turbo":{id:"moonshotai/kimi-k2-thinking-turbo",name:"Kimi K2 Thinking Turbo",contextWindow:262114,maxTokens:13105,capabilities:["tools","reasoning","temperature"],pricing:{input:1.15,output:8,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"minimax/minimax-m2":{id:"minimax/minimax-m2",name:"MiniMax M2",contextWindow:262114,maxTokens:13105,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:1.15,cacheRead:0.03,cacheWrite:0.38},releaseDate:"2025-10-27"},"minimax/minimax-m2.1":{id:"minimax/minimax-m2.1",name:"MiniMax M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0.38},releaseDate:"2025-10-27"},"minimax/minimax-m2.1-lightning":{id:"minimax/minimax-m2.1-lightning",name:"MiniMax M2.1 Lightning",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:2.4,cacheRead:0.03,cacheWrite:0.38},releaseDate:"2025-10-27"},"anthropic/claude-haiku-4.5":{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"bytedance/seed-1.8":{id:"bytedance/seed-1.8",name:"Seed 1.8",contextWindow:256000,maxTokens:64000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.25,output:2,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-10"},"zai/glm-4.6":{id:"zai/glm-4.6",name:"GLM 4.6",contextWindow:200000,maxTokens:96000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.45,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-30"},"zai/glm-4.6v":{id:"zai/glm-4.6v",name:"GLM-4.6V",contextWindow:128000,maxTokens:24000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09-30"},"zai/glm-4.6v-flash":{id:"zai/glm-4.6v-flash",name:"GLM-4.6V-Flash",contextWindow:128000,maxTokens:24000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-30"},"anthropic/claude-sonnet-4.5":{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"deepseek/deepseek-v3.2-exp":{id:"deepseek/deepseek-v3.2-exp",name:"DeepSeek V3.2 Exp",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-29"},"google/gemini-2.5-flash-lite-preview-09-2025":{id:"google/gemini-2.5-flash-lite-preview-09-2025",name:"Gemini 2.5 Flash Lite Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-09-25"},"google/gemini-2.5-flash-preview-09-2025":{id:"google/gemini-2.5-flash-preview-09-2025",name:"Gemini 2.5 Flash Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.03,cacheWrite:0.383},releaseDate:"2025-09-25"},"alibaba/qwen3-vl-instruct":{id:"alibaba/qwen3-vl-instruct",name:"Qwen3 VL Instruct",contextWindow:131072,maxTokens:129024,capabilities:["images","tools","temperature"],pricing:{input:0.7,output:2.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-24"},"alibaba/qwen3-vl-thinking":{id:"alibaba/qwen3-vl-thinking",name:"Qwen3 VL Thinking",contextWindow:131072,maxTokens:129024,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.7,output:8.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-24"},"alibaba/qwen3-max":{id:"alibaba/qwen3-max",name:"Qwen3 Max",contextWindow:262144,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:1.2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-23"},"alibaba/qwen3-max-preview":{id:"alibaba/qwen3-max-preview",name:"Qwen3 Max Preview",contextWindow:262144,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:1.2,output:6,cacheRead:0.24,cacheWrite:0},releaseDate:"2025-09-23"},"meituan/longcat-flash-thinking":{id:"meituan/longcat-flash-thinking",name:"LongCat Flash Thinking",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-23"},"deepseek/deepseek-v3.1-terminus":{id:"deepseek/deepseek-v3.1-terminus",name:"DeepSeek V3.1 Terminus",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"xai/grok-4-fast-non-reasoning":{id:"xai/grok-4-fast-non-reasoning",name:"Grok 4 Fast (Non-Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09-19"},"openai/gpt-5-codex":{id:"openai/gpt-5-codex",name:"GPT-5-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-09-15"},"alibaba/qwen3-next-80b-a3b-instruct":{id:"alibaba/qwen3-next-80b-a3b-instruct",name:"Qwen3 Next 80B A3B Instruct",contextWindow:262144,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:0.09,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-12"},"alibaba/qwen3-next-80b-a3b-thinking":{id:"alibaba/qwen3-next-80b-a3b-thinking",name:"Qwen3 Next 80B A3B Thinking",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-12"},"moonshotai/kimi-k2-turbo":{id:"moonshotai/kimi-k2-turbo",name:"Kimi K2 Turbo",contextWindow:256000,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:2.4,output:10,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"bytedance/seed-1.6":{id:"bytedance/seed-1.6",name:"Seed 1.6",contextWindow:256000,maxTokens:32000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.25,output:2,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09"},"meituan/longcat-flash-chat":{id:"meituan/longcat-flash-chat",name:"LongCat Flash Chat",contextWindow:128000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-30"},"xai/grok-code-fast-1":{id:"xai/grok-code-fast-1",name:"Grok Code Fast 1",contextWindow:256000,maxTokens:1e4,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.5,cacheRead:0.02,cacheWrite:0},releaseDate:"2025-08-28"},"deepseek/deepseek-v3.1":{id:"deepseek/deepseek-v3.1",name:"DeepSeek-V3.1",contextWindow:163840,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"nvidia/nemotron-nano-9b-v2":{id:"nvidia/nemotron-nano-9b-v2",name:"Nvidia Nemotron Nano 9B V2",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.04,output:0.16,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-18"},"zai/glm-4.5v":{id:"zai/glm-4.5v",name:"GLM 4.5V",contextWindow:66000,maxTokens:3300,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-11"},"openai/gpt-5":{id:"openai/gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-chat":{id:"openai/gpt-5-chat",name:"GPT-5 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-mini":{id:"openai/gpt-5-mini",name:"GPT-5 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-nano":{id:"openai/gpt-5-nano",name:"GPT-5 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.05,output:0.4,cacheRead:0.005,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-pro":{id:"openai/gpt-5-pro",name:"GPT-5 pro",contextWindow:400000,maxTokens:272000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:120,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.1-codex":{id:"openai/gpt-5.1-codex",name:"GPT-5.1-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.1-codex-max":{id:"openai/gpt-5.1-codex-max",name:"GPT 5.1 Codex Max",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.1-instant":{id:"openai/gpt-5.1-instant",name:"GPT-5.1 Instant",contextWindow:128000,maxTokens:16384,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.1-thinking":{id:"openai/gpt-5.1-thinking",name:"GPT 5.1 Thinking",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.2":{id:"openai/gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.18,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.2-chat":{id:"openai/gpt-5.2-chat",name:"GPT-5.2 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.18,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.2-pro":{id:"openai/gpt-5.2-pro",name:"GPT 5.2 ",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:21,output:168,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"zai/glm-4.5":{id:"zai/glm-4.5",name:"GLM 4.5",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"},"zai/glm-4.5-air":{id:"zai/glm-4.5-air",name:"GLM 4.5 Air",contextWindow:128000,maxTokens:96000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"},"alibaba/qwen3-coder-plus":{id:"alibaba/qwen3-coder-plus",name:"Qwen3 Coder Plus",contextWindow:1e6,maxTokens:50000,capabilities:["tools","temperature"],pricing:{input:1,output:5,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"alibaba/qwen3-coder-next":{id:"alibaba/qwen3-coder-next",name:"Qwen3 Coder Next",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0.5,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-22"},"xai/grok-4":{id:"xai/grok-4",name:"Grok 4",contextWindow:256000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-07-09"},"xai/grok-4-fast-reasoning":{id:"xai/grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning",contextWindow:2000000,maxTokens:256000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-07-09"},"xai/grok-4.1-fast-non-reasoning":{id:"xai/grok-4.1-fast-non-reasoning",name:"Grok 4.1 Fast Non-Reasoning",contextWindow:2000000,maxTokens:30000,capabilities:["tools","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-07-09"},"xai/grok-4.1-fast-reasoning":{id:"xai/grok-4.1-fast-reasoning",name:"Grok 4.1 Fast Reasoning",contextWindow:2000000,maxTokens:30000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-07-09"},"google/gemini-2.5-flash-lite":{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-06-17"},"vercel/v0-1.5-md":{id:"vercel/v0-1.5-md",name:"v0-1.5-md",contextWindow:128000,maxTokens:32000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-09"},"anthropic/claude-opus-4":{id:"anthropic/claude-opus-4",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic/claude-opus-4.1":{id:"anthropic/claude-opus-4.1",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic/claude-sonnet-4":{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"vercel/v0-1.0-md":{id:"vercel/v0-1.0-md",name:"v0-1.0-md",contextWindow:128000,maxTokens:32000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-22"},"openai/codex-mini":{id:"openai/codex-mini",name:"Codex Mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.5,output:6,cacheRead:0.38,cacheWrite:0},releaseDate:"2025-05-16"},"openai/gpt-5.1-codex-mini":{id:"openai/gpt-5.1-codex-mini",name:"GPT-5.1 Codex mini",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.25,output:2,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-05-16"},"mistral/devstral-small":{id:"mistral/devstral-small",name:"Devstral Small 1.1",contextWindow:128000,maxTokens:64000,capabilities:["tools","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"mistral/devstral-small-2":{id:"mistral/devstral-small-2",name:"Devstral Small 2",contextWindow:256000,maxTokens:12800,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"mistral/mistral-medium":{id:"mistral/mistral-medium",name:"Mistral Medium 3.1",contextWindow:128000,maxTokens:64000,capabilities:["images","tools","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"openai/o3":{id:"openai/o3",name:"o3",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-16"},"openai/o3-pro":{id:"openai/o3-pro",name:"o3 Pro",contextWindow:200000,maxTokens:1e5,capabilities:["images","files","tools","reasoning"],pricing:{input:20,output:80,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-16"},"openai/o4-mini":{id:"openai/o4-mini",name:"o4-mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.1,output:4.4,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-04-16"},"openai/gpt-4.1":{id:"openai/gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"openai/gpt-4.1-mini":{id:"openai/gpt-4.1-mini",name:"GPT-4.1 mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"openai/gpt-4.1-nano":{id:"openai/gpt-4.1-nano",name:"GPT-4.1 nano",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-04-14"},"meta/llama-4-maverick":{id:"meta/llama-4-maverick",name:"Llama-4-Maverick-17B-128E-Instruct-FP8",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"meta/llama-4-scout":{id:"meta/llama-4-scout",name:"Llama-4-Scout-17B-16E-Instruct-FP8",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"alibaba/qwen-3-14b":{id:"alibaba/qwen-3-14b",name:"Qwen3-14B",contextWindow:40960,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen-3-235b":{id:"alibaba/qwen-3-235b",name:"Qwen3 235B A22B Instruct 2507",contextWindow:40960,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.13,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen-3-30b":{id:"alibaba/qwen-3-30b",name:"Qwen3-30B-A3B",contextWindow:40960,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:0.08,output:0.29,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen-3-32b":{id:"alibaba/qwen-3-32b",name:"Qwen 3.32B",contextWindow:40960,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen3-235b-a22b-thinking":{id:"alibaba/qwen3-235b-a22b-thinking",name:"Qwen3 235B A22B Thinking 2507",contextWindow:262114,maxTokens:13105,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:2.9,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen3-coder":{id:"alibaba/qwen3-coder",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0.38,output:1.53,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen3-coder-30b-a3b":{id:"alibaba/qwen3-coder-30b-a3b",name:"Qwen 3 Coder 30B A3B Instruct",contextWindow:160000,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.27,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"google/gemini-2.5-flash":{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-03-20"},"google/gemini-2.5-pro":{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-03-20"},"mistral/magistral-medium":{id:"mistral/magistral-medium",name:"Magistral Medium (latest)",contextWindow:128000,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:2,output:5,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-17"},"mistral/magistral-small":{id:"mistral/magistral-small",name:"Magistral Small",contextWindow:128000,maxTokens:6400,capabilities:["tools","reasoning","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-17"},"cohere/command-a":{id:"cohere/command-a",name:"Command A",contextWindow:256000,maxTokens:8000,capabilities:["tools","temperature"],pricing:{input:2.5,output:10,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-13"},"inception/mercury-coder-small":{id:"inception/mercury-coder-small",name:"Mercury Coder Small Beta",contextWindow:32000,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.25,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-02-26"},"anthropic/claude-3.7-sonnet":{id:"anthropic/claude-3.7-sonnet",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"perplexity/sonar":{id:"perplexity/sonar",name:"Sonar",contextWindow:127000,maxTokens:8000,capabilities:["images","tools","temperature"],pricing:{input:1,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-02-19"},"perplexity/sonar-pro":{id:"perplexity/sonar-pro",name:"Sonar Pro",contextWindow:200000,maxTokens:8000,capabilities:["images","tools","temperature"],pricing:{input:3,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2025-02-19"},"xai/grok-3":{id:"xai/grok-3",name:"Grok 3",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-02-17"},"xai/grok-3-fast":{id:"xai/grok-3-fast",name:"Grok 3 Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:5,output:25,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-02-17"},"xai/grok-3-mini":{id:"xai/grok-3-mini",name:"Grok 3 Mini",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-02-17"},"xai/grok-3-mini-fast":{id:"xai/grok-3-mini-fast",name:"Grok 3 Mini Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:4,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-02-17"},"deepseek/deepseek-r1":{id:"deepseek/deepseek-r1",name:"DeepSeek-R1",contextWindow:128000,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-20"},"alibaba/qwen3-max-thinking":{id:"alibaba/qwen3-max-thinking",name:"Qwen 3 Max Thinking",contextWindow:256000,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:1.2,output:6,cacheRead:0.24,cacheWrite:0},releaseDate:"2025-01"},"arcee-ai/trinity-large-preview":{id:"arcee-ai/trinity-large-preview",name:"Trinity Large Preview",contextWindow:131000,maxTokens:6550,capabilities:["tools","temperature"],pricing:{input:0.25,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-01"},"zai/glm-4.7-flashx":{id:"zai/glm-4.7-flashx",name:"GLM 4.7 FlashX",contextWindow:200000,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.06,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-01"},"deepseek/deepseek-v3":{id:"deepseek/deepseek-v3",name:"DeepSeek V3 0324",contextWindow:163840,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.77,output:0.77,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-26"},"openai/o3-mini":{id:"openai/o3-mini",name:"o3-mini",contextWindow:200000,maxTokens:1e5,capabilities:["tools","reasoning","structured_output"],pricing:{input:1.1,output:4.4,cacheRead:0.55,cacheWrite:0},releaseDate:"2024-12-20"},"google/gemini-2.0-flash":{id:"google/gemini-2.0-flash",name:"Gemini 2.0 Flash",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2024-12-11"},"google/gemini-2.0-flash-lite":{id:"google/gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-11"},"meta/llama-3.3-70b":{id:"meta/llama-3.3-70b",name:"Llama-3.3-70B-Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"},"openai/o1":{id:"openai/o1",name:"o1",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:60,cacheRead:7.5,cacheWrite:0},releaseDate:"2024-12-05"},"amazon/nova-lite":{id:"amazon/nova-lite",name:"Nova Lite",contextWindow:300000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0.015,cacheWrite:0},releaseDate:"2024-12-03"},"amazon/nova-micro":{id:"amazon/nova-micro",name:"Nova Micro",contextWindow:128000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.035,output:0.14,cacheRead:0.00875,cacheWrite:0},releaseDate:"2024-12-03"},"amazon/nova-pro":{id:"amazon/nova-pro",name:"Nova Pro",contextWindow:300000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.8,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2024-12-03"},"nvidia/nemotron-nano-12b-v2-vl":{id:"nvidia/nemotron-nano-12b-v2-vl",name:"Nvidia Nemotron Nano 12B V2 VL",contextWindow:131072,maxTokens:6553,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2024-12"},"openai/gpt-oss-safeguard-20b":{id:"openai/gpt-oss-safeguard-20b",name:"gpt-oss-safeguard-20b",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.08,output:0.3,cacheRead:0.04,cacheWrite:0},releaseDate:"2024-12-01"},"mistral/pixtral-large":{id:"mistral/pixtral-large",name:"Pixtral Large (latest)",contextWindow:128000,maxTokens:6400,capabilities:["images","tools","temperature"],pricing:{input:2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2024-11-01"},"anthropic/claude-3.5-haiku":{id:"anthropic/claude-3.5-haiku",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"anthropic/claude-3.5-sonnet":{id:"anthropic/claude-3.5-sonnet",name:"Claude Sonnet 3.5 v2",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"},"mistral/ministral-3b":{id:"mistral/ministral-3b",name:"Ministral 3B (latest)",contextWindow:128000,maxTokens:6400,capabilities:["tools","temperature"],pricing:{input:0.04,output:0.04,cacheRead:0,cacheWrite:0},releaseDate:"2024-10-01"},"mistral/ministral-8b":{id:"mistral/ministral-8b",name:"Ministral 8B (latest)",contextWindow:128000,maxTokens:6400,capabilities:["tools","temperature"],pricing:{input:0.1,output:0.1,cacheRead:0,cacheWrite:0},releaseDate:"2024-10-01"},"meta/llama-3.2-11b":{id:"meta/llama-3.2-11b",name:"Llama 3.2 11B Vision Instruct",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.16,output:0.16,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta/llama-3.2-90b":{id:"meta/llama-3.2-90b",name:"Llama 3.2 90B Vision Instruct",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.72,output:0.72,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"mistral/mistral-small":{id:"mistral/mistral-small",name:"Mistral Small (latest)",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-01"},"mistral/pixtral-12b":{id:"mistral/pixtral-12b",name:"Pixtral 12B",contextWindow:128000,maxTokens:6400,capabilities:["images","tools","temperature"],pricing:{input:0.15,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-01"},"xai/grok-2-vision":{id:"xai/grok-2-vision",name:"Grok 2 Vision",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"meta/llama-3.1-70b":{id:"meta/llama-3.1-70b",name:"Llama 3.1 70B Instruct",contextWindow:131072,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.4,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"meta/llama-3.1-8b":{id:"meta/llama-3.1-8b",name:"Llama 3.1 8B Instruct",contextWindow:131072,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.03,output:0.05,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"openai/gpt-4o-mini":{id:"openai/gpt-4o-mini",name:"GPT-4o mini",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.08,cacheWrite:0},releaseDate:"2024-07-18"},"mistral/mistral-nemo":{id:"mistral/mistral-nemo",name:"Mistral Nemo",contextWindow:60288,maxTokens:16000,capabilities:["tools","temperature"],pricing:{input:0.04,output:0.17,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-01"},"openai/o3-deep-research":{id:"openai/o3-deep-research",name:"o3-deep-research",contextWindow:200000,maxTokens:1e5,capabilities:["images","files","tools","reasoning"],pricing:{input:10,output:40,cacheRead:2.5,cacheWrite:0},releaseDate:"2024-06-26"},"anthropic/claude-3.5-sonnet-20240620":{id:"anthropic/claude-3.5-sonnet-20240620",name:"Claude 3.5 Sonnet (2024-06-20)",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2024-06-20"},"mistral/codestral":{id:"mistral/codestral",name:"Codestral (latest)",contextWindow:256000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0,cacheWrite:0},releaseDate:"2024-05-29"},"openai/gpt-4o":{id:"openai/gpt-4o",name:"GPT-4o",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-05-13"},"mistral/mixtral-8x22b-instruct":{id:"mistral/mixtral-8x22b-instruct",name:"Mixtral 8x22B",contextWindow:64000,maxTokens:3200,capabilities:["tools","temperature"],pricing:{input:2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2024-04-17"},"anthropic/claude-3-haiku":{id:"anthropic/claude-3-haiku",name:"Claude Haiku 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:0.25,output:1.25,cacheRead:0.03,cacheWrite:0.3},releaseDate:"2024-03-13"},"anthropic/claude-3-opus":{id:"anthropic/claude-3-opus",name:"Claude Opus 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2024-02-29"},"openai/gpt-4-turbo":{id:"openai/gpt-4-turbo",name:"GPT-4 Turbo",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:10,output:30,cacheRead:0,cacheWrite:0},releaseDate:"2023-11-06"}},vertex:{"claude-sonnet-4-6@default":{id:"claude-sonnet-4-6@default",name:"Claude Sonnet 4.6",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"claude-opus-4-6@default":{id:"claude-opus-4-6@default",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"claude-opus-4-5@20251101":{id:"claude-opus-4-5@20251101",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"claude-haiku-4-5@20251001":{id:"claude-haiku-4-5@20251001",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"claude-sonnet-4-5@20250929":{id:"claude-sonnet-4-5@20250929",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"claude-opus-4-1@20250805":{id:"claude-opus-4-1@20250805",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"claude-opus-4@20250514":{id:"claude-opus-4@20250514",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"claude-sonnet-4@20250514":{id:"claude-sonnet-4@20250514",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"claude-3-7-sonnet@20250219":{id:"claude-3-7-sonnet@20250219",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"claude-3-5-haiku@20241022":{id:"claude-3-5-haiku@20241022",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"claude-3-5-sonnet@20241022":{id:"claude-3-5-sonnet@20241022",name:"Claude Sonnet 3.5 v2",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"}},xai:{"grok-4.20-0309-non-reasoning":{id:"grok-4.20-0309-non-reasoning",name:"Grok 4.20 (Non-Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","temperature"],pricing:{input:2,output:6,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-03-09"},"grok-4.20-0309-reasoning":{id:"grok-4.20-0309-reasoning",name:"Grok 4.20 (Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-03-09"},"grok-4-1-fast":{id:"grok-4-1-fast",name:"Grok 4.1 Fast",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-11-19"},"grok-4-1-fast-non-reasoning":{id:"grok-4-1-fast-non-reasoning",name:"Grok 4.1 Fast (Non-Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-11-19"},"grok-4-fast":{id:"grok-4-fast",name:"Grok 4 Fast",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09-19"},"grok-4-fast-non-reasoning":{id:"grok-4-fast-non-reasoning",name:"Grok 4 Fast (Non-Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09-19"},"grok-code-fast-1":{id:"grok-code-fast-1",name:"Grok Code Fast 1",contextWindow:256000,maxTokens:1e4,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.5,cacheRead:0.02,cacheWrite:0},releaseDate:"2025-08-28"},"grok-4":{id:"grok-4",name:"Grok 4",contextWindow:256000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-07-09"},"grok-3":{id:"grok-3",name:"Grok 3",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-fast":{id:"grok-3-fast",name:"Grok 3 Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:5,output:25,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-fast-latest":{id:"grok-3-fast-latest",name:"Grok 3 Fast Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:5,output:25,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-latest":{id:"grok-3-latest",name:"Grok 3 Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-mini":{id:"grok-3-mini",name:"Grok 3 Mini",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-mini-fast":{id:"grok-3-mini-fast",name:"Grok 3 Mini Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:4,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-mini-fast-latest":{id:"grok-3-mini-fast-latest",name:"Grok 3 Mini Fast Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:4,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-mini-latest":{id:"grok-3-mini-latest",name:"Grok 3 Mini Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-02-17"},"grok-2-1212":{id:"grok-2-1212",name:"Grok 2 (1212)",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-12-12"},"grok-beta":{id:"grok-beta",name:"Grok Beta",contextWindow:131072,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:5,output:15,cacheRead:5,cacheWrite:0},releaseDate:"2024-11-01"},"grok-vision-beta":{id:"grok-vision-beta",name:"Grok Vision Beta",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:5,output:15,cacheRead:5,cacheWrite:0},releaseDate:"2024-11-01"},"grok-2":{id:"grok-2",name:"Grok 2",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"grok-2-latest":{id:"grok-2-latest",name:"Grok 2 Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"grok-2-vision":{id:"grok-2-vision",name:"Grok 2 Vision",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"grok-2-vision-1212":{id:"grok-2-vision-1212",name:"Grok 2 Vision (1212)",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"grok-2-vision-latest":{id:"grok-2-vision-latest",name:"Grok 2 Vision Latest",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"}},zai:{"glm-5-turbo":{id:"glm-5-turbo",name:"GLM-5-Turbo",contextWindow:200000,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1.2,output:4,cacheRead:0.24,cacheWrite:0},releaseDate:"2026-03-16"},"glm-5":{id:"glm-5",name:"GLM-5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-11"},"glm-4.7-flash":{id:"glm-4.7-flash",name:"GLM-4.7-Flash",contextWindow:200000,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-19"},"glm-4.7":{id:"glm-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-12-22"},"glm-4.6v":{id:"glm-4.6v",name:"GLM-4.6V",contextWindow:128000,maxTokens:32768,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-08"},"glm-4.6":{id:"glm-4.6",name:"GLM-4.6",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-09-30"},"glm-4.5v":{id:"glm-4.5v",name:"GLM-4.5V",contextWindow:64000,maxTokens:16384,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-11"},"glm-4.5":{id:"glm-4.5",name:"GLM-4.5",contextWindow:131072,maxTokens:98304,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-07-28"},"glm-4.5-air":{id:"glm-4.5-air",name:"GLM-4.5-Air",contextWindow:131072,maxTokens:98304,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-07-28"},"glm-4.5-flash":{id:"glm-4.5-flash",name:"GLM-4.5-Flash",contextWindow:131072,maxTokens:98304,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"}}}}});function Bn(e){if(!e)return Number.NEGATIVE_INFINITY;let t=Date.parse(e);return Number.isNaN(t)?Number.NEGATIVE_INFINITY:t}function Xe(e){return Object.fromEntries(Object.entries(e).sort(([t,i],[a,n])=>{let o=Bn(i.releaseDate),c=Bn(n.releaseDate);if(o!==c)return c-o;return t.localeCompare(a)}))}function tr(e){let t=[];if(e.modalities?.input?.includes("image"))t.push("images");if(e.modalities?.input?.includes("pdf"))t.push("files");if(e.tool_call===!0)t.push("tools");if(e.reasoning===!0)t.push("reasoning");if(e.structured_output===!0)t.push("structured_output");if(e.temperature===!0)t.push("temperature");return t}function ir(e){if(e==="active"||e==="preview"||e==="deprecated"||e==="legacy")return e;return}function ar(e,t){let i=t.limit?.context??4096,a=t.limit?.output??4096,n=i===a?a*0.05:a;return{id:e,name:t.name||e,contextWindow:i,maxTokens:Math.floor(n),capabilities:tr(t),pricing:{input:t.cost?.input??0,output:t.cost?.output??0,cacheRead:t.cost?.cache_read??0,cacheWrite:t.cost?.cache_write??0},status:ir(t.status),releaseDate:t.release_date}}function nr(e){return e.status==="deprecated"}function or(e,t){let i={};for(let[a,n]of Object.entries(t)){let o=e[a];if(!o?.models)continue;let c={};for(let[r,s]of Object.entries(o.models)){if(s.tool_call!==!0||nr(s))continue;c[r]=ar(r,s)}if(Object.keys(c).length>0)i[n]=Xe(c)}return i}async function Vn(e,t,i=fetch){let a=await i(e);if(!a.ok)throw Error(`Failed to load model catalog from ${e}: HTTP ${a.status}`);let n=await a.json();return or(n,t)}var Un={};x(Un,{getGeneratedProviderModels:()=>Xa,getGeneratedModelsVersion:()=>ja,getGeneratedModelsForProvider:()=>u});function Xa(){return Nn??=Object.fromEntries(Object.entries(zi.providers).map(([e,t])=>[e,Xe(t)])),Nn}function ja(){return zi.version}function u(e){let t=yn.get(e);if(t)return t;let i=Xe(zi.providers[e]??{});return yn.set(e,i),i}var Nn,yn;var k=W(()=>{qn();yn=new Map});var Yn={};x(Yn,{AIHUBMIX_PROVIDER:()=>vt});var vt;var Ha=W(()=>{k();vt={provider:{id:"aihubmix",name:"AI Hub Mix",description:"AI model aggregator",protocol:"openai-chat",baseUrl:"https://api.aihubmix.com/v1",defaultModelId:"gpt-4o",env:["AIHUBMIX_API_KEY"]},models:u("aihubmix")}});var $n={};x($n,{getAnthropicReasoningModels:()=>Ot,getActiveAnthropicModels:()=>At,ANTHROPIC_PROVIDER:()=>Gt,ANTHROPIC_MODELS:()=>z,ANTHROPIC_DEFAULT_MODEL:()=>je});function At(){return Object.fromEntries(Object.entries(z).filter(([,e])=>!e.status||e.status==="active"||e.status==="preview"))}function Ot(){return Object.fromEntries(Object.entries(z).filter(([,e])=>e.thinkingConfig!==void 0))}var z,je,Gt;var Ja=W(()=>{k();z=u("anthropic"),je=Object.keys(z)[0]??"claude-sonnet-4-6",Gt={provider:{id:"anthropic",name:"Anthropic",description:"Creator of Claude, the AI assistant",protocol:"anthropic",baseUrl:"https://api.anthropic.com",defaultModelId:je,capabilities:["reasoning","prompt-cache"],env:["ANTHROPIC_API_KEY"]},models:z}});var Xn={};x(Xn,{ASKSAGE_PROVIDER:()=>Lt});var Lt;var Za=W(()=>{Lt={provider:{id:"asksage",name:"AskSage",description:"AskSage platform",protocol:"openai-chat",baseUrl:"https://api.asksage.ai/server",defaultModelId:"gpt-4o",capabilities:["tools"],env:["ASKSAGE_API_KEY"]},models:{}}});var Hn={};x(Hn,{BASETEN_PROVIDER:()=>St});var jn,St;var Ia=W(()=>{k();jn=u("baseten"),St={provider:{id:"baseten",name:"Baseten",description:"ML inference platform",protocol:"openai-chat",baseUrl:"https://model-api.baseten.co/v1",defaultModelId:Object.keys(jn)[0],env:["BASETEN_API_KEY"]},models:jn}});var Jn={};x(Jn,{BEDROCK_PROVIDER:()=>Ct,BEDROCK_MODELS:()=>Ee,BEDROCK_DEFAULT_MODEL:()=>He});var Ee,He,Ct;var za=W(()=>{k();Ee=u("bedrock"),He=Object.keys(Ee)[0]??"anthropic.claude-sonnet-4-5-20250929-v1:0",Ct={provider:{id:"bedrock",name:"AWS Bedrock",description:"Amazon Bedrock managed foundation models",protocol:"anthropic",defaultModelId:He,capabilities:["reasoning","prompt-cache"],env:["AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN"]},models:Ee}});var Zn={};x(Zn,{CEREBRAS_PROVIDER:()=>Qt,CEREBRAS_MODELS:()=>_e,CEREBRAS_DEFAULT_MODEL:()=>Je});var _e,Je,Qt;var e0=W(()=>{k();_e=u("cerebras"),Je=Object.keys(_e)[0]??"llama3.1-70b",Qt={provider:{id:"cerebras",name:"Cerebras",description:"Fast inference on Cerebras wafer-scale chips",protocol:"openai-chat",baseUrl:"https://api.cerebras.ai/v1",defaultModelId:Je,env:["CEREBRAS_API_KEY"]},models:_e}});var In={};x(In,{CLAUDE_CODE_PROVIDER:()=>Ft,CLAUDE_CODE_MODELS:()=>Ze,CLAUDE_CODE_DEFAULT_MODEL:()=>Ie});function t0(e){let t=Object.entries(cr).find(([i])=>e(i));if(t)return t[1];return{id:"sonnet",name:"Claude Sonnet",capabilities:["streaming","reasoning"]}}function i0(e){return{...e==="opus"?t0((i)=>i.includes("opus")):e==="haiku"?t0((i)=>i.includes("haiku")):t0((i)=>i.includes("sonnet")),id:e,name:`Claude ${e.charAt(0).toUpperCase()}${e.slice(1)}`}}var cr,Ze,Ie="sonnet",Ft;var a0=W(()=>{k();cr=u("anthropic");Ze={opus:i0("opus"),sonnet:i0("sonnet"),haiku:i0("haiku")},Ft={provider:{id:"claude-code",name:"Claude Code",description:"Use Claude Code SDK with Claude Pro/Max subscription",protocol:"openai-chat",baseUrl:"",defaultModelId:Ie,capabilities:["reasoning"]},models:Ze}});var zn={};x(zn,{CLINE_PROVIDER:()=>Ge,CLINE_MODELS:()=>ve,CLINE_DEFAULT_MODELINFO:()=>rr,CLINE_DEFAULT_MODEL:()=>Pe});var Pe="anthropic/claude-sonnet-4.6",ve,rr,Ge;var n0=W(()=>{k();ve=u("vercel-ai-gateway"),rr=ve[Pe],Ge={provider:{id:"cline",name:"Cline",description:"Cline API endpoint",protocol:"openai-chat",baseUrl:"https://api.cline.bot/api/v1",defaultModelId:Pe,capabilities:["reasoning","prompt-cache","tools","oauth"],env:["CLINE_API_KEY"]},models:ve}});var eo={};x(eo,{getDeepSeekReasoningModels:()=>qt,DEEPSEEK_PROVIDER:()=>Kt,DEEPSEEK_MODELS:()=>pe,DEEPSEEK_DEFAULT_MODEL:()=>ze});function qt(){return Object.fromEntries(Object.entries(pe).filter(([,e])=>e.capabilities?.includes("reasoning")))}var pe,ze,Kt;var o0=W(()=>{k();pe=u("deepseek"),ze=Object.keys(pe)[0],Kt={provider:{id:"deepseek",name:"DeepSeek",description:"Advanced AI models with reasoning capabilities",protocol:"openai-chat",baseUrl:"https://api.deepseek.com/v1",defaultModelId:ze,capabilities:["reasoning","prompt-cache"],env:["DEEPSEEK_API_KEY"]},models:pe}});var to={};x(to,{DIFY_PROVIDER:()=>Bt});var Bt;var c0=W(()=>{Bt={provider:{id:"dify",name:"Dify",description:"Dify workflow/application provider via AI SDK",protocol:"openai-chat",defaultModelId:"default",env:["DIFY_API_KEY"]},models:{}}});var io={};x(io,{DOUBAO_PROVIDER:()=>s0,DOUBAO_MODELS:()=>Vt,DOUBAO_DEFAULT_MODEL:()=>ea});var r0="doubao-1-5-pro-256k-250115",Vt,ea,s0;var p0=W(()=>{k();Vt={[r0]:{id:r0,name:"Doubao 1.5 Pro 256k",capabilities:["streaming","tools"]},...u("doubao")},ea=Object.keys(Vt)[0]??r0,s0={provider:{id:"doubao",name:"Doubao",description:"Volcengine Ark platform models",protocol:"openai-chat",baseUrl:"https://ark.cn-beijing.volces.com/api/v3",defaultModelId:ea,env:["DOUBAO_API_KEY"]},models:Vt}});var ao={};x(ao,{getFireworksFunctionModels:()=>yt,FIREWORKS_PROVIDER:()=>Nt,FIREWORKS_MODELS:()=>ue,FIREWORKS_DEFAULT_MODEL:()=>et});function yt(){return Object.fromEntries(Object.entries(ue).filter(([,e])=>e.capabilities?.includes("tools")))}var ue,et,Nt;var u0=W(()=>{k();ue=u("fireworks"),et=Object.keys(ue)[0]??"accounts/fireworks/models/llama-v3p1-8b-instruct",Nt={provider:{id:"fireworks",name:"Fireworks AI",description:"High-performance inference platform",protocol:"openai-chat",baseUrl:"https://api.fireworks.ai/inference/v1",defaultModelId:et,env:["FIREWORKS_API_KEY"]},models:ue}});var no={};x(no,{getGeminiThinkingModels:()=>$t,getActiveGeminiModels:()=>Yt,GEMINI_PROVIDER:()=>Ut,GEMINI_MODELS:()=>ee,GEMINI_DEFAULT_MODEL:()=>tt});function Yt(){return Object.fromEntries(Object.entries(ee).filter(([,e])=>!e.status||e.status==="active"||e.status==="preview"))}function $t(){return Object.fromEntries(Object.entries(ee).filter(([,e])=>e.capabilities?.includes("reasoning")))}var ee,tt,Ut;var m0=W(()=>{k();ee=u("gemini"),tt=Object.keys(ee)[0]??"gemini-3-pro",Ut={provider:{id:"gemini",name:"Google Gemini",description:"Google Gemini API",protocol:"gemini",baseUrl:"https://generativelanguage.googleapis.com",defaultModelId:tt,capabilities:["reasoning","prompt-cache"],env:["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"]},models:ee}});var oo={};x(oo,{getGroqVisionModels:()=>jt,GROQ_PROVIDER:()=>Xt,GROQ_MODELS:()=>me,GROQ_DEFAULT_MODEL:()=>it});function jt(){return Object.fromEntries(Object.entries(me).filter(([,e])=>e.capabilities?.includes("images")))}var me,it,Xt;var l0=W(()=>{k();me=u("groq"),it=Object.keys(me)[0]??"llama-3.3-70b-versatile",Xt={provider:{id:"groq",name:"Groq",description:"Ultra-fast LPU inference",protocol:"openai-chat",baseUrl:"https://api.groq.com/openai/v1",defaultModelId:it,env:["GROQ_API_KEY"]},models:me}});var co={};x(co,{HICAP_PROVIDER:()=>Ht});var Ht;var d0=W(()=>{Ht={provider:{id:"hicap",name:"HiCap",description:"HiCap AI platform",protocol:"openai-chat",baseUrl:"https://api.hicap.ai/v1",defaultModelId:"hicap-pro",env:["HICAP_API_KEY"]},models:{}}});var ro={};x(ro,{HUAWEI_CLOUD_MAAS_PROVIDER:()=>Jt});var Jt;var g0=W(()=>{Jt={provider:{id:"huawei-cloud-maas",name:"Huawei Cloud MaaS",description:"Huawei's model-as-a-service platform",protocol:"openai-chat",baseUrl:"https://infer-modelarts.cn-southwest-2.myhuaweicloud.com/v1",defaultModelId:"DeepSeek-R1",env:["HUAWEI_CLOUD_MAAS_API_KEY"]},models:{}}});var so={};x(so,{HUGGINGFACE_PROVIDER:()=>It,HUGGINGFACE_MODELS:()=>Zt});var Zt,It;var x0=W(()=>{k();Zt=u("huggingface"),It={provider:{id:"huggingface",name:"Hugging Face",description:"Hugging Face inference API",protocol:"openai-chat",baseUrl:"https://api-inference.huggingface.co/v1",defaultModelId:Object.keys(Zt)[0],env:["HF_TOKEN"]},models:Zt}});var po={};x(po,{LITELLM_PROVIDER:()=>zt});var zt;var h0=W(()=>{zt={provider:{id:"litellm",name:"LiteLLM",description:"Self-hosted LLM proxy",protocol:"openai-chat",baseUrl:"http://localhost:4000/v1",defaultModelId:"gpt-4o",capabilities:["prompt-cache"],env:["LITELLM_API_KEY"]},models:{}}});var mo={};x(mo,{LMSTUDIO_PROVIDER:()=>ei});var uo,ei;var W0=W(()=>{k();uo=u("lmstudio"),ei={provider:{id:"lmstudio",name:"LM Studio",description:"Local model inference with LM Studio",protocol:"openai-chat",baseUrl:"http://localhost:1234/v1",defaultModelId:Object.keys(uo)[0],env:["LMSTUDIO_API_KEY"]},models:uo||{}}});var lo={};x(lo,{MINIMAX_PROVIDER:()=>ti,MINIMAX_MODELS:()=>Ae,MINIMAX_DEFAULT_MODEL:()=>at});var w0="MiniMax-M2.5",Ae,at,ti;var b0=W(()=>{k();Ae={[w0]:{id:w0,name:"MiniMax M2.5",capabilities:["streaming","tools","reasoning","prompt-cache"]},...u("minimax")},at=Object.keys(Ae)[0]??w0,ti={provider:{id:"minimax",name:"MiniMax",description:"MiniMax models via Anthropic-compatible API",protocol:"anthropic",baseUrl:"https://api.minimax.io/anthropic",defaultModelId:at,capabilities:["reasoning","prompt-cache"],env:["MINIMAX_API_KEY"]},models:Ae}});var go={};x(go,{MISTRAL_PROVIDER:()=>ii});var ii;var D0=W(()=>{ii={provider:{id:"mistral",name:"Mistral",description:"Mistral AI models via AI SDK provider",protocol:"openai-chat",baseUrl:"https://api.mistral.ai/v1",defaultModelId:"mistral-medium-latest",capabilities:["reasoning"],env:["MISTRAL_API_KEY"]},models:{}}});var xo={};x(xo,{MOONSHOT_PROVIDER:()=>ai,MOONSHOT_MODELS:()=>Oe,MOONSHOT_DEFAULT_MODEL:()=>nt});var R0="kimi-k2-0905-preview",Oe,nt,ai;var k0=W(()=>{k();Oe={[R0]:{id:R0,name:"Kimi K2 Preview",capabilities:["streaming","tools","reasoning"]},...u("moonshot")},nt=Object.keys(Oe)[0]??R0,ai={provider:{id:"moonshot",name:"Moonshot",description:"Moonshot AI Studio models",protocol:"openai-chat",baseUrl:"https://api.moonshot.ai/v1",defaultModelId:nt,capabilities:["reasoning","prompt-cache"],env:["MOONSHOT_API_KEY"]},models:Oe}});var ho={};x(ho,{NEBIUS_PROVIDER:()=>ni,NEBIUS_MODELS:()=>Le,NEBIUS_DEFAULT_MODEL:()=>ot});var Le,ot,ni;var T0=W(()=>{k();Le=u("nebius"),ot=Object.keys(Le)[0]||"meta-llama/Meta-Llama-3.1-70B-Instruct",ni={provider:{id:"nebius",name:"Nebius",description:"European cloud AI infrastructure",protocol:"openai-chat",baseUrl:"https://api.studio.nebius.ai/v1",defaultModelId:ot,env:["NEBIUS_API_KEY"]},models:Le}});var Wo={};x(Wo,{NOUS_RESEARCH_PROVIDER:()=>ci,NOUS_RESEARCH_MODELS:()=>ct,NOUS_RESEARCH_DEFAULT_MODEL:()=>oi});var ct,oi="DeepHermes-3-Llama-3-3-70B-Preview",ci;var M0=W(()=>{ct={},ci={provider:{id:"nousResearch",name:"Nous Research",description:"Open-source AI research lab",protocol:"openai-chat",baseUrl:"https://inference-api.nousresearch.com/v1",defaultModelId:"DeepHermes-3-Llama-3-3-70B-Preview",env:["NOUS_RESEARCH_API_KEY","NOUSRESEARCH_API_KEY"]},models:ct}});var wo={};x(wo,{OCA_PROVIDER:()=>ri,OCA_MODELS:()=>Se,OCA_DEFAULT_MODEL:()=>rt,DEFAULT_INTERNAL_OCA_BASE_URL:()=>te,DEFAULT_EXTERNAL_OCA_BASE_URL:()=>J});var te="https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm",J="https://code.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm",rt="anthropic/claude-3-7-sonnet-20250219",Se,ri;var si=W(()=>{k();Se=u("oca"),ri={provider:{id:"oca",name:"Oracle Code Assist",description:"Oracle Code Assist (OCA) LiteLLM gateway",protocol:"openai-chat",baseUrl:J,defaultModelId:Object.keys(Se)[0]??rt,capabilities:["reasoning","prompt-cache","tools"],env:["OCA_API_KEY"]},models:Se}});var bo={};x(bo,{OLLAMA_PROVIDER:()=>pi});var pi;var f0=W(()=>{pi={provider:{id:"ollama",name:"Ollama",description:"Ollama Cloud and local LLM hosting",protocol:"openai-chat",baseUrl:"http://localhost:11434/v1",defaultModelId:"llama3.2",env:["OLLAMA_API_KEY"]},models:{}}});var E0={};x(E0,{getOpenAIReasoningModels:()=>li,getActiveOpenAIModels:()=>mi,OPENAI_PROVIDER:()=>ui,OPENAI_MODELS:()=>ie,OPENAI_DEFAULT_MODEL:()=>st});function mi(){return Object.fromEntries(Object.entries(ie).filter(([,e])=>!e.status||e.status==="active"||e.status==="preview"))}function li(){return Object.fromEntries(Object.entries(ie).filter(([,e])=>e.capabilities?.includes("reasoning")))}var ie,st,ui;var ta=W(()=>{k();ie=u("openai"),st=Object.keys(ie)[0]??"gpt-5.3-codex",ui={provider:{id:"openai-native",name:"OpenAI",description:"Creator of GPT and ChatGPT",protocol:"openai-responses",baseUrl:"https://api.openai.com/v1",defaultModelId:st,capabilities:["reasoning"],env:["OPENAI_API_KEY"]},models:ie}});var Do={};x(Do,{OPENAI_CODEX_PROVIDER:()=>di,OPENAI_CODEX_MODELS:()=>_0,OPENAI_CODEX_DEFAULT_MODEL:()=>pt});function sr(e){if(!e.capabilities?.includes("tools"))return e;return{...e,capabilities:e.capabilities.filter((t)=>t!=="tools")}}var _0,pt,di;var P0=W(()=>{k();_0=Object.fromEntries(Object.entries(u("openai")).map(([e,t])=>[e,sr(t)])),pt=Object.keys(_0)[0]??"gpt-5.3-codex",di={provider:{id:"openai-codex",name:"OpenAI Codex",description:"OpenAI Codex via the local Codex CLI provider",protocol:"openai-chat",baseUrl:"https://chatgpt.com/backend-api/codex",defaultModelId:pt,capabilities:["reasoning","oauth"]},models:_0}});var Ro={};x(Ro,{OPENCODE_PROVIDER:()=>v0,OPENCODE_MODELS:()=>gi,OPENCODE_DEFAULT_MODEL:()=>ia});var gi,ia,v0;var G0=W(()=>{k();gi=u("opencode"),ia=Object.keys(gi)[0]??"openai/gpt-5.3-codex",v0={provider:{id:"opencode",name:"OpenCode",description:"OpenCode SDK multi-provider runtime",protocol:"openai-chat",baseUrl:"",defaultModelId:ia,capabilities:["reasoning","oauth"]},models:gi}});var ko={};x(ko,{OPENROUTER_PROVIDER:()=>xi,OPENROUTER_MODELS:()=>ut,OPENROUTER_DEFAULT_MODEL:()=>mt});var ut,mt="anthropic/claude-sonnet-4.6",xi;var A0=W(()=>{k();ut=u("openrouter"),xi={provider:{id:"openrouter",name:"OpenRouter",description:"OpenRouter AI platform",protocol:"openai-chat",baseUrl:"https://openrouter.ai/api/v1",defaultModelId:mt,capabilities:["reasoning","prompt-cache"],env:["OPENROUTER_API_KEY"]},models:ut}});var To={};x(To,{QWEN_PROVIDER:()=>L0,QWEN_MODELS:()=>hi,QWEN_DEFAULT_MODEL:()=>aa});var O0="qwen-plus-latest",hi,aa,L0;var S0=W(()=>{k();hi={[O0]:{id:O0,name:"Qwen Plus Latest",capabilities:["streaming","tools","reasoning"]},...u("qwen")},aa=Object.keys(hi)[0]??O0,L0={provider:{id:"qwen",name:"Qwen",description:"Alibaba Qwen platform models",protocol:"openai-chat",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",defaultModelId:aa,capabilities:["reasoning"],env:["QWEN_API_KEY"]},models:hi}});var Mo={};x(Mo,{QWEN_CODE_PROVIDER:()=>Q0,QWEN_CODE_MODELS:()=>Wi,QWEN_CODE_DEFAULT_MODEL:()=>na});var C0="qwen3-coder-plus",Wi,na,Q0;var F0=W(()=>{k();Wi={[C0]:{id:C0,name:"Qwen3 Coder Plus",capabilities:["streaming","tools","reasoning"]},...u("qwen-code")},na=Object.keys(Wi)[0]??C0,Q0={provider:{id:"qwen-code",name:"Qwen Code",description:"Qwen OAuth coding models",protocol:"openai-chat",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",defaultModelId:na,capabilities:["reasoning","oauth"]},models:Wi}});var fo={};x(fo,{REQUESTY_PROVIDER:()=>wi,REQUESTY_MODELS:()=>K0});var K0,wi;var q0=W(()=>{k();K0=u("requesty"),wi={provider:{id:"requesty",name:"Requesty",description:"AI router with multiple provider support",protocol:"openai-chat",baseUrl:"https://router.requesty.ai/v1",defaultModelId:Object.keys(K0)[0],capabilities:["reasoning"],env:["REQUESTY_API_KEY"]},models:K0}});var Eo={};x(Eo,{SAMBANOVA_PROVIDER:()=>bi,SAMBANOVA_MODELS:()=>Ce,SAMBANOVA_DEFAULT_MODEL:()=>lt});var Ce,lt,bi;var B0=W(()=>{k();Ce=u("sambanova"),lt=Object.keys(Ce)[0],bi={provider:{id:"sambanova",name:"SambaNova",description:"High-performance AI inference",protocol:"openai-chat",baseUrl:"https://api.sambanova.ai/v1",defaultModelId:lt,env:["SAMBANOVA_API_KEY"]},models:Ce}});var _o={};x(_o,{SAP_AI_CORE_PROVIDER:()=>N0,SAP_AI_CORE_MODELS:()=>Di,SAP_AI_CORE_DEFAULT_MODEL:()=>oa});var V0="anthropic--claude-3.5-sonnet",Di,oa,N0;var y0=W(()=>{k();Di={[V0]:{id:V0,name:"Claude 3.5 Sonnet (SAP AI Core)",capabilities:["streaming","tools","reasoning","prompt-cache"]},...u("sapaicore")},oa=Object.keys(Di)[0]??V0,N0={provider:{id:"sapaicore",name:"SAP AI Core",description:"SAP AI Core inference and orchestration platform",protocol:"openai-chat",baseUrl:"",defaultModelId:oa,capabilities:["reasoning","prompt-cache"],env:["AICORE_SERVICE_KEY","VCAP_SERVICES"]},models:Di}});var Po={};x(Po,{getTogetherLlamaModels:()=>ki,TOGETHER_PROVIDER:()=>Ri,TOGETHER_MODELS:()=>le,TOGETHER_DEFAULT_MODEL:()=>dt});function ki(){return Object.fromEntries(Object.entries(le).filter(([e])=>e.toLowerCase().includes("llama")))}var le,dt,Ri;var U0=W(()=>{k();le=u("together"),dt=Object.keys(le)[0]??"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",Ri={provider:{id:"together",name:"Together AI",description:"Fast inference for open-source models",protocol:"openai-chat",baseUrl:"https://api.together.xyz/v1",defaultModelId:dt,capabilities:["reasoning"],env:["TOGETHER_API_KEY"]},models:le}});var vo={};x(vo,{VERCEL_AI_GATEWAY_PROVIDER:()=>Ti});var pr,Ti;var Y0=W(()=>{k();pr=u("vercel-ai-gateway"),Ti={provider:{id:"vercel-ai-gateway",name:"Vercel AI Gateway",description:"Vercel's AI gateway service",protocol:"openai-chat",baseUrl:"https://ai-gateway.vercel.sh/v1",defaultModelId:Object.keys(pr)[0],capabilities:["reasoning"],env:["AI_GATEWAY_API_KEY"]},models:u("vercel-ai-gateway")}});var Ao={};x(Ao,{VERTEX_PROVIDER:()=>Mi,VERTEX_MODELS:()=>Qe,VERTEX_DEFAULT_MODEL:()=>gt});var Qe,Go,ur,gt,Mi;var $0=W(()=>{k();Qe=u("vertex"),Go=Object.keys(Qe),ur=Go.find((e)=>!e.includes("claude")),gt=ur??Go[0]??"gemini-3-pro",Mi={provider:{id:"vertex",name:"Google Vertex AI",description:"Google Cloud Vertex AI (Gemini and partner models)",protocol:"gemini",defaultModelId:gt,capabilities:["reasoning","prompt-cache"],env:["GCP_PROJECT_ID","GOOGLE_CLOUD_PROJECT","GOOGLE_APPLICATION_CREDENTIALS","GEMINI_API_KEY","GOOGLE_API_KEY"]},models:Qe}});var Oo={};x(Oo,{getActiveXAIModels:()=>Ei,XAI_PROVIDER:()=>fi,XAI_MODELS:()=>de,XAI_DEFAULT_MODEL:()=>xt});function Ei(){return Object.fromEntries(Object.entries(de).filter(([,e])=>!e.status||e.status==="active"||e.status==="preview"))}var de,xt,fi;var X0=W(()=>{k();de=u("xai"),xt=Object.keys(de)[0],fi={provider:{id:"xai",name:"xAI",description:"Creator of Grok AI assistant",protocol:"openai-chat",baseUrl:"https://api.x.ai/v1",defaultModelId:xt,capabilities:["reasoning"],env:["XAI_API_KEY"]},models:de}});var Lo={};x(Lo,{ZAI_PROVIDER:()=>j0,ZAI_MODELS:()=>_i,ZAI_DEFAULT_MODEL:()=>ca});var _i,ca,j0;var H0=W(()=>{k();_i=u("zai"),ca=Object.keys(_i)[0],j0={provider:{id:"zai",name:"Z.AI",description:"Z.AI's family of LLMs",protocol:"openai-chat",baseUrl:"https://api.z.ai/api/paas/v4",defaultModelId:ca,capabilities:["reasoning"],env:["ZHIPU_API_KEY"]},models:_i}});function zc(e){return e}var oc={};x(oc,{validateQueryConfig:()=>Ya,validateModelInfo:()=>Na,updateModel:()=>J0,unregisterProvider:()=>Vo,unregisterModel:()=>Bo,sortModels:()=>Pt,searchModels:()=>ic,safeValidateQueryConfig:()=>$a,safeValidateModelInfo:()=>ya,resetRegistry:()=>yo,registerProvider:()=>ma,registerModels:()=>Uo,registerModel:()=>Wt,queryModels:()=>N,matchesQuery:()=>_t,isDeprecated:()=>Et,isActive:()=>Ba,hasProvider:()=>ra,hasCapability:()=>fe,getVisionModels:()=>$o,getToolModels:()=>Ho,getTogetherLlamaModels:()=>ki,getReasoningModels:()=>Xo,getProviderIds:()=>xe,getProviderCollection:()=>Qo,getProvider:()=>Co,getPricing:()=>Va,getOpenAIReasoningModels:()=>li,getModelsWithContextWindow:()=>ec,getModelsInPriceRange:()=>zo,getModelsForProvider:()=>sa,getModelsByProvider:()=>tc,getModelStatistics:()=>nc,getModelCount:()=>qo,getModel:()=>pa,getGroqVisionModels:()=>jt,getGeneratedProviderModels:()=>Xa,getGeneratedModelsVersion:()=>ja,getGeneratedModelsForProvider:()=>u,getGeminiThinkingModels:()=>$t,getFireworksFunctionModels:()=>yt,getDeprecatedModels:()=>Io,getDefaultModel:()=>Ko,getDeepSeekReasoningModels:()=>qt,getComputerUseModels:()=>Jo,getCachingModels:()=>jo,getAnthropicReasoningModels:()=>Ot,getAllProviders:()=>Fo,getAllModels:()=>ua,getActiveXAIModels:()=>Ei,getActiveOpenAIModels:()=>mi,getActiveModels:()=>Zo,getActiveGeminiModels:()=>Yt,getActiveAnthropicModels:()=>At,deprecateModel:()=>Yo,createQuery:()=>ac,clearCustomModels:()=>No,XAI_PROVIDER:()=>fi,XAI_MODELS:()=>de,XAI_DEFAULT_MODEL:()=>xt,VERTEX_PROVIDER:()=>Mi,VERTEX_MODELS:()=>Qe,VERTEX_DEFAULT_MODEL:()=>gt,VERCEL_AI_GATEWAY_PROVIDER:()=>Ti,ThinkingConfigSchema:()=>Ji,TOGETHER_PROVIDER:()=>Ri,TOGETHER_MODELS:()=>le,TOGETHER_DEFAULT_MODEL:()=>dt,SAMBANOVA_PROVIDER:()=>bi,SAMBANOVA_MODELS:()=>Ce,SAMBANOVA_DEFAULT_MODEL:()=>lt,REQUESTY_PROVIDER:()=>wi,ProviderInfoSchema:()=>Ii,ProviderCapabilitySchema:()=>Zi,OPENROUTER_PROVIDER:()=>xi,OPENROUTER_MODELS:()=>ut,OPENROUTER_DEFAULT_MODEL:()=>mt,OPENAI_PROVIDER:()=>ui,OPENAI_MODELS:()=>ie,OPENAI_DEFAULT_MODEL:()=>st,OPENAI_CODEX_PROVIDER:()=>di,OPENAI_CODEX_DEFAULT_MODEL:()=>pt,OLLAMA_PROVIDER:()=>pi,OCA_PROVIDER:()=>ri,OCA_MODELS:()=>Se,OCA_DEFAULT_MODEL:()=>rt,NOUS_RESEARCH_PROVIDER:()=>ci,NOUS_RESEARCH_MODELS:()=>ct,NOUS_RESEARCH_DEFAULT_MODEL:()=>oi,NEBIUS_PROVIDER:()=>ni,NEBIUS_MODELS:()=>Le,NEBIUS_DEFAULT_MODEL:()=>ot,ModelStatusSchema:()=>$e,ModelQueryResultSchema:()=>Ua,ModelQueryConfigSchema:()=>se,ModelQueryBuilder:()=>la,ModelPricingSchema:()=>Hi,ModelInfoSchema:()=>Me,ModelEntrySchema:()=>Ka,ModelCollectionSchema:()=>qa,ModelCapabilitySchema:()=>re,MOONSHOT_PROVIDER:()=>ai,MOONSHOT_MODELS:()=>Oe,MOONSHOT_DEFAULT_MODEL:()=>nt,MISTRAL_PROVIDER:()=>ii,MINIMAX_PROVIDER:()=>ti,MINIMAX_MODELS:()=>Ae,MINIMAX_DEFAULT_MODEL:()=>at,LMSTUDIO_PROVIDER:()=>ei,LITELLM_PROVIDER:()=>zt,HUGGINGFACE_PROVIDER:()=>It,HUAWEI_CLOUD_MAAS_PROVIDER:()=>Jt,HICAP_PROVIDER:()=>Ht,GROQ_PROVIDER:()=>Xt,GROQ_MODELS:()=>me,GROQ_DEFAULT_MODEL:()=>it,GEMINI_PROVIDER:()=>Ut,GEMINI_MODELS:()=>ee,GEMINI_DEFAULT_MODEL:()=>tt,FIREWORKS_PROVIDER:()=>Nt,FIREWORKS_MODELS:()=>ue,FIREWORKS_DEFAULT_MODEL:()=>et,DIFY_PROVIDER:()=>Bt,DEFAULT_INTERNAL_OCA_BASE_URL:()=>te,DEFAULT_EXTERNAL_OCA_BASE_URL:()=>J,DEEPSEEK_PROVIDER:()=>Kt,DEEPSEEK_MODELS:()=>pe,DEEPSEEK_DEFAULT_MODEL:()=>ze,CLINE_PROVIDER:()=>Ge,CLINE_MODELS:()=>ve,CLINE_DEFAULT_MODEL:()=>Pe,CLAUDE_CODE_PROVIDER:()=>Ft,CLAUDE_CODE_MODELS:()=>Ze,CLAUDE_CODE_DEFAULT_MODEL:()=>Ie,CEREBRAS_PROVIDER:()=>Qt,CEREBRAS_MODELS:()=>_e,CEREBRAS_DEFAULT_MODEL:()=>Je,BEDROCK_PROVIDER:()=>Ct,BEDROCK_MODELS:()=>Ee,BEDROCK_DEFAULT_MODEL:()=>He,BASETEN_PROVIDER:()=>St,ApiFormatSchema:()=>Ye,ApiFormat:()=>I,ASKSAGE_PROVIDER:()=>Lt,ANTHROPIC_PROVIDER:()=>Gt,ANTHROPIC_MODELS:()=>z,ANTHROPIC_DEFAULT_MODEL:()=>je,AIHUBMIX_PROVIDER:()=>vt});import{z as w}from"zod";var Ye=w.enum(["default","openai-responses","r1"]),I={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},re=w.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),$e=w.enum(["active","preview","deprecated","legacy"]),Hi=w.object({input:w.number().optional(),output:w.number().optional(),cacheWrite:w.number().optional(),cacheRead:w.number().optional()}),Ji=w.object({maxBudget:w.number().optional(),outputPrice:w.number().optional(),thinkingLevel:w.enum(["low","high"]).optional()}),Me=w.object({id:w.string(),name:w.string().optional(),description:w.string().optional(),maxTokens:w.number().optional(),contextWindow:w.number().optional(),capabilities:w.array(re).optional(),apiFormat:Ye.optional(),systemRole:w.enum(["system","developer"]).optional(),temperature:w.number().optional(),pricing:Hi.optional(),thinkingConfig:Ji.optional(),status:$e.optional(),deprecationNotice:w.string().optional(),replacedBy:w.string().optional(),releaseDate:w.string().optional(),deprecationDate:w.string().optional()}),Ka=w.object({id:w.string(),info:Me}),Zi=w.enum(["reasoning","prompt-cache","tools","oauth"]),Kn=w.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1"]),Ii=w.object({id:w.string(),name:w.string(),description:w.string().optional(),protocol:Kn.optional(),baseUrl:w.string().optional(),defaultModelId:w.string(),capabilities:w.array(Zi).optional(),env:w.array(w.string()).optional()}),qa=w.object({provider:Ii,models:w.record(w.string(),Me)});function fe(e,t){return e.capabilities?.includes(t)??!1}function Et(e){return e.status==="deprecated"}function Ba(e){return!e.status||e.status==="active"||e.status==="preview"}function Va(e){return e.pricing??{}}function Na(e){return Me.parse(e)}function ya(e){let t=Me.safeParse(e);return t.success?t.data:void 0}import{z as A}from"zod";var se=A.object({providers:A.array(A.string()).optional(),capabilities:A.array(re).optional(),anyCapabilities:A.array(re).optional(),excludeCapabilities:A.array(re).optional(),status:A.array($e).optional(),includeDeprecated:A.boolean().optional(),apiFormat:Ye.optional(),minContextWindow:A.number().optional(),maxContextWindow:A.number().optional(),minMaxTokens:A.number().optional(),maxInputPrice:A.number().optional(),maxOutputPrice:A.number().optional(),search:A.string().optional(),hasThinking:A.boolean().optional(),sortBy:A.enum(["name","contextWindow","maxTokens","inputPrice","outputPrice"]).optional(),sortDirection:A.enum(["asc","desc"]).optional(),limit:A.number().optional()}),Ua=A.object({models:A.array(A.object({providerId:A.string(),modelId:A.string(),info:A.any()})),total:A.number(),config:se});function _t(e,t,i){if(!i.includeDeprecated&&Et(t))return!1;if(i.status&&i.status.length>0){let a=t.status??"active";if(!i.status.includes(a))return!1}if(i.capabilities&&i.capabilities.length>0){if(!i.capabilities.every((n)=>fe(t,n)))return!1}if(i.anyCapabilities&&i.anyCapabilities.length>0){if(!i.anyCapabilities.some((n)=>fe(t,n)))return!1}if(i.excludeCapabilities&&i.excludeCapabilities.length>0){if(i.excludeCapabilities.some((n)=>fe(t,n)))return!1}if(i.apiFormat&&t.apiFormat!==i.apiFormat)return!1;if(i.minContextWindow&&(t.contextWindow??0)<i.minContextWindow)return!1;if(i.maxContextWindow&&(t.contextWindow??Number.POSITIVE_INFINITY)>i.maxContextWindow)return!1;if(i.minMaxTokens&&(t.maxTokens??0)<i.minMaxTokens)return!1;if(i.maxInputPrice&&(t.pricing?.input??Number.POSITIVE_INFINITY)>i.maxInputPrice)return!1;if(i.maxOutputPrice&&(t.pricing?.output??Number.POSITIVE_INFINITY)>i.maxOutputPrice)return!1;if(i.search){let a=i.search.toLowerCase(),n=t.name?.toLowerCase().includes(a)??!1,o=e.toLowerCase().includes(a),c=t.description?.toLowerCase().includes(a)??!1;if(!n&&!o&&!c)return!1}if(i.hasThinking===!0&&!t.thinkingConfig)return!1;if(i.hasThinking===!1&&t.thinkingConfig)return!1;return!0}function Pt(e,t,i="asc"){if(!t)return e;let a=[...e].sort((n,o)=>{let c,r;switch(t){case"name":c=n.info.name??n.modelId,r=o.info.name??o.modelId;break;case"contextWindow":c=n.info.contextWindow??0,r=o.info.contextWindow??0;break;case"maxTokens":c=n.info.maxTokens??0,r=o.info.maxTokens??0;break;case"inputPrice":c=n.info.pricing?.input??Number.POSITIVE_INFINITY,r=o.info.pricing?.input??Number.POSITIVE_INFINITY;break;case"outputPrice":c=n.info.pricing?.output??Number.POSITIVE_INFINITY,r=o.info.pricing?.output??Number.POSITIVE_INFINITY;break;default:return 0}if(typeof c==="string"&&typeof r==="string")return c.localeCompare(r);return c-r});return i==="desc"?a.reverse():a}function Ya(e){return se.parse(e)}function $a(e){let t=se.safeParse(e);return t.success?t.data:void 0}var So=[["aihubmix",async()=>(await Promise.resolve().then(() => (Ha(),Yn))).AIHUBMIX_PROVIDER],["anthropic",async()=>(await Promise.resolve().then(() => (Ja(),$n))).ANTHROPIC_PROVIDER],["asksage",async()=>(await Promise.resolve().then(() => (Za(),Xn))).ASKSAGE_PROVIDER],["baseten",async()=>(await Promise.resolve().then(() => (Ia(),Hn))).BASETEN_PROVIDER],["bedrock",async()=>(await Promise.resolve().then(() => (za(),Jn))).BEDROCK_PROVIDER],["cerebras",async()=>(await Promise.resolve().then(() => (e0(),Zn))).CEREBRAS_PROVIDER],["claude-code",async()=>(await Promise.resolve().then(() => (a0(),In))).CLAUDE_CODE_PROVIDER],["cline",async()=>(await Promise.resolve().then(() => (n0(),zn))).CLINE_PROVIDER],["deepseek",async()=>(await Promise.resolve().then(() => (o0(),eo))).DEEPSEEK_PROVIDER],["dify",async()=>(await Promise.resolve().then(() => (c0(),to))).DIFY_PROVIDER],["doubao",async()=>(await Promise.resolve().then(() => (p0(),io))).DOUBAO_PROVIDER],["fireworks",async()=>(await Promise.resolve().then(() => (u0(),ao))).FIREWORKS_PROVIDER],["gemini",async()=>(await Promise.resolve().then(() => (m0(),no))).GEMINI_PROVIDER],["groq",async()=>(await Promise.resolve().then(() => (l0(),oo))).GROQ_PROVIDER],["hicap",async()=>(await Promise.resolve().then(() => (d0(),co))).HICAP_PROVIDER],["huawei-cloud-maas",async()=>(await Promise.resolve().then(() => (g0(),ro))).HUAWEI_CLOUD_MAAS_PROVIDER],["huggingface",async()=>(await Promise.resolve().then(() => (x0(),so))).HUGGINGFACE_PROVIDER],["litellm",async()=>(await Promise.resolve().then(() => (h0(),po))).LITELLM_PROVIDER],["lmstudio",async()=>(await Promise.resolve().then(() => (W0(),mo))).LMSTUDIO_PROVIDER],["minimax",async()=>(await Promise.resolve().then(() => (b0(),lo))).MINIMAX_PROVIDER],["mistral",async()=>(await Promise.resolve().then(() => (D0(),go))).MISTRAL_PROVIDER],["moonshot",async()=>(await Promise.resolve().then(() => (k0(),xo))).MOONSHOT_PROVIDER],["nebius",async()=>(await Promise.resolve().then(() => (T0(),ho))).NEBIUS_PROVIDER],["nousResearch",async()=>(await Promise.resolve().then(() => (M0(),Wo))).NOUS_RESEARCH_PROVIDER],["oca",async()=>(await Promise.resolve().then(() => (si(),wo))).OCA_PROVIDER],["ollama",async()=>(await Promise.resolve().then(() => (f0(),bo))).OLLAMA_PROVIDER],["openai",async()=>(await Promise.resolve().then(() => (ta(),E0))).OPENAI_PROVIDER],["openai-codex",async()=>(await Promise.resolve().then(() => (P0(),Do))).OPENAI_CODEX_PROVIDER],["openai-native",async()=>(await Promise.resolve().then(() => (ta(),E0))).OPENAI_PROVIDER],["opencode",async()=>(await Promise.resolve().then(() => (G0(),Ro))).OPENCODE_PROVIDER],["openrouter",async()=>(await Promise.resolve().then(() => (A0(),ko))).OPENROUTER_PROVIDER],["qwen",async()=>(await Promise.resolve().then(() => (S0(),To))).QWEN_PROVIDER],["qwen-code",async()=>(await Promise.resolve().then(() => (F0(),Mo))).QWEN_CODE_PROVIDER],["requesty",async()=>(await Promise.resolve().then(() => (q0(),fo))).REQUESTY_PROVIDER],["sambanova",async()=>(await Promise.resolve().then(() => (B0(),Eo))).SAMBANOVA_PROVIDER],["sapaicore",async()=>(await Promise.resolve().then(() => (y0(),_o))).SAP_AI_CORE_PROVIDER],["together",async()=>(await Promise.resolve().then(() => (U0(),Po))).TOGETHER_PROVIDER],["vercel-ai-gateway",async()=>(await Promise.resolve().then(() => (Y0(),vo))).VERCEL_AI_GATEWAY_PROVIDER],["vertex",async()=>(await Promise.resolve().then(() => ($0(),Ao))).VERTEX_PROVIDER],["xai",async()=>(await Promise.resolve().then(() => (X0(),Oo))).XAI_PROVIDER],["zai",async()=>(await Promise.resolve().then(() => (H0(),Lo))).ZAI_PROVIDER]];var Pi=new Map,ht=new Map,X=new Map,Fe=new Map,mr=So;function lr(){for(let[e,t]of mr)ht.set(e,{load:t})}lr();async function dr(e){return e.load()}async function ge(e){if(Fe.has(e))return Fe.get(e);if(Pi.has(e))return Pi.get(e);let t=ht.get(e);if(!t)return;let i=await dr(t);return Pi.set(e,i),i}function xe(){let e=Array.from(ht.keys()),t=Array.from(Fe.keys()).filter((i)=>!ht.has(i));return[...e,...t]}function ra(e){return ht.has(e)||Fe.has(e)}async function Co(e){return(await ge(e))?.provider}async function Qo(e){return ge(e)}async function Fo(){let e=xe();return(await Promise.all(e.map((i)=>ge(i)))).filter((i)=>i!==void 0).map((i)=>i.provider)}async function sa(e){let i=(await ge(e))?.models??{},a=X.get(e);if(a)return{...i,...Object.fromEntries(a)};return i}async function pa(e,t){let i=X.get(e);if(i?.has(t))return i.get(t);return(await ge(e))?.models[t]}async function Ko(e){let t=await ge(e);if(!t)return;let i=t.provider.defaultModelId,a=await pa(e,i);if(!a)return;return{id:i,info:a}}async function ua(){let e=[],t=xe();return await Promise.all(t.map(async(i)=>{let a=await ge(i);if(!a)return;for(let[o,c]of Object.entries(a.models))e.push({providerId:i,modelId:o,info:c});let n=X.get(i);if(n){for(let[o,c]of n)if(!a.models[o])e.push({providerId:i,modelId:o,info:c})}})),e}async function qo(){let e=0,t=xe();return await Promise.all(t.map(async(i)=>{let a=await ge(i);if(!a)return;e+=Object.keys(a.models).length;let n=X.get(i);if(n){for(let o of n.keys())if(!a.models[o])e++}})),e}function ma(e){Fe.set(e.provider.id,e)}function Wt(e,t,i){if(!X.has(e))X.set(e,new Map);X.get(e)?.set(t,{...i,id:t})}function Bo(e,t){let i=X.get(e);if(i)return i.delete(t);return!1}function Vo(e){return X.delete(e),Pi.delete(e),Fe.delete(e)||ht.delete(e)}function No(){X.clear()}function yo(){Pi.clear(),X.clear(),Fe.clear()}function Uo(e,t){for(let[i,a]of Object.entries(t))Wt(e,i,a)}async function J0(e,t,i){let a=await pa(e,t);if(!a)return;let n={...a,...i};return Wt(e,t,n),n}async function Yo(e,t,i){return J0(e,t,{status:"deprecated",deprecationNotice:i?.notice,replacedBy:i?.replacedBy,deprecationDate:i?.deprecationDate})}function N(e){let t=se.parse(e),i=t.providers?.length?t.providers.filter((o)=>xe().includes(o)):xe(),a=[];for(let o of i){let c=sa(o);for(let[r,s]of Object.entries(c))if(_t(r,s,t))a.push({providerId:o,modelId:r,info:s})}let n=Pt(a,t.sortBy,t.sortDirection??"asc");if(t.limit&&t.limit>0)return n.slice(0,t.limit);return n}function $o(){return N({capabilities:["images"]})}function Xo(){return N({capabilities:["reasoning"]})}function jo(){return N({capabilities:["prompt-cache"]})}function Ho(){return N({capabilities:["tools"]})}function Jo(){return N({capabilities:["computer-use"]})}function Zo(){return N({includeDeprecated:!1,status:["active","preview"]})}function Io(){return N({includeDeprecated:!0,status:["deprecated"]})}function zo(e,t){return N({maxInputPrice:e,maxOutputPrice:t,sortBy:"inputPrice"})}function ec(e){return N({minContextWindow:e,sortBy:"contextWindow",sortDirection:"desc"})}function tc(e){return N({providers:[e]})}function ic(e){return N({search:e})}class la{config={};fromProviders(e){return this.config.providers=e,this}withCapabilities(e){return this.config.capabilities=e,this}withAnyCapabilities(e){return this.config.anyCapabilities=e,this}excludeCapabilities(e){return this.config.excludeCapabilities=e,this}withStatus(e){return this.config.status=e,this}includeDeprecated(e=!0){return this.config.includeDeprecated=e,this}withApiFormat(e){return this.config.apiFormat=e,this}contextWindow(e){if(e.min!==void 0)this.config.minContextWindow=e.min;if(e.max!==void 0)this.config.maxContextWindow=e.max;return this}minMaxTokens(e){return this.config.minMaxTokens=e,this}maxPrice(e){if(e.input!==void 0)this.config.maxInputPrice=e.input;if(e.output!==void 0)this.config.maxOutputPrice=e.output;return this}search(e){return this.config.search=e,this}hasThinking(e=!0){return this.config.hasThinking=e,this}sortBy(e,t="asc"){return this.config.sortBy=e,this.config.sortDirection=t,this}limit(e){return this.config.limit=e,this}getConfig(){return{...this.config}}execute(){return N(this.config)}}function ac(){return new la}async function nc(){let e=await ua(),t={},i={},a={},n=[];for(let{providerId:r,info:s}of e){t[r]=(t[r]??0)+1;for(let g of s.capabilities??[])i[g]=(i[g]??0)+1;let p=s.status??"active";if(a[p]=(a[p]??0)+1,s.pricing?.input!==void 0)n.push(s.pricing.input)}let o=n.sort((r,s)=>r-s),c={min:o[0]??0,max:o[o.length-1]??0,avg:n.length>0?n.reduce((r,s)=>r+s,0)/n.length:0};return{totalModels:e.length,modelsByProvider:t,modelsByCapability:i,modelsByStatus:a,priceRange:c}}k();Ha();Ja();Za();Ia();za();e0();a0();n0();o0();c0();p0();u0();m0();l0();d0();g0();x0();h0();W0();b0();D0();k0();T0();M0();si();f0();ta();P0();G0();A0();S0();F0();q0();B0();y0();U0();Y0();$0();X0();H0();var vi={};x(vi,{getTogetherLlamaModels:()=>ki,getOpenAIReasoningModels:()=>li,getGroqVisionModels:()=>jt,getGeminiThinkingModels:()=>$t,getFireworksFunctionModels:()=>yt,getDeepSeekReasoningModels:()=>qt,getAnthropicReasoningModels:()=>Ot,getActiveXAIModels:()=>Ei,getActiveOpenAIModels:()=>mi,getActiveGeminiModels:()=>Yt,getActiveAnthropicModels:()=>At,ZAI_PROVIDER:()=>j0,ZAI_MODELS:()=>_i,ZAI_DEFAULT_MODEL:()=>ca,XAI_PROVIDER:()=>fi,XAI_MODELS:()=>de,XAI_DEFAULT_MODEL:()=>xt,VERTEX_PROVIDER:()=>Mi,VERTEX_MODELS:()=>Qe,VERTEX_DEFAULT_MODEL:()=>gt,VERCEL_AI_GATEWAY_PROVIDER:()=>Ti,TOGETHER_PROVIDER:()=>Ri,TOGETHER_MODELS:()=>le,TOGETHER_DEFAULT_MODEL:()=>dt,SAP_AI_CORE_PROVIDER:()=>N0,SAP_AI_CORE_MODELS:()=>Di,SAP_AI_CORE_DEFAULT_MODEL:()=>oa,SAMBANOVA_PROVIDER:()=>bi,SAMBANOVA_MODELS:()=>Ce,SAMBANOVA_DEFAULT_MODEL:()=>lt,REQUESTY_PROVIDER:()=>wi,QWEN_PROVIDER:()=>L0,QWEN_MODELS:()=>hi,QWEN_DEFAULT_MODEL:()=>aa,QWEN_CODE_PROVIDER:()=>Q0,QWEN_CODE_MODELS:()=>Wi,QWEN_CODE_DEFAULT_MODEL:()=>na,OPENROUTER_PROVIDER:()=>xi,OPENROUTER_MODELS:()=>ut,OPENROUTER_DEFAULT_MODEL:()=>mt,OPENCODE_PROVIDER:()=>v0,OPENCODE_MODELS:()=>gi,OPENCODE_DEFAULT_MODEL:()=>ia,OPENAI_PROVIDER:()=>ui,OPENAI_MODELS:()=>ie,OPENAI_DEFAULT_MODEL:()=>st,OPENAI_CODEX_PROVIDER:()=>di,OPENAI_CODEX_DEFAULT_MODEL:()=>pt,OLLAMA_PROVIDER:()=>pi,OCA_PROVIDER:()=>ri,OCA_MODELS:()=>Se,OCA_DEFAULT_MODEL:()=>rt,NOUS_RESEARCH_PROVIDER:()=>ci,NOUS_RESEARCH_MODELS:()=>ct,NOUS_RESEARCH_DEFAULT_MODEL:()=>oi,NEBIUS_PROVIDER:()=>ni,NEBIUS_MODELS:()=>Le,NEBIUS_DEFAULT_MODEL:()=>ot,MOONSHOT_PROVIDER:()=>ai,MOONSHOT_MODELS:()=>Oe,MOONSHOT_DEFAULT_MODEL:()=>nt,MISTRAL_PROVIDER:()=>ii,MINIMAX_PROVIDER:()=>ti,MINIMAX_MODELS:()=>Ae,MINIMAX_DEFAULT_MODEL:()=>at,LMSTUDIO_PROVIDER:()=>ei,LITELLM_PROVIDER:()=>zt,HUGGINGFACE_PROVIDER:()=>It,HUGGINGFACE_MODELS:()=>Zt,HUAWEI_CLOUD_MAAS_PROVIDER:()=>Jt,HICAP_PROVIDER:()=>Ht,GROQ_PROVIDER:()=>Xt,GROQ_MODELS:()=>me,GROQ_DEFAULT_MODEL:()=>it,GEMINI_PROVIDER:()=>Ut,GEMINI_MODELS:()=>ee,GEMINI_DEFAULT_MODEL:()=>tt,FIREWORKS_PROVIDER:()=>Nt,FIREWORKS_MODELS:()=>ue,FIREWORKS_DEFAULT_MODEL:()=>et,DOUBAO_PROVIDER:()=>s0,DOUBAO_MODELS:()=>Vt,DOUBAO_DEFAULT_MODEL:()=>ea,DIFY_PROVIDER:()=>Bt,DEFAULT_INTERNAL_OCA_BASE_URL:()=>te,DEFAULT_EXTERNAL_OCA_BASE_URL:()=>J,DEEPSEEK_PROVIDER:()=>Kt,DEEPSEEK_MODELS:()=>pe,DEEPSEEK_DEFAULT_MODEL:()=>ze,CLINE_PROVIDER:()=>Ge,CLINE_MODELS:()=>ve,CLINE_DEFAULT_MODEL:()=>Pe,CLAUDE_CODE_PROVIDER:()=>Ft,CLAUDE_CODE_MODELS:()=>Ze,CLAUDE_CODE_DEFAULT_MODEL:()=>Ie,CEREBRAS_PROVIDER:()=>Qt,CEREBRAS_MODELS:()=>_e,CEREBRAS_DEFAULT_MODEL:()=>Je,BEDROCK_PROVIDER:()=>Ct,BEDROCK_MODELS:()=>Ee,BEDROCK_DEFAULT_MODEL:()=>He,BASETEN_PROVIDER:()=>St,ASKSAGE_PROVIDER:()=>Lt,ANTHROPIC_PROVIDER:()=>Gt,ANTHROPIC_MODELS:()=>z,ANTHROPIC_DEFAULT_MODEL:()=>je,AIHUBMIX_PROVIDER:()=>vt});var Bc={};x(Bc,{toProviderConfig:()=>Wa,supportsModelThinking:()=>ae,resolveProviderConfig:()=>bt,parseSettings:()=>ha,normalizeProviderId:()=>V,isProviderSupported:()=>qc,hasModelCapability:()=>Ke,getModelPricing:()=>xa,createHandlerAsync:()=>Qa,createHandler:()=>$i,ProviderSettingsSchema:()=>Si,OPENAI_COMPATIBLE_PROVIDERS:()=>j,BUILT_IN_PROVIDERS:()=>Cn});import{z as he}from"zod";var cc=he.enum(["connector.started","connector.stopping","message.received","message.completed","message.failed","session.started","session.reused","thread.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),gr=he.object({adapter:he.string(),botUserName:he.string().optional(),event:cc,payload:he.record(he.string(),he.unknown()),ts:he.string()});var Z0=[{modelsDevKey:"openai",generatedProviderId:"openai",runtimeProviderId:"openai-native"},{modelsDevKey:"openai",generatedProviderId:"openai",runtimeProviderId:"openai-codex"},{modelsDevKey:"anthropic",generatedProviderId:"anthropic"},{modelsDevKey:"anthropic",generatedProviderId:"anthropic",runtimeProviderId:"claude-code"},{modelsDevKey:"google",generatedProviderId:"gemini"},{modelsDevKey:"deepseek",generatedProviderId:"deepseek"},{modelsDevKey:"xai",generatedProviderId:"xai"},{modelsDevKey:"togetherai",runtimeProviderId:"together",generatedProviderId:"together"},{modelsDevKey:"sap-ai-core",runtimeProviderId:"sapaicore",generatedProviderId:"sapaicore"},{modelsDevKey:"fireworks-ai",runtimeProviderId:"fireworks",generatedProviderId:"fireworks"},{modelsDevKey:"groq",runtimeProviderId:"groq",generatedProviderId:"groq"},{modelsDevKey:"cerebras",runtimeProviderId:"cerebras",generatedProviderId:"cerebras"},{modelsDevKey:"sambanova",runtimeProviderId:"sambanova",generatedProviderId:"sambanova"},{modelsDevKey:"nebius",runtimeProviderId:"nebius",generatedProviderId:"nebius"},{modelsDevKey:"huggingface",runtimeProviderId:"huggingface",generatedProviderId:"huggingface"},{modelsDevKey:"openrouter",runtimeProviderId:"cline",generatedProviderId:"openrouter"},{modelsDevKey:"ollama",runtimeProviderId:"ollama-cloud"},{modelsDevKey:"ollama-cloud",generatedProviderId:"ollama"},{modelsDevKey:"vercel",runtimeProviderId:"dify",generatedProviderId:"vercel-ai-gateway"},{modelsDevKey:"vercel",generatedProviderId:"vercel-ai-gateway"},{modelsDevKey:"aihubmix",runtimeProviderId:"aihubmix",generatedProviderId:"aihubmix"},{modelsDevKey:"hicap",runtimeProviderId:"hicap"},{modelsDevKey:"nous-research",runtimeProviderId:"nousResearch"},{modelsDevKey:"huawei-cloud-maas",runtimeProviderId:"huawei-cloud-maas"},{modelsDevKey:"baseten",runtimeProviderId:"baseten",generatedProviderId:"baseten"},{modelsDevKey:"google-vertex-anthropic",generatedProviderId:"vertex"},{modelsDevKey:"lmstudio",generatedProviderId:"lmstudio"},{modelsDevKey:"zai",generatedProviderId:"zai"},{modelsDevKey:"requesty",generatedProviderId:"requesty"},{modelsDevKey:"amazon-bedrock",generatedProviderId:"bedrock"},{modelsDevKey:"moonshotai",generatedProviderId:"moonshot"},{modelsDevKey:"minimax",generatedProviderId:"minimax"}];function xr(e){return Object.fromEntries(Z0.flatMap((t)=>{let i=e==="modelsDevKey"?t.modelsDevKey:t.generatedProviderId;return i?[[t.modelsDevKey,i]]:[]}))}var I0=xr("generatedProviderId");function rc(e){return[...new Set(e)]}function Gi(e){let t=Z0.flatMap((i)=>{if(!i.generatedProviderId)return[];if(i.generatedProviderId===e||i.runtimeProviderId===e)return[i.generatedProviderId];return[]});if(e==="nousResearch")return rc([...t,"nousresearch",e]);return rc([...t,e])}import{z as F}from"zod";var hr=F.object({agentId:F.string(),conversationId:F.string(),iteration:F.number(),abortSignal:F.custom().optional(),metadata:F.record(F.string(),F.unknown()).optional()}),Wr=F.object({id:F.string(),name:F.string(),input:F.unknown(),output:F.unknown(),error:F.string().optional(),durationMs:F.number(),startedAt:F.date(),endedAt:F.date()});class We extends Error{constructor(e,t){super(`${e} at position ${t}`);this.position=t}}function sc(e){return/^[0-9A-Fa-f]$/.test(e)}function be(e){return e>="0"&&e<="9"}function pc(e){return e>=" "}function Ai(e){return`,:[]/{}()
|
|
2
|
-
+`.includes(e)}function
|
|
3
|
-
+`.includes(e)}function
|
|
4
|
-
`||e==="\r"||e==="\t"||e==="\b"||e==="\f"}function
|
|
5
|
-
`,r:"\r",t:"\t"};function
|
|
6
|
-
`)t++;return!0}return!1}function
|
|
1
|
+
import{createRequire as ac}from"node:module";var ec=Object.defineProperty;var tc=(e)=>e;function ic(e,t){this[e]=tc.bind(null,t)}var h=(e,t)=>{for(var i in t)ec(e,i,{get:t[i],enumerable:!0,configurable:!0,set:ic.bind(t,i)})};var w=(e,t)=>()=>(e&&(t=e(e=0)),t);var Hi=ac(import.meta.url);var ea;var Bn=w(()=>{ea={version:1774491093117,providers:{aihubmix:{"claude-sonnet-4-6":{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"claude-sonnet-4-6-think":{id:"claude-sonnet-4-6-think",name:"Claude Sonnet 4.6 Think",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"qwen3.5-plus":{id:"qwen3.5-plus",name:"Qwen 3.5 Plus",contextWindow:1e6,maxTokens:65536,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.11,output:0.66,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-16"},"minimax-m2.5":{id:"minimax-m2.5",name:"MiniMax-M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.29,output:1.15,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-12"},"coding-glm-5-free":{id:"coding-glm-5-free",name:"Coding-GLM-5-Free",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-11"},"glm-5":{id:"glm-5",name:"GLM-5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.88,output:2.82,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-11"},"claude-opus-4-6":{id:"claude-opus-4-6",name:"Claude Opus 4.6",contextWindow:200000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-05"},"claude-opus-4-6-think":{id:"claude-opus-4-6-think",name:"Claude Opus 4.6 Think",contextWindow:200000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-05"},"qwen3-coder-next":{id:"qwen3-coder-next",name:"Qwen3 Coder Next",contextWindow:262144,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0.14,output:0.55,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-04"},"kimi-k2.5":{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01-27"},"gpt-5.2-codex":{id:"gpt-5.2-codex",name:"GPT-5.2-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-01-14"},"coding-minimax-m2.1-free":{id:"coding-minimax-m2.1-free",name:"Coding MiniMax M2.1 Free",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"minimax-m2.1":{id:"minimax-m2.1",name:"MiniMax M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.29,output:1.15,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"coding-glm-4.7":{id:"coding-glm-4.7",name:"Coding-GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:1.1,cacheRead:0.548,cacheWrite:0},releaseDate:"2025-12-22"},"coding-glm-4.7-free":{id:"coding-glm-4.7-free",name:"Coding GLM 4.7 Free",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-22"},"glm-4.7":{id:"glm-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:1.1,cacheRead:0.548,cacheWrite:0},releaseDate:"2025-12-22"},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"glm-4.6v":{id:"glm-4.6v",name:"GLM-4.6V",contextWindow:128000,maxTokens:32768,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.14,output:0.41,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-08"},"deepseek-v3.2":{id:"deepseek-v3.2",name:"DeepSeek-V3.2",contextWindow:131000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.45,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"deepseek-v3.2-think":{id:"deepseek-v3.2-think",name:"DeepSeek-V3.2-Think",contextWindow:131000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.45,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"claude-opus-4-5":{id:"claude-opus-4-5",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:32000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-25"},"gemini-3-pro-preview":{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1e6,maxTokens:65000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-11-19"},"gemini-3-pro-preview-search":{id:"gemini-3-pro-preview-search",name:"Gemini 3 Pro Preview Search",contextWindow:1e6,maxTokens:65000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-11-19"},"gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-15"},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-11-15"},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.25,output:2,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-11-15"},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1-Codex-Max",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"claude-haiku-4-5":{id:"claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.1,output:5.5,cacheRead:0.11,cacheWrite:1.25},releaseDate:"2025-09-29"},"claude-sonnet-4-5":{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3.3,output:16.5,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"qwen3-max-2026-01-23":{id:"qwen3-max-2026-01-23",name:"Qwen3 Max",contextWindow:262144,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0.34,output:1.37,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-23"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1e6,maxTokens:65000,capabilities:["images","tools","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0.02,cacheWrite:0},releaseDate:"2025-09-15"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:2000000,maxTokens:65000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.25,output:5,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5":{id:"gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:5,output:20,cacheRead:2.5,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5-codex":{id:"gpt-5-codex",name:"GPT-5-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5-Mini",contextWindow:200000,maxTokens:64000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.5,output:6,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5-Nano",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.5,output:2,cacheRead:0.25,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5-Pro",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:7,output:28,cacheRead:3.5,cacheWrite:0},releaseDate:"2025-09-15"},"Kimi-K2-0905":{id:"Kimi-K2-0905",name:"Kimi K2 0905",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:0.55,output:2.19,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"claude-opus-4-1":{id:"claude-opus-4-1",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:16.5,output:82.5,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"qwen3-coder-480b-a35b-instruct":{id:"qwen3-coder-480b-a35b-instruct",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:262144,maxTokens:131000,capabilities:["tools","temperature"],pricing:{input:0.82,output:3.29,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-01"},"qwen3-235b-a22b-instruct-2507":{id:"qwen3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B Instruct 2507",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:0.28,output:1.12,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-30"},"qwen3-235b-a22b-thinking-2507":{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.28,output:2.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-30"},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 nano",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4o":{id:"gpt-4o",name:"GPT-4o",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-05-13"}},anthropic:{"claude-sonnet-4-6":{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"claude-opus-4-6":{id:"claude-opus-4-6",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"claude-opus-4-5":{id:"claude-opus-4-5",name:"Claude Opus 4.5 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"claude-opus-4-5-20251101":{id:"claude-opus-4-5-20251101",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-01"},"claude-haiku-4-5":{id:"claude-haiku-4-5",name:"Claude Haiku 4.5 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"claude-haiku-4-5-20251001":{id:"claude-haiku-4-5-20251001",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"claude-sonnet-4-5":{id:"claude-sonnet-4-5",name:"Claude Sonnet 4.5 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"claude-sonnet-4-5-20250929":{id:"claude-sonnet-4-5-20250929",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"claude-opus-4-1":{id:"claude-opus-4-1",name:"Claude Opus 4.1 (latest)",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"claude-opus-4-1-20250805":{id:"claude-opus-4-1-20250805",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"claude-opus-4-0":{id:"claude-opus-4-0",name:"Claude Opus 4 (latest)",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"claude-opus-4-20250514":{id:"claude-opus-4-20250514",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"claude-sonnet-4-0":{id:"claude-sonnet-4-0",name:"Claude Sonnet 4 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"claude-sonnet-4-20250514":{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"claude-3-7-sonnet-20250219":{id:"claude-3-7-sonnet-20250219",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"claude-3-7-sonnet-latest":{id:"claude-3-7-sonnet-latest",name:"Claude Sonnet 3.7 (latest)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"claude-3-5-haiku-20241022":{id:"claude-3-5-haiku-20241022",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"claude-3-5-haiku-latest":{id:"claude-3-5-haiku-latest",name:"Claude Haiku 3.5 (latest)",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"claude-3-5-sonnet-20241022":{id:"claude-3-5-sonnet-20241022",name:"Claude Sonnet 3.5 v2",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"},"claude-3-5-sonnet-20240620":{id:"claude-3-5-sonnet-20240620",name:"Claude Sonnet 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-06-20"},"claude-3-haiku-20240307":{id:"claude-3-haiku-20240307",name:"Claude Haiku 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:0.25,output:1.25,cacheRead:0.03,cacheWrite:0.3},releaseDate:"2024-03-13"},"claude-3-sonnet-20240229":{id:"claude-3-sonnet-20240229",name:"Claude Sonnet 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:0.3},releaseDate:"2024-03-04"},"claude-3-opus-20240229":{id:"claude-3-opus-20240229",name:"Claude Opus 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2024-02-29"}},baseten:{"nvidia/Nemotron-120B-A12B":{id:"nvidia/Nemotron-120B-A12B",name:"Nemotron 3 Super",contextWindow:262144,maxTokens:32678,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.75,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"MiniMaxAI/MiniMax-M2.5":{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5",contextWindow:204000,maxTokens:10200,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-12"},"zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.95,output:3.15,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-12"},"moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-30"},"zai-org/GLM-4.7":{id:"zai-org/GLM-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-22"},"zai-org/GLM-4.6":{id:"zai-org/GLM-4.6",name:"GLM 4.6",contextWindow:200000,maxTokens:1e4,capabilities:["tools","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-16"},"deepseek-ai/DeepSeek-V3.1":{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1",contextWindow:164000,maxTokens:131000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-25"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:128000,maxTokens:6400,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"deepseek-ai/DeepSeek-V3-0324":{id:"deepseek-ai/DeepSeek-V3-0324",name:"DeepSeek V3 0324",contextWindow:164000,maxTokens:131000,capabilities:["tools","temperature"],pricing:{input:0.77,output:0.77,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-24"}},bedrock:{"minimax.minimax-m2.5":{id:"minimax.minimax-m2.5",name:"MiniMax M2.5",contextWindow:196608,maxTokens:98304,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"zai.glm-5":{id:"zai.glm-5",name:"GLM-5",contextWindow:202752,maxTokens:101376,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"nvidia.nemotron-super-3-120b":{id:"nvidia.nemotron-super-3-120b",name:"NVIDIA Nemotron 3 Super 120B A12B",contextWindow:262144,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:0.65,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"anthropic.claude-sonnet-4-6":{id:"anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"eu.anthropic.claude-sonnet-4-6":{id:"eu.anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6 (EU)",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"global.anthropic.claude-sonnet-4-6":{id:"global.anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Global)",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"mistral.devstral-2-123b":{id:"mistral.devstral-2-123b",name:"Devstral 2 123B",contextWindow:256000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-17"},"us.anthropic.claude-sonnet-4-6":{id:"us.anthropic.claude-sonnet-4-6",name:"Claude Sonnet 4.6 (US)",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"deepseek.v3.2":{id:"deepseek.v3.2",name:"DeepSeek-V3.2",contextWindow:163840,maxTokens:81920,capabilities:["tools","reasoning","temperature"],pricing:{input:0.62,output:1.85,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-06"},"moonshotai.kimi-k2.5":{id:"moonshotai.kimi-k2.5",name:"Kimi K2.5",contextWindow:256000,maxTokens:12800,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-06"},"anthropic.claude-opus-4-6-v1":{id:"anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"eu.anthropic.claude-opus-4-6-v1":{id:"eu.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (EU)",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"global.anthropic.claude-opus-4-6-v1":{id:"global.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (Global)",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"us.anthropic.claude-opus-4-6-v1":{id:"us.anthropic.claude-opus-4-6-v1",name:"Claude Opus 4.6 (US)",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"zai.glm-4.7-flash":{id:"zai.glm-4.7-flash",name:"GLM-4.7-Flash",contextWindow:200000,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-19"},"minimax.minimax-m2.1":{id:"minimax.minimax-m2.1",name:"MiniMax M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"nvidia.nemotron-nano-3-30b":{id:"nvidia.nemotron-nano-3-30b",name:"NVIDIA Nemotron Nano 3 30B",contextWindow:128000,maxTokens:4096,capabilities:["tools","reasoning","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"zai.glm-4.7":{id:"zai.glm-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-22"},"mistral.magistral-small-2509":{id:"mistral.magistral-small-2509",name:"Magistral Small 1.2",contextWindow:128000,maxTokens:40000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"mistral.ministral-3-3b-instruct":{id:"mistral.ministral-3-3b-instruct",name:"Ministral 3 3B",contextWindow:256000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.1,output:0.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"mistral.mistral-large-3-675b-instruct":{id:"mistral.mistral-large-3-675b-instruct",name:"Mistral Large 3",contextWindow:256000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"moonshot.kimi-k2-thinking":{id:"moonshot.kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"anthropic.claude-opus-4-5-20251101-v1:0":{id:"anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"eu.anthropic.claude-opus-4-5-20251101-v1:0":{id:"eu.anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5 (EU)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"global.anthropic.claude-opus-4-5-20251101-v1:0":{id:"global.anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5 (Global)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"us.anthropic.claude-opus-4-5-20251101-v1:0":{id:"us.anthropic.claude-opus-4-5-20251101-v1:0",name:"Claude Opus 4.5 (US)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"minimax.minimax-m2":{id:"minimax.minimax-m2",name:"MiniMax M2",contextWindow:204608,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-27"},"anthropic.claude-haiku-4-5-20251001-v1:0":{id:"anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"eu.anthropic.claude-haiku-4-5-20251001-v1:0":{id:"eu.anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5 (EU)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"global.anthropic.claude-haiku-4-5-20251001-v1:0":{id:"global.anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5 (Global)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"us.anthropic.claude-haiku-4-5-20251001-v1:0":{id:"us.anthropic.claude-haiku-4-5-20251001-v1:0",name:"Claude Haiku 4.5 (US)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"qwen.qwen3-vl-235b-a22b":{id:"qwen.qwen3-vl-235b-a22b",name:"Qwen/Qwen3-VL-235B-A22B-Instruct",contextWindow:262000,maxTokens:13100,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.3,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-04"},"anthropic.claude-sonnet-4-5-20250929-v1:0":{id:"anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"eu.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:"eu.anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5 (EU)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"global.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:"global.anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5 (Global)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"us.anthropic.claude-sonnet-4-5-20250929-v1:0":{id:"us.anthropic.claude-sonnet-4-5-20250929-v1:0",name:"Claude Sonnet 4.5 (US)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"deepseek.v3-v1:0":{id:"deepseek.v3-v1:0",name:"DeepSeek-V3.1",contextWindow:163840,maxTokens:81920,capabilities:["tools","reasoning","temperature"],pricing:{input:0.58,output:1.68,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-235b-a22b-2507-v1:0":{id:"qwen.qwen3-235b-a22b-2507-v1:0",name:"Qwen3 235B A22B 2507",contextWindow:262144,maxTokens:131072,capabilities:["tools","temperature"],pricing:{input:0.22,output:0.88,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-32b-v1:0":{id:"qwen.qwen3-32b-v1:0",name:"Qwen3 32B (dense)",contextWindow:16384,maxTokens:819,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-coder-30b-a3b-v1:0":{id:"qwen.qwen3-coder-30b-a3b-v1:0",name:"Qwen3 Coder 30B A3B Instruct",contextWindow:262144,maxTokens:131072,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-coder-480b-a35b-v1:0":{id:"qwen.qwen3-coder-480b-a35b-v1:0",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:131072,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0.22,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"qwen.qwen3-next-80b-a3b":{id:"qwen.qwen3-next-80b-a3b",name:"Qwen/Qwen3-Next-80B-A3B-Instruct",contextWindow:262000,maxTokens:13100,capabilities:["tools","structured_output","temperature"],pricing:{input:0.14,output:1.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-18"},"anthropic.claude-opus-4-1-20250805-v1:0":{id:"anthropic.claude-opus-4-1-20250805-v1:0",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"us.anthropic.claude-opus-4-1-20250805-v1:0":{id:"us.anthropic.claude-opus-4-1-20250805-v1:0",name:"Claude Opus 4.1 (US)",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"google.gemma-3-27b-it":{id:"google.gemma-3-27b-it",name:"Google Gemma 3 27B Instruct",contextWindow:202752,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.12,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-27"},"mistral.voxtral-small-24b-2507":{id:"mistral.voxtral-small-24b-2507",name:"Voxtral Small 24B 2507",contextWindow:32000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.35,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-01"},"anthropic.claude-opus-4-20250514-v1:0":{id:"anthropic.claude-opus-4-20250514-v1:0",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic.claude-sonnet-4-20250514-v1:0":{id:"anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"eu.anthropic.claude-sonnet-4-20250514-v1:0":{id:"eu.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (EU)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"global.anthropic.claude-sonnet-4-20250514-v1:0":{id:"global.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (Global)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"us.anthropic.claude-opus-4-20250514-v1:0":{id:"us.anthropic.claude-opus-4-20250514-v1:0",name:"Claude Opus 4 (US)",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"us.anthropic.claude-sonnet-4-20250514-v1:0":{id:"us.anthropic.claude-sonnet-4-20250514-v1:0",name:"Claude Sonnet 4 (US)",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"writer.palmyra-x4-v1:0":{id:"writer.palmyra-x4-v1:0",name:"Palmyra X4",contextWindow:122880,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:2.5,output:10,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-28"},"writer.palmyra-x5-v1:0":{id:"writer.palmyra-x5-v1:0",name:"Palmyra X5",contextWindow:1040000,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-28"},"mistral.pixtral-large-2502-v1:0":{id:"mistral.pixtral-large-2502-v1:0",name:"Pixtral Large (25.02)",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-08"},"meta.llama4-maverick-17b-instruct-v1:0":{id:"meta.llama4-maverick-17b-instruct-v1:0",name:"Llama 4 Maverick 17B Instruct",contextWindow:1e6,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.24,output:0.97,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"meta.llama4-scout-17b-instruct-v1:0":{id:"meta.llama4-scout-17b-instruct-v1:0",name:"Llama 4 Scout 17B Instruct",contextWindow:3500000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.17,output:0.66,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"anthropic.claude-3-7-sonnet-20250219-v1:0":{id:"anthropic.claude-3-7-sonnet-20250219-v1:0",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"deepseek.r1-v1:0":{id:"deepseek.r1-v1:0",name:"DeepSeek-R1",contextWindow:128000,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-20"},"meta.llama3-3-70b-instruct-v1:0":{id:"meta.llama3-3-70b-instruct-v1:0",name:"Llama 3.3 70B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.72,output:0.72,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"},"amazon.nova-lite-v1:0":{id:"amazon.nova-lite-v1:0",name:"Nova Lite",contextWindow:300000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0.015,cacheWrite:0},releaseDate:"2024-12-03"},"amazon.nova-micro-v1:0":{id:"amazon.nova-micro-v1:0",name:"Nova Micro",contextWindow:128000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.035,output:0.14,cacheRead:0.00875,cacheWrite:0},releaseDate:"2024-12-03"},"amazon.nova-premier-v1:0":{id:"amazon.nova-premier-v1:0",name:"Nova Premier",contextWindow:1e6,maxTokens:16384,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2.5,output:12.5,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-03"},"amazon.nova-pro-v1:0":{id:"amazon.nova-pro-v1:0",name:"Nova Pro",contextWindow:300000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.8,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2024-12-03"},"amazon.nova-2-lite-v1:0":{id:"amazon.nova-2-lite-v1:0",name:"Nova 2 Lite",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.33,output:2.75,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"google.gemma-3-4b-it":{id:"google.gemma-3-4b-it",name:"Gemma 3 4B IT",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.04,output:0.08,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"mistral.ministral-3-14b-instruct":{id:"mistral.ministral-3-14b-instruct",name:"Ministral 14B 3.0",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.2,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"mistral.ministral-3-8b-instruct":{id:"mistral.ministral-3-8b-instruct",name:"Ministral 3 8B",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"mistral.voxtral-mini-3b-2507":{id:"mistral.voxtral-mini-3b-2507",name:"Voxtral Mini 3B 2507",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.04,output:0.04,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"nvidia.nemotron-nano-12b-v2":{id:"nvidia.nemotron-nano-12b-v2",name:"NVIDIA Nemotron Nano 12B v2 VL BF16",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"nvidia.nemotron-nano-9b-v2":{id:"nvidia.nemotron-nano-9b-v2",name:"NVIDIA Nemotron Nano 9B v2",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.06,output:0.23,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"openai.gpt-oss-120b-1:0":{id:"openai.gpt-oss-120b-1:0",name:"gpt-oss-120b",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"openai.gpt-oss-20b-1:0":{id:"openai.gpt-oss-20b-1:0",name:"gpt-oss-20b",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.07,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"openai.gpt-oss-safeguard-120b":{id:"openai.gpt-oss-safeguard-120b",name:"GPT OSS Safeguard 120B",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"openai.gpt-oss-safeguard-20b":{id:"openai.gpt-oss-safeguard-20b",name:"GPT OSS Safeguard 20B",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.07,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"anthropic.claude-3-5-haiku-20241022-v1:0":{id:"anthropic.claude-3-5-haiku-20241022-v1:0",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"anthropic.claude-3-5-sonnet-20241022-v2:0":{id:"anthropic.claude-3-5-sonnet-20241022-v2:0",name:"Claude Sonnet 3.5 v2",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"},"meta.llama3-2-11b-instruct-v1:0":{id:"meta.llama3-2-11b-instruct-v1:0",name:"Llama 3.2 11B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.16,output:0.16,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta.llama3-2-1b-instruct-v1:0":{id:"meta.llama3-2-1b-instruct-v1:0",name:"Llama 3.2 1B Instruct",contextWindow:131000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.1,output:0.1,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta.llama3-2-3b-instruct-v1:0":{id:"meta.llama3-2-3b-instruct-v1:0",name:"Llama 3.2 3B Instruct",contextWindow:131000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta.llama3-2-90b-instruct-v1:0":{id:"meta.llama3-2-90b-instruct-v1:0",name:"Llama 3.2 90B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0.72,output:0.72,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta.llama3-1-405b-instruct-v1:0":{id:"meta.llama3-1-405b-instruct-v1:0",name:"Llama 3.1 405B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:2.4,output:2.4,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"meta.llama3-1-70b-instruct-v1:0":{id:"meta.llama3-1-70b-instruct-v1:0",name:"Llama 3.1 70B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.72,output:0.72,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"meta.llama3-1-8b-instruct-v1:0":{id:"meta.llama3-1-8b-instruct-v1:0",name:"Llama 3.1 8B Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.22,output:0.22,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"anthropic.claude-3-5-sonnet-20240620-v1:0":{id:"anthropic.claude-3-5-sonnet-20240620-v1:0",name:"Claude Sonnet 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-06-20"},"anthropic.claude-3-haiku-20240307-v1:0":{id:"anthropic.claude-3-haiku-20240307-v1:0",name:"Claude Haiku 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:0.25,output:1.25,cacheRead:0,cacheWrite:0},releaseDate:"2024-03-13"}},cerebras:{"zai-glm-4.7":{id:"zai-glm-4.7",name:"Z.AI GLM-4.7",contextWindow:131072,maxTokens:40000,capabilities:["tools","temperature"],pricing:{input:2.25,output:2.75,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-10"},"gpt-oss-120b":{id:"gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.25,output:0.69,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"qwen-3-235b-a22b-instruct-2507":{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen 3 235B Instruct",contextWindow:131000,maxTokens:32000,capabilities:["tools","temperature"],pricing:{input:0.6,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-22"},"llama3.1-8b":{id:"llama3.1-8b",name:"Llama 3.1 8B",contextWindow:32000,maxTokens:8000,capabilities:["tools","temperature"],pricing:{input:0.1,output:0.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-01"}},deepseek:{"deepseek-chat":{id:"deepseek-chat",name:"DeepSeek Chat",contextWindow:128000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.28,output:0.42,cacheRead:0.028,cacheWrite:0},releaseDate:"2025-12-01"},"deepseek-reasoner":{id:"deepseek-reasoner",name:"DeepSeek Reasoner",contextWindow:128000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.28,output:0.42,cacheRead:0.028,cacheWrite:0},releaseDate:"2025-12-01"}},fireworks:{"accounts/fireworks/models/minimax-m2p5":{id:"accounts/fireworks/models/minimax-m2p5",name:"MiniMax-M2.5",contextWindow:196608,maxTokens:9830,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0},releaseDate:"2026-02-12"},"accounts/fireworks/models/glm-5":{id:"accounts/fireworks/models/glm-5",name:"GLM 5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0.5,cacheWrite:0},releaseDate:"2026-02-11"},"accounts/fireworks/models/kimi-k2p5":{id:"accounts/fireworks/models/kimi-k2p5",name:"Kimi K2.5",contextWindow:256000,maxTokens:12800,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01-27"},"accounts/fireworks/routers/kimi-k2p5-turbo":{id:"accounts/fireworks/routers/kimi-k2p5-turbo",name:"Kimi K2.5 Turbo",contextWindow:256000,maxTokens:12800,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-27"},"accounts/fireworks/models/minimax-m2p1":{id:"accounts/fireworks/models/minimax-m2p1",name:"MiniMax-M2.1",contextWindow:200000,maxTokens:1e4,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-12-23"},"accounts/fireworks/models/glm-4p7":{id:"accounts/fireworks/models/glm-4p7",name:"GLM 4.7",contextWindow:198000,maxTokens:9900,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.3,cacheWrite:0},releaseDate:"2025-12-22"},"accounts/fireworks/models/deepseek-v3p2":{id:"accounts/fireworks/models/deepseek-v3p2",name:"DeepSeek V3.2",contextWindow:160000,maxTokens:8000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.56,output:1.68,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-12-01"},"accounts/fireworks/models/kimi-k2-thinking":{id:"accounts/fireworks/models/kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.3,cacheWrite:0},releaseDate:"2025-11-06"},"accounts/fireworks/models/deepseek-v3p1":{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.56,output:1.68,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"accounts/fireworks/models/gpt-oss-120b":{id:"accounts/fireworks/models/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"accounts/fireworks/models/gpt-oss-20b":{id:"accounts/fireworks/models/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.05,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"accounts/fireworks/models/glm-4p5-air":{id:"accounts/fireworks/models/glm-4p5-air",name:"GLM 4.5 Air",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.22,output:0.88,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-01"},"accounts/fireworks/models/glm-4p5":{id:"accounts/fireworks/models/glm-4p5",name:"GLM 4.5",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.55,output:2.19,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-29"},"accounts/fireworks/models/kimi-k2-instruct":{id:"accounts/fireworks/models/kimi-k2-instruct",name:"Kimi K2 Instruct",contextWindow:128000,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-11"}},gemini:{"gemini-3.1-flash-lite-preview":{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:1.5,cacheRead:0.025,cacheWrite:1},releaseDate:"2026-03-03"},"gemini-3.1-pro-preview":{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-19"},"gemini-3.1-pro-preview-customtools":{id:"gemini-3.1-pro-preview-customtools",name:"Gemini 3.1 Pro Preview Custom Tools",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-19"},"gemini-3-flash-preview":{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.5,output:3,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-12-17"},"gemini-3-pro-preview":{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2025-11-18"},"gemini-2.5-flash-lite-preview-09-2025":{id:"gemini-2.5-flash-lite-preview-09-2025",name:"Gemini 2.5 Flash Lite Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-09-25"},"gemini-2.5-flash-preview-09-2025":{id:"gemini-2.5-flash-preview-09-2025",name:"Gemini 2.5 Flash Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-09-25"},"gemini-flash-latest":{id:"gemini-flash-latest",name:"Gemini Flash Latest",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-09-25"},"gemini-flash-lite-latest":{id:"gemini-flash-lite-latest",name:"Gemini Flash-Lite Latest",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-09-25"},"gemini-live-2.5-flash":{id:"gemini-live-2.5-flash",name:"Gemini Live 2.5 Flash",contextWindow:128000,maxTokens:8000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.5,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-01"},"gemini-2.5-flash-lite":{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-17"},"gemini-2.5-flash-lite-preview-06-17":{id:"gemini-2.5-flash-lite-preview-06-17",name:"Gemini 2.5 Flash Lite Preview 06-17",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-17"},"gemini-live-2.5-flash-preview-native-audio":{id:"gemini-live-2.5-flash-preview-native-audio",name:"Gemini Live 2.5 Flash Preview Native Audio",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning"],pricing:{input:0.5,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-17"},"gemini-2.5-pro-preview-06-05":{id:"gemini-2.5-pro-preview-06-05",name:"Gemini 2.5 Pro Preview 06-05",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-06-05"},"gemini-2.5-flash-preview-05-20":{id:"gemini-2.5-flash-preview-05-20",name:"Gemini 2.5 Flash Preview 05-20",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.0375,cacheWrite:0},releaseDate:"2025-05-20"},"gemini-2.5-pro-preview-05-06":{id:"gemini-2.5-pro-preview-05-06",name:"Gemini 2.5 Pro Preview 05-06",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-05-06"},"gemini-2.5-flash-preview-04-17":{id:"gemini-2.5-flash-preview-04-17",name:"Gemini 2.5 Flash Preview 04-17",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.0375,cacheWrite:0},releaseDate:"2025-04-17"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-03-20"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-03-20"},"gemini-2.0-flash":{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2024-12-11"},"gemini-2.0-flash-lite":{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-11"},"gemini-1.5-flash-8b":{id:"gemini-1.5-flash-8b",name:"Gemini 1.5 Flash-8B",contextWindow:1e6,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.0375,output:0.15,cacheRead:0.01,cacheWrite:0},releaseDate:"2024-10-03"},"gemini-1.5-flash":{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",contextWindow:1e6,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0.01875,cacheWrite:0},releaseDate:"2024-05-14"},"gemini-1.5-pro":{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",contextWindow:1e6,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:1.25,output:5,cacheRead:0.3125,cacheWrite:0},releaseDate:"2024-02-15"}},groq:{"moonshotai/kimi-k2-instruct-0905":{id:"moonshotai/kimi-k2-instruct-0905",name:"Kimi K2 Instruct 0905",contextWindow:262144,maxTokens:16384,capabilities:["tools","structured_output","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"meta-llama/llama-4-maverick-17b-128e-instruct":{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick 17B",contextWindow:131072,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"meta-llama/llama-4-scout-17b-16e-instruct":{id:"meta-llama/llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout 17B",contextWindow:131072,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.11,output:0.34,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"qwen/qwen3-32b":{id:"qwen/qwen3-32b",name:"Qwen3 32B",contextWindow:131072,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:0.29,output:0.59,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-23"},"llama-3.3-70b-versatile":{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B Versatile",contextWindow:131072,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:0.59,output:0.79,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"},"llama-3.1-8b-instant":{id:"llama-3.1-8b-instant",name:"Llama 3.1 8B Instant",contextWindow:131072,maxTokens:6553,capabilities:["tools","temperature"],pricing:{input:0.05,output:0.08,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"}},huggingface:{"MiniMaxAI/MiniMax-M2.5":{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0},releaseDate:"2026-02-12"},"zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-11"},"Qwen/Qwen3-Coder-Next":{id:"Qwen/Qwen3-Coder-Next",name:"Qwen3-Coder-Next",contextWindow:262144,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0.2,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-03"},"Qwen/Qwen3.5-397B-A17B":{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen3.5-397B-A17B",contextWindow:262144,maxTokens:32768,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3.6,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-01"},"moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi-K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01-01"},"MiniMaxAI/MiniMax-M2.1":{id:"MiniMaxAI/MiniMax-M2.1",name:"MiniMax-M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"zai-org/GLM-4.7":{id:"zai-org/GLM-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-12-22"},"XiaomiMiMo/MiMo-V2-Flash":{id:"XiaomiMiMo/MiMo-V2-Flash",name:"MiMo-V2-Flash",contextWindow:262144,maxTokens:4096,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-16"},"deepseek-ai/DeepSeek-V3.2":{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek-V3.2",contextWindow:163840,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.28,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"moonshotai/Kimi-K2-Thinking":{id:"moonshotai/Kimi-K2-Thinking",name:"Kimi-K2-Thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"Qwen/Qwen3-Next-80B-A3B-Instruct":{id:"Qwen/Qwen3-Next-80B-A3B-Instruct",name:"Qwen3-Next-80B-A3B-Instruct",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0.25,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"Qwen/Qwen3-Next-80B-A3B-Thinking":{id:"Qwen/Qwen3-Next-80B-A3B-Thinking",name:"Qwen3-Next-80B-A3B-Thinking",contextWindow:262144,maxTokens:131072,capabilities:["tools","temperature"],pricing:{input:0.3,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"moonshotai/Kimi-K2-Instruct-0905":{id:"moonshotai/Kimi-K2-Instruct-0905",name:"Kimi-K2-Instruct-0905",contextWindow:262144,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-04"},"zai-org/GLM-4.7-Flash":{id:"zai-org/GLM-4.7-Flash",name:"GLM-4.7-Flash",contextWindow:200000,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-08"},"Qwen/Qwen3-235B-A22B-Thinking-2507":{id:"Qwen/Qwen3-235B-A22B-Thinking-2507",name:"Qwen3-235B-A22B-Thinking-2507",contextWindow:262144,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3-Coder-480B-A35B-Instruct",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:2,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi-K2-Instruct",contextWindow:131072,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-14"},"deepseek-ai/DeepSeek-R1-0528":{id:"deepseek-ai/DeepSeek-R1-0528",name:"DeepSeek-R1-0528",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:3,output:5,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-28"}},lmstudio:{"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"qwen/qwen3-30b-a3b-2507":{id:"qwen/qwen3-30b-a3b-2507",name:"Qwen3 30B A3B 2507",contextWindow:262144,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-30"},"qwen/qwen3-coder-30b":{id:"qwen/qwen3-coder-30b",name:"Qwen3 Coder 30B",contextWindow:262144,maxTokens:65536,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"}},minimax:{"MiniMax-M2.7":{id:"MiniMax-M2.7",name:"MiniMax-M2.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"MiniMax-M2.7-highspeed":{id:"MiniMax-M2.7-highspeed",name:"MiniMax-M2.7-highspeed",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.4,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"MiniMax-M2.5-highspeed":{id:"MiniMax-M2.5-highspeed",name:"MiniMax-M2.5-highspeed",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.4,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-02-13"},"MiniMax-M2.5":{id:"MiniMax-M2.5",name:"MiniMax-M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-02-12"},"MiniMax-M2.1":{id:"MiniMax-M2.1",name:"MiniMax-M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"MiniMax-M2":{id:"MiniMax-M2",name:"MiniMax-M2",contextWindow:196608,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-27"}},moonshot:{"kimi-k2.5":{id:"kimi-k2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01"},"kimi-k2-thinking":{id:"kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"kimi-k2-thinking-turbo":{id:"kimi-k2-thinking-turbo",name:"Kimi K2 Thinking Turbo",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:1.15,output:8,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"kimi-k2-0905-preview":{id:"kimi-k2-0905-preview",name:"Kimi K2 0905",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-09-05"},"kimi-k2-turbo-preview":{id:"kimi-k2-turbo-preview",name:"Kimi K2 Turbo",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:2.4,output:10,cacheRead:0.6,cacheWrite:0},releaseDate:"2025-09-05"},"kimi-k2-0711-preview":{id:"kimi-k2-0711-preview",name:"Kimi K2 0711",contextWindow:131072,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-07-14"}},nebius:{"nvidia/nemotron-3-super-120b-a12b":{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron-3-Super-120B-A12B",contextWindow:256000,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",contextWindow:200000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3.2,cacheRead:0.1,cacheWrite:1},releaseDate:"2026-03-01"},"MiniMaxAI/MiniMax-M2.1":{id:"MiniMaxAI/MiniMax-M2.1",name:"MiniMax-M2.1",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-02-01"},"NousResearch/Hermes-4-405B":{id:"NousResearch/Hermes-4-405B",name:"Hermes-4-405B",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2026-01-30"},"NousResearch/Hermes-4-70B":{id:"NousResearch/Hermes-4-70B",name:"Hermes-4-70B",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.13,output:0.4,cacheRead:0.013,cacheWrite:0.16},releaseDate:"2026-01-30"},"Qwen/Qwen3-30B-A3B-Instruct-2507":{id:"Qwen/Qwen3-30B-A3B-Instruct-2507",name:"Qwen3-30B-A3B-Instruct-2507",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-28"},"Qwen/Qwen3-30B-A3B-Thinking-2507":{id:"Qwen/Qwen3-30B-A3B-Thinking-2507",name:"Qwen3-30B-A3B-Thinking-2507",contextWindow:128000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-28"},"Qwen/Qwen3-32B":{id:"Qwen/Qwen3-32B",name:"Qwen3-32B",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-28"},"Qwen/Qwen3-32B-fast":{id:"Qwen/Qwen3-32B-fast",name:"Qwen3-32B (Fast)",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0.02,cacheWrite:0.25},releaseDate:"2026-01-28"},"Qwen/Qwen3-Coder-30B-A3B-Instruct":{id:"Qwen/Qwen3-Coder-30B-A3B-Instruct",name:"Qwen3-Coder-30B-A3B-Instruct",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-28"},"Qwen/Qwen3-Next-80B-A3B-Thinking":{id:"Qwen/Qwen3-Next-80B-A3B-Thinking",name:"Qwen3-Next-80B-A3B-Thinking",contextWindow:128000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.15,output:1.2,cacheRead:0.015,cacheWrite:0.18},releaseDate:"2026-01-28"},"PrimeIntellect/INTELLECT-3":{id:"PrimeIntellect/INTELLECT-3",name:"INTELLECT-3",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0.02,cacheWrite:0.25},releaseDate:"2026-01-25"},"deepseek-ai/DeepSeek-V3.2":{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek-V3.2",contextWindow:163000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:0.45,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-01-20"},"google/gemma-3-27b-it":{id:"google/gemma-3-27b-it",name:"Gemma-3-27b-it",contextWindow:110000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0.125},releaseDate:"2026-01-20"},"google/gemma-3-27b-it-fast":{id:"google/gemma-3-27b-it-fast",name:"Gemma-3-27b-it (Fast)",contextWindow:110000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0.02,cacheWrite:0.25},releaseDate:"2026-01-20"},"deepseek-ai/DeepSeek-R1-0528":{id:"deepseek-ai/DeepSeek-R1-0528",name:"DeepSeek-R1-0528",contextWindow:128000,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.8,output:2.4,cacheRead:0.08,cacheWrite:1},releaseDate:"2026-01-15"},"zai-org/GLM-4.7-FP8":{id:"zai-org/GLM-4.7-FP8",name:"GLM-4.7 (FP8)",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0.04,cacheWrite:0.5},releaseDate:"2026-01-15"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"gpt-oss-120b",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.015,cacheWrite:0.18},releaseDate:"2026-01-10"},"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"gpt-oss-20b",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.05,output:0.2,cacheRead:0.005,cacheWrite:0.06},releaseDate:"2026-01-10"},"moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi-K2-Instruct",contextWindow:200000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.5,output:2.4,cacheRead:0.05,cacheWrite:0.625},releaseDate:"2026-01-05"},"moonshotai/Kimi-K2-Thinking":{id:"moonshotai/Kimi-K2-Thinking",name:"Kimi-K2-Thinking",contextWindow:128000,maxTokens:16384,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.06,cacheWrite:0.75},releaseDate:"2026-01-05"},"moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi-K2.5",contextWindow:256000,maxTokens:8192,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.5,output:2.5,cacheRead:0.05,cacheWrite:0.625},releaseDate:"2025-12-15"},"moonshotai/Kimi-K2.5-fast":{id:"moonshotai/Kimi-K2.5-fast",name:"Kimi-K2.5-fast",contextWindow:256000,maxTokens:8192,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.5,output:2.5,cacheRead:0.05,cacheWrite:0.625},releaseDate:"2025-12-15"},"meta-llama/Llama-3.3-70B-Instruct":{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama-3.3-70B-Instruct",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.13,output:0.4,cacheRead:0.013,cacheWrite:0.16},releaseDate:"2025-12-05"},"meta-llama/Llama-3.3-70B-Instruct-fast":{id:"meta-llama/Llama-3.3-70B-Instruct-fast",name:"Llama-3.3-70B-Instruct (Fast)",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0.31},releaseDate:"2025-12-05"},"zai-org/GLM-4.5":{id:"zai-org/GLM-4.5",name:"GLM-4.5",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.06,cacheWrite:0.75},releaseDate:"2025-11-15"},"zai-org/GLM-4.5-Air":{id:"zai-org/GLM-4.5-Air",name:"GLM-4.5-Air",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.2,output:1.2,cacheRead:0.02,cacheWrite:0.25},releaseDate:"2025-11-15"},"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B":{id:"nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B",name:"Nemotron-3-Nano-30B-A3B",contextWindow:32000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0.006,cacheWrite:0.075},releaseDate:"2025-08-10"},"Qwen/Qwen3-235B-A22B-Instruct-2507":{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B A22B Instruct 2507",contextWindow:262144,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-235B-A22B-Thinking-2507":{id:"Qwen/Qwen3-235B-A22B-Thinking-2507",name:"Qwen3 235B A22B Thinking 2507",contextWindow:262144,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-Coder-480B-A35B-Instruct":{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0.4,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"deepseek-ai/DeepSeek-V3-0324":{id:"deepseek-ai/DeepSeek-V3-0324",name:"DeepSeek-V3-0324",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0.05,cacheWrite:0.1875},releaseDate:"2025-03-24"},"deepseek-ai/DeepSeek-V3-0324-fast":{id:"deepseek-ai/DeepSeek-V3-0324-fast",name:"DeepSeek-V3-0324 (Fast)",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.75,output:2.25,cacheRead:0.075,cacheWrite:0.28125},releaseDate:"2025-03-24"},"nvidia/Nemotron-Nano-V2-12b":{id:"nvidia/Nemotron-Nano-V2-12b",name:"Nemotron-Nano-V2-12b",contextWindow:32000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.07,output:0.2,cacheRead:0.007,cacheWrite:0.08},releaseDate:"2025-03-15"},"Qwen/Qwen2.5-VL-72B-Instruct":{id:"Qwen/Qwen2.5-VL-72B-Instruct",name:"Qwen2.5-VL-72B-Instruct",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0.31},releaseDate:"2025-01-20"},"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1":{id:"nvidia/Llama-3_1-Nemotron-Ultra-253B-v1",name:"Llama-3.1-Nemotron-Ultra-253B-v1",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.6,output:1.8,cacheRead:0.06,cacheWrite:0.75},releaseDate:"2025-01-15"},"deepseek-ai/DeepSeek-R1-0528-fast":{id:"deepseek-ai/DeepSeek-R1-0528-fast",name:"DeepSeek R1 0528 Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-01"},"Qwen/Qwen2.5-Coder-7B-fast":{id:"Qwen/Qwen2.5-Coder-7B-fast",name:"Qwen2.5-Coder-7B (Fast)",contextWindow:128000,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:0.03,output:0.09,cacheRead:0.003,cacheWrite:0.03},releaseDate:"2024-09-19"},"meta-llama/Meta-Llama-3.1-8B-Instruct":{id:"meta-llama/Meta-Llama-3.1-8B-Instruct",name:"Meta-Llama-3.1-8B-Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.02,output:0.06,cacheRead:0.002,cacheWrite:0.025},releaseDate:"2024-07-23"},"meta-llama/Meta-Llama-3.1-8B-Instruct-fast":{id:"meta-llama/Meta-Llama-3.1-8B-Instruct-fast",name:"Meta-Llama-3.1-8B-Instruct (Fast)",contextWindow:128000,maxTokens:4096,capabilities:["tools","structured_output","temperature"],pricing:{input:0.03,output:0.09,cacheRead:0.003,cacheWrite:0.03},releaseDate:"2024-07-23"}},ollama:{"minimax-m2.7":{id:"minimax-m2.7",name:"minimax-m2.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"nemotron-3-super":{id:"nemotron-3-super",name:"nemotron-3-super",contextWindow:262144,maxTokens:65536,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"qwen3.5:397b":{id:"qwen3.5:397b",name:"qwen3.5:397b",contextWindow:262144,maxTokens:81920,capabilities:["images","tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-15"},"minimax-m2.5":{id:"minimax-m2.5",name:"minimax-m2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-12"},"glm-5":{id:"glm-5",name:"glm-5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-11"},"qwen3-coder-next":{id:"qwen3-coder-next",name:"qwen3-coder-next",contextWindow:262144,maxTokens:65536,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-02"},"kimi-k2.5":{id:"kimi-k2.5",name:"kimi-k2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-27"},"minimax-m2.1":{id:"minimax-m2.1",name:"minimax-m2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"glm-4.7":{id:"glm-4.7",name:"glm-4.7",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-22"},"gemini-3-flash-preview":{id:"gemini-3-flash-preview",name:"gemini-3-flash-preview",contextWindow:1048576,maxTokens:65536,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-17"},"nemotron-3-nano:30b":{id:"nemotron-3-nano:30b",name:"nemotron-3-nano:30b",contextWindow:1048576,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-15"},"devstral-2:123b":{id:"devstral-2:123b",name:"devstral-2:123b",contextWindow:262144,maxTokens:13107,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-09"},"devstral-small-2:24b":{id:"devstral-small-2:24b",name:"devstral-small-2:24b",contextWindow:262144,maxTokens:13107,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-09"},"rnj-1:8b":{id:"rnj-1:8b",name:"rnj-1:8b",contextWindow:32768,maxTokens:4096,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-06"},"mistral-large-3:675b":{id:"mistral-large-3:675b",name:"mistral-large-3:675b",contextWindow:262144,maxTokens:13107,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-02"},"cogito-2.1:671b":{id:"cogito-2.1:671b",name:"cogito-2.1:671b",contextWindow:163840,maxTokens:32000,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-11-19"},"kimi-k2-thinking":{id:"kimi-k2-thinking",name:"kimi-k2-thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-11-06"},"minimax-m2":{id:"minimax-m2",name:"minimax-m2",contextWindow:204800,maxTokens:128000,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-23"},"glm-4.6":{id:"glm-4.6",name:"glm-4.6",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-29"},"qwen3-vl:235b":{id:"qwen3-vl:235b",name:"qwen3-vl:235b",contextWindow:262144,maxTokens:32768,capabilities:["images","tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"qwen3-vl:235b-instruct":{id:"qwen3-vl:235b-instruct",name:"qwen3-vl:235b-instruct",contextWindow:262144,maxTokens:131072,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"qwen3-next:80b":{id:"qwen3-next:80b",name:"qwen3-next:80b",contextWindow:262144,maxTokens:32768,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-15"},"deepseek-v3.1:671b":{id:"deepseek-v3.1:671b",name:"deepseek-v3.1:671b",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"gpt-oss:120b":{id:"gpt-oss:120b",name:"gpt-oss:120b",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"gpt-oss:20b":{id:"gpt-oss:20b",name:"gpt-oss:20b",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"qwen3-coder:480b":{id:"qwen3-coder:480b",name:"qwen3-coder:480b",contextWindow:262144,maxTokens:65536,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-22"},"kimi-k2:1t":{id:"kimi-k2:1t",name:"kimi-k2:1t",contextWindow:262144,maxTokens:13107,capabilities:["tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-11"},"deepseek-v3.2":{id:"deepseek-v3.2",name:"deepseek-v3.2",contextWindow:163840,maxTokens:65536,capabilities:["tools","reasoning"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-15"},"ministral-3:14b":{id:"ministral-3:14b",name:"ministral-3:14b",contextWindow:262144,maxTokens:128000,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"ministral-3:8b":{id:"ministral-3:8b",name:"ministral-3:8b",contextWindow:262144,maxTokens:128000,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-01"},"ministral-3:3b":{id:"ministral-3:3b",name:"ministral-3:3b",contextWindow:262144,maxTokens:128000,capabilities:["images","tools"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-10-22"}},openai:{"gpt-5.4-mini":{id:"gpt-5.4-mini",name:"GPT-5.4 mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.75,output:4.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2026-03-17"},"gpt-5.4-nano":{id:"gpt-5.4-nano",name:"GPT-5.4 nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.2,output:1.25,cacheRead:0.02,cacheWrite:0},releaseDate:"2026-03-17"},"gpt-5.4":{id:"gpt-5.4",name:"GPT-5.4",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:2.5,output:15,cacheRead:0.25,cacheWrite:0},releaseDate:"2026-03-05"},"gpt-5.4-pro":{id:"gpt-5.4-pro",name:"GPT-5.4 Pro",contextWindow:1050000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:30,output:180,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-05"},"gpt-5.3-codex":{id:"gpt-5.3-codex",name:"GPT-5.3 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-05"},"gpt-5.3-codex-spark":{id:"gpt-5.3-codex-spark",name:"GPT-5.3 Codex Spark",contextWindow:128000,maxTokens:32000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-05"},"gpt-5.2":{id:"gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"gpt-5.2-chat-latest":{id:"gpt-5.2-chat-latest",name:"GPT-5.2 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"gpt-5.2-codex":{id:"gpt-5.2-codex",name:"GPT-5.2 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"gpt-5.2-pro":{id:"gpt-5.2-pro",name:"GPT-5.2 Pro",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:21,output:168,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-11"},"gpt-5.1":{id:"gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5.1-chat-latest":{id:"gpt-5.1-chat-latest",name:"GPT-5.1 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5.1-codex":{id:"gpt-5.1-codex",name:"GPT-5.1 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5.1-codex-max":{id:"gpt-5.1-codex-max",name:"GPT-5.1 Codex Max",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5.1-codex-mini":{id:"gpt-5.1-codex-mini",name:"GPT-5.1 Codex mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-11-13"},"gpt-5-pro":{id:"gpt-5-pro",name:"GPT-5 Pro",contextWindow:400000,maxTokens:272000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:120,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-06"},"gpt-5-codex":{id:"gpt-5-codex",name:"GPT-5-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-09-15"},"gpt-5":{id:"gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-08-07"},"gpt-5-mini":{id:"gpt-5-mini",name:"GPT-5 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-08-07"},"gpt-5-nano":{id:"gpt-5-nano",name:"GPT-5 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.05,output:0.4,cacheRead:0.005,cacheWrite:0},releaseDate:"2025-08-07"},"o3-pro":{id:"o3-pro",name:"o3-pro",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:20,output:80,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-10"},"codex-mini-latest":{id:"codex-mini-latest",name:"Codex Mini",contextWindow:200000,maxTokens:1e5,capabilities:["tools","reasoning"],pricing:{input:1.5,output:6,cacheRead:0.375,cacheWrite:0},releaseDate:"2025-05-16"},o3:{id:"o3",name:"o3",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-16"},"o4-mini":{id:"o4-mini",name:"o4-mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.1,output:4.4,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-04-16"},"gpt-4.1":{id:"gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"GPT-4.1 mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-nano":{id:"gpt-4.1-nano",name:"GPT-4.1 nano",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-04-14"},"o1-pro":{id:"o1-pro",name:"o1-pro",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:150,output:600,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-19"},"o3-mini":{id:"o3-mini",name:"o3-mini",contextWindow:200000,maxTokens:1e5,capabilities:["tools","reasoning","structured_output"],pricing:{input:1.1,output:4.4,cacheRead:0.55,cacheWrite:0},releaseDate:"2024-12-20"},o1:{id:"o1",name:"o1",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:60,cacheRead:7.5,cacheWrite:0},releaseDate:"2024-12-05"},"gpt-4o-2024-11-20":{id:"gpt-4o-2024-11-20",name:"GPT-4o (2024-11-20)",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-11-20"},"gpt-4o-2024-08-06":{id:"gpt-4o-2024-08-06",name:"GPT-4o (2024-08-06)",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-08-06"},"gpt-4o-mini":{id:"gpt-4o-mini",name:"GPT-4o mini",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.08,cacheWrite:0},releaseDate:"2024-07-18"},"o3-deep-research":{id:"o3-deep-research",name:"o3-deep-research",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning"],pricing:{input:10,output:40,cacheRead:2.5,cacheWrite:0},releaseDate:"2024-06-26"},"o4-mini-deep-research":{id:"o4-mini-deep-research",name:"o4-mini-deep-research",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2024-06-26"},"gpt-4o":{id:"gpt-4o",name:"GPT-4o",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-05-13"},"gpt-4o-2024-05-13":{id:"gpt-4o-2024-05-13",name:"GPT-4o (2024-05-13)",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","structured_output","temperature"],pricing:{input:5,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2024-05-13"},"gpt-4":{id:"gpt-4",name:"GPT-4",contextWindow:8192,maxTokens:409,capabilities:["tools","temperature"],pricing:{input:30,output:60,cacheRead:0,cacheWrite:0},releaseDate:"2023-11-06"},"gpt-4-turbo":{id:"gpt-4-turbo",name:"GPT-4 Turbo",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:10,output:30,cacheRead:0,cacheWrite:0},releaseDate:"2023-11-06"}},openrouter:{"minimax/minimax-m2.7":{id:"minimax/minimax-m2.7",name:"MiniMax M2.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"xiaomi/mimo-v2-omni":{id:"xiaomi/mimo-v2-omni",name:"MiMo-V2-Omni",contextWindow:262144,maxTokens:65536,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"xiaomi/mimo-v2-pro":{id:"xiaomi/mimo-v2-pro",name:"MiMo-V2-Pro",contextWindow:1048576,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-18"},"openai/gpt-5.4-mini":{id:"openai/gpt-5.4-mini",name:"GPT-5.4 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.00000075,output:0.0000045,cacheRead:0.000000075,cacheWrite:0},releaseDate:"2026-03-17"},"openai/gpt-5.4-nano":{id:"openai/gpt-5.4-nano",name:"GPT-5.4 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.0000002,output:0.00000125,cacheRead:0.00000002,cacheWrite:0},releaseDate:"2026-03-17"},"mistralai/mistral-small-2603":{id:"mistralai/mistral-small-2603",name:"Mistral Small 4",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-16"},"x-ai/grok-4.20-beta":{id:"x-ai/grok-4.20-beta",name:"Grok 4.20 Beta",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-03-12"},"nvidia/nemotron-3-super-120b-a12b":{id:"nvidia/nemotron-3-super-120b-a12b",name:"Nemotron 3 Super",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.5,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"nvidia/nemotron-3-super-120b-a12b-free":{id:"nvidia/nemotron-3-super-120b-a12b-free",name:"Nemotron 3 Super (free)",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-11"},"openai/gpt-5.4":{id:"openai/gpt-5.4",name:"GPT-5.4",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:2.5,output:15,cacheRead:0.25,cacheWrite:0},releaseDate:"2026-03-05"},"openai/gpt-5.4-pro":{id:"openai/gpt-5.4-pro",name:"GPT-5.4 Pro",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning"],pricing:{input:30,output:180,cacheRead:30,cacheWrite:0},releaseDate:"2026-03-05"},"inception/mercury-2":{id:"inception/mercury-2",name:"Mercury 2",contextWindow:128000,maxTokens:50000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0},releaseDate:"2026-03-04"},"google/gemini-3.1-flash-lite-preview":{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:1.5,cacheRead:0.025,cacheWrite:0.083},releaseDate:"2026-03-03"},"openai/gpt-5.3-codex":{id:"openai/gpt-5.3-codex",name:"GPT-5.3-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-24"},"google/gemini-3.1-pro-preview":{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-19"},"google/gemini-3.1-pro-preview-customtools":{id:"google/gemini-3.1-pro-preview-customtools",name:"Gemini 3.1 Pro Preview Custom Tools",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-19"},"anthropic/claude-sonnet-4.6":{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"qwen/qwen3.5-397b-a17b":{id:"qwen/qwen3.5-397b-a17b",name:"Qwen3.5 397B A17B",contextWindow:262144,maxTokens:65536,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:3.6,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-16"},"qwen/qwen3.5-plus-02-15":{id:"qwen/qwen3.5-plus-02-15",name:"Qwen3.5 Plus 2026-02-15",contextWindow:1e6,maxTokens:65536,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.4,output:2.4,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-16"},"minimax/minimax-m2.5":{id:"minimax/minimax-m2.5",name:"MiniMax M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0},releaseDate:"2026-02-12"},"z-ai/glm-5":{id:"z-ai/glm-5",name:"GLM-5",contextWindow:202752,maxTokens:131000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-12"},"anthropic/claude-opus-4.6":{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"openrouter/free":{id:"openrouter/free",name:"Free Models Router",contextWindow:200000,maxTokens:8000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-01"},"stepfun/step-3.5-flash":{id:"stepfun/step-3.5-flash",name:"Step 3.5 Flash",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.02,cacheWrite:0},releaseDate:"2026-01-29"},"stepfun/step-3.5-flash:free":{id:"stepfun/step-3.5-flash:free",name:"Step 3.5 Flash (free)",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-29"},"arcee-ai/trinity-large-preview:free":{id:"arcee-ai/trinity-large-preview:free",name:"Trinity Large Preview",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-28"},"arcee-ai/trinity-mini:free":{id:"arcee-ai/trinity-mini:free",name:"Trinity Mini",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-28"},"moonshotai/kimi-k2.5":{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:3,cacheRead:0.1,cacheWrite:0},releaseDate:"2026-01-27"},"z-ai/glm-4.7-flash":{id:"z-ai/glm-4.7-flash",name:"GLM-4.7-Flash",contextWindow:200000,maxTokens:65535,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.07,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-19"},"openai/gpt-5.2-codex":{id:"openai/gpt-5.2-codex",name:"GPT-5.2-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-01-14"},"minimax/minimax-m2.1":{id:"minimax/minimax-m2.1",name:"MiniMax M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-23"},"z-ai/glm-4.7":{id:"z-ai/glm-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-12-22"},"google/gemini-3-flash-preview":{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash Preview",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.5,output:3,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-12-17"},"nvidia/nemotron-3-nano-30b-a3b:free":{id:"nvidia/nemotron-3-nano-30b-a3b:free",name:"Nemotron 3 Nano 30B A3B (free)",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-14"},"xiaomi/mimo-v2-flash":{id:"xiaomi/mimo-v2-flash",name:"MiMo-V2-Flash",contextWindow:262144,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-12-14"},"openai/gpt-5.2":{id:"openai/gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"openai/gpt-5.2-chat":{id:"openai/gpt-5.2-chat",name:"GPT-5.2 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"openai/gpt-5.2-pro":{id:"openai/gpt-5.2-pro",name:"GPT-5.2 Pro",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:21,output:168,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-11"},"deepseek/deepseek-v3.2":{id:"deepseek/deepseek-v3.2",name:"DeepSeek V3.2",contextWindow:163840,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.28,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"deepseek/deepseek-v3.2-speciale":{id:"deepseek/deepseek-v3.2-speciale",name:"DeepSeek V3.2 Speciale",contextWindow:163840,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.27,output:0.41,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-01"},"anthropic/claude-opus-4.5":{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"x-ai/grok-4.1-fast":{id:"x-ai/grok-4.1-fast",name:"Grok 4.1 Fast",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0.05},releaseDate:"2025-11-19"},"google/gemini-3-pro-preview":{id:"google/gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1050000,maxTokens:66000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:2,output:12,cacheRead:0,cacheWrite:0},releaseDate:"2025-11-18"},"openai/gpt-5.1":{id:"openai/gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-chat":{id:"openai/gpt-5.1-chat",name:"GPT-5.1 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex":{id:"openai/gpt-5.1-codex",name:"GPT-5.1-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex-max":{id:"openai/gpt-5.1-codex-max",name:"GPT-5.1-Codex-Max",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.1,output:9,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex-mini":{id:"openai/gpt-5.1-codex-mini",name:"GPT-5.1-Codex-Mini",contextWindow:400000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-11-13"},"moonshotai/kimi-k2-thinking":{id:"moonshotai/kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"openai/gpt-oss-safeguard-20b":{id:"openai/gpt-oss-safeguard-20b",name:"GPT OSS Safeguard 20B",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-29"},"nvidia/nemotron-nano-12b-v2-vl:free":{id:"nvidia/nemotron-nano-12b-v2-vl:free",name:"Nemotron Nano 12B 2 VL (free)",contextWindow:128000,maxTokens:6400,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-28"},"minimax/minimax-m2":{id:"minimax/minimax-m2",name:"MiniMax M2",contextWindow:196600,maxTokens:118000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.28,output:1.15,cacheRead:0.28,cacheWrite:1.15},releaseDate:"2025-10-23"},"anthropic/claude-haiku-4.5":{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"openai/gpt-5-image":{id:"openai/gpt-5-image",name:"GPT-5 Image",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-10-14"},"openai/gpt-5-pro":{id:"openai/gpt-5-pro",name:"GPT-5 Pro",contextWindow:400000,maxTokens:272000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:120,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-06"},"z-ai/glm-4.6":{id:"z-ai/glm-4.6",name:"GLM 4.6",contextWindow:200000,maxTokens:128000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-09-30"},"z-ai/glm-4.6:exacto":{id:"z-ai/glm-4.6:exacto",name:"GLM 4.6 (exacto)",contextWindow:200000,maxTokens:128000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:1.9,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-09-30"},"anthropic/claude-sonnet-4.5":{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"google/gemini-2.5-flash-lite-preview-09-2025":{id:"google/gemini-2.5-flash-lite-preview-09-2025",name:"Gemini 2.5 Flash Lite Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-09-25"},"google/gemini-2.5-flash-preview-09-2025":{id:"google/gemini-2.5-flash-preview-09-2025",name:"Gemini 2.5 Flash Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.031,cacheWrite:0},releaseDate:"2025-09-25"},"deepseek/deepseek-v3.1-terminus":{id:"deepseek/deepseek-v3.1-terminus",name:"DeepSeek V3.1 Terminus",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.27,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"deepseek/deepseek-v3.1-terminus:exacto":{id:"deepseek/deepseek-v3.1-terminus:exacto",name:"DeepSeek V3.1 Terminus (exacto)",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.27,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"openai/gpt-5-codex":{id:"openai/gpt-5-codex",name:"GPT-5 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-09-15"},"mistralai/devstral-2512":{id:"mistralai/devstral-2512",name:"Devstral 2 2512",contextWindow:262144,maxTokens:13107,capabilities:["tools","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-12"},"qwen/qwen3-next-80b-a3b-instruct":{id:"qwen/qwen3-next-80b-a3b-instruct",name:"Qwen3 Next 80B A3B Instruct",contextWindow:262144,maxTokens:13107,capabilities:["tools","structured_output","temperature"],pricing:{input:0.14,output:1.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"qwen/qwen3-next-80b-a3b-instruct:free":{id:"qwen/qwen3-next-80b-a3b-instruct:free",name:"Qwen3 Next 80B A3B Instruct (free)",contextWindow:262144,maxTokens:13107,capabilities:["tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"qwen/qwen3-next-80b-a3b-thinking":{id:"qwen/qwen3-next-80b-a3b-thinking",name:"Qwen3 Next 80B A3B Thinking",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.14,output:1.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-11"},"moonshotai/kimi-k2-0905":{id:"moonshotai/kimi-k2-0905",name:"Kimi K2 Instruct 0905",contextWindow:262144,maxTokens:16384,capabilities:["tools","structured_output","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"moonshotai/kimi-k2-0905:exacto":{id:"moonshotai/kimi-k2-0905:exacto",name:"Kimi K2 Instruct 0905 (exacto)",contextWindow:262144,maxTokens:16384,capabilities:["tools","structured_output","temperature"],pricing:{input:0.6,output:2.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"nvidia/nemotron-nano-9b-v2:free":{id:"nvidia/nemotron-nano-9b-v2:free",name:"Nemotron Nano 9B V2 (free)",contextWindow:128000,maxTokens:6400,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"qwen/qwen3-max":{id:"qwen/qwen3-max",name:"Qwen3 Max",contextWindow:262144,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:1.2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"x-ai/grok-code-fast-1":{id:"x-ai/grok-code-fast-1",name:"Grok Code Fast 1",contextWindow:256000,maxTokens:1e4,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:1.5,cacheRead:0.02,cacheWrite:0},releaseDate:"2025-08-26"},"nousresearch/hermes-4-405b":{id:"nousresearch/hermes-4-405b",name:"Hermes 4 405B",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-25"},"nousresearch/hermes-4-70b":{id:"nousresearch/hermes-4-70b",name:"Hermes 4 70B",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.13,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-25"},"deepseek/deepseek-chat-v3.1":{id:"deepseek/deepseek-chat-v3.1",name:"DeepSeek-V3.1",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:0.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"x-ai/grok-4-fast":{id:"x-ai/grok-4-fast",name:"Grok 4 Fast",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0.05},releaseDate:"2025-08-19"},"nvidia/nemotron-nano-9b-v2":{id:"nvidia/nemotron-nano-9b-v2",name:"nvidia-nemotron-nano-9b-v2",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.04,output:0.16,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-18"},"mistralai/mistral-medium-3.1":{id:"mistralai/mistral-medium-3.1",name:"Mistral Medium 3.1",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-12"},"z-ai/glm-4.5v":{id:"z-ai/glm-4.5v",name:"GLM 4.5V",contextWindow:64000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-11"},"openai/gpt-5":{id:"openai/gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-mini":{id:"openai/gpt-5-mini",name:"GPT-5 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-nano":{id:"openai/gpt-5-nano",name:"GPT-5 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.05,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"anthropic/claude-opus-4.1":{id:"anthropic/claude-opus-4.1",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.072,output:0.28,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-120b:exacto":{id:"openai/gpt-oss-120b:exacto",name:"GPT OSS 120B (exacto)",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.05,output:0.24,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-120b:free":{id:"openai/gpt-oss-120b:free",name:"gpt-oss-120b (free)",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.05,output:0.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-20b:free":{id:"openai/gpt-oss-20b:free",name:"gpt-oss-20b (free)",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"mistralai/codestral-2508":{id:"mistralai/codestral-2508",name:"Codestral 2508",contextWindow:256000,maxTokens:12800,capabilities:["tools","structured_output","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-01"},"qwen/qwen3-coder-30b-a3b-instruct":{id:"qwen/qwen3-coder-30b-a3b-instruct",name:"Qwen3 Coder 30B A3B Instruct",contextWindow:160000,maxTokens:65536,capabilities:["tools","structured_output","temperature"],pricing:{input:0.07,output:0.27,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-31"},"qwen/qwen3-30b-a3b-instruct-2507":{id:"qwen/qwen3-30b-a3b-instruct-2507",name:"Qwen3 30B A3B Instruct 2507",contextWindow:262000,maxTokens:13100,capabilities:["tools","structured_output","temperature"],pricing:{input:0.2,output:0.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-29"},"qwen/qwen3-30b-a3b-thinking-2507":{id:"qwen/qwen3-30b-a3b-thinking-2507",name:"Qwen3 30B A3B Thinking 2507",contextWindow:262000,maxTokens:13100,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:0.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-29"},"z-ai/glm-4.5":{id:"z-ai/glm-4.5",name:"GLM 4.5",contextWindow:128000,maxTokens:96000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"},"z-ai/glm-4.5-air":{id:"z-ai/glm-4.5-air",name:"GLM 4.5 Air",contextWindow:128000,maxTokens:96000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"},"qwen/qwen3-235b-a22b-thinking-2507":{id:"qwen/qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking 2507",contextWindow:262144,maxTokens:81920,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.078,output:0.312,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"qwen/qwen3-coder":{id:"qwen/qwen3-coder",name:"Qwen3 Coder",contextWindow:262144,maxTokens:66536,capabilities:["tools","structured_output","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"qwen/qwen3-coder-flash":{id:"qwen/qwen3-coder-flash",name:"Qwen3 Coder Flash",contextWindow:128000,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0.3,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"qwen/qwen3-coder:exacto":{id:"qwen/qwen3-coder:exacto",name:"Qwen3 Coder (exacto)",contextWindow:131072,maxTokens:32768,capabilities:["tools","structured_output","temperature"],pricing:{input:0.38,output:1.53,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"qwen/qwen3-coder:free":{id:"qwen/qwen3-coder:free",name:"Qwen3 Coder 480B A35B Instruct (free)",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"google/gemini-2.5-flash":{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.0375,cacheWrite:0},releaseDate:"2025-07-17"},"moonshotai/kimi-k2":{id:"moonshotai/kimi-k2",name:"Kimi K2",contextWindow:131072,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:0.55,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-11"},"moonshotai/kimi-k2:free":{id:"moonshotai/kimi-k2:free",name:"Kimi K2 (free)",contextWindow:32800,maxTokens:1640,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-11"},"mistralai/devstral-medium-2507":{id:"mistralai/devstral-medium-2507",name:"Devstral Medium",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-10"},"mistralai/devstral-small-2507":{id:"mistralai/devstral-small-2507",name:"Devstral Small 1.1",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-10"},"x-ai/grok-4":{id:"x-ai/grok-4",name:"Grok 4",contextWindow:256000,maxTokens:64000,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:15},releaseDate:"2025-07-09"},"inception/mercury":{id:"inception/mercury",name:"Mercury",contextWindow:128000,maxTokens:32000,capabilities:["tools","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-26"},"mistralai/mistral-small-3.2-24b-instruct":{id:"mistralai/mistral-small-3.2-24b-instruct",name:"Mistral Small 3.2 24B Instruct",contextWindow:96000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-20"},"google/gemini-2.5-flash-lite":{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-17"},"minimax/minimax-m1":{id:"minimax/minimax-m1",name:"MiniMax M1",contextWindow:1e6,maxTokens:40000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.4,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-17"},"google/gemini-2.5-pro-preview-06-05":{id:"google/gemini-2.5-pro-preview-06-05",name:"Gemini 2.5 Pro Preview 06-05",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-06-05"},"anthropic/claude-opus-4":{id:"anthropic/claude-opus-4",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic/claude-sonnet-4":{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"mistralai/devstral-small-2505":{id:"mistralai/devstral-small-2505",name:"Devstral Small",contextWindow:128000,maxTokens:6400,capabilities:["tools","temperature"],pricing:{input:0.06,output:0.12,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"mistralai/mistral-medium-3":{id:"mistralai/mistral-medium-3",name:"Mistral Medium 3",contextWindow:131072,maxTokens:6553,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"google/gemini-2.5-pro-preview-05-06":{id:"google/gemini-2.5-pro-preview-05-06",name:"Gemini 2.5 Pro Preview 05-06",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-05-06"},"inception/mercury-coder":{id:"inception/mercury-coder",name:"Mercury Coder",contextWindow:128000,maxTokens:32000,capabilities:["tools","structured_output","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-04-30"},"qwen/qwen3-4b:free":{id:"qwen/qwen3-4b:free",name:"Qwen3 4B (free)",contextWindow:40960,maxTokens:2048,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-30"},"qwen/qwen3-235b-a22b-07-25":{id:"qwen/qwen3-235b-a22b-07-25",name:"Qwen3 235B A22B Instruct 2507",contextWindow:262144,maxTokens:131072,capabilities:["tools","structured_output","temperature"],pricing:{input:0.15,output:0.85,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-28"},"openai/o4-mini":{id:"openai/o4-mini",name:"o4 Mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.1,output:4.4,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-04-16"},"openai/gpt-4.1":{id:"openai/gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"openai/gpt-4.1-mini":{id:"openai/gpt-4.1-mini",name:"GPT-4.1 Mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"google/gemini-2.5-pro":{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-03-20"},"mistralai/mistral-small-3.1-24b-instruct":{id:"mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-17"},"google/gemma-3-27b-it":{id:"google/gemma-3-27b-it",name:"Gemma 3 27B",contextWindow:96000,maxTokens:4800,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.04,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-12"},"google/gemma-3-27b-it:free":{id:"google/gemma-3-27b-it:free",name:"Gemma 3 27B (free)",contextWindow:131072,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-12"},"anthropic/claude-3.7-sonnet":{id:"anthropic/claude-3.7-sonnet",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-02-19"},"x-ai/grok-3":{id:"x-ai/grok-3",name:"Grok 3",contextWindow:131072,maxTokens:8192,capabilities:["tools","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:15},releaseDate:"2025-02-17"},"x-ai/grok-3-beta":{id:"x-ai/grok-3-beta",name:"Grok 3 Beta",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:15},releaseDate:"2025-02-17"},"x-ai/grok-3-mini":{id:"x-ai/grok-3-mini",name:"Grok 3 Mini",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0.5},releaseDate:"2025-02-17"},"x-ai/grok-3-mini-beta":{id:"x-ai/grok-3-mini-beta",name:"Grok 3 Mini Beta",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0.5},releaseDate:"2025-02-17"},"minimax/minimax-01":{id:"minimax/minimax-01",name:"MiniMax-01",contextWindow:1e6,maxTokens:50000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-15"},"prime-intellect/intellect-3":{id:"prime-intellect/intellect-3",name:"Intellect 3",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-15"},"google/gemini-2.0-flash-001":{id:"google/gemini-2.0-flash-001",name:"Gemini 2.0 Flash",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2024-12-11"},"meta-llama/llama-3.3-70b-instruct:free":{id:"meta-llama/llama-3.3-70b-instruct:free",name:"Llama 3.3 70B Instruct (free)",contextWindow:131072,maxTokens:6553,capabilities:["tools","structured_output","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"},"anthropic/claude-3.5-haiku":{id:"anthropic/claude-3.5-haiku",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"openai/gpt-4o-mini":{id:"openai/gpt-4o-mini",name:"GPT-4o-mini",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.08,cacheWrite:0},releaseDate:"2024-07-18"}},requesty:{"openai/gpt-5.4":{id:"openai/gpt-5.4",name:"GPT-5.4",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:2.5,output:15,cacheRead:0.25,cacheWrite:0},releaseDate:"2026-03-05"},"openai/gpt-5.4-pro":{id:"openai/gpt-5.4-pro",name:"GPT-5.4 Pro",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning"],pricing:{input:30,output:180,cacheRead:30,cacheWrite:0},releaseDate:"2026-03-05"},"openai/gpt-5.3-codex":{id:"openai/gpt-5.3-codex",name:"GPT-5.3-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-24"},"anthropic/claude-sonnet-4-6":{id:"anthropic/claude-sonnet-4-6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"anthropic/claude-opus-4-6":{id:"anthropic/claude-opus-4-6",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"openai/gpt-5.2-codex":{id:"openai/gpt-5.2-codex",name:"GPT-5.2-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-01-14"},"google/gemini-3-flash-preview":{id:"google/gemini-3-flash-preview",name:"Gemini 3 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.5,output:3,cacheRead:0.05,cacheWrite:1},releaseDate:"2025-12-17"},"openai/gpt-5.2":{id:"openai/gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"openai/gpt-5.2-chat":{id:"openai/gpt-5.2-chat",name:"GPT-5.2 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12-11"},"openai/gpt-5.2-pro":{id:"openai/gpt-5.2-pro",name:"GPT-5.2 Pro",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:21,output:168,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-11"},"anthropic/claude-opus-4-5":{id:"anthropic/claude-opus-4-5",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"google/gemini-3-pro-preview":{id:"google/gemini-3-pro-preview",name:"Gemini 3 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:4.5},releaseDate:"2025-11-18"},"openai/gpt-5.1":{id:"openai/gpt-5.1",name:"GPT-5.1",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-chat":{id:"openai/gpt-5.1-chat",name:"GPT-5.1 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex":{id:"openai/gpt-5.1-codex",name:"GPT-5.1-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex-max":{id:"openai/gpt-5.1-codex-max",name:"GPT-5.1-Codex-Max",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.1,output:9,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-11-13"},"openai/gpt-5.1-codex-mini":{id:"openai/gpt-5.1-codex-mini",name:"GPT-5.1-Codex-Mini",contextWindow:400000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-11-13"},"anthropic/claude-haiku-4-5":{id:"anthropic/claude-haiku-4-5",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:62000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"openai/gpt-5-image":{id:"openai/gpt-5-image",name:"GPT-5 Image",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-10-14"},"openai/gpt-5-pro":{id:"openai/gpt-5-pro",name:"GPT-5 Pro",contextWindow:400000,maxTokens:272000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:120,cacheRead:0,cacheWrite:0},releaseDate:"2025-10-06"},"anthropic/claude-sonnet-4-5":{id:"anthropic/claude-sonnet-4-5",name:"Claude Sonnet 4.5",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"xai/grok-4-fast":{id:"xai/grok-4-fast",name:"Grok 4 Fast",contextWindow:2000000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0.2},releaseDate:"2025-09-19"},"openai/gpt-5-codex":{id:"openai/gpt-5-codex",name:"GPT-5 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-09-15"},"xai/grok-4":{id:"xai/grok-4",name:"Grok 4",contextWindow:256000,maxTokens:64000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:3},releaseDate:"2025-09-09"},"openai/gpt-5":{id:"openai/gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-mini":{id:"openai/gpt-5-mini",name:"GPT-5 Mini",contextWindow:128000,maxTokens:32000,capabilities:["images","tools","reasoning"],pricing:{input:0.25,output:2,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-nano":{id:"openai/gpt-5-nano",name:"GPT-5 Nano",contextWindow:16000,maxTokens:4000,capabilities:["tools","reasoning"],pricing:{input:0.05,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-08-07"},"anthropic/claude-opus-4-1":{id:"anthropic/claude-opus-4-1",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"google/gemini-2.5-flash":{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0.55},releaseDate:"2025-06-17"},"google/gemini-2.5-pro":{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:2.375},releaseDate:"2025-06-17"},"anthropic/claude-opus-4":{id:"anthropic/claude-opus-4",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic/claude-sonnet-4":{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"openai/o4-mini":{id:"openai/o4-mini",name:"o4 Mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","temperature"],pricing:{input:1.1,output:4.4,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-04-16"},"openai/gpt-4.1":{id:"openai/gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"openai/gpt-4.1-mini":{id:"openai/gpt-4.1-mini",name:"GPT-4.1 Mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"anthropic/claude-3-7-sonnet":{id:"anthropic/claude-3-7-sonnet",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"openai/gpt-4o-mini":{id:"openai/gpt-4o-mini",name:"GPT-4o Mini",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.08,cacheWrite:0},releaseDate:"2024-07-18"}},sapaicore:{"anthropic--claude-4.6-sonnet":{id:"anthropic--claude-4.6-sonnet",name:"anthropic--claude-4.6-sonnet",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"anthropic--claude-4.6-opus":{id:"anthropic--claude-4.6-opus",name:"anthropic--claude-4.6-opus",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"anthropic--claude-4.5-opus":{id:"anthropic--claude-4.5-opus",name:"anthropic--claude-4.5-opus",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"anthropic--claude-4.5-haiku":{id:"anthropic--claude-4.5-haiku",name:"anthropic--claude-4.5-haiku",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"anthropic--claude-4.5-sonnet":{id:"anthropic--claude-4.5-sonnet",name:"anthropic--claude-4.5-sonnet",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"gpt-5":{id:"gpt-5",name:"gpt-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-08-07"},"gpt-5-mini":{id:"gpt-5-mini",name:"gpt-5-mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-08-07"},"gpt-5-nano":{id:"gpt-5-nano",name:"gpt-5-nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.05,output:0.4,cacheRead:0.005,cacheWrite:0},releaseDate:"2025-08-07"},"gemini-2.5-flash-lite":{id:"gemini-2.5-flash-lite",name:"gemini-2.5-flash-lite",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-06-17"},"anthropic--claude-4-opus":{id:"anthropic--claude-4-opus",name:"anthropic--claude-4-opus",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic--claude-4-sonnet":{id:"anthropic--claude-4-sonnet",name:"anthropic--claude-4-sonnet",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"gpt-4.1":{id:"gpt-4.1",name:"gpt-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"gpt-4.1-mini":{id:"gpt-4.1-mini",name:"gpt-4.1-mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"gemini-2.5-flash":{id:"gemini-2.5-flash",name:"gemini-2.5-flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-03-25"},"gemini-2.5-pro":{id:"gemini-2.5-pro",name:"gemini-2.5-pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-03-25"},"anthropic--claude-3.7-sonnet":{id:"anthropic--claude-3.7-sonnet",name:"anthropic--claude-3.7-sonnet",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-24"},"anthropic--claude-3.5-sonnet":{id:"anthropic--claude-3.5-sonnet",name:"anthropic--claude-3.5-sonnet",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"},"anthropic--claude-3-haiku":{id:"anthropic--claude-3-haiku",name:"anthropic--claude-3-haiku",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:0.25,output:1.25,cacheRead:0.03,cacheWrite:0.3},releaseDate:"2024-03-13"},"anthropic--claude-3-sonnet":{id:"anthropic--claude-3-sonnet",name:"anthropic--claude-3-sonnet",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-03-04"},"anthropic--claude-3-opus":{id:"anthropic--claude-3-opus",name:"anthropic--claude-3-opus",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2024-02-29"}},together:{"Qwen/Qwen3.5-397B-A17B":{id:"Qwen/Qwen3.5-397B-A17B",name:"Qwen3.5 397B A17B",contextWindow:262144,maxTokens:130000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:3.6,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-16"},"MiniMaxAI/MiniMax-M2.5":{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax-M2.5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.06,cacheWrite:0},releaseDate:"2026-02-12"},"zai-org/GLM-5":{id:"zai-org/GLM-5",name:"GLM-5",contextWindow:202752,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1,output:3.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-11"},"Qwen/Qwen3-Coder-Next-FP8":{id:"Qwen/Qwen3-Coder-Next-FP8",name:"Qwen3 Coder Next FP8",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.5,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-02-03"},"moonshotai/Kimi-K2.5":{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.5,output:2.8,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-27"},"essentialai/Rnj-1-Instruct":{id:"essentialai/Rnj-1-Instruct",name:"Rnj-1 Instruct",contextWindow:32768,maxTokens:1638,capabilities:["tools","temperature"],pricing:{input:0.15,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-05"},"zai-org/GLM-4.6":{id:"zai-org/GLM-4.6",name:"GLM 4.6",contextWindow:200000,maxTokens:1e4,capabilities:["tools","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-30"},"deepseek-ai/DeepSeek-V3-1":{id:"deepseek-ai/DeepSeek-V3-1",name:"DeepSeek V3.1",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:1.7,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{id:"Qwen/Qwen3-235B-A22B-Instruct-2507-tput",name:"Qwen3 235B A22B Instruct 2507 FP8",contextWindow:262144,maxTokens:13107,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-Next-80B-A3B-Instruct":{id:"Qwen/Qwen3-Next-80B-A3B-Instruct",name:"Qwen3-Next-80B-A3B-Instruct",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:0.15,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"zai-org/GLM-4.7":{id:"zai-org/GLM-4.7",name:"GLM-4.7",contextWindow:200000,maxTokens:1e4,capabilities:["tools","reasoning","temperature"],pricing:{input:0.45,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-25"},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:262144,maxTokens:13107,capabilities:["tools","temperature"],pricing:{input:2,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"moonshotai/Kimi-K2-Instruct":{id:"moonshotai/Kimi-K2-Instruct",name:"Kimi K2 Instruct",contextWindow:131072,maxTokens:6553,capabilities:["tools","temperature"],pricing:{input:1,output:3,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-14"},"deepseek-ai/DeepSeek-V3":{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:1.25,output:1.25,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-20"},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B",contextWindow:131072,maxTokens:6553,capabilities:["tools","temperature"],pricing:{input:0.88,output:0.88,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"}},"vercel-ai-gateway":{"minimax/minimax-m2.7":{id:"minimax/minimax-m2.7",name:"Minimax M2.7",contextWindow:204800,maxTokens:131000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"minimax/minimax-m2.7-highspeed":{id:"minimax/minimax-m2.7-highspeed",name:"MiniMax M2.7 High Speed",contextWindow:204800,maxTokens:131100,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:2.4,cacheRead:0.06,cacheWrite:0.375},releaseDate:"2026-03-18"},"xiaomi/mimo-v2-pro":{id:"xiaomi/mimo-v2-pro",name:"MiMo V2 Pro",contextWindow:1e6,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-18"},"openai/gpt-5.4-mini":{id:"openai/gpt-5.4-mini",name:"GPT 5.4 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.75,output:4.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2026-03-17"},"openai/gpt-5.4-nano":{id:"openai/gpt-5.4-nano",name:"GPT 5.4 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.19999999999999998,output:1.25,cacheRead:0.02,cacheWrite:0},releaseDate:"2026-03-17"},"zai/glm-5-turbo":{id:"zai/glm-5-turbo",name:"GLM 5 Turbo",contextWindow:202800,maxTokens:131100,capabilities:["tools","reasoning","temperature"],pricing:{input:1.2,output:4,cacheRead:0.24,cacheWrite:0},releaseDate:"2026-03-15"},"zai/glm-4.7-flash":{id:"zai/glm-4.7-flash",name:"GLM 4.7 Flash",contextWindow:200000,maxTokens:131000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.39999999999999997,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-13"},"xai/grok-4.20-multi-agent-beta":{id:"xai/grok-4.20-multi-agent-beta",name:"Grok 4.20 Multi Agent Beta",contextWindow:2000000,maxTokens:1e5,capabilities:["tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-11"},"xai/grok-4.20-non-reasoning-beta":{id:"xai/grok-4.20-non-reasoning-beta",name:"Grok 4.20 Beta Non-Reasoning",contextWindow:2000000,maxTokens:1e5,capabilities:["images","files","tools","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-11"},"xai/grok-4.20-reasoning-beta":{id:"xai/grok-4.20-reasoning-beta",name:"Grok 4.20 Beta Reasoning",contextWindow:2000000,maxTokens:1e5,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-11"},"xai/grok-4.20-multi-agent":{id:"xai/grok-4.20-multi-agent",name:"Grok 4.20 Multi-Agent",contextWindow:2000000,maxTokens:1e5,capabilities:["tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-09"},"xai/grok-4.20-non-reasoning":{id:"xai/grok-4.20-non-reasoning",name:"Grok 4.20 Non-Reasoning",contextWindow:2000000,maxTokens:1e5,capabilities:["images","files","tools","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-09"},"xai/grok-4.20-reasoning":{id:"xai/grok-4.20-reasoning",name:"Grok 4.20 Reasoning",contextWindow:2000000,maxTokens:1e5,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.19999999999999998,cacheWrite:0},releaseDate:"2026-03-09"},"openai/gpt-5.4":{id:"openai/gpt-5.4",name:"GPT 5.4",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2.5,output:15,cacheRead:0.25,cacheWrite:0},releaseDate:"2026-03-05"},"openai/gpt-5.4-pro":{id:"openai/gpt-5.4-pro",name:"GPT 5.4 Pro",contextWindow:1050000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:30,output:180,cacheRead:0,cacheWrite:0},releaseDate:"2026-03-05"},"google/gemini-3.1-flash-lite-preview":{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview",contextWindow:1e6,maxTokens:65000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.25,output:1.5,cacheRead:0.025,cacheWrite:1},releaseDate:"2026-03-03"},"openai/gpt-5.3-chat":{id:"openai/gpt-5.3-chat",name:"GPT-5.3 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-03-03"},"alibaba/qwen3.5-flash":{id:"alibaba/qwen3.5-flash",name:"Qwen 3.5 Flash",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.001,cacheWrite:0.125},releaseDate:"2026-02-24"},"inception/mercury-2":{id:"inception/mercury-2",name:"Mercury 2",contextWindow:128000,maxTokens:6400,capabilities:["tools","reasoning","temperature"],pricing:{input:0.25,output:0.75,cacheRead:0.024999999999999998,cacheWrite:0},releaseDate:"2026-02-24"},"openai/gpt-5.3-codex":{id:"openai/gpt-5.3-codex",name:"GPT 5.3 Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2026-02-24"},"google/gemini-3.1-pro-preview":{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-19"},"anthropic/claude-sonnet-4.6":{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"alibaba/qwen3.5-plus":{id:"alibaba/qwen3.5-plus",name:"Qwen 3.5 Plus",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.4,output:2.4,cacheRead:0.04,cacheWrite:0.5},releaseDate:"2026-02-16"},"minimax/minimax-m2.5":{id:"minimax/minimax-m2.5",name:"MiniMax M2.5",contextWindow:204800,maxTokens:131000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-02-12"},"minimax/minimax-m2.5-highspeed":{id:"minimax/minimax-m2.5-highspeed",name:"MiniMax M2.5 High Speed",contextWindow:0,maxTokens:0,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.4,cacheRead:0.03,cacheWrite:0.375},releaseDate:"2026-02-12"},"zai/glm-5":{id:"zai/glm-5",name:"GLM-5",contextWindow:202800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-12"},"anthropic/claude-opus-4.6":{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02"},"moonshotai/kimi-k2.5":{id:"moonshotai/kimi-k2.5",name:"Kimi K2.5",contextWindow:262144,maxTokens:13107,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-26"},"zai/glm-4.7":{id:"zai/glm-4.7",name:"GLM 4.7",contextWindow:202752,maxTokens:120000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.43,output:1.75,cacheRead:0.08,cacheWrite:0},releaseDate:"2025-12-22"},"google/gemini-3-flash":{id:"google/gemini-3-flash",name:"Gemini 3 Flash",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.5,output:3,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-12-17"},"xiaomi/mimo-v2-flash":{id:"xiaomi/mimo-v2-flash",name:"MiMo V2 Flash",contextWindow:262144,maxTokens:32000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.29,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-17"},"mistral/devstral-2":{id:"mistral/devstral-2",name:"Devstral 2",contextWindow:256000,maxTokens:12800,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-09"},"deepseek/deepseek-v3.2-thinking":{id:"deepseek/deepseek-v3.2-thinking",name:"DeepSeek V3.2 Thinking",contextWindow:128000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.28,output:0.42,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-12-01"},"openai/gpt-5.2-codex":{id:"openai/gpt-5.2-codex",name:"GPT-5.2-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.175,cacheWrite:0},releaseDate:"2025-12"},"prime-intellect/intellect-3":{id:"prime-intellect/intellect-3",name:"INTELLECT 3",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-11-26"},"anthropic/claude-opus-4.5":{id:"anthropic/claude-opus-4.5",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:18.75},releaseDate:"2025-11-24"},"google/gemini-3-pro-preview":{id:"google/gemini-3-pro-preview",name:"Gemini 3 Pro Preview",contextWindow:1e6,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:2,output:12,cacheRead:0.2,cacheWrite:0},releaseDate:"2025-11-18"},"moonshotai/kimi-k2-thinking":{id:"moonshotai/kimi-k2-thinking",name:"Kimi K2 Thinking",contextWindow:216144,maxTokens:10807,capabilities:["tools","reasoning","temperature"],pricing:{input:0.47,output:2,cacheRead:0.14,cacheWrite:0},releaseDate:"2025-11-06"},"moonshotai/kimi-k2-thinking-turbo":{id:"moonshotai/kimi-k2-thinking-turbo",name:"Kimi K2 Thinking Turbo",contextWindow:262114,maxTokens:13105,capabilities:["tools","reasoning","temperature"],pricing:{input:1.15,output:8,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-11-06"},"minimax/minimax-m2":{id:"minimax/minimax-m2",name:"MiniMax M2",contextWindow:262114,maxTokens:13105,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:1.15,cacheRead:0.03,cacheWrite:0.38},releaseDate:"2025-10-27"},"minimax/minimax-m2.1":{id:"minimax/minimax-m2.1",name:"MiniMax M2.1",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1.2,cacheRead:0.03,cacheWrite:0.38},releaseDate:"2025-10-27"},"minimax/minimax-m2.1-lightning":{id:"minimax/minimax-m2.1-lightning",name:"MiniMax M2.1 Lightning",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:2.4,cacheRead:0.03,cacheWrite:0.38},releaseDate:"2025-10-27"},"anthropic/claude-haiku-4.5":{id:"anthropic/claude-haiku-4.5",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"bytedance/seed-1.8":{id:"bytedance/seed-1.8",name:"Seed 1.8",contextWindow:256000,maxTokens:64000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.25,output:2,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-10"},"zai/glm-4.6":{id:"zai/glm-4.6",name:"GLM 4.6",contextWindow:200000,maxTokens:96000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.45,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-30"},"zai/glm-4.6v":{id:"zai/glm-4.6v",name:"GLM-4.6V",contextWindow:128000,maxTokens:24000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09-30"},"zai/glm-4.6v-flash":{id:"zai/glm-4.6v-flash",name:"GLM-4.6V-Flash",contextWindow:128000,maxTokens:24000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-30"},"anthropic/claude-sonnet-4.5":{id:"anthropic/claude-sonnet-4.5",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"deepseek/deepseek-v3.2-exp":{id:"deepseek/deepseek-v3.2-exp",name:"DeepSeek V3.2 Exp",contextWindow:163840,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-29"},"google/gemini-2.5-flash-lite-preview-09-2025":{id:"google/gemini-2.5-flash-lite-preview-09-2025",name:"Gemini 2.5 Flash Lite Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-09-25"},"google/gemini-2.5-flash-preview-09-2025":{id:"google/gemini-2.5-flash-preview-09-2025",name:"Gemini 2.5 Flash Preview 09-25",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.03,cacheWrite:0.383},releaseDate:"2025-09-25"},"alibaba/qwen3-vl-instruct":{id:"alibaba/qwen3-vl-instruct",name:"Qwen3 VL Instruct",contextWindow:131072,maxTokens:129024,capabilities:["images","tools","temperature"],pricing:{input:0.7,output:2.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-24"},"alibaba/qwen3-vl-thinking":{id:"alibaba/qwen3-vl-thinking",name:"Qwen3 VL Thinking",contextWindow:131072,maxTokens:129024,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.7,output:8.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-24"},"alibaba/qwen3-max":{id:"alibaba/qwen3-max",name:"Qwen3 Max",contextWindow:262144,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:1.2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-23"},"alibaba/qwen3-max-preview":{id:"alibaba/qwen3-max-preview",name:"Qwen3 Max Preview",contextWindow:262144,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:1.2,output:6,cacheRead:0.24,cacheWrite:0},releaseDate:"2025-09-23"},"meituan/longcat-flash-thinking":{id:"meituan/longcat-flash-thinking",name:"LongCat Flash Thinking",contextWindow:128000,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-23"},"deepseek/deepseek-v3.1-terminus":{id:"deepseek/deepseek-v3.1-terminus",name:"DeepSeek V3.1 Terminus",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.27,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-22"},"xai/grok-4-fast-non-reasoning":{id:"xai/grok-4-fast-non-reasoning",name:"Grok 4 Fast (Non-Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09-19"},"openai/gpt-5-codex":{id:"openai/gpt-5-codex",name:"GPT-5-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-09-15"},"alibaba/qwen3-next-80b-a3b-instruct":{id:"alibaba/qwen3-next-80b-a3b-instruct",name:"Qwen3 Next 80B A3B Instruct",contextWindow:262144,maxTokens:32768,capabilities:["tools","temperature"],pricing:{input:0.09,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-12"},"alibaba/qwen3-next-80b-a3b-thinking":{id:"alibaba/qwen3-next-80b-a3b-thinking",name:"Qwen3 Next 80B A3B Thinking",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.15,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-12"},"moonshotai/kimi-k2-turbo":{id:"moonshotai/kimi-k2-turbo",name:"Kimi K2 Turbo",contextWindow:256000,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:2.4,output:10,cacheRead:0,cacheWrite:0},releaseDate:"2025-09-05"},"bytedance/seed-1.6":{id:"bytedance/seed-1.6",name:"Seed 1.6",contextWindow:256000,maxTokens:32000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.25,output:2,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09"},"meituan/longcat-flash-chat":{id:"meituan/longcat-flash-chat",name:"LongCat Flash Chat",contextWindow:128000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-30"},"xai/grok-code-fast-1":{id:"xai/grok-code-fast-1",name:"Grok Code Fast 1",contextWindow:256000,maxTokens:1e4,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.5,cacheRead:0.02,cacheWrite:0},releaseDate:"2025-08-28"},"deepseek/deepseek-v3.1":{id:"deepseek/deepseek-v3.1",name:"DeepSeek-V3.1",contextWindow:163840,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-21"},"nvidia/nemotron-nano-9b-v2":{id:"nvidia/nemotron-nano-9b-v2",name:"Nvidia Nemotron Nano 9B V2",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.04,output:0.16,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-18"},"zai/glm-4.5v":{id:"zai/glm-4.5v",name:"GLM 4.5V",contextWindow:66000,maxTokens:3300,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-11"},"openai/gpt-5":{id:"openai/gpt-5",name:"GPT-5",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.25,output:10,cacheRead:0.125,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-chat":{id:"openai/gpt-5-chat",name:"GPT-5 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-mini":{id:"openai/gpt-5-mini",name:"GPT-5 Mini",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.25,output:2,cacheRead:0.025,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-nano":{id:"openai/gpt-5-nano",name:"GPT-5 Nano",contextWindow:400000,maxTokens:128000,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:0.05,output:0.4,cacheRead:0.005,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5-pro":{id:"openai/gpt-5-pro",name:"GPT-5 pro",contextWindow:400000,maxTokens:272000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:120,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.1-codex":{id:"openai/gpt-5.1-codex",name:"GPT-5.1-Codex",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.1-codex-max":{id:"openai/gpt-5.1-codex-max",name:"GPT 5.1 Codex Max",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.1-instant":{id:"openai/gpt-5.1-instant",name:"GPT-5.1 Instant",contextWindow:128000,maxTokens:16384,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.1-thinking":{id:"openai/gpt-5.1-thinking",name:"GPT 5.1 Thinking",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning"],pricing:{input:1.25,output:10,cacheRead:0.13,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.2":{id:"openai/gpt-5.2",name:"GPT-5.2",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.18,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.2-chat":{id:"openai/gpt-5.2-chat",name:"GPT-5.2 Chat",contextWindow:128000,maxTokens:16384,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.75,output:14,cacheRead:0.18,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-5.2-pro":{id:"openai/gpt-5.2-pro",name:"GPT 5.2 ",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:21,output:168,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-07"},"openai/gpt-oss-120b":{id:"openai/gpt-oss-120b",name:"GPT OSS 120B",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"openai/gpt-oss-20b":{id:"openai/gpt-oss-20b",name:"GPT OSS 20B",contextWindow:131072,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-05"},"zai/glm-4.5":{id:"zai/glm-4.5",name:"GLM 4.5",contextWindow:131072,maxTokens:6553,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"},"zai/glm-4.5-air":{id:"zai/glm-4.5-air",name:"GLM 4.5 Air",contextWindow:128000,maxTokens:96000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"},"alibaba/qwen3-coder-plus":{id:"alibaba/qwen3-coder-plus",name:"Qwen3 Coder Plus",contextWindow:1e6,maxTokens:50000,capabilities:["tools","temperature"],pricing:{input:1,output:5,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-23"},"alibaba/qwen3-coder-next":{id:"alibaba/qwen3-coder-next",name:"Qwen3 Coder Next",contextWindow:256000,maxTokens:12800,capabilities:["tools","reasoning","temperature"],pricing:{input:0.5,output:1.2,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-22"},"xai/grok-4":{id:"xai/grok-4",name:"Grok 4",contextWindow:256000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-07-09"},"xai/grok-4-fast-reasoning":{id:"xai/grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning",contextWindow:2000000,maxTokens:256000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-07-09"},"xai/grok-4.1-fast-non-reasoning":{id:"xai/grok-4.1-fast-non-reasoning",name:"Grok 4.1 Fast Non-Reasoning",contextWindow:2000000,maxTokens:30000,capabilities:["tools","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-07-09"},"xai/grok-4.1-fast-reasoning":{id:"xai/grok-4.1-fast-reasoning",name:"Grok 4.1 Fast Reasoning",contextWindow:2000000,maxTokens:30000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-07-09"},"google/gemini-2.5-flash-lite":{id:"google/gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-06-17"},"vercel/v0-1.5-md":{id:"vercel/v0-1.5-md",name:"v0-1.5-md",contextWindow:128000,maxTokens:32000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2025-06-09"},"anthropic/claude-opus-4":{id:"anthropic/claude-opus-4",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic/claude-opus-4.1":{id:"anthropic/claude-opus-4.1",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"anthropic/claude-sonnet-4":{id:"anthropic/claude-sonnet-4",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"vercel/v0-1.0-md":{id:"vercel/v0-1.0-md",name:"v0-1.0-md",contextWindow:128000,maxTokens:32000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-22"},"openai/codex-mini":{id:"openai/codex-mini",name:"Codex Mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1.5,output:6,cacheRead:0.38,cacheWrite:0},releaseDate:"2025-05-16"},"openai/gpt-5.1-codex-mini":{id:"openai/gpt-5.1-codex-mini",name:"GPT-5.1 Codex mini",contextWindow:400000,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.25,output:2,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-05-16"},"mistral/devstral-small":{id:"mistral/devstral-small",name:"Devstral Small 1.1",contextWindow:128000,maxTokens:64000,capabilities:["tools","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"mistral/devstral-small-2":{id:"mistral/devstral-small-2",name:"Devstral Small 2",contextWindow:256000,maxTokens:12800,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"mistral/mistral-medium":{id:"mistral/mistral-medium",name:"Mistral Medium 3.1",contextWindow:128000,maxTokens:64000,capabilities:["images","tools","temperature"],pricing:{input:0.4,output:2,cacheRead:0,cacheWrite:0},releaseDate:"2025-05-07"},"openai/o3":{id:"openai/o3",name:"o3",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-16"},"openai/o3-pro":{id:"openai/o3-pro",name:"o3 Pro",contextWindow:200000,maxTokens:1e5,capabilities:["images","files","tools","reasoning"],pricing:{input:20,output:80,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-16"},"openai/o4-mini":{id:"openai/o4-mini",name:"o4-mini",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:1.1,output:4.4,cacheRead:0.28,cacheWrite:0},releaseDate:"2025-04-16"},"openai/gpt-4.1":{id:"openai/gpt-4.1",name:"GPT-4.1",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2,output:8,cacheRead:0.5,cacheWrite:0},releaseDate:"2025-04-14"},"openai/gpt-4.1-mini":{id:"openai/gpt-4.1-mini",name:"GPT-4.1 mini",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.4,output:1.6,cacheRead:0.1,cacheWrite:0},releaseDate:"2025-04-14"},"openai/gpt-4.1-nano":{id:"openai/gpt-4.1-nano",name:"GPT-4.1 nano",contextWindow:1047576,maxTokens:32768,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-04-14"},"meta/llama-4-maverick":{id:"meta/llama-4-maverick",name:"Llama-4-Maverick-17B-128E-Instruct-FP8",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"meta/llama-4-scout":{id:"meta/llama-4-scout",name:"Llama-4-Scout-17B-16E-Instruct-FP8",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-04-05"},"alibaba/qwen-3-14b":{id:"alibaba/qwen-3-14b",name:"Qwen3-14B",contextWindow:40960,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen-3-235b":{id:"alibaba/qwen-3-235b",name:"Qwen3 235B A22B Instruct 2507",contextWindow:40960,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.13,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen-3-30b":{id:"alibaba/qwen-3-30b",name:"Qwen3-30B-A3B",contextWindow:40960,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:0.08,output:0.29,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen-3-32b":{id:"alibaba/qwen-3-32b",name:"Qwen 3.32B",contextWindow:40960,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen3-235b-a22b-thinking":{id:"alibaba/qwen3-235b-a22b-thinking",name:"Qwen3 235B A22B Thinking 2507",contextWindow:262114,maxTokens:13105,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:0.3,output:2.9,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen3-coder":{id:"alibaba/qwen3-coder",name:"Qwen3 Coder 480B A35B Instruct",contextWindow:262144,maxTokens:66536,capabilities:["tools","temperature"],pricing:{input:0.38,output:1.53,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"alibaba/qwen3-coder-30b-a3b":{id:"alibaba/qwen3-coder-30b-a3b",name:"Qwen 3 Coder 30B A3B Instruct",contextWindow:160000,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.27,cacheRead:0,cacheWrite:0},releaseDate:"2025-04"},"google/gemini-2.5-flash":{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:0.3,output:2.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-03-20"},"google/gemini-2.5-pro":{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro",contextWindow:1048576,maxTokens:65536,capabilities:["images","files","tools","reasoning","structured_output","temperature"],pricing:{input:1.25,output:10,cacheRead:0.31,cacheWrite:0},releaseDate:"2025-03-20"},"mistral/magistral-medium":{id:"mistral/magistral-medium",name:"Magistral Medium (latest)",contextWindow:128000,maxTokens:16384,capabilities:["tools","reasoning","temperature"],pricing:{input:2,output:5,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-17"},"mistral/magistral-small":{id:"mistral/magistral-small",name:"Magistral Small",contextWindow:128000,maxTokens:6400,capabilities:["tools","reasoning","temperature"],pricing:{input:0.5,output:1.5,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-17"},"cohere/command-a":{id:"cohere/command-a",name:"Command A",contextWindow:256000,maxTokens:8000,capabilities:["tools","temperature"],pricing:{input:2.5,output:10,cacheRead:0,cacheWrite:0},releaseDate:"2025-03-13"},"inception/mercury-coder-small":{id:"inception/mercury-coder-small",name:"Mercury Coder Small Beta",contextWindow:32000,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.25,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-02-26"},"anthropic/claude-3.7-sonnet":{id:"anthropic/claude-3.7-sonnet",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"perplexity/sonar":{id:"perplexity/sonar",name:"Sonar",contextWindow:127000,maxTokens:8000,capabilities:["images","tools","temperature"],pricing:{input:1,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-02-19"},"perplexity/sonar-pro":{id:"perplexity/sonar-pro",name:"Sonar Pro",contextWindow:200000,maxTokens:8000,capabilities:["images","tools","temperature"],pricing:{input:3,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2025-02-19"},"xai/grok-3":{id:"xai/grok-3",name:"Grok 3",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-02-17"},"xai/grok-3-fast":{id:"xai/grok-3-fast",name:"Grok 3 Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:5,output:25,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-02-17"},"xai/grok-3-mini":{id:"xai/grok-3-mini",name:"Grok 3 Mini",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-02-17"},"xai/grok-3-mini-fast":{id:"xai/grok-3-mini-fast",name:"Grok 3 Mini Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:4,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-02-17"},"deepseek/deepseek-r1":{id:"deepseek/deepseek-r1",name:"DeepSeek-R1",contextWindow:128000,maxTokens:32768,capabilities:["tools","reasoning","temperature"],pricing:{input:1.35,output:5.4,cacheRead:0,cacheWrite:0},releaseDate:"2025-01-20"},"alibaba/qwen3-max-thinking":{id:"alibaba/qwen3-max-thinking",name:"Qwen 3 Max Thinking",contextWindow:256000,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:1.2,output:6,cacheRead:0.24,cacheWrite:0},releaseDate:"2025-01"},"arcee-ai/trinity-large-preview":{id:"arcee-ai/trinity-large-preview",name:"Trinity Large Preview",contextWindow:131000,maxTokens:6550,capabilities:["tools","temperature"],pricing:{input:0.25,output:1,cacheRead:0,cacheWrite:0},releaseDate:"2025-01"},"zai/glm-4.7-flashx":{id:"zai/glm-4.7-flashx",name:"GLM 4.7 FlashX",contextWindow:200000,maxTokens:128000,capabilities:["tools","reasoning","temperature"],pricing:{input:0.06,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2025-01"},"deepseek/deepseek-v3":{id:"deepseek/deepseek-v3",name:"DeepSeek V3 0324",contextWindow:163840,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.77,output:0.77,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-26"},"openai/o3-mini":{id:"openai/o3-mini",name:"o3-mini",contextWindow:200000,maxTokens:1e5,capabilities:["tools","reasoning","structured_output"],pricing:{input:1.1,output:4.4,cacheRead:0.55,cacheWrite:0},releaseDate:"2024-12-20"},"google/gemini-2.0-flash":{id:"google/gemini-2.0-flash",name:"Gemini 2.0 Flash",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.1,output:0.4,cacheRead:0.025,cacheWrite:0},releaseDate:"2024-12-11"},"google/gemini-2.0-flash-lite":{id:"google/gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite",contextWindow:1048576,maxTokens:8192,capabilities:["images","files","tools","structured_output","temperature"],pricing:{input:0.075,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-11"},"meta/llama-3.3-70b":{id:"meta/llama-3.3-70b",name:"Llama-3.3-70B-Instruct",contextWindow:128000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2024-12-06"},"openai/o1":{id:"openai/o1",name:"o1",contextWindow:200000,maxTokens:1e5,capabilities:["images","tools","reasoning","structured_output"],pricing:{input:15,output:60,cacheRead:7.5,cacheWrite:0},releaseDate:"2024-12-05"},"amazon/nova-lite":{id:"amazon/nova-lite",name:"Nova Lite",contextWindow:300000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.06,output:0.24,cacheRead:0.015,cacheWrite:0},releaseDate:"2024-12-03"},"amazon/nova-micro":{id:"amazon/nova-micro",name:"Nova Micro",contextWindow:128000,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:0.035,output:0.14,cacheRead:0.00875,cacheWrite:0},releaseDate:"2024-12-03"},"amazon/nova-pro":{id:"amazon/nova-pro",name:"Nova Pro",contextWindow:300000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.8,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2024-12-03"},"nvidia/nemotron-nano-12b-v2-vl":{id:"nvidia/nemotron-nano-12b-v2-vl",name:"Nvidia Nemotron Nano 12B V2 VL",contextWindow:131072,maxTokens:6553,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.2,output:0.6,cacheRead:0,cacheWrite:0},releaseDate:"2024-12"},"openai/gpt-oss-safeguard-20b":{id:"openai/gpt-oss-safeguard-20b",name:"gpt-oss-safeguard-20b",contextWindow:131072,maxTokens:65536,capabilities:["tools","reasoning","temperature"],pricing:{input:0.08,output:0.3,cacheRead:0.04,cacheWrite:0},releaseDate:"2024-12-01"},"mistral/pixtral-large":{id:"mistral/pixtral-large",name:"Pixtral Large (latest)",contextWindow:128000,maxTokens:6400,capabilities:["images","tools","temperature"],pricing:{input:2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2024-11-01"},"anthropic/claude-3.5-haiku":{id:"anthropic/claude-3.5-haiku",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"anthropic/claude-3.5-sonnet":{id:"anthropic/claude-3.5-sonnet",name:"Claude Sonnet 3.5 v2",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"},"mistral/ministral-3b":{id:"mistral/ministral-3b",name:"Ministral 3B (latest)",contextWindow:128000,maxTokens:6400,capabilities:["tools","temperature"],pricing:{input:0.04,output:0.04,cacheRead:0,cacheWrite:0},releaseDate:"2024-10-01"},"mistral/ministral-8b":{id:"mistral/ministral-8b",name:"Ministral 8B (latest)",contextWindow:128000,maxTokens:6400,capabilities:["tools","temperature"],pricing:{input:0.1,output:0.1,cacheRead:0,cacheWrite:0},releaseDate:"2024-10-01"},"meta/llama-3.2-11b":{id:"meta/llama-3.2-11b",name:"Llama 3.2 11B Vision Instruct",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.16,output:0.16,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"meta/llama-3.2-90b":{id:"meta/llama-3.2-90b",name:"Llama 3.2 90B Vision Instruct",contextWindow:128000,maxTokens:8192,capabilities:["images","tools","temperature"],pricing:{input:0.72,output:0.72,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-25"},"mistral/mistral-small":{id:"mistral/mistral-small",name:"Mistral Small (latest)",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","temperature"],pricing:{input:0.1,output:0.3,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-01"},"mistral/pixtral-12b":{id:"mistral/pixtral-12b",name:"Pixtral 12B",contextWindow:128000,maxTokens:6400,capabilities:["images","tools","temperature"],pricing:{input:0.15,output:0.15,cacheRead:0,cacheWrite:0},releaseDate:"2024-09-01"},"xai/grok-2-vision":{id:"xai/grok-2-vision",name:"Grok 2 Vision",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"meta/llama-3.1-70b":{id:"meta/llama-3.1-70b",name:"Llama 3.1 70B Instruct",contextWindow:131072,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.4,output:0.4,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"meta/llama-3.1-8b":{id:"meta/llama-3.1-8b",name:"Llama 3.1 8B Instruct",contextWindow:131072,maxTokens:16384,capabilities:["tools","temperature"],pricing:{input:0.03,output:0.05,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-23"},"openai/gpt-4o-mini":{id:"openai/gpt-4o-mini",name:"GPT-4o mini",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:0.15,output:0.6,cacheRead:0.08,cacheWrite:0},releaseDate:"2024-07-18"},"mistral/mistral-nemo":{id:"mistral/mistral-nemo",name:"Mistral Nemo",contextWindow:60288,maxTokens:16000,capabilities:["tools","temperature"],pricing:{input:0.04,output:0.17,cacheRead:0,cacheWrite:0},releaseDate:"2024-07-01"},"openai/o3-deep-research":{id:"openai/o3-deep-research",name:"o3-deep-research",contextWindow:200000,maxTokens:1e5,capabilities:["images","files","tools","reasoning"],pricing:{input:10,output:40,cacheRead:2.5,cacheWrite:0},releaseDate:"2024-06-26"},"anthropic/claude-3.5-sonnet-20240620":{id:"anthropic/claude-3.5-sonnet-20240620",name:"Claude 3.5 Sonnet (2024-06-20)",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0,cacheWrite:0},releaseDate:"2024-06-20"},"mistral/codestral":{id:"mistral/codestral",name:"Codestral (latest)",contextWindow:256000,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0,cacheWrite:0},releaseDate:"2024-05-29"},"openai/gpt-4o":{id:"openai/gpt-4o",name:"GPT-4o",contextWindow:128000,maxTokens:16384,capabilities:["images","tools","structured_output","temperature"],pricing:{input:2.5,output:10,cacheRead:1.25,cacheWrite:0},releaseDate:"2024-05-13"},"mistral/mixtral-8x22b-instruct":{id:"mistral/mixtral-8x22b-instruct",name:"Mixtral 8x22B",contextWindow:64000,maxTokens:3200,capabilities:["tools","temperature"],pricing:{input:2,output:6,cacheRead:0,cacheWrite:0},releaseDate:"2024-04-17"},"anthropic/claude-3-haiku":{id:"anthropic/claude-3-haiku",name:"Claude Haiku 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:0.25,output:1.25,cacheRead:0.03,cacheWrite:0.3},releaseDate:"2024-03-13"},"anthropic/claude-3-opus":{id:"anthropic/claude-3-opus",name:"Claude Opus 3",contextWindow:200000,maxTokens:4096,capabilities:["images","files","tools","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2024-02-29"},"openai/gpt-4-turbo":{id:"openai/gpt-4-turbo",name:"GPT-4 Turbo",contextWindow:128000,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:10,output:30,cacheRead:0,cacheWrite:0},releaseDate:"2023-11-06"}},vertex:{"claude-sonnet-4-6@default":{id:"claude-sonnet-4-6@default",name:"Claude Sonnet 4.6",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2026-02-17"},"claude-opus-4-6@default":{id:"claude-opus-4-6@default",name:"Claude Opus 4.6",contextWindow:1e6,maxTokens:128000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2026-02-05"},"claude-opus-4-5@20251101":{id:"claude-opus-4-5@20251101",name:"Claude Opus 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:5,output:25,cacheRead:0.5,cacheWrite:6.25},releaseDate:"2025-11-24"},"claude-haiku-4-5@20251001":{id:"claude-haiku-4-5@20251001",name:"Claude Haiku 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:1,output:5,cacheRead:0.1,cacheWrite:1.25},releaseDate:"2025-10-15"},"claude-sonnet-4-5@20250929":{id:"claude-sonnet-4-5@20250929",name:"Claude Sonnet 4.5",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-09-29"},"claude-opus-4-1@20250805":{id:"claude-opus-4-1@20250805",name:"Claude Opus 4.1",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-08-05"},"claude-opus-4@20250514":{id:"claude-opus-4@20250514",name:"Claude Opus 4",contextWindow:200000,maxTokens:32000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75},releaseDate:"2025-05-22"},"claude-sonnet-4@20250514":{id:"claude-sonnet-4@20250514",name:"Claude Sonnet 4",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-05-22"},"claude-3-7-sonnet@20250219":{id:"claude-3-7-sonnet@20250219",name:"Claude Sonnet 3.7",contextWindow:200000,maxTokens:64000,capabilities:["images","files","tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2025-02-19"},"claude-3-5-haiku@20241022":{id:"claude-3-5-haiku@20241022",name:"Claude Haiku 3.5",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:0.8,output:4,cacheRead:0.08,cacheWrite:1},releaseDate:"2024-10-22"},"claude-3-5-sonnet@20241022":{id:"claude-3-5-sonnet@20241022",name:"Claude Sonnet 3.5 v2",contextWindow:200000,maxTokens:8192,capabilities:["images","files","tools","temperature"],pricing:{input:3,output:15,cacheRead:0.3,cacheWrite:3.75},releaseDate:"2024-10-22"}},xai:{"grok-4.20-0309-non-reasoning":{id:"grok-4.20-0309-non-reasoning",name:"Grok 4.20 (Non-Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","temperature"],pricing:{input:2,output:6,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-03-09"},"grok-4.20-0309-reasoning":{id:"grok-4.20-0309-reasoning",name:"Grok 4.20 (Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:2,output:6,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-03-09"},"grok-4-1-fast":{id:"grok-4-1-fast",name:"Grok 4.1 Fast",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-11-19"},"grok-4-1-fast-non-reasoning":{id:"grok-4-1-fast-non-reasoning",name:"Grok 4.1 Fast (Non-Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-11-19"},"grok-4-fast":{id:"grok-4-fast",name:"Grok 4 Fast",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09-19"},"grok-4-fast-non-reasoning":{id:"grok-4-fast-non-reasoning",name:"Grok 4 Fast (Non-Reasoning)",contextWindow:2000000,maxTokens:30000,capabilities:["images","tools","temperature"],pricing:{input:0.2,output:0.5,cacheRead:0.05,cacheWrite:0},releaseDate:"2025-09-19"},"grok-code-fast-1":{id:"grok-code-fast-1",name:"Grok Code Fast 1",contextWindow:256000,maxTokens:1e4,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.5,cacheRead:0.02,cacheWrite:0},releaseDate:"2025-08-28"},"grok-4":{id:"grok-4",name:"Grok 4",contextWindow:256000,maxTokens:64000,capabilities:["tools","reasoning","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-07-09"},"grok-3":{id:"grok-3",name:"Grok 3",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-fast":{id:"grok-3-fast",name:"Grok 3 Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:5,output:25,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-fast-latest":{id:"grok-3-fast-latest",name:"Grok 3 Fast Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:5,output:25,cacheRead:1.25,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-latest":{id:"grok-3-latest",name:"Grok 3 Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:3,output:15,cacheRead:0.75,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-mini":{id:"grok-3-mini",name:"Grok 3 Mini",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-mini-fast":{id:"grok-3-mini-fast",name:"Grok 3 Mini Fast",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:4,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-mini-fast-latest":{id:"grok-3-mini-fast-latest",name:"Grok 3 Mini Fast Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:4,cacheRead:0.15,cacheWrite:0},releaseDate:"2025-02-17"},"grok-3-mini-latest":{id:"grok-3-mini-latest",name:"Grok 3 Mini Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","reasoning","temperature"],pricing:{input:0.3,output:0.5,cacheRead:0.075,cacheWrite:0},releaseDate:"2025-02-17"},"grok-2-1212":{id:"grok-2-1212",name:"Grok 2 (1212)",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-12-12"},"grok-beta":{id:"grok-beta",name:"Grok Beta",contextWindow:131072,maxTokens:4096,capabilities:["tools","temperature"],pricing:{input:5,output:15,cacheRead:5,cacheWrite:0},releaseDate:"2024-11-01"},"grok-vision-beta":{id:"grok-vision-beta",name:"Grok Vision Beta",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:5,output:15,cacheRead:5,cacheWrite:0},releaseDate:"2024-11-01"},"grok-2":{id:"grok-2",name:"Grok 2",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"grok-2-latest":{id:"grok-2-latest",name:"Grok 2 Latest",contextWindow:131072,maxTokens:8192,capabilities:["tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"grok-2-vision":{id:"grok-2-vision",name:"Grok 2 Vision",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"grok-2-vision-1212":{id:"grok-2-vision-1212",name:"Grok 2 Vision (1212)",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"},"grok-2-vision-latest":{id:"grok-2-vision-latest",name:"Grok 2 Vision Latest",contextWindow:8192,maxTokens:4096,capabilities:["images","tools","temperature"],pricing:{input:2,output:10,cacheRead:2,cacheWrite:0},releaseDate:"2024-08-20"}},zai:{"glm-5-turbo":{id:"glm-5-turbo",name:"GLM-5-Turbo",contextWindow:200000,maxTokens:131072,capabilities:["tools","reasoning","structured_output","temperature"],pricing:{input:1.2,output:4,cacheRead:0.24,cacheWrite:0},releaseDate:"2026-03-16"},"glm-5":{id:"glm-5",name:"GLM-5",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:1,output:3.2,cacheRead:0.2,cacheWrite:0},releaseDate:"2026-02-11"},"glm-4.7-flash":{id:"glm-4.7-flash",name:"GLM-4.7-Flash",contextWindow:200000,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2026-01-19"},"glm-4.7-flashx":{id:"glm-4.7-flashx",name:"GLM-4.7-FlashX",contextWindow:200000,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.07,output:0.4,cacheRead:0.01,cacheWrite:0},releaseDate:"2026-01-19"},"glm-4.7":{id:"glm-4.7",name:"GLM-4.7",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-12-22"},"glm-4.6v":{id:"glm-4.6v",name:"GLM-4.6V",contextWindow:128000,maxTokens:32768,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.3,output:0.9,cacheRead:0,cacheWrite:0},releaseDate:"2025-12-08"},"glm-4.6":{id:"glm-4.6",name:"GLM-4.6",contextWindow:204800,maxTokens:131072,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-09-30"},"glm-4.5v":{id:"glm-4.5v",name:"GLM-4.5V",contextWindow:64000,maxTokens:16384,capabilities:["images","tools","reasoning","temperature"],pricing:{input:0.6,output:1.8,cacheRead:0,cacheWrite:0},releaseDate:"2025-08-11"},"glm-4.5":{id:"glm-4.5",name:"GLM-4.5",contextWindow:131072,maxTokens:98304,capabilities:["tools","reasoning","temperature"],pricing:{input:0.6,output:2.2,cacheRead:0.11,cacheWrite:0},releaseDate:"2025-07-28"},"glm-4.5-air":{id:"glm-4.5-air",name:"GLM-4.5-Air",contextWindow:131072,maxTokens:98304,capabilities:["tools","reasoning","temperature"],pricing:{input:0.2,output:1.1,cacheRead:0.03,cacheWrite:0},releaseDate:"2025-07-28"},"glm-4.5-flash":{id:"glm-4.5-flash",name:"GLM-4.5-Flash",contextWindow:131072,maxTokens:98304,capabilities:["tools","reasoning","temperature"],pricing:{input:0,output:0,cacheRead:0,cacheWrite:0},releaseDate:"2025-07-28"}}}}});function Vn(e){if(!e)return Number.NEGATIVE_INFINITY;let t=Date.parse(e);return Number.isNaN(t)?Number.NEGATIVE_INFINITY:t}function Xe(e){return Object.fromEntries(Object.entries(e).sort(([t,i],[a,n])=>{let o=Vn(i.releaseDate),r=Vn(n.releaseDate);if(o!==r)return r-o;return t.localeCompare(a)}))}function rc(e){let t=[];if(e.modalities?.input?.includes("image"))t.push("images");if(e.modalities?.input?.includes("pdf"))t.push("files");if(e.tool_call===!0)t.push("tools");if(e.reasoning===!0)t.push("reasoning");if(e.structured_output===!0)t.push("structured_output");if(e.temperature===!0)t.push("temperature");return t}function cc(e){if(e==="active"||e==="preview"||e==="deprecated"||e==="legacy")return e;return}function sc(e,t){let i=t.limit?.context??4096,a=t.limit?.output??4096,n=i===a?a*0.05:a;return{id:e,name:t.name||e,contextWindow:i,maxTokens:Math.floor(n),capabilities:rc(t),pricing:{input:t.cost?.input??0,output:t.cost?.output??0,cacheRead:t.cost?.cache_read??0,cacheWrite:t.cost?.cache_write??0},status:cc(t.status),releaseDate:t.release_date}}function pc(e){return e.status==="deprecated"}function uc(e,t){let i={};for(let[a,n]of Object.entries(t)){let o=e[a];if(!o?.models)continue;let r={};for(let[c,s]of Object.entries(o.models)){if(s.tool_call!==!0||pc(s))continue;r[c]=sc(c,s)}if(Object.keys(r).length>0)i[n]=Xe(r)}return i}async function Nn(e,t,i=fetch){let a=await i(e);if(!a.ok)throw Error(`Failed to load model catalog from ${e}: HTTP ${a.status}`);let n=await a.json();return uc(n,t)}var Yn={};h(Yn,{getGeneratedProviderModels:()=>Xa,getGeneratedModelsVersion:()=>Ha,getGeneratedModelsForProvider:()=>m});function Xa(){return yn??=Object.fromEntries(Object.entries(ea.providers).map(([e,t])=>[e,Xe(t)])),yn}function Ha(){return ea.version}function m(e){let t=Un.get(e);if(t)return t;let i=Xe(ea.providers[e]??{});return Un.set(e,i),i}var yn,Un;var M=w(()=>{Bn();Un=new Map});var jn={};h(jn,{AIHUBMIX_PROVIDER:()=>Gt});var Gt;var Ja=w(()=>{M();Gt={provider:{id:"aihubmix",name:"AI Hub Mix",description:"AI model aggregator",protocol:"openai-chat",baseUrl:"https://api.aihubmix.com/v1",defaultModelId:"gpt-4o",env:["AIHUBMIX_API_KEY"]},models:m("aihubmix")}});var $n={};h($n,{getAnthropicReasoningModels:()=>Lt,getActiveAnthropicModels:()=>Ot,ANTHROPIC_PROVIDER:()=>At,ANTHROPIC_MODELS:()=>te,ANTHROPIC_DEFAULT_MODEL:()=>He});function Ot(){return Object.fromEntries(Object.entries(te).filter(([,e])=>!e.status||e.status==="active"||e.status==="preview"))}function Lt(){return Object.fromEntries(Object.entries(te).filter(([,e])=>e.thinkingConfig!==void 0))}var te,He,At;var Za=w(()=>{M();te=m("anthropic"),He=Object.keys(te)[0]??"claude-sonnet-4-6",At={provider:{id:"anthropic",name:"Anthropic",description:"Creator of Claude, the AI assistant",protocol:"anthropic",baseUrl:"https://api.anthropic.com",defaultModelId:He,capabilities:["reasoning","prompt-cache"],env:["ANTHROPIC_API_KEY"]},models:te}});var Xn={};h(Xn,{ASKSAGE_PROVIDER:()=>St});var St;var Ia=w(()=>{St={provider:{id:"asksage",name:"AskSage",description:"AskSage platform",protocol:"openai-chat",baseUrl:"https://api.asksage.ai/server",defaultModelId:"gpt-4o",capabilities:["tools"],env:["ASKSAGE_API_KEY"]},models:{}}});var Jn={};h(Jn,{BASETEN_PROVIDER:()=>Ct});var Hn,Ct;var za=w(()=>{M();Hn=m("baseten"),Ct={provider:{id:"baseten",name:"Baseten",description:"ML inference platform",protocol:"openai-chat",baseUrl:"https://model-api.baseten.co/v1",defaultModelId:Object.keys(Hn)[0],env:["BASETEN_API_KEY"]},models:Hn}});var Zn={};h(Zn,{BEDROCK_PROVIDER:()=>Qt,BEDROCK_MODELS:()=>_e,BEDROCK_DEFAULT_MODEL:()=>Je});var _e,Je,Qt;var e0=w(()=>{M();_e=m("bedrock"),Je=Object.keys(_e)[0]??"anthropic.claude-sonnet-4-5-20250929-v1:0",Qt={provider:{id:"bedrock",name:"AWS Bedrock",description:"Amazon Bedrock managed foundation models",protocol:"anthropic",defaultModelId:Je,capabilities:["reasoning","prompt-cache"],env:["AWS_REGION","AWS_ACCESS_KEY_ID","AWS_SECRET_ACCESS_KEY","AWS_SESSION_TOKEN"]},models:_e}});var In={};h(In,{CEREBRAS_PROVIDER:()=>Ft,CEREBRAS_MODELS:()=>Pe,CEREBRAS_DEFAULT_MODEL:()=>Ze});var Pe,Ze,Ft;var t0=w(()=>{M();Pe=m("cerebras"),Ze=Object.keys(Pe)[0]??"llama3.1-70b",Ft={provider:{id:"cerebras",name:"Cerebras",description:"Fast inference on Cerebras wafer-scale chips",protocol:"openai-chat",baseUrl:"https://api.cerebras.ai/v1",defaultModelId:Ze,env:["CEREBRAS_API_KEY"]},models:Pe}});var zn={};h(zn,{CLAUDE_CODE_PROVIDER:()=>Kt,CLAUDE_CODE_MODELS:()=>Ie,CLAUDE_CODE_DEFAULT_MODEL:()=>ze});function i0(e){let t=Object.entries(mc).find(([i])=>e(i));if(t)return t[1];return{id:"sonnet",name:"Claude Sonnet",capabilities:["streaming","reasoning"]}}function a0(e){return{...e==="opus"?i0((i)=>i.includes("opus")):e==="haiku"?i0((i)=>i.includes("haiku")):i0((i)=>i.includes("sonnet")),id:e,name:`Claude ${e.charAt(0).toUpperCase()}${e.slice(1)}`}}var mc,Ie,ze="sonnet",Kt;var n0=w(()=>{M();mc=m("anthropic");Ie={opus:a0("opus"),sonnet:a0("sonnet"),haiku:a0("haiku")},Kt={provider:{id:"claude-code",name:"Claude Code",description:"Use Claude Code SDK with Claude Pro/Max subscription",protocol:"openai-chat",baseUrl:"",defaultModelId:ze,capabilities:["reasoning"]},models:Ie}});var eo={};h(eo,{CLINE_PROVIDER:()=>Ae,CLINE_MODELS:()=>Ge,CLINE_DEFAULT_MODELINFO:()=>lc,CLINE_DEFAULT_MODEL:()=>ve});var ve="anthropic/claude-sonnet-4.6",Ge,lc,Ae;var o0=w(()=>{M();Ge=m("vercel-ai-gateway"),lc=Ge[ve],Ae={provider:{id:"cline",name:"Cline",description:"Cline API endpoint",protocol:"openai-chat",baseUrl:"https://api.cline.bot/api/v1",defaultModelId:ve,capabilities:["reasoning","prompt-cache","tools","oauth"],env:["CLINE_API_KEY"]},models:Ge}});var to={};h(to,{getDeepSeekReasoningModels:()=>Bt,DEEPSEEK_PROVIDER:()=>qt,DEEPSEEK_MODELS:()=>me,DEEPSEEK_DEFAULT_MODEL:()=>et});function Bt(){return Object.fromEntries(Object.entries(me).filter(([,e])=>e.capabilities?.includes("reasoning")))}var me,et,qt;var r0=w(()=>{M();me=m("deepseek"),et=Object.keys(me)[0],qt={provider:{id:"deepseek",name:"DeepSeek",description:"Advanced AI models with reasoning capabilities",protocol:"openai-chat",baseUrl:"https://api.deepseek.com/v1",defaultModelId:et,capabilities:["reasoning","prompt-cache"],env:["DEEPSEEK_API_KEY"]},models:me}});var io={};h(io,{DIFY_PROVIDER:()=>Vt});var Vt;var c0=w(()=>{Vt={provider:{id:"dify",name:"Dify",description:"Dify workflow/application provider via AI SDK",protocol:"openai-chat",defaultModelId:"default",env:["DIFY_API_KEY"]},models:{}}});var ao={};h(ao,{DOUBAO_PROVIDER:()=>p0,DOUBAO_MODELS:()=>Nt,DOUBAO_DEFAULT_MODEL:()=>ta});var s0="doubao-1-5-pro-256k-250115",Nt,ta,p0;var u0=w(()=>{M();Nt={[s0]:{id:s0,name:"Doubao 1.5 Pro 256k",capabilities:["streaming","tools"]},...m("doubao")},ta=Object.keys(Nt)[0]??s0,p0={provider:{id:"doubao",name:"Doubao",description:"Volcengine Ark platform models",protocol:"openai-chat",baseUrl:"https://ark.cn-beijing.volces.com/api/v3",defaultModelId:ta,env:["DOUBAO_API_KEY"]},models:Nt}});var no={};h(no,{getFireworksFunctionModels:()=>Ut,FIREWORKS_PROVIDER:()=>yt,FIREWORKS_MODELS:()=>le,FIREWORKS_DEFAULT_MODEL:()=>tt});function Ut(){return Object.fromEntries(Object.entries(le).filter(([,e])=>e.capabilities?.includes("tools")))}var le,tt,yt;var m0=w(()=>{M();le=m("fireworks"),tt=Object.keys(le)[0]??"accounts/fireworks/models/llama-v3p1-8b-instruct",yt={provider:{id:"fireworks",name:"Fireworks AI",description:"High-performance inference platform",protocol:"openai-chat",baseUrl:"https://api.fireworks.ai/inference/v1",defaultModelId:tt,env:["FIREWORKS_API_KEY"]},models:le}});var oo={};h(oo,{getGeminiThinkingModels:()=>$t,getActiveGeminiModels:()=>jt,GEMINI_PROVIDER:()=>Yt,GEMINI_MODELS:()=>ie,GEMINI_DEFAULT_MODEL:()=>it});function jt(){return Object.fromEntries(Object.entries(ie).filter(([,e])=>!e.status||e.status==="active"||e.status==="preview"))}function $t(){return Object.fromEntries(Object.entries(ie).filter(([,e])=>e.capabilities?.includes("reasoning")))}var ie,it,Yt;var l0=w(()=>{M();ie=m("gemini"),it=Object.keys(ie)[0]??"gemini-3-pro",Yt={provider:{id:"gemini",name:"Google Gemini",description:"Google Gemini API",protocol:"gemini",baseUrl:"https://generativelanguage.googleapis.com",defaultModelId:it,capabilities:["reasoning","prompt-cache"],env:["GOOGLE_GENERATIVE_AI_API_KEY","GEMINI_API_KEY"]},models:ie}});var ro={};h(ro,{getGroqVisionModels:()=>Ht,GROQ_PROVIDER:()=>Xt,GROQ_MODELS:()=>de,GROQ_DEFAULT_MODEL:()=>at});function Ht(){return Object.fromEntries(Object.entries(de).filter(([,e])=>e.capabilities?.includes("images")))}var de,at,Xt;var d0=w(()=>{M();de=m("groq"),at=Object.keys(de)[0]??"llama-3.3-70b-versatile",Xt={provider:{id:"groq",name:"Groq",description:"Ultra-fast LPU inference",protocol:"openai-chat",baseUrl:"https://api.groq.com/openai/v1",defaultModelId:at,env:["GROQ_API_KEY"]},models:de}});var co={};h(co,{HICAP_PROVIDER:()=>Jt});var Jt;var g0=w(()=>{Jt={provider:{id:"hicap",name:"HiCap",description:"HiCap AI platform",protocol:"openai-chat",baseUrl:"https://api.hicap.ai/v1",defaultModelId:"hicap-pro",env:["HICAP_API_KEY"]},models:{}}});var so={};h(so,{HUAWEI_CLOUD_MAAS_PROVIDER:()=>Zt});var Zt;var x0=w(()=>{Zt={provider:{id:"huawei-cloud-maas",name:"Huawei Cloud MaaS",description:"Huawei's model-as-a-service platform",protocol:"openai-chat",baseUrl:"https://infer-modelarts.cn-southwest-2.myhuaweicloud.com/v1",defaultModelId:"DeepSeek-R1",env:["HUAWEI_CLOUD_MAAS_API_KEY"]},models:{}}});var po={};h(po,{HUGGINGFACE_PROVIDER:()=>zt,HUGGINGFACE_MODELS:()=>It});var It,zt;var h0=w(()=>{M();It=m("huggingface"),zt={provider:{id:"huggingface",name:"Hugging Face",description:"Hugging Face inference API",protocol:"openai-chat",baseUrl:"https://api-inference.huggingface.co/v1",defaultModelId:Object.keys(It)[0],env:["HF_TOKEN"]},models:It}});var uo={};h(uo,{LITELLM_PROVIDER:()=>ei});var ei;var W0=w(()=>{ei={provider:{id:"litellm",name:"LiteLLM",description:"Self-hosted LLM proxy",protocol:"openai-chat",baseUrl:"http://localhost:4000/v1",defaultModelId:"gpt-4o",capabilities:["prompt-cache"],env:["LITELLM_API_KEY"]},models:{}}});var lo={};h(lo,{LMSTUDIO_PROVIDER:()=>ti});var mo,ti;var w0=w(()=>{M();mo=m("lmstudio"),ti={provider:{id:"lmstudio",name:"LM Studio",description:"Local model inference with LM Studio",protocol:"openai-chat",baseUrl:"http://localhost:1234/v1",defaultModelId:Object.keys(mo)[0],env:["LMSTUDIO_API_KEY"]},models:mo||{}}});var go={};h(go,{MINIMAX_PROVIDER:()=>ii,MINIMAX_MODELS:()=>Oe,MINIMAX_DEFAULT_MODEL:()=>nt});var b0="MiniMax-M2.5",Oe,nt,ii;var D0=w(()=>{M();Oe={[b0]:{id:b0,name:"MiniMax M2.5",capabilities:["streaming","tools","reasoning","prompt-cache"]},...m("minimax")},nt=Object.keys(Oe)[0]??b0,ii={provider:{id:"minimax",name:"MiniMax",description:"MiniMax models via Anthropic-compatible API",protocol:"anthropic",baseUrl:"https://api.minimax.io/anthropic",defaultModelId:nt,capabilities:["reasoning","prompt-cache"],env:["MINIMAX_API_KEY"]},models:Oe}});var xo={};h(xo,{MISTRAL_PROVIDER:()=>ai});var ai;var R0=w(()=>{ai={provider:{id:"mistral",name:"Mistral",description:"Mistral AI models via AI SDK provider",protocol:"openai-chat",baseUrl:"https://api.mistral.ai/v1",defaultModelId:"mistral-medium-latest",capabilities:["reasoning"],env:["MISTRAL_API_KEY"]},models:{}}});var ho={};h(ho,{MOONSHOT_PROVIDER:()=>ni,MOONSHOT_MODELS:()=>Le,MOONSHOT_DEFAULT_MODEL:()=>ot});var k0="kimi-k2-0905-preview",Le,ot,ni;var T0=w(()=>{M();Le={[k0]:{id:k0,name:"Kimi K2 Preview",capabilities:["streaming","tools","reasoning"]},...m("moonshot")},ot=Object.keys(Le)[0]??k0,ni={provider:{id:"moonshot",name:"Moonshot",description:"Moonshot AI Studio models",protocol:"openai-chat",baseUrl:"https://api.moonshot.ai/v1",defaultModelId:ot,capabilities:["reasoning","prompt-cache"],env:["MOONSHOT_API_KEY"]},models:Le}});var Wo={};h(Wo,{NEBIUS_PROVIDER:()=>oi,NEBIUS_MODELS:()=>Se,NEBIUS_DEFAULT_MODEL:()=>rt});var Se,rt,oi;var M0=w(()=>{M();Se=m("nebius"),rt=Object.keys(Se)[0]||"meta-llama/Meta-Llama-3.1-70B-Instruct",oi={provider:{id:"nebius",name:"Nebius",description:"European cloud AI infrastructure",protocol:"openai-chat",baseUrl:"https://api.studio.nebius.ai/v1",defaultModelId:rt,env:["NEBIUS_API_KEY"]},models:Se}});var wo={};h(wo,{NOUS_RESEARCH_PROVIDER:()=>ci,NOUS_RESEARCH_MODELS:()=>ct,NOUS_RESEARCH_DEFAULT_MODEL:()=>ri});var ct,ri="DeepHermes-3-Llama-3-3-70B-Preview",ci;var f0=w(()=>{ct={},ci={provider:{id:"nousResearch",name:"Nous Research",description:"Open-source AI research lab",protocol:"openai-chat",baseUrl:"https://inference-api.nousresearch.com/v1",defaultModelId:"DeepHermes-3-Llama-3-3-70B-Preview",env:["NOUS_RESEARCH_API_KEY","NOUSRESEARCH_API_KEY"]},models:ct}});var bo={};h(bo,{OCA_PROVIDER:()=>si,OCA_MODELS:()=>Ce,OCA_DEFAULT_MODEL:()=>st,DEFAULT_INTERNAL_OCA_BASE_URL:()=>ae,DEFAULT_EXTERNAL_OCA_BASE_URL:()=>I});var ae="https://code-internal.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm",I="https://code.aiservice.us-chicago-1.oci.oraclecloud.com/20250206/app/litellm",st="anthropic/claude-3-7-sonnet-20250219",Ce,si;var pi=w(()=>{M();Ce=m("oca"),si={provider:{id:"oca",name:"Oracle Code Assist",description:"Oracle Code Assist (OCA) LiteLLM gateway",protocol:"openai-chat",baseUrl:I,defaultModelId:Object.keys(Ce)[0]??st,capabilities:["reasoning","prompt-cache","tools"],env:["OCA_API_KEY"]},models:Ce}});var Do={};h(Do,{OLLAMA_PROVIDER:()=>ui});var ui;var E0=w(()=>{ui={provider:{id:"ollama",name:"Ollama",description:"Ollama Cloud and local LLM hosting",protocol:"openai-chat",baseUrl:"http://localhost:11434/v1",defaultModelId:"llama3.2",env:["OLLAMA_API_KEY"]},models:{}}});var _0={};h(_0,{getOpenAIReasoningModels:()=>di,getActiveOpenAIModels:()=>li,OPENAI_PROVIDER:()=>mi,OPENAI_MODELS:()=>ne,OPENAI_DEFAULT_MODEL:()=>pt});function li(){return Object.fromEntries(Object.entries(ne).filter(([,e])=>!e.status||e.status==="active"||e.status==="preview"))}function di(){return Object.fromEntries(Object.entries(ne).filter(([,e])=>e.capabilities?.includes("reasoning")))}var ne,pt,mi;var ia=w(()=>{M();ne=m("openai"),pt=Object.keys(ne)[0]??"gpt-5.3-codex",mi={provider:{id:"openai-native",name:"OpenAI",description:"Creator of GPT and ChatGPT",protocol:"openai-responses",baseUrl:"https://api.openai.com/v1",defaultModelId:pt,capabilities:["reasoning"],env:["OPENAI_API_KEY"]},models:ne}});var Ro={};h(Ro,{OPENAI_CODEX_PROVIDER:()=>gi,OPENAI_CODEX_MODELS:()=>P0,OPENAI_CODEX_DEFAULT_MODEL:()=>ut});function dc(e){if(!e.capabilities?.includes("tools"))return e;return{...e,capabilities:e.capabilities.filter((t)=>t!=="tools")}}var P0,ut,gi;var v0=w(()=>{M();P0=Object.fromEntries(Object.entries(m("openai")).map(([e,t])=>[e,dc(t)])),ut=Object.keys(P0)[0]??"gpt-5.3-codex",gi={provider:{id:"openai-codex",name:"OpenAI Codex",description:"OpenAI Codex via the local Codex CLI provider",protocol:"openai-chat",baseUrl:"https://chatgpt.com/backend-api/codex",defaultModelId:ut,capabilities:["reasoning","oauth"]},models:P0}});var ko={};h(ko,{OPENCODE_PROVIDER:()=>G0,OPENCODE_MODELS:()=>xi,OPENCODE_DEFAULT_MODEL:()=>aa});var xi,aa,G0;var A0=w(()=>{M();xi=m("opencode"),aa=Object.keys(xi)[0]??"openai/gpt-5.3-codex",G0={provider:{id:"opencode",name:"OpenCode",description:"OpenCode SDK multi-provider runtime",protocol:"openai-chat",baseUrl:"",defaultModelId:aa,capabilities:["reasoning","oauth"]},models:xi}});var To={};h(To,{OPENROUTER_PROVIDER:()=>hi,OPENROUTER_MODELS:()=>mt,OPENROUTER_DEFAULT_MODEL:()=>lt});var mt,lt="anthropic/claude-sonnet-4.6",hi;var O0=w(()=>{M();mt=m("openrouter"),hi={provider:{id:"openrouter",name:"OpenRouter",description:"OpenRouter AI platform",protocol:"openai-chat",baseUrl:"https://openrouter.ai/api/v1",defaultModelId:lt,capabilities:["reasoning","prompt-cache"],env:["OPENROUTER_API_KEY"]},models:mt}});var Mo={};h(Mo,{QWEN_PROVIDER:()=>S0,QWEN_MODELS:()=>Wi,QWEN_DEFAULT_MODEL:()=>na});var L0="qwen-plus-latest",Wi,na,S0;var C0=w(()=>{M();Wi={[L0]:{id:L0,name:"Qwen Plus Latest",capabilities:["streaming","tools","reasoning"]},...m("qwen")},na=Object.keys(Wi)[0]??L0,S0={provider:{id:"qwen",name:"Qwen",description:"Alibaba Qwen platform models",protocol:"openai-chat",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",defaultModelId:na,capabilities:["reasoning"],env:["QWEN_API_KEY"]},models:Wi}});var fo={};h(fo,{QWEN_CODE_PROVIDER:()=>F0,QWEN_CODE_MODELS:()=>wi,QWEN_CODE_DEFAULT_MODEL:()=>oa});var Q0="qwen3-coder-plus",wi,oa,F0;var K0=w(()=>{M();wi={[Q0]:{id:Q0,name:"Qwen3 Coder Plus",capabilities:["streaming","tools","reasoning"]},...m("qwen-code")},oa=Object.keys(wi)[0]??Q0,F0={provider:{id:"qwen-code",name:"Qwen Code",description:"Qwen OAuth coding models",protocol:"openai-chat",baseUrl:"https://dashscope.aliyuncs.com/compatible-mode/v1",defaultModelId:oa,capabilities:["reasoning","oauth"]},models:wi}});var Eo={};h(Eo,{REQUESTY_PROVIDER:()=>bi,REQUESTY_MODELS:()=>q0});var q0,bi;var B0=w(()=>{M();q0=m("requesty"),bi={provider:{id:"requesty",name:"Requesty",description:"AI router with multiple provider support",protocol:"openai-chat",baseUrl:"https://router.requesty.ai/v1",defaultModelId:Object.keys(q0)[0],capabilities:["reasoning"],env:["REQUESTY_API_KEY"]},models:q0}});var _o={};h(_o,{SAMBANOVA_PROVIDER:()=>Di,SAMBANOVA_MODELS:()=>Qe,SAMBANOVA_DEFAULT_MODEL:()=>dt});var Qe,dt,Di;var V0=w(()=>{M();Qe=m("sambanova"),dt=Object.keys(Qe)[0],Di={provider:{id:"sambanova",name:"SambaNova",description:"High-performance AI inference",protocol:"openai-chat",baseUrl:"https://api.sambanova.ai/v1",defaultModelId:dt,env:["SAMBANOVA_API_KEY"]},models:Qe}});var Po={};h(Po,{SAP_AI_CORE_PROVIDER:()=>y0,SAP_AI_CORE_MODELS:()=>Ri,SAP_AI_CORE_DEFAULT_MODEL:()=>ra});var N0="anthropic--claude-3.5-sonnet",Ri,ra,y0;var U0=w(()=>{M();Ri={[N0]:{id:N0,name:"Claude 3.5 Sonnet (SAP AI Core)",capabilities:["streaming","tools","reasoning","prompt-cache"]},...m("sapaicore")},ra=Object.keys(Ri)[0]??N0,y0={provider:{id:"sapaicore",name:"SAP AI Core",description:"SAP AI Core inference and orchestration platform",protocol:"openai-chat",baseUrl:"",defaultModelId:ra,capabilities:["reasoning","prompt-cache"],env:["AICORE_SERVICE_KEY","VCAP_SERVICES"]},models:Ri}});var vo={};h(vo,{getTogetherLlamaModels:()=>Ti,TOGETHER_PROVIDER:()=>ki,TOGETHER_MODELS:()=>ge,TOGETHER_DEFAULT_MODEL:()=>gt});function Ti(){return Object.fromEntries(Object.entries(ge).filter(([e])=>e.toLowerCase().includes("llama")))}var ge,gt,ki;var Y0=w(()=>{M();ge=m("together"),gt=Object.keys(ge)[0]??"meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",ki={provider:{id:"together",name:"Together AI",description:"Fast inference for open-source models",protocol:"openai-chat",baseUrl:"https://api.together.xyz/v1",defaultModelId:gt,capabilities:["reasoning"],env:["TOGETHER_API_KEY"]},models:ge}});var Go={};h(Go,{VERCEL_AI_GATEWAY_PROVIDER:()=>Mi});var gc,Mi;var j0=w(()=>{M();gc=m("vercel-ai-gateway"),Mi={provider:{id:"vercel-ai-gateway",name:"Vercel AI Gateway",description:"Vercel's AI gateway service",protocol:"openai-chat",baseUrl:"https://ai-gateway.vercel.sh/v1",defaultModelId:Object.keys(gc)[0],capabilities:["reasoning"],env:["AI_GATEWAY_API_KEY"]},models:m("vercel-ai-gateway")}});var Oo={};h(Oo,{VERTEX_PROVIDER:()=>fi,VERTEX_MODELS:()=>Fe,VERTEX_DEFAULT_MODEL:()=>xt});var Fe,Ao,xc,xt,fi;var $0=w(()=>{M();Fe=m("vertex"),Ao=Object.keys(Fe),xc=Ao.find((e)=>!e.includes("claude")),xt=xc??Ao[0]??"gemini-3-pro",fi={provider:{id:"vertex",name:"Google Vertex AI",description:"Google Cloud Vertex AI (Gemini and partner models)",protocol:"gemini",defaultModelId:xt,capabilities:["reasoning","prompt-cache"],env:["GCP_PROJECT_ID","GOOGLE_CLOUD_PROJECT","GOOGLE_APPLICATION_CREDENTIALS","GEMINI_API_KEY","GOOGLE_API_KEY"]},models:Fe}});var Lo={};h(Lo,{getActiveXAIModels:()=>_i,XAI_PROVIDER:()=>Ei,XAI_MODELS:()=>xe,XAI_DEFAULT_MODEL:()=>ht});function _i(){return Object.fromEntries(Object.entries(xe).filter(([,e])=>!e.status||e.status==="active"||e.status==="preview"))}var xe,ht,Ei;var X0=w(()=>{M();xe=m("xai"),ht=Object.keys(xe)[0],Ei={provider:{id:"xai",name:"xAI",description:"Creator of Grok AI assistant",protocol:"openai-chat",baseUrl:"https://api.x.ai/v1",defaultModelId:ht,capabilities:["reasoning"],env:["XAI_API_KEY"]},models:xe}});var So={};h(So,{ZAI_PROVIDER:()=>H0,ZAI_MODELS:()=>Pi,ZAI_DEFAULT_MODEL:()=>ca});var Pi,ca,H0;var J0=w(()=>{M();Pi=m("zai"),ca=Object.keys(Pi)[0],H0={provider:{id:"zai",name:"Z.AI",description:"Z.AI's family of LLMs",protocol:"openai-chat",baseUrl:"https://api.z.ai/api/paas/v4",defaultModelId:ca,capabilities:["reasoning"],env:["ZHIPU_API_KEY"]},models:Pi}});function nc(e){return e}var rr={};h(rr,{validateQueryConfig:()=>ja,validateModelInfo:()=>ya,updateModel:()=>Z0,unregisterProvider:()=>No,unregisterModel:()=>Vo,sortModels:()=>vt,searchModels:()=>ar,safeValidateQueryConfig:()=>$a,safeValidateModelInfo:()=>Ua,resetRegistry:()=>Uo,registerProvider:()=>la,registerModels:()=>Yo,registerModel:()=>wt,queryModels:()=>U,matchesQuery:()=>Pt,isDeprecated:()=>_t,isActive:()=>Va,hasProvider:()=>sa,hasCapability:()=>Ee,getVisionModels:()=>$o,getToolModels:()=>Jo,getTogetherLlamaModels:()=>Ti,getReasoningModels:()=>Xo,getProviderIds:()=>We,getProviderCollection:()=>Fo,getProvider:()=>Qo,getPricing:()=>Na,getOpenAIReasoningModels:()=>di,getModelsWithContextWindow:()=>tr,getModelsInPriceRange:()=>er,getModelsForProvider:()=>pa,getModelsByProvider:()=>ir,getModelStatistics:()=>or,getModelCount:()=>Bo,getModel:()=>ua,getGroqVisionModels:()=>Ht,getGeneratedProviderModels:()=>Xa,getGeneratedModelsVersion:()=>Ha,getGeneratedModelsForProvider:()=>m,getGeminiThinkingModels:()=>$t,getFireworksFunctionModels:()=>Ut,getDeprecatedModels:()=>zo,getDefaultModel:()=>qo,getDeepSeekReasoningModels:()=>Bt,getComputerUseModels:()=>Zo,getCachingModels:()=>Ho,getAnthropicReasoningModels:()=>Lt,getAllProviders:()=>Ko,getAllModels:()=>ma,getActiveXAIModels:()=>_i,getActiveOpenAIModels:()=>li,getActiveModels:()=>Io,getActiveGeminiModels:()=>jt,getActiveAnthropicModels:()=>Ot,deprecateModel:()=>jo,createQuery:()=>nr,clearCustomModels:()=>yo,XAI_PROVIDER:()=>Ei,XAI_MODELS:()=>xe,XAI_DEFAULT_MODEL:()=>ht,VERTEX_PROVIDER:()=>fi,VERTEX_MODELS:()=>Fe,VERTEX_DEFAULT_MODEL:()=>xt,VERCEL_AI_GATEWAY_PROVIDER:()=>Mi,ThinkingConfigSchema:()=>Zi,TOGETHER_PROVIDER:()=>ki,TOGETHER_MODELS:()=>ge,TOGETHER_DEFAULT_MODEL:()=>gt,SAMBANOVA_PROVIDER:()=>Di,SAMBANOVA_MODELS:()=>Qe,SAMBANOVA_DEFAULT_MODEL:()=>dt,REQUESTY_PROVIDER:()=>bi,ProviderInfoSchema:()=>zi,ProviderCapabilitySchema:()=>Ii,OPENROUTER_PROVIDER:()=>hi,OPENROUTER_MODELS:()=>mt,OPENROUTER_DEFAULT_MODEL:()=>lt,OPENAI_PROVIDER:()=>mi,OPENAI_MODELS:()=>ne,OPENAI_DEFAULT_MODEL:()=>pt,OPENAI_CODEX_PROVIDER:()=>gi,OPENAI_CODEX_DEFAULT_MODEL:()=>ut,OLLAMA_PROVIDER:()=>ui,OCA_PROVIDER:()=>si,OCA_MODELS:()=>Ce,OCA_DEFAULT_MODEL:()=>st,NOUS_RESEARCH_PROVIDER:()=>ci,NOUS_RESEARCH_MODELS:()=>ct,NOUS_RESEARCH_DEFAULT_MODEL:()=>ri,NEBIUS_PROVIDER:()=>oi,NEBIUS_MODELS:()=>Se,NEBIUS_DEFAULT_MODEL:()=>rt,ModelStatusSchema:()=>$e,ModelQueryResultSchema:()=>Ya,ModelQueryConfigSchema:()=>ue,ModelQueryBuilder:()=>da,ModelPricingSchema:()=>Ji,ModelInfoSchema:()=>fe,ModelEntrySchema:()=>qa,ModelCollectionSchema:()=>Ba,ModelCapabilitySchema:()=>pe,MOONSHOT_PROVIDER:()=>ni,MOONSHOT_MODELS:()=>Le,MOONSHOT_DEFAULT_MODEL:()=>ot,MISTRAL_PROVIDER:()=>ai,MINIMAX_PROVIDER:()=>ii,MINIMAX_MODELS:()=>Oe,MINIMAX_DEFAULT_MODEL:()=>nt,LMSTUDIO_PROVIDER:()=>ti,LITELLM_PROVIDER:()=>ei,HUGGINGFACE_PROVIDER:()=>zt,HUAWEI_CLOUD_MAAS_PROVIDER:()=>Zt,HICAP_PROVIDER:()=>Jt,GROQ_PROVIDER:()=>Xt,GROQ_MODELS:()=>de,GROQ_DEFAULT_MODEL:()=>at,GEMINI_PROVIDER:()=>Yt,GEMINI_MODELS:()=>ie,GEMINI_DEFAULT_MODEL:()=>it,FIREWORKS_PROVIDER:()=>yt,FIREWORKS_MODELS:()=>le,FIREWORKS_DEFAULT_MODEL:()=>tt,DIFY_PROVIDER:()=>Vt,DEFAULT_INTERNAL_OCA_BASE_URL:()=>ae,DEFAULT_EXTERNAL_OCA_BASE_URL:()=>I,DEEPSEEK_PROVIDER:()=>qt,DEEPSEEK_MODELS:()=>me,DEEPSEEK_DEFAULT_MODEL:()=>et,CLINE_PROVIDER:()=>Ae,CLINE_MODELS:()=>Ge,CLINE_DEFAULT_MODEL:()=>ve,CLAUDE_CODE_PROVIDER:()=>Kt,CLAUDE_CODE_MODELS:()=>Ie,CLAUDE_CODE_DEFAULT_MODEL:()=>ze,CEREBRAS_PROVIDER:()=>Ft,CEREBRAS_MODELS:()=>Pe,CEREBRAS_DEFAULT_MODEL:()=>Ze,BEDROCK_PROVIDER:()=>Qt,BEDROCK_MODELS:()=>_e,BEDROCK_DEFAULT_MODEL:()=>Je,BASETEN_PROVIDER:()=>Ct,ApiFormatSchema:()=>je,ApiFormat:()=>ee,ASKSAGE_PROVIDER:()=>St,ANTHROPIC_PROVIDER:()=>At,ANTHROPIC_MODELS:()=>te,ANTHROPIC_DEFAULT_MODEL:()=>He,AIHUBMIX_PROVIDER:()=>Gt});import{z as b}from"zod";var je=b.enum(["default","openai-responses","r1"]),ee={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},pe=b.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),$e=b.enum(["active","preview","deprecated","legacy"]),Ji=b.object({input:b.number().optional(),output:b.number().optional(),cacheWrite:b.number().optional(),cacheRead:b.number().optional()}),Zi=b.object({maxBudget:b.number().optional(),outputPrice:b.number().optional(),thinkingLevel:b.enum(["low","high"]).optional()}),fe=b.object({id:b.string(),name:b.string().optional(),description:b.string().optional(),maxTokens:b.number().optional(),contextWindow:b.number().optional(),capabilities:b.array(pe).optional(),apiFormat:je.optional(),systemRole:b.enum(["system","developer"]).optional(),temperature:b.number().optional(),pricing:Ji.optional(),thinkingConfig:Zi.optional(),status:$e.optional(),deprecationNotice:b.string().optional(),replacedBy:b.string().optional(),releaseDate:b.string().optional(),deprecationDate:b.string().optional()}),qa=b.object({id:b.string(),info:fe}),Ii=b.enum(["reasoning","prompt-cache","tools","oauth"]),qn=b.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1"]),zi=b.object({id:b.string(),name:b.string(),description:b.string().optional(),protocol:qn.optional(),baseUrl:b.string().optional(),defaultModelId:b.string(),capabilities:b.array(Ii).optional(),env:b.array(b.string()).optional()}),Ba=b.object({provider:zi,models:b.record(b.string(),fe)});function Ee(e,t){return e.capabilities?.includes(t)??!1}function _t(e){return e.status==="deprecated"}function Va(e){return!e.status||e.status==="active"||e.status==="preview"}function Na(e){return e.pricing??{}}function ya(e){return fe.parse(e)}function Ua(e){let t=fe.safeParse(e);return t.success?t.data:void 0}import{z as L}from"zod";var ue=L.object({providers:L.array(L.string()).optional(),capabilities:L.array(pe).optional(),anyCapabilities:L.array(pe).optional(),excludeCapabilities:L.array(pe).optional(),status:L.array($e).optional(),includeDeprecated:L.boolean().optional(),apiFormat:je.optional(),minContextWindow:L.number().optional(),maxContextWindow:L.number().optional(),minMaxTokens:L.number().optional(),maxInputPrice:L.number().optional(),maxOutputPrice:L.number().optional(),search:L.string().optional(),hasThinking:L.boolean().optional(),sortBy:L.enum(["name","contextWindow","maxTokens","inputPrice","outputPrice"]).optional(),sortDirection:L.enum(["asc","desc"]).optional(),limit:L.number().optional()}),Ya=L.object({models:L.array(L.object({providerId:L.string(),modelId:L.string(),info:L.any()})),total:L.number(),config:ue});function Pt(e,t,i){if(!i.includeDeprecated&&_t(t))return!1;if(i.status&&i.status.length>0){let a=t.status??"active";if(!i.status.includes(a))return!1}if(i.capabilities&&i.capabilities.length>0){if(!i.capabilities.every((n)=>Ee(t,n)))return!1}if(i.anyCapabilities&&i.anyCapabilities.length>0){if(!i.anyCapabilities.some((n)=>Ee(t,n)))return!1}if(i.excludeCapabilities&&i.excludeCapabilities.length>0){if(i.excludeCapabilities.some((n)=>Ee(t,n)))return!1}if(i.apiFormat&&t.apiFormat!==i.apiFormat)return!1;if(i.minContextWindow&&(t.contextWindow??0)<i.minContextWindow)return!1;if(i.maxContextWindow&&(t.contextWindow??Number.POSITIVE_INFINITY)>i.maxContextWindow)return!1;if(i.minMaxTokens&&(t.maxTokens??0)<i.minMaxTokens)return!1;if(i.maxInputPrice&&(t.pricing?.input??Number.POSITIVE_INFINITY)>i.maxInputPrice)return!1;if(i.maxOutputPrice&&(t.pricing?.output??Number.POSITIVE_INFINITY)>i.maxOutputPrice)return!1;if(i.search){let a=i.search.toLowerCase(),n=t.name?.toLowerCase().includes(a)??!1,o=e.toLowerCase().includes(a),r=t.description?.toLowerCase().includes(a)??!1;if(!n&&!o&&!r)return!1}if(i.hasThinking===!0&&!t.thinkingConfig)return!1;if(i.hasThinking===!1&&t.thinkingConfig)return!1;return!0}function vt(e,t,i="asc"){if(!t)return e;let a=[...e].sort((n,o)=>{let r,c;switch(t){case"name":r=n.info.name??n.modelId,c=o.info.name??o.modelId;break;case"contextWindow":r=n.info.contextWindow??0,c=o.info.contextWindow??0;break;case"maxTokens":r=n.info.maxTokens??0,c=o.info.maxTokens??0;break;case"inputPrice":r=n.info.pricing?.input??Number.POSITIVE_INFINITY,c=o.info.pricing?.input??Number.POSITIVE_INFINITY;break;case"outputPrice":r=n.info.pricing?.output??Number.POSITIVE_INFINITY,c=o.info.pricing?.output??Number.POSITIVE_INFINITY;break;default:return 0}if(typeof r==="string"&&typeof c==="string")return r.localeCompare(c);return r-c});return i==="desc"?a.reverse():a}function ja(e){return ue.parse(e)}function $a(e){let t=ue.safeParse(e);return t.success?t.data:void 0}var Co=[["aihubmix",async()=>(await Promise.resolve().then(() => (Ja(),jn))).AIHUBMIX_PROVIDER],["anthropic",async()=>(await Promise.resolve().then(() => (Za(),$n))).ANTHROPIC_PROVIDER],["asksage",async()=>(await Promise.resolve().then(() => (Ia(),Xn))).ASKSAGE_PROVIDER],["baseten",async()=>(await Promise.resolve().then(() => (za(),Jn))).BASETEN_PROVIDER],["bedrock",async()=>(await Promise.resolve().then(() => (e0(),Zn))).BEDROCK_PROVIDER],["cerebras",async()=>(await Promise.resolve().then(() => (t0(),In))).CEREBRAS_PROVIDER],["claude-code",async()=>(await Promise.resolve().then(() => (n0(),zn))).CLAUDE_CODE_PROVIDER],["cline",async()=>(await Promise.resolve().then(() => (o0(),eo))).CLINE_PROVIDER],["deepseek",async()=>(await Promise.resolve().then(() => (r0(),to))).DEEPSEEK_PROVIDER],["dify",async()=>(await Promise.resolve().then(() => (c0(),io))).DIFY_PROVIDER],["doubao",async()=>(await Promise.resolve().then(() => (u0(),ao))).DOUBAO_PROVIDER],["fireworks",async()=>(await Promise.resolve().then(() => (m0(),no))).FIREWORKS_PROVIDER],["gemini",async()=>(await Promise.resolve().then(() => (l0(),oo))).GEMINI_PROVIDER],["groq",async()=>(await Promise.resolve().then(() => (d0(),ro))).GROQ_PROVIDER],["hicap",async()=>(await Promise.resolve().then(() => (g0(),co))).HICAP_PROVIDER],["huawei-cloud-maas",async()=>(await Promise.resolve().then(() => (x0(),so))).HUAWEI_CLOUD_MAAS_PROVIDER],["huggingface",async()=>(await Promise.resolve().then(() => (h0(),po))).HUGGINGFACE_PROVIDER],["litellm",async()=>(await Promise.resolve().then(() => (W0(),uo))).LITELLM_PROVIDER],["lmstudio",async()=>(await Promise.resolve().then(() => (w0(),lo))).LMSTUDIO_PROVIDER],["minimax",async()=>(await Promise.resolve().then(() => (D0(),go))).MINIMAX_PROVIDER],["mistral",async()=>(await Promise.resolve().then(() => (R0(),xo))).MISTRAL_PROVIDER],["moonshot",async()=>(await Promise.resolve().then(() => (T0(),ho))).MOONSHOT_PROVIDER],["nebius",async()=>(await Promise.resolve().then(() => (M0(),Wo))).NEBIUS_PROVIDER],["nousResearch",async()=>(await Promise.resolve().then(() => (f0(),wo))).NOUS_RESEARCH_PROVIDER],["oca",async()=>(await Promise.resolve().then(() => (pi(),bo))).OCA_PROVIDER],["ollama",async()=>(await Promise.resolve().then(() => (E0(),Do))).OLLAMA_PROVIDER],["openai",async()=>(await Promise.resolve().then(() => (ia(),_0))).OPENAI_PROVIDER],["openai-codex",async()=>(await Promise.resolve().then(() => (v0(),Ro))).OPENAI_CODEX_PROVIDER],["openai-native",async()=>(await Promise.resolve().then(() => (ia(),_0))).OPENAI_PROVIDER],["opencode",async()=>(await Promise.resolve().then(() => (A0(),ko))).OPENCODE_PROVIDER],["openrouter",async()=>(await Promise.resolve().then(() => (O0(),To))).OPENROUTER_PROVIDER],["qwen",async()=>(await Promise.resolve().then(() => (C0(),Mo))).QWEN_PROVIDER],["qwen-code",async()=>(await Promise.resolve().then(() => (K0(),fo))).QWEN_CODE_PROVIDER],["requesty",async()=>(await Promise.resolve().then(() => (B0(),Eo))).REQUESTY_PROVIDER],["sambanova",async()=>(await Promise.resolve().then(() => (V0(),_o))).SAMBANOVA_PROVIDER],["sapaicore",async()=>(await Promise.resolve().then(() => (U0(),Po))).SAP_AI_CORE_PROVIDER],["together",async()=>(await Promise.resolve().then(() => (Y0(),vo))).TOGETHER_PROVIDER],["vercel-ai-gateway",async()=>(await Promise.resolve().then(() => (j0(),Go))).VERCEL_AI_GATEWAY_PROVIDER],["vertex",async()=>(await Promise.resolve().then(() => ($0(),Oo))).VERTEX_PROVIDER],["xai",async()=>(await Promise.resolve().then(() => (X0(),Lo))).XAI_PROVIDER],["zai",async()=>(await Promise.resolve().then(() => (J0(),So))).ZAI_PROVIDER]];var vi=new Map,Wt=new Map,H=new Map,Ke=new Map,hc=Co;function Wc(){for(let[e,t]of hc)Wt.set(e,{load:t})}Wc();async function wc(e){return e.load()}async function he(e){if(Ke.has(e))return Ke.get(e);if(vi.has(e))return vi.get(e);let t=Wt.get(e);if(!t)return;let i=await wc(t);return vi.set(e,i),i}function We(){let e=Array.from(Wt.keys()),t=Array.from(Ke.keys()).filter((i)=>!Wt.has(i));return[...e,...t]}function sa(e){return Wt.has(e)||Ke.has(e)}async function Qo(e){return(await he(e))?.provider}async function Fo(e){return he(e)}async function Ko(){let e=We();return(await Promise.all(e.map((i)=>he(i)))).filter((i)=>i!==void 0).map((i)=>i.provider)}async function pa(e){let i=(await he(e))?.models??{},a=H.get(e);if(a)return{...i,...Object.fromEntries(a)};return i}async function ua(e,t){let i=H.get(e);if(i?.has(t))return i.get(t);return(await he(e))?.models[t]}async function qo(e){let t=await he(e);if(!t)return;let i=t.provider.defaultModelId,a=await ua(e,i);if(!a)return;return{id:i,info:a}}async function ma(){let e=[],t=We();return await Promise.all(t.map(async(i)=>{let a=await he(i);if(!a)return;for(let[o,r]of Object.entries(a.models))e.push({providerId:i,modelId:o,info:r});let n=H.get(i);if(n){for(let[o,r]of n)if(!a.models[o])e.push({providerId:i,modelId:o,info:r})}})),e}async function Bo(){let e=0,t=We();return await Promise.all(t.map(async(i)=>{let a=await he(i);if(!a)return;e+=Object.keys(a.models).length;let n=H.get(i);if(n){for(let o of n.keys())if(!a.models[o])e++}})),e}function la(e){Ke.set(e.provider.id,e)}function wt(e,t,i){if(!H.has(e))H.set(e,new Map);H.get(e)?.set(t,{...i,id:t})}function Vo(e,t){let i=H.get(e);if(i)return i.delete(t);return!1}function No(e){return H.delete(e),vi.delete(e),Ke.delete(e)||Wt.delete(e)}function yo(){H.clear()}function Uo(){vi.clear(),H.clear(),Ke.clear()}function Yo(e,t){for(let[i,a]of Object.entries(t))wt(e,i,a)}async function Z0(e,t,i){let a=await ua(e,t);if(!a)return;let n={...a,...i};return wt(e,t,n),n}async function jo(e,t,i){return Z0(e,t,{status:"deprecated",deprecationNotice:i?.notice,replacedBy:i?.replacedBy,deprecationDate:i?.deprecationDate})}function U(e){let t=ue.parse(e),i=t.providers?.length?t.providers.filter((o)=>We().includes(o)):We(),a=[];for(let o of i){let r=pa(o);for(let[c,s]of Object.entries(r))if(Pt(c,s,t))a.push({providerId:o,modelId:c,info:s})}let n=vt(a,t.sortBy,t.sortDirection??"asc");if(t.limit&&t.limit>0)return n.slice(0,t.limit);return n}function $o(){return U({capabilities:["images"]})}function Xo(){return U({capabilities:["reasoning"]})}function Ho(){return U({capabilities:["prompt-cache"]})}function Jo(){return U({capabilities:["tools"]})}function Zo(){return U({capabilities:["computer-use"]})}function Io(){return U({includeDeprecated:!1,status:["active","preview"]})}function zo(){return U({includeDeprecated:!0,status:["deprecated"]})}function er(e,t){return U({maxInputPrice:e,maxOutputPrice:t,sortBy:"inputPrice"})}function tr(e){return U({minContextWindow:e,sortBy:"contextWindow",sortDirection:"desc"})}function ir(e){return U({providers:[e]})}function ar(e){return U({search:e})}class da{config={};fromProviders(e){return this.config.providers=e,this}withCapabilities(e){return this.config.capabilities=e,this}withAnyCapabilities(e){return this.config.anyCapabilities=e,this}excludeCapabilities(e){return this.config.excludeCapabilities=e,this}withStatus(e){return this.config.status=e,this}includeDeprecated(e=!0){return this.config.includeDeprecated=e,this}withApiFormat(e){return this.config.apiFormat=e,this}contextWindow(e){if(e.min!==void 0)this.config.minContextWindow=e.min;if(e.max!==void 0)this.config.maxContextWindow=e.max;return this}minMaxTokens(e){return this.config.minMaxTokens=e,this}maxPrice(e){if(e.input!==void 0)this.config.maxInputPrice=e.input;if(e.output!==void 0)this.config.maxOutputPrice=e.output;return this}search(e){return this.config.search=e,this}hasThinking(e=!0){return this.config.hasThinking=e,this}sortBy(e,t="asc"){return this.config.sortBy=e,this.config.sortDirection=t,this}limit(e){return this.config.limit=e,this}getConfig(){return{...this.config}}execute(){return U(this.config)}}function nr(){return new da}async function or(){let e=await ma(),t={},i={},a={},n=[];for(let{providerId:c,info:s}of e){t[c]=(t[c]??0)+1;for(let x of s.capabilities??[])i[x]=(i[x]??0)+1;let u=s.status??"active";if(a[u]=(a[u]??0)+1,s.pricing?.input!==void 0)n.push(s.pricing.input)}let o=n.sort((c,s)=>c-s),r={min:o[0]??0,max:o[o.length-1]??0,avg:n.length>0?n.reduce((c,s)=>c+s,0)/n.length:0};return{totalModels:e.length,modelsByProvider:t,modelsByCapability:i,modelsByStatus:a,priceRange:r}}M();Ja();Za();Ia();za();e0();t0();n0();o0();r0();c0();u0();m0();l0();d0();g0();x0();h0();W0();w0();D0();R0();T0();M0();f0();pi();E0();ia();v0();A0();O0();C0();K0();B0();V0();U0();Y0();j0();$0();X0();J0();var Gi={};h(Gi,{getTogetherLlamaModels:()=>Ti,getOpenAIReasoningModels:()=>di,getGroqVisionModels:()=>Ht,getGeminiThinkingModels:()=>$t,getFireworksFunctionModels:()=>Ut,getDeepSeekReasoningModels:()=>Bt,getAnthropicReasoningModels:()=>Lt,getActiveXAIModels:()=>_i,getActiveOpenAIModels:()=>li,getActiveGeminiModels:()=>jt,getActiveAnthropicModels:()=>Ot,ZAI_PROVIDER:()=>H0,ZAI_MODELS:()=>Pi,ZAI_DEFAULT_MODEL:()=>ca,XAI_PROVIDER:()=>Ei,XAI_MODELS:()=>xe,XAI_DEFAULT_MODEL:()=>ht,VERTEX_PROVIDER:()=>fi,VERTEX_MODELS:()=>Fe,VERTEX_DEFAULT_MODEL:()=>xt,VERCEL_AI_GATEWAY_PROVIDER:()=>Mi,TOGETHER_PROVIDER:()=>ki,TOGETHER_MODELS:()=>ge,TOGETHER_DEFAULT_MODEL:()=>gt,SAP_AI_CORE_PROVIDER:()=>y0,SAP_AI_CORE_MODELS:()=>Ri,SAP_AI_CORE_DEFAULT_MODEL:()=>ra,SAMBANOVA_PROVIDER:()=>Di,SAMBANOVA_MODELS:()=>Qe,SAMBANOVA_DEFAULT_MODEL:()=>dt,REQUESTY_PROVIDER:()=>bi,QWEN_PROVIDER:()=>S0,QWEN_MODELS:()=>Wi,QWEN_DEFAULT_MODEL:()=>na,QWEN_CODE_PROVIDER:()=>F0,QWEN_CODE_MODELS:()=>wi,QWEN_CODE_DEFAULT_MODEL:()=>oa,OPENROUTER_PROVIDER:()=>hi,OPENROUTER_MODELS:()=>mt,OPENROUTER_DEFAULT_MODEL:()=>lt,OPENCODE_PROVIDER:()=>G0,OPENCODE_MODELS:()=>xi,OPENCODE_DEFAULT_MODEL:()=>aa,OPENAI_PROVIDER:()=>mi,OPENAI_MODELS:()=>ne,OPENAI_DEFAULT_MODEL:()=>pt,OPENAI_CODEX_PROVIDER:()=>gi,OPENAI_CODEX_DEFAULT_MODEL:()=>ut,OLLAMA_PROVIDER:()=>ui,OCA_PROVIDER:()=>si,OCA_MODELS:()=>Ce,OCA_DEFAULT_MODEL:()=>st,NOUS_RESEARCH_PROVIDER:()=>ci,NOUS_RESEARCH_MODELS:()=>ct,NOUS_RESEARCH_DEFAULT_MODEL:()=>ri,NEBIUS_PROVIDER:()=>oi,NEBIUS_MODELS:()=>Se,NEBIUS_DEFAULT_MODEL:()=>rt,MOONSHOT_PROVIDER:()=>ni,MOONSHOT_MODELS:()=>Le,MOONSHOT_DEFAULT_MODEL:()=>ot,MISTRAL_PROVIDER:()=>ai,MINIMAX_PROVIDER:()=>ii,MINIMAX_MODELS:()=>Oe,MINIMAX_DEFAULT_MODEL:()=>nt,LMSTUDIO_PROVIDER:()=>ti,LITELLM_PROVIDER:()=>ei,HUGGINGFACE_PROVIDER:()=>zt,HUGGINGFACE_MODELS:()=>It,HUAWEI_CLOUD_MAAS_PROVIDER:()=>Zt,HICAP_PROVIDER:()=>Jt,GROQ_PROVIDER:()=>Xt,GROQ_MODELS:()=>de,GROQ_DEFAULT_MODEL:()=>at,GEMINI_PROVIDER:()=>Yt,GEMINI_MODELS:()=>ie,GEMINI_DEFAULT_MODEL:()=>it,FIREWORKS_PROVIDER:()=>yt,FIREWORKS_MODELS:()=>le,FIREWORKS_DEFAULT_MODEL:()=>tt,DOUBAO_PROVIDER:()=>p0,DOUBAO_MODELS:()=>Nt,DOUBAO_DEFAULT_MODEL:()=>ta,DIFY_PROVIDER:()=>Vt,DEFAULT_INTERNAL_OCA_BASE_URL:()=>ae,DEFAULT_EXTERNAL_OCA_BASE_URL:()=>I,DEEPSEEK_PROVIDER:()=>qt,DEEPSEEK_MODELS:()=>me,DEEPSEEK_DEFAULT_MODEL:()=>et,CLINE_PROVIDER:()=>Ae,CLINE_MODELS:()=>Ge,CLINE_DEFAULT_MODEL:()=>ve,CLAUDE_CODE_PROVIDER:()=>Kt,CLAUDE_CODE_MODELS:()=>Ie,CLAUDE_CODE_DEFAULT_MODEL:()=>ze,CEREBRAS_PROVIDER:()=>Ft,CEREBRAS_MODELS:()=>Pe,CEREBRAS_DEFAULT_MODEL:()=>Ze,BEDROCK_PROVIDER:()=>Qt,BEDROCK_MODELS:()=>_e,BEDROCK_DEFAULT_MODEL:()=>Je,BASETEN_PROVIDER:()=>Ct,ASKSAGE_PROVIDER:()=>St,ANTHROPIC_PROVIDER:()=>At,ANTHROPIC_MODELS:()=>te,ANTHROPIC_DEFAULT_MODEL:()=>He,AIHUBMIX_PROVIDER:()=>Gt});var Yr={};h(Yr,{toProviderConfig:()=>wa,supportsModelThinking:()=>oe,resolveProviderConfig:()=>Dt,parseSettings:()=>Wa,normalizeProviderId:()=>y,isProviderSupported:()=>Ur,hasModelCapability:()=>qe,getModelPricing:()=>ha,createHandlerAsync:()=>Fa,createHandler:()=>$i,ProviderSettingsSchema:()=>Ci,OPENAI_COMPATIBLE_PROVIDERS:()=>J,BUILT_IN_PROVIDERS:()=>Qn});import{z as k}from"zod";var cr=k.enum(["connector.started","connector.stopping","session.authorize","message.received","message.denied","message.completed","message.failed","session.started","session.reused","session.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),sr=k.object({id:k.string().optional(),label:k.string().optional(),role:k.string().optional(),participantKey:k.string().optional(),participantLabel:k.string().optional(),platformUserId:k.string().optional(),metadata:k.record(k.string(),k.unknown()).optional()}),pr=k.object({source:k.string(),sourceEvent:k.string(),threadId:k.string(),channelId:k.string(),isDM:k.boolean(),sessionId:k.string().optional(),workspaceRoot:k.string().optional(),metadata:k.record(k.string(),k.unknown()).optional()}),bc=k.object({actor:sr,context:pr,payload:k.record(k.string(),k.unknown()).optional()}),Dc=k.object({action:k.enum(["allow","deny"]).default("allow"),message:k.string().optional(),reason:k.string().optional(),metadata:k.record(k.string(),k.unknown()).optional()}),Rc=k.object({adapter:k.string(),botUserName:k.string().optional(),event:cr,payload:k.record(k.string(),k.unknown()),ts:k.string()});var I0=[{modelsDevKey:"openai",generatedProviderId:"openai",runtimeProviderId:"openai-native"},{modelsDevKey:"openai",generatedProviderId:"openai",runtimeProviderId:"openai-codex"},{modelsDevKey:"anthropic",generatedProviderId:"anthropic"},{modelsDevKey:"anthropic",generatedProviderId:"anthropic",runtimeProviderId:"claude-code"},{modelsDevKey:"google",generatedProviderId:"gemini"},{modelsDevKey:"deepseek",generatedProviderId:"deepseek"},{modelsDevKey:"xai",generatedProviderId:"xai"},{modelsDevKey:"togetherai",runtimeProviderId:"together",generatedProviderId:"together"},{modelsDevKey:"sap-ai-core",runtimeProviderId:"sapaicore",generatedProviderId:"sapaicore"},{modelsDevKey:"fireworks-ai",runtimeProviderId:"fireworks",generatedProviderId:"fireworks"},{modelsDevKey:"groq",runtimeProviderId:"groq",generatedProviderId:"groq"},{modelsDevKey:"cerebras",runtimeProviderId:"cerebras",generatedProviderId:"cerebras"},{modelsDevKey:"sambanova",runtimeProviderId:"sambanova",generatedProviderId:"sambanova"},{modelsDevKey:"nebius",runtimeProviderId:"nebius",generatedProviderId:"nebius"},{modelsDevKey:"huggingface",runtimeProviderId:"huggingface",generatedProviderId:"huggingface"},{modelsDevKey:"openrouter",runtimeProviderId:"cline",generatedProviderId:"openrouter"},{modelsDevKey:"ollama",runtimeProviderId:"ollama-cloud"},{modelsDevKey:"ollama-cloud",generatedProviderId:"ollama"},{modelsDevKey:"vercel",runtimeProviderId:"dify",generatedProviderId:"vercel-ai-gateway"},{modelsDevKey:"vercel",generatedProviderId:"vercel-ai-gateway"},{modelsDevKey:"aihubmix",runtimeProviderId:"aihubmix",generatedProviderId:"aihubmix"},{modelsDevKey:"hicap",runtimeProviderId:"hicap"},{modelsDevKey:"nous-research",runtimeProviderId:"nousResearch"},{modelsDevKey:"huawei-cloud-maas",runtimeProviderId:"huawei-cloud-maas"},{modelsDevKey:"baseten",runtimeProviderId:"baseten",generatedProviderId:"baseten"},{modelsDevKey:"google-vertex-anthropic",generatedProviderId:"vertex"},{modelsDevKey:"lmstudio",generatedProviderId:"lmstudio"},{modelsDevKey:"zai",generatedProviderId:"zai"},{modelsDevKey:"requesty",generatedProviderId:"requesty"},{modelsDevKey:"amazon-bedrock",generatedProviderId:"bedrock"},{modelsDevKey:"moonshotai",generatedProviderId:"moonshot"},{modelsDevKey:"minimax",generatedProviderId:"minimax"}];function kc(e){return Object.fromEntries(I0.flatMap((t)=>{let i=e==="modelsDevKey"?t.modelsDevKey:t.generatedProviderId;return i?[[t.modelsDevKey,i]]:[]}))}var z0=kc("generatedProviderId");function ur(e){return[...new Set(e)]}function Ai(e){let t=I0.flatMap((i)=>{if(!i.generatedProviderId)return[];if(i.generatedProviderId===e||i.runtimeProviderId===e)return[i.generatedProviderId];return[]});if(e==="nousResearch")return ur([...t,"nousresearch",e]);return ur([...t,e])}import{z as q}from"zod";var Tc=q.object({agentId:q.string(),conversationId:q.string(),iteration:q.number(),abortSignal:q.custom().optional(),metadata:q.record(q.string(),q.unknown()).optional()}),Mc=q.object({id:q.string(),name:q.string(),input:q.unknown(),output:q.unknown(),error:q.string().optional(),durationMs:q.number(),startedAt:q.date(),endedAt:q.date()});class we extends Error{constructor(e,t){super(`${e} at position ${t}`);this.position=t}}function mr(e){return/^[0-9A-Fa-f]$/.test(e)}function De(e){return e>="0"&&e<="9"}function lr(e){return e>=" "}function Oi(e){return`,:[]/{}()
|
|
2
|
+
+`.includes(e)}function en(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="_"||e==="$"}function tn(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="_"||e==="$"||e>="0"&&e<="9"}var an=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,nn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function on(e){return`,[]/{}
|
|
3
|
+
+`.includes(e)}function rn(e){return Li(e)||fc.test(e)}var fc=/^[[{\w-]$/;function dr(e){return e===`
|
|
4
|
+
`||e==="\r"||e==="\t"||e==="\b"||e==="\f"}function be(e,t){let i=e.charCodeAt(t);return i===32||i===10||i===9||i===13}function gr(e,t){let i=e.charCodeAt(t);return i===32||i===9||i===13}function xr(e,t){let i=e.charCodeAt(t);return i===160||i===6158||i>=8192&&i<=8203||i===8239||i===8287||i===12288||i===65279}function Li(e){return cn(e)||ga(e)}function cn(e){return e==='"'||e==="“"||e==="”"}function sn(e){return e==='"'}function ga(e){return e==="'"||e==="‘"||e==="’"||e==="`"||e==="´"}function pn(e){return e==="'"}function bt(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,a=e.lastIndexOf(t);return a!==-1?e.substring(0,a)+(i?"":e.substring(a+1)):e}function j(e,t){let i=e.length;if(!be(e,i-1))return e+t;while(be(e,i-1))i--;return e.substring(0,i)+t+e.substring(i)}function hr(e,t,i){return e.substring(0,t)+e.substring(t+i)}function Wr(e){return/[,\n][ \t\r]*$/.test(e)}var Ec={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},_c={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
5
|
+
`,r:"\r",t:"\t"};function un(e){let t=0,i="";if(u(["```","[```","{```"]),!o())Zr();u(["```","```]","```}"]);let n=D(",");if(n)r();if(rn(e[t])&&Wr(i)){if(!n)i=j(i,",");G()}else if(n)i=bt(i,",");while(e[t]==="}"||e[t]==="]")t++,r();if(t>=e.length)return i;Jr();function o(){r();let g=A()||W()||T()||P()||Q()||B(!1)||K();return r(),g}function r(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,E=t,v=c(g);do if(v=s(),v)v=c(g);while(v);return t>E}function c(g){let E=g?be:gr,v="";while(!0)if(E(e,t))v+=e[t],t++;else if(xr(e,t))v+=" ",t++;else break;if(v.length>0)return i+=v,!0;return!1}function s(){if(e[t]==="/"&&e[t+1]==="*"){while(t<e.length&&!Pc(e,t))t++;return t+=2,!0}if(e[t]==="/"&&e[t+1]==="/"){while(t<e.length&&e[t]!==`
|
|
6
|
+
`)t++;return!0}return!1}function u(g){if(x(g)){if(en(e[t]))while(t<e.length&&tn(e[t]))t++;return r(),!0}return!1}function x(g){c(!0);for(let E of g){let v=t+E.length;if(e.slice(t,v)===E)return t=v,!0}return!1}function D(g){if(e[t]===g)return i+=e[t],t++,!0;return!1}function R(g){if(e[t]===g)return t++,!0;return!1}function f(){return R("\\")}function O(){if(r(),e[t]==="."&&e[t+1]==="."&&e[t+2]===".")return t+=3,r(),R(","),!0;return!1}function A(){if(e[t]==="{"){if(i+="{",t++,r(),R(","))r();let g=!0;while(t<e.length&&e[t]!=="}"){let E;if(!g){if(E=D(","),!E)i=j(i,",");r()}else E=!0,g=!1;if(O(),!(T()||B(!0))){if(e[t]==="}"||e[t]==="{"||e[t]==="]"||e[t]==="["||e[t]===void 0)i=bt(i,",");else Ir();break}r();let Xi=D(":"),Me=t>=e.length;if(!Xi)if(rn(e[t])||Me)i=j(i,":");else Fn();if(!o())if(Xi||Me)i+="null";else Fn()}if(e[t]==="}")i+="}",t++;else i=j(i,"}");return!0}return!1}function W(){if(e[t]==="["){if(i+="[",t++,r(),R(","))r();let g=!0;while(t<e.length&&e[t]!=="]"){if(!g){if(!D(","))i=j(i,",")}else g=!1;if(O(),!o()){i=bt(i,",");break}}if(e[t]==="]")i+="]",t++;else i=j(i,"]");return!0}return!1}function G(){let g=!0,E=!0;while(E){if(!g){if(!D(","))i=j(i,",")}else g=!1;E=o()}if(!E)i=bt(i,",");i=`[
|
|
7
7
|
${i}
|
|
8
|
-
]`}function
|
|
8
|
+
]`}function T(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,v=e[t]==="\\";if(v)t++,v=!0;if(Li(e[t])){let Xi=sn(e[t])?sn:pn(e[t])?pn:ga(e[t])?ga:cn,Me=t,Et=i.length,S='"';t++;while(!0){if(t>=e.length){let d=N(t-1);if(!g&&Oi(e.charAt(d)))return t=Me,i=i.substring(0,Et),T(!0);return S=j(S,'"'),i+=S,!0}if(t===E)return S=j(S,'"'),i+=S,!0;if(Xi(e[t])){let d=t,Ka=S.length;if(S+='"',t++,i+=S,r(!1),g||t>=e.length||Oi(e[t])||Li(e[t])||De(e[t]))return _(),!0;let se=N(d-1),Kn=e.charAt(se);if(Kn===",")return t=Me,i=i.substring(0,Et),T(!1,se);if(Oi(Kn))return t=Me,i=i.substring(0,Et),T(!0);i=i.substring(0,Et),t=d+1,S=`${S.substring(0,Ka)}\\${S.substring(Ka)}`}else if(g&&on(e[t])){if(e[t-1]===":"&&an.test(e.substring(Me+1,t+2)))while(t<e.length&&nn.test(e[t]))S+=e[t],t++;return S=j(S,'"'),i+=S,_(),!0}else if(e[t]==="\\"){let d=e.charAt(t+1);if(_c[d]!==void 0)S+=e.slice(t,t+2),t+=2;else if(d==="u"){let se=2;while(se<6&&mr(e[t+se]))se++;if(se===6)S+=e.slice(t,t+6),t+=6;else if(t+se>=e.length)t=e.length;else zr()}else S+=d,t+=2}else{let d=e.charAt(t);if(d==='"'&&e[t-1]!=="\\")S+=`\\${d}`,t++;else if(dr(d))S+=Ec[d],t++;else{if(!lr(d))Hr(d);S+=d,t++}}if(v)f()}}return!1}function _(){let g=!1;r();while(e[t]==="+"){g=!0,t++,r(),i=bt(i,'"',!0);let E=i.length;if(T())i=hr(i,E,1);else i=j(i,'"')}return g}function P(){let g=t;if(e[t]==="-"){if(t++,X())return Ye(g),!0;if(!De(e[t]))return t=g,!1}while(De(e[t]))t++;if(e[t]==="."){if(t++,X())return Ye(g),!0;if(!De(e[t]))return t=g,!1;while(De(e[t]))t++}if(e[t]==="e"||e[t]==="E"){if(t++,e[t]==="-"||e[t]==="+")t++;if(X())return Ye(g),!0;if(!De(e[t]))return t=g,!1;while(De(e[t]))t++}if(!X())return t=g,!1;if(t>g){let E=e.slice(g,t),v=/^0\d/.test(E);return i+=v?`"${E}"`:E,!0}return!1}function Q(){return V("true","true")||V("false","false")||V("null","null")||V("True","true")||V("False","false")||V("None","null")}function V(g,E){if(e.slice(t,t+g.length)===g)return i+=E,t+=g.length,!0;return!1}function B(g){let E=t;if(en(e[t])){while(t<e.length&&tn(e[t]))t++;let v=t;while(be(e,v))v++;if(e[v]==="("){if(t=v+1,o(),e[t]===")"){if(t++,e[t]===";")t++}return!0}}while(t<e.length&&!on(e[t])&&!Li(e[t])&&(!g||e[t]!==":"))t++;if(e[t-1]===":"&&an.test(e.substring(E,t+2)))while(t<e.length&&nn.test(e[t]))t++;if(t>E){while(be(e,t-1)&&t>0)t--;let v=e.slice(E,t);if(i+=v==="undefined"?"null":JSON.stringify(v),e[t]==='"')t++;return!0}}function K(){if(e[t]==="/"){let g=t;t++;while(t<e.length&&(e[t]!=="/"||e[t-1]==="\\"))t++;return t++,i+=JSON.stringify(e.substring(g,t)),!0}}function N(g){let E=g;while(E>0&&be(e,E))E--;return E}function X(){return t>=e.length||Oi(e[t])||be(e,t)}function Ye(g){i+=`${e.slice(g,t)}0`}function Hr(g){throw new we(`Invalid character ${JSON.stringify(g)}`,t)}function Jr(){throw new we(`Unexpected character ${JSON.stringify(e[t])}`,t)}function Zr(){throw new we("Unexpected end of json string",e.length)}function Ir(){throw new we("Object key expected",t)}function Fn(){throw new we("Colon expected",t)}function zr(){let g=e.slice(t,t+6);throw new we(`Invalid unicode character "${g}"`,t)}}function Pc(e,t){return e[t]==="*"&&e[t+1]==="/"}function wr(e){return JSON.parse(e)}function xa(e){if(typeof e!=="string")return e;let t=e.trimStart();if(!(t.startsWith("{")||t.startsWith("[")))return e;try{return wr(t)}catch{try{return wr(un(t))}catch{return e}}}import{z as tm}from"zod";function Y(e,t){return`<file_content path="${e}">
|
|
9
9
|
${t}
|
|
10
|
-
</file_content>`}function kr(e){if(!e||typeof e!=="object")return!1;let t=e;return typeof t.provider==="object"&&typeof t.models==="object"}function Tr(e){return e==="openai-chat"||e==="openai-responses"||e==="openai-r1"}function hc(e){let t={},i=e?.includeKnownModels??!1;for(let a of Object.values(vi)){if(!kr(a))continue;let n=a.provider;if(!Tr(n.protocol)||!n.baseUrl)continue;t[n.id]={baseUrl:n.baseUrl,modelId:n.defaultModelId,knownModels:i?a.models:void 0,capabilities:n.capabilities}}return t}var dn="https://models.dev/api.json",Mr=600000,fr=300000,Wc=new Map,un=new Map,wc=new Map,mn=new Map,bc;async function Er(){return bc??=Promise.resolve().then(() => (k(),Un)).then(({getGeneratedProviderModels:e})=>e()),bc}async function _r(e,t={},i={},a={},n={}){let o=await Er(),c=Gi(e),r=Object.assign({},...c.map((s)=>o[s]??{}));return Xe({...r,...t,...i,...a,...n})}function Dc(e){let t=e?.trim();return t&&t.length>0?t:""}function gn(e){let t=e.apiKey?.trim()||e.accessToken?.trim();return t&&t.length>0?t:void 0}function Pr(e){let t=2166136261;for(let i=0;i<e.length;i+=1)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}function vr(e,t){return`${e}:${Dc(t.baseUrl)}:${Pr(gn(t)??"")}`}function ln(e,t,i){if(i&&!e.includes(t))e.push(t)}function xn(e,t){let i=["streaming","tools"];return ln(i,"images",Boolean(t.supportsImages)),ln(i,"prompt-cache",Boolean(t.supportsPromptCache)),ln(i,"reasoning",Boolean(t.supportsReasoning)),{id:e,name:t.name??e,contextWindow:t.contextWindow,maxTokens:t.maxTokens,capabilities:i,releaseDate:t.releaseDate,status:"active"}}async function Gr(e,t){let i=await fetch("https://inference.baseten.co/v1/models",{method:"GET",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(!i.ok)throw Error(`Baseten model refresh failed: HTTP ${i.status}`);let n=(await i.json())?.data??[],o={};for(let c of n){let r=c.id?.trim();if(!r)continue;if(r.includes("whisper")||r.includes("tts")||r.includes("embedding"))continue;let s=c.supported_features??[];o[r]=xn(r,{name:r,contextWindow:c.context_length,maxTokens:c.max_completion_tokens,supportsReasoning:s.includes("reasoning")||s.includes("reasoning_effort"),supportsImages:!1})}return o}async function Ar(e,t){let i=await fetch("https://api.hicap.ai/v2/openai/models",{method:"GET",headers:{"api-key":t}});if(!i.ok)throw Error(`Hicap model refresh failed: HTTP ${i.status}`);let n=(await i.json())?.data??[],o={};for(let c of n){let r=c.id?.trim();if(!r)continue;o[r]=xn(r,{name:r,contextWindow:128000,supportsImages:!0,supportsPromptCache:!0})}return o}function Or(e){let t=Dc(e);if(!t)return"http://localhost:4000";return t.endsWith("/v1")?t.slice(0,-3):t}async function Lr(e,t){let a=`${Or(e.baseUrl)}/v1/model/info`,n=async(p)=>fetch(a,{method:"GET",headers:{accept:"application/json",...p}}),o=await n({"x-litellm-api-key":t});if(!o.ok)o=await n({Authorization:`Bearer ${t}`});if(!o.ok)throw Error(`LiteLLM model refresh failed: HTTP ${o.status}`);let r=(await o.json())?.data??[],s={};for(let p of r){let g=p.model_name?.trim(),D=p.litellm_params?.model?.trim()||g;if(!D)continue;let T=p.model_info,G=xn(D,{name:g??D,maxTokens:T?.max_output_tokens??T?.max_tokens,contextWindow:T?.max_input_tokens??T?.max_tokens,supportsImages:T?.supports_vision,supportsPromptCache:T?.supports_prompt_caching,supportsReasoning:T?.supports_reasoning});if(s[D]=G,g)s[g]={...G,id:g,name:g}}return s}async function Sr(e,t){let i=gn(t);if(!i)return{};let a=Rc[e];if(!a)return{};return a(t,i)}var Rc={baseten:Gr,hicap:Ar,litellm:Lr};function Cr(e,t,i){if(!i)return!1;if(!Rc[e])return!1;if(t?.loadPrivateOnAuth===!1)return!1;return Boolean(gn(i))}async function Qr(e,t,i){let a=t?.cacheTtlMs??fr,n=vr(e,i),o=Date.now(),c=wc.get(n);if(c&&c.expiresAt>o)return c.data;let r=mn.get(n);if(r)return r;let s=Sr(e,i).then((p)=>{return wc.set(n,{data:p,expiresAt:o+a}),p}).finally(()=>{mn.delete(n)});return mn.set(n,s),s}async function Fr(e){return Vn(e,I0)}async function hn(e={}){let t=e.url??dn,i=e.cacheTtlMs??Mr,a=Date.now(),n=Wc.get(t);if(n&&n.expiresAt>a)return n.data;let o=un.get(t);if(o)return o;let c=Fr(t).then((r)=>{return Wc.set(t,{data:r,expiresAt:a+i}),r}).finally(()=>{un.delete(t)});return un.set(t,c),c}function Kr(e){return Object.fromEntries(Object.entries(e).map(([t,i])=>[t,{baseUrl:i.baseUrl,modelId:i.modelId,knownModels:i.knownModels,capabilities:i.capabilities}]))}var j=Kr(hc());function Wn(e){return j[e]}async function bt(e,t,i){let a=Wn(e);if(!a)return;try{let o=(t?.loadLatestOnInit?await hn(t):void 0)?.[e]??{},c=i&&Cr(e,t,i)?await Qr(e,t,i):{},r=await _r(e,a.knownModels,o,c,i?.knownModels);return{...a,knownModels:r}}catch(n){if(t?.failOnError)throw n;return a}}function Li(e){return e in j}var Dt;((l)=>{l.ANTHROPIC="anthropic";l.CLAUDE_CODE="claude-code";l.CLINE="cline";l.OPENAI="openai";l.OPENAI_NATIVE="openai-native";l.OPENAI_CODEX="openai-codex";l.OPENCODE="opencode";l.BEDROCK="bedrock";l.VERTEX="vertex";l.GEMINI="gemini";l.OLLAMA="ollama";l.LMSTUDIO="lmstudio";l.DEEPSEEK="deepseek";l.XAI="xai";l.TOGETHER="together";l.FIREWORKS="fireworks";l.GROQ="groq";l.CEREBRAS="cerebras";l.SAMBANOVA="sambanova";l.NEBIUS="nebius";l.BASETEN="baseten";l.REQUESTY="requesty";l.LITELLM="litellm";l.HUGGINGFACE="huggingface";l.VERCEL_AI_GATEWAY="vercel-ai-gateway";l.AIHUBMIX="aihubmix";l.HICAP="hicap";l.NOUS_RESEARCH="nousResearch";l.HUAWEI_CLOUD_MAAS="huawei-cloud-maas";l.QWEN="qwen";l.QWEN_CODE="qwen-code";l.DOUBAO="doubao";l.MISTRAL="mistral";l.MOONSHOT="moonshot";l.ASKSAGE="asksage";l.ZAI="zai";l.MINIMAX="minimax";l.DIFY="dify";l.OCA="oca";l.SAPAICORE="sapaicore";l.OPENROUTER="openrouter"})(Dt||={});var qr={openai:"openai-native",togetherai:"together","sap-ai-core":"sapaicore"},kc=Object.values(Dt);function V(e){let t=e.trim();return qr[t]??t}function Ke(e,t){return e.capabilities?.includes(t)??!1}function ae(e){return Boolean(e.thinkingConfig)||Ke(e,"reasoning")}function xa(e){return e.pricing??{}}k();si();import{z as m}from"zod";var wn=m.string().min(1).regex(/^[a-z0-9][a-z0-9-]*$/i),bn=m.object({apiKey:m.string().optional(),accessToken:m.string().optional(),refreshToken:m.string().optional(),expiresAt:m.number().int().positive().optional(),accountId:m.string().optional()}),Vr=m.enum(["none","low","medium","high","xhigh"]),Dn=m.object({enabled:m.boolean().optional(),effort:Vr.optional(),budgetTokens:m.number().int().positive().optional()}),Rn=m.object({accessKey:m.string().optional(),secretKey:m.string().optional(),sessionToken:m.string().optional(),region:m.string().optional(),profile:m.string().optional(),authentication:m.enum(["iam","api-key","profile"]).optional(),usePromptCache:m.boolean().optional(),useCrossRegionInference:m.boolean().optional(),useGlobalInference:m.boolean().optional(),endpoint:m.string().url().optional(),customModelBaseId:m.string().optional()}),kn=m.object({projectId:m.string().optional(),region:m.string().optional()}),Tn=m.object({apiVersion:m.string().optional(),useIdentity:m.boolean().optional()}),Mn=m.object({clientId:m.string().optional(),clientSecret:m.string().optional(),tokenUrl:m.string().url().optional(),resourceGroup:m.string().optional(),deploymentId:m.string().optional(),useOrchestrationMode:m.boolean().optional(),api:m.enum(["orchestration","foundation-models"]).optional(),defaultSettings:m.record(m.string(),m.unknown()).optional()}),fn=m.object({mode:m.enum(["internal","external"]).optional(),usePromptCache:m.boolean().optional()}),En=m.object({loadLatestOnInit:m.boolean().optional(),loadPrivateOnAuth:m.boolean().optional(),url:m.string().url().optional(),cacheTtlMs:m.number().int().positive().optional(),failOnError:m.boolean().optional()}),Si=m.object({provider:wn,apiKey:m.string().optional(),auth:bn.optional(),model:m.string().optional(),maxTokens:m.number().int().positive().optional(),contextWindow:m.number().int().positive().optional(),baseUrl:m.string().url().optional(),headers:m.record(m.string(),m.string()).optional(),timeout:m.number().int().positive().optional(),reasoning:Dn.optional(),aws:Rn.optional(),gcp:kn.optional(),azure:Tn.optional(),sap:Mn.optional(),oca:fn.optional(),region:m.string().optional(),apiLine:m.enum(["china","international"]).optional(),capabilities:m.array(m.enum(["reasoning","prompt-cache","streaming","tools","vision","computer-use","oauth"])).optional(),modelCatalog:En.optional()});function ha(e){return Si.parse(e)}function Wa(e){let t=e.provider,i=V(t),a=e.reasoning?.effort,n=a&&a!=="none"?a:void 0,o=j[i],c=Object.assign({},...Gi(i).map((g)=>u(g))),r=e.auth?.accessToken??e.apiKey??e.auth?.apiKey,s=e.baseUrl??(i==="oca"?e.oca?.mode==="internal"?te:J:o?.baseUrl),p={providerId:t,modelId:e.model??o?.modelId??"default",knownModels:o?.knownModels??(Object.keys(c).length>0?c:void 0),apiKey:r,accessToken:e.auth?.accessToken,refreshToken:e.auth?.refreshToken,accountId:e.auth?.accountId,baseUrl:s,headers:e.headers,timeoutMs:e.timeout,maxOutputTokens:e.maxTokens,maxContextTokens:e.contextWindow,thinking:e.reasoning?.enabled,reasoningEffort:n,thinkingBudgetTokens:e.reasoning?.budgetTokens,region:e.region??e.aws?.region??e.gcp?.region,apiLine:e.apiLine,useCrossRegionInference:e.aws?.useCrossRegionInference,useGlobalInference:e.aws?.useGlobalInference,aws:e.aws?{accessKey:e.aws.accessKey,secretKey:e.aws.secretKey,sessionToken:e.aws.sessionToken,authentication:e.aws.authentication,profile:e.aws.profile,usePromptCache:e.aws.usePromptCache,endpoint:e.aws.endpoint,customModelBaseId:e.aws.customModelBaseId}:void 0,gcp:e.gcp?{projectId:e.gcp.projectId,region:e.gcp.region}:void 0,azure:e.azure,sap:e.sap,oca:e.oca,capabilities:e.capabilities??o?.capabilities,modelCatalog:e.modelCatalog?{loadLatestOnInit:e.modelCatalog.loadLatestOnInit,loadPrivateOnAuth:e.modelCatalog.loadPrivateOnAuth,url:e.modelCatalog.url,cacheTtlMs:e.modelCatalog.cacheTtlMs,failOnError:e.modelCatalog.failOnError}:void 0};return Object.fromEntries(Object.entries(p).filter(([g,b])=>b!==void 0))}import{Anthropic as os}from"@anthropic-ai/sdk";function H(e){if(Array.isArray(e))return{commands:e};return e}function ne(e){if(typeof e==="string")return e;let t=[];for(let i of e){if(i.type==="text"){t.push(i.text);continue}if(i.type==="file"){t.push(y(i.path,i.content));continue}t.push(JSON.stringify(i))}return t.join(`
|
|
11
|
-
`)}function Rt(e,t=!1){let i=e.reduce((o,c,r)=>{if(c.role==="user")o.push(r);return o},[]),a=t?new Set(i.slice(-2)):new Set,n=[];for(let[o,c]of e.entries()){let r=Hr(c,a.has(o));if(r)n.push(r)}return n}function Hr(e,t){let{role:i,content:a}=e;if(typeof a==="string"){let o={type:"text",text:a};if(t)o.cache_control={type:"ephemeral"};return{role:i,content:[o]}}let n=Jr(a,t);if(n.length===0)return null;return{role:i,content:n}}function Jr(e,t){let i=[];for(let a=0;a<e.length;a++){let n=e[a],o=a===e.length-1,c=Zr(n,t&&o);if(c)i.push(c)}return i}function Zr(e,t){switch(e.type){case"text":{let a={type:"text",text:e.text};if(t)a.cache_control={type:"ephemeral"};return a}case"file":{let i=e;return{type:"text",text:y(i.path,i.content)}}case"image":{let i=e;return{type:"image",source:{type:"base64",media_type:i.mediaType,data:i.data}}}case"tool_use":{let i=e;return{type:"tool_use",id:i.id,name:i.name,input:H(i.input)}}case"tool_result":{let i=e,a;if(typeof i.content==="string")a=i.content;else a=i.content.map((n)=>{if(n.type==="text")return{type:"text",text:n.text};else if(n.type==="file"){let o=n;return{type:"text",text:y(o.path,o.content)}}else return{type:"image",source:{type:"base64",media_type:n.mediaType,data:n.data}}});return{type:"tool_result",tool_use_id:i.tool_use_id,content:a,is_error:i.is_error}}case"thinking":{let i=e;return{type:"thinking",thinking:i.thinking,signature:i.signature}}case"redacted_thinking":return{type:"redacted_thinking",data:e.data};default:return null}}function De(e){return e.map((t)=>({name:t.name,description:t.description,input_schema:t.inputSchema}))}var _n={maxRetries:4,baseDelay:2000,maxDelay:15000};class qe extends Error{retryAfterSeconds;constructor(e,t,i){super(e,i);this.retryAfterSeconds=t;this.name="RetriableError"}}function Pn(e){if(e instanceof qe)return!0;if(e instanceof Error){let t=e.message.toLowerCase();if(t.includes("429")||t.includes("rate limit")||t.includes("too many requests"))return!0;if(t.includes("500")||t.includes("502")||t.includes("503")||t.includes("504"))return!0;if(t.includes("network")||t.includes("timeout")||t.includes("econnreset")||t.includes("econnrefused"))return!0}return!1}function vn(e,t={}){let{baseDelay:i=_n.baseDelay,maxDelay:a=_n.maxDelay}=t,n=2**e*i,o=Math.random()*0.25*n;return Math.min(n+o,a)}function Gn(e){return new Promise((t)=>setTimeout(t,e))}async function*C(e,t={}){let{maxRetries:i=_n.maxRetries,onRetryAttempt:a}=t;for(let n=0;n<=i;n++)try{yield*e();return}catch(o){if(!(n!==i&&Pn(o)))throw o;let s;if(o instanceof qe&&o.retryAfterSeconds)s=o.retryAfterSeconds*1000;else s=vn(n,t);if(a)a(n+1,i,s,o);await Gn(s)}throw Error("Retry logic exhausted without returning or throwing")}var Ir=["cline","anthropic","openai-native","gemini","openrouter"];function zr(e){if(!e||typeof e!=="object")return!1;let t=e;return typeof t.provider==="object"&&typeof t.models==="object"}function Mc(e){return[...new Set(e)]}function es(){let e={};for(let t of Object.values(vi)){if(!zr(t))continue;let i=t.provider.id;e[i]=Mc(t.provider.env??[])}return e}var fc=es(),Ec=Mc(Ir.flatMap((e)=>fc[e]??[]));function ts(e,t){let i=e[t];if(typeof i!=="string")return;let a=i.trim();return a.length>0?a:void 0}function Tc(e,t){for(let i of e){let a=ts(t,i);if(a)return a}return}function An(e){return fc[V(e)]??[]}function Y(e,t,i=process.env){let a=V(e),n=t?.trim();if(n)return n;let o=Tc(An(a),i);if(o)return o;if(a==="lmstudio")return"noop";return Tc(Ec,i)}function oe(e){let t=[...new Set([...An(e),...Ec])],i=t.length>0?t.join(", "):"provider-specific API key env var";return`Missing API key for provider "${V(e)}". Set apiKey explicitly or one of: ${i}.`}import{nanoid as is}from"nanoid";var as={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"},_c=new WeakMap,ns=0;function wa(e){let t=_c.get(e);if(!t)t=`abort_${++ns}`,_c.set(e,t);return t}function On(e){return e instanceof Error?{name:e.name,message:e.message}:e}class L{config;abortController;abortSignalSequence=0;constructor(e){this.config=e}getModel(){let e=this.config.modelId;return{id:e,info:{...this.config.modelInfo??{},id:e}}}async getApiStreamUsage(){return}getAbortSignal(){let e=new AbortController;this.abortController=e,e.signal.addEventListener("abort",()=>{if(this.abortController===e)this.abortController=void 0},{once:!0});let t=this.config.abortSignal;if(t)if(t.aborted)this.logAbort("debug","Provider request inherited aborted signal",{controllerId:wa(e),reason:On(t.reason)}),e.abort(t.reason);else{let i=++this.abortSignalSequence;t.addEventListener("abort",()=>{this.logAbort("warn","Provider request abort signal fired",{controllerId:wa(e),signalId:i,reason:On(t.reason)}),e.abort(t.reason)},{once:!0}),this.logAbort("debug","Provider request attached abort signal",{controllerId:wa(e),signalId:i})}return e.signal}abort(){this.abortController?.abort()}setAbortSignal(e){if(this.config.abortSignal=e,e?.aborted)this.logAbort("debug","Provider handler received pre-aborted signal",{controllerId:this.abortController?wa(this.abortController):void 0,reason:On(e.reason)}),this.abortController?.abort(e.reason)}logAbort(e,t,i){this.config.logger?.[e]?.(t,{providerId:this.config.providerId,modelId:this.config.modelId,...i})}supportsPromptCache(e){let t=e??this.config.modelInfo??this.config.knownModels?.[this.config.modelId],i=t?.pricing;return t?.capabilities?.includes("prompt-cache")===!0||this.config.capabilities?.includes("prompt-cache")===!0||typeof i?.cacheRead==="number"||typeof i?.cacheWrite==="number"}calculateCost(e,t,i=0,a=0){let n=(this.config.modelInfo??this.config.knownModels?.[this.config.modelId])?.pricing;if(!n?.input||!n?.output)return;return e/1e6*n.input+t/1e6*n.output+(i>0?i/1e6*(n.cacheRead??0):0)+(a>0?a/1e6*(n.cacheWrite??n.input*1.25):0)}calculateCostFromInclusiveInput(e,t,i=0,a=0){return this.calculateCost(Math.max(0,e-i-a),t,i,a)}createResponseId(){return is()}withResponseId(e,t){return{...e,id:t}}*withResponseIdForAll(e,t){for(let i of e)yield{...i,id:t}}getRequestHeaders(){return{...as,...this.config.headers??{}}}normalizeOpenAICompatibleBadRequest(e){let t=e;if((t?.status??t?.response?.status??t?.error?.code??(typeof t?.message==="string"&&t.message.includes("400")?400:void 0))!==400)return;let a=t?.error?.metadata?.raw,n=this.parseRawProviderError(a),o=n?.error?.message?.trim()||t?.error?.message?.trim()||t?.message?.trim()||"Provider returned error",c=t?.error?.metadata?.provider_name?.trim()||"Provider",r=n?.request_id?.trim(),s=this.rewriteProviderBadRequestDetail(o),p=r?` Request ID: ${r}.`:"";return Error(`${c} request was rejected (HTTP 400). ${s}${p}`,{cause:e instanceof Error?e:void 0})}parseRawProviderError(e){if(!e)return;try{return JSON.parse(e)}catch{return}}rewriteProviderBadRequestDetail(e){let t=e.match(/prompt is too long:\s*([\d,]+)\s*tokens?\s*>\s*([\d,]+)\s*maximum/i);if(t){let i=t[1],a=t[2];return`Prompt is too long: ${i} tokens exceeds the ${a} token limit.`}return e.endsWith(".")?e:`${e}.`}}var cs=1024,rs="CLINE_DEBUG_THINKING";function ss(){let e=process.env[rs];if(!e)return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"}class Ci extends L{client;ensureClient(){if(!this.client){let e=Y(this.config.providerId,this.config.apiKey);if(!e)throw Error(oe(this.config.providerId));this.client=new os({apiKey:e,baseURL:this.config.baseUrl||void 0,defaultHeaders:this.getRequestHeaders()})}return this.client}getModel(){let e=this.config.modelId,i=(this.config.knownModels??{})[e]??{},a=this.config.modelInfo??i;return{id:e,info:{...a,id:e}}}getMessages(e,t){let i=this.supportsPromptCache(this.getModel().info);return Rt(t,i)}async*createMessage(e,t,i){yield*C(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=this.ensureClient(),n=this.getModel(),o=this.getAbortSignal(),c=this.createResponseId(),r=ae(n.info),s=this.config.thinkingBudgetTokens??(this.config.thinking?cs:0),p=r&&s>0?s:0,g=i&&i.length>0,b=this.supportsPromptCache(n.info),D=r&&p>0,T=ss(),G={},v=(Q)=>{G[Q]=(G[Q]??0)+1};if(T)console.error(`[thinking-debug][anthropic][request] model=${n.id} thinkingFlag=${this.config.thinking===!0} supportsModelThinking=${r} requestedBudget=${s} effectiveBudget=${p} reasoningOn=${D} promptCache=${b}`);let h=this.getMessages(e,t),P=g?De(i):void 0,R={signal:o},f={model:n.id,thinking:D?{type:"enabled",budget_tokens:p}:void 0,max_tokens:n.info.maxTokens??this.config.maxOutputTokens??128000,temperature:D?void 0:0,system:[b?{text:e,type:"text",cache_control:{type:"ephemeral"}}:{text:e,type:"text"}],messages:h,stream:!0,tools:P,tool_choice:g&&!D?{type:"auto"}:void 0},E=await a.messages.create(f,R),S={id:"",name:"",arguments:""},q={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},K=null;for await(let Q of E){if(T){if(v(`event:${Q.type}`),Q.type==="content_block_start")v(`content_block_start:${Q.content_block?.type??"unknown"}`);else if(Q.type==="content_block_delta")v(`content_block_delta:${Q.delta?.type??"unknown"}`)}if(Q.type==="message_delta")K=Q.delta?.stop_reason??K;yield*this.withResponseIdForAll(this.processChunk(Q,S,q,c),c)}if(T){let Q=Object.entries(G).map(([B,$])=>`${B}=${$}`).sort().join(" ");console.error(`[thinking-debug][anthropic][stream] ${Q}`)}yield{type:"done",success:!0,id:c,incompleteReason:K==="max_tokens"?"max_tokens":void 0}}*processChunk(e,t,i,a){switch(e.type){case"message_start":{let n=e.message.usage;i.inputTokens=n.input_tokens||0,i.outputTokens=n.output_tokens||0,i.cacheWriteTokens=n.cache_creation_input_tokens||0,i.cacheReadTokens=n.cache_read_input_tokens||0,yield{type:"usage",inputTokens:i.inputTokens,outputTokens:i.outputTokens,cacheWriteTokens:i.cacheWriteTokens,cacheReadTokens:i.cacheReadTokens,totalCost:this.calculateCost(i.inputTokens,i.outputTokens,i.cacheReadTokens,i.cacheWriteTokens),id:a};break}case"message_delta":{i.outputTokens=e.usage.output_tokens||i.outputTokens,yield{type:"usage",inputTokens:i.inputTokens,outputTokens:i.outputTokens,cacheWriteTokens:i.cacheWriteTokens,cacheReadTokens:i.cacheReadTokens,totalCost:this.calculateCost(i.inputTokens,i.outputTokens,i.cacheReadTokens,i.cacheWriteTokens),id:a};break}case"content_block_start":{let n=e.content_block;switch(n.type){case"thinking":yield{type:"reasoning",reasoning:typeof n.thinking==="string"?n.thinking??"":"",signature:typeof n.signature==="string"?n.signature??void 0:void 0,id:a};break;case"redacted_thinking":yield{type:"reasoning",reasoning:"",redacted_data:typeof n.data==="string"?n.data??void 0:void 0,id:a};break;case"text":yield{type:"text",text:"",id:a};break;case"tool_use":t.id=n.id,t.name=n.name,t.arguments="";break}break}case"content_block_delta":{let n=e.delta;switch(n.type){case"thinking_delta":yield{type:"reasoning",reasoning:n.thinking,id:a};break;case"signature_delta":yield{type:"reasoning",reasoning:"",signature:typeof n.signature==="string"?n.signature??void 0:void 0,id:a};break;case"text_delta":yield{type:"text",text:n.text,id:a};break;case"input_json_delta":t.arguments+=n.partial_json;break}break}case"content_block_stop":{if(t.id){let n;try{n=JSON.parse(t.arguments||"{}")}catch{n=t.arguments}yield{type:"tool_calls",id:a,tool_call:{call_id:t.id,function:{name:t.name,arguments:n}}},t.id="",t.name="",t.arguments=""}break}}}}class ba extends L{getMessages(e,t){return{systemPrompt:e,messages:t}}getBaseUrl(){return this.config.baseUrl?.trim()||this.getDefaultBaseUrl()}getJsonHeaders(e){return{"Content-Type":"application/json",...this.getRequestHeaders(),...e??{}}}async fetchJson(e,t){let i=await fetch(`${this.getBaseUrl()}${e}`,{method:t.method??"POST",headers:this.getJsonHeaders(t.headers),body:t.body?JSON.stringify(t.body):void 0,signal:this.getAbortSignal()});if(!i.ok){let a=await i.text();throw Error(`HTTP ${i.status}: ${a}`)}return await i.json()}async*createMessage(e,t,i){yield*C(()=>this.createMessageWithFetch(e,t))}}var ps="https://api.asksage.ai/server",us="gpt-4o";class Qi extends ba{getDefaultBaseUrl(){return ps}getModel(){let e=this.config.modelId?.trim()||us,t=this.config.modelInfo??this.config.knownModels?.[e]??{id:e,capabilities:["tools"]};return{id:e,info:{...t,id:e}}}getJsonHeaders(e){let t=Y(this.config.providerId,this.config.apiKey);if(!t)throw Error("AskSage API key is required");return super.getJsonHeaders({"x-access-tokens":t,...e??{}})}async*createMessageWithFetch(e,t){let i=this.createResponseId(),{id:a}=this.getModel(),n={system_prompt:e,message:t.map((r)=>({user:r.role==="assistant"?"gpt":"me",message:this.serializeMessageContent(r.content)})),model:a,dataset:"none",usage:!0},o;try{o=await this.fetchJson("/query",{method:"POST",body:n})}catch(r){let s=r instanceof Error?r.message:String(r);throw Error(`AskSage request failed: ${s}`)}for(let r of o.tool_responses??[])yield{type:"text",text:`[Tool Response: ${JSON.stringify(r)}]
|
|
12
|
-
`,id:i};let c=o.message?.trim();if(!c)throw Error("AskSage request failed: no content in response");if(yield{type:"text",text:c,id:i},o.usage)yield{type:"usage",inputTokens:o.usage.model_tokens.prompt_tokens,outputTokens:o.usage.model_tokens.completion_tokens,cacheReadTokens:0,cacheWriteTokens:0,totalCost:o.usage.asksage_tokens,id:i};yield{type:"done",success:!0,id:i}}serializeMessageContent(e){if(typeof e==="string")return e;return e.map((t)=>("text"in t)?t.text:"").join("").trim()}}var Da,Ra;async function ms(){if(Da)return Da;let e="@ai-sdk/amazon-bedrock",t=await import(e);if(!t.createAmazonBedrock)throw Error(`Failed to load createAmazonBedrock from ${e}`);return Da=t.createAmazonBedrock,Da}async function ls(){if(Ra)return Ra;let e="@aws-sdk/credential-providers",t=await import(e);if(!t.fromNodeProviderChain)throw Error(`Failed to load fromNodeProviderChain from ${e}`);return Ra=t.fromNodeProviderChain,Ra}async function Pc(e,t){let i=await ms(),a=e.region??"us-east-1",n=e.aws?.authentication,o=Boolean(e.aws?.accessKey&&e.aws?.secretKey),c=n==="profile"||n==="iam"||!n&&!o&&!e.apiKey,r;if(c)r=(await ls())({profile:e.aws?.profile});return i({region:a,accessKeyId:e.aws?.accessKey??void 0,secretAccessKey:e.aws?.secretKey??void 0,sessionToken:e.aws?.sessionToken??void 0,apiKey:e.apiKey??void 0,baseURL:e.aws?.endpoint??e.baseUrl??void 0,headers:t,credentialProvider:r})}var vc=":1m",ka,ds=1024,gs="medium";async function xs(){if(ka)return ka;return ka=await import("ai"),ka}class Ta extends L{clientFactory;async ensureClientFactory(){if(!this.clientFactory)this.clientFactory=await Pc(this.config,this.getRequestHeaders());return this.clientFactory}getModel(){let e=this.config.modelId;if(!e)throw Error("Model ID is required. Set modelId in config.");let t=this.config.modelInfo??this.config.knownModels?.[e]??{};return{id:e,info:{...t,id:e}}}getMessages(e,t){return Ws(e,t)}async*createMessage(e,t,i){yield*C(()=>this.createMessageInternal(e,t,i),{maxRetries:4})}async*createMessageInternal(e,t,i){let a=await xs(),n=await this.ensureClientFactory(),o=this.createResponseId(),c=this.getAbortSignal(),r=this.getModel(),s=r.id,p={},g={};if(s.endsWith(vc))s=s.slice(0,-vc.length),g.anthropicBeta=["context-1m-2025-08-07"];let b=ae(r.info),D=this.config.thinkingBudgetTokens??(this.config.thinking?ds:0),T=!1;if(b&&D>0&&s.includes("anthropic"))g.reasoningConfig={type:"enabled",budgetTokens:D},T=!0;else if(b&&s.includes("amazon.nova")){let h=this.config.reasoningEffort??(this.config.thinking?gs:void 0);if(h)g.reasoningConfig={type:"enabled",maxReasoningEffort:h},T=!0}if(Object.keys(g).length>0)p.bedrock=g;let G=a.streamText({model:n(s),messages:this.getMessages(e,t),tools:hs(i),maxTokens:r.info.maxTokens??this.config.maxOutputTokens??128000,temperature:T?void 0:r.info.temperature??0,providerOptions:Object.keys(p).length>0?p:void 0,abortSignal:c}),v=!1;if(G.fullStream)for await(let h of G.fullStream){let P=h.type;if(P==="text-delta"){let R=h.textDelta??h.delta;if(R)yield{type:"text",text:R,id:o};continue}if(P==="reasoning-delta"||P==="reasoning"){let R=h.textDelta??h.reasoning;if(R)yield{type:"reasoning",reasoning:R,id:o};continue}if(P==="tool-call"){let R=h.toolCallId??h.id,f=h.toolName??h.name,E=h.args??{};yield{type:"tool_calls",id:o,tool_call:{call_id:R,function:{name:f,arguments:E}}};continue}if(P==="error"){let R=h.error?.message??"Bedrock stream failed";throw Error(R)}if(P==="finish"){let R=h.usage??{},f=Re(R.inputTokens),E=Re(R.outputTokens),S=Re(R.reasoningTokens),q=Re(R.cachedInputTokens);yield{type:"usage",inputTokens:Math.max(0,f-q),outputTokens:E,thoughtsTokenCount:S,cacheReadTokens:q,totalCost:this.calculateCostFromInclusiveInput(f,E,q),id:o},v=!0}}else if(G.textStream)for await(let h of G.textStream)yield{type:"text",text:h,id:o};if(!v&&G.usage){let h=await G.usage,P=Re(h.inputTokens),R=Re(h.outputTokens),f=Re(h.reasoningTokens),E=Re(h.cachedInputTokens);yield{type:"usage",inputTokens:Math.max(0,P-E),outputTokens:R,thoughtsTokenCount:f,cacheReadTokens:E,totalCost:this.calculateCostFromInclusiveInput(P,R,E),id:o}}yield{type:"done",success:!0,id:o}}}function Re(e){return typeof e==="number"&&Number.isFinite(e)?e:0}function hs(e){if(!e||e.length===0)return;let t=De(e);return Object.fromEntries(t.map((i)=>[i.name,{description:i.description,inputSchema:i.input_schema}]))}function Ws(e,t){let i=[{role:"system",content:e}],a=new Map;for(let n of t){if(typeof n.content==="string"){i.push({role:n.role,content:n.content});continue}if(n.role==="assistant"){let c=[];for(let r of n.content){if(r.type==="text"){c.push({type:"text",text:r.text});continue}if(r.type==="tool_use")a.set(r.id,r.name),c.push({type:"tool-call",toolCallId:r.id,toolName:r.name,args:r.input})}if(c.length>0)i.push({role:"assistant",content:c});continue}let o=[];for(let c of n.content){if(c.type==="text"){o.push({type:"text",text:c.text});continue}if(c.type==="image"){o.push({type:"image",image:Buffer.from(c.data,"base64"),mediaType:c.mediaType});continue}if(c.type==="tool_result"){if(o.length>0)i.push({role:"user",content:o.splice(0,o.length)});i.push({role:"tool",content:[{type:"tool-result",toolCallId:c.tool_use_id,toolName:a.get(c.tool_use_id)??"tool",output:ws(c.content),isError:c.is_error??!1}]})}}if(o.length>0)i.push({role:"user",content:o})}return i}function ws(e){if(typeof e==="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function kt(e,t,i){let a=i?.assistantToolCallArgKey??"args",n=[{role:"system",content:e}],o=new Map;for(let c of t){if(typeof c.content==="string"){n.push({role:c.role,content:c.content});continue}if(c.role==="assistant"){let s=[];for(let p of c.content){if(p.type==="text"){s.push({type:"text",text:p.text});continue}if(p.type==="file"){s.push({type:"text",text:y(p.path,p.content)});continue}if(p.type==="tool_use")o.set(p.id,p.name),s.push({type:"tool-call",toolCallId:p.id,toolName:p.name,[a]:H(p.input)})}if(s.length>0)n.push({role:"assistant",content:s});continue}let r=[];for(let s of c.content){if(s.type==="text"){r.push({type:"text",text:s.text});continue}if(s.type==="file"){r.push({type:"text",text:y(s.path,s.content)});continue}if(s.type==="image"){r.push({type:"image",image:Buffer.from(s.data,"base64"),mediaType:s.mediaType});continue}if(s.type==="tool_result"){if(r.length>0)n.push({role:"user",content:r.splice(0,r.length)});n.push({role:"tool",content:[{type:"tool-result",toolCallId:s.tool_use_id,toolName:o.get(s.tool_use_id)??"tool",output:ne(s.content),isError:s.is_error??!1}]})}}if(r.length>0)n.push({role:"user",content:r})}return n}var Ma=null;async function fa(e){if(Ma)return Ma;return e?.beforeImport?.(),Ma=await import("ai"),Ma}function Z(e){return typeof e==="number"&&Number.isFinite(e)?e:0}function bs(e){return{inputTokens:Z(e.inputTokens),outputTokens:Z(e.outputTokens),thoughtsTokenCount:Z(e.reasoningTokens??e.thoughtsTokenCount),cacheReadTokens:Z(e.cachedInputTokens)}}async function*Ea(e,t){let i=t.resolveUsageMetrics??bs,a=new Set(t.reasoningTypes??["reasoning-delta"]),n=t.toolCallArgsOrder??["args","input"],o=t.responseId,c=!1,r=!1;if(e.fullStream)for await(let s of e.fullStream){let p=s.type;if(p==="text-delta"){let g=s.textDelta??s.text??s.delta;if(g)yield{type:"text",text:g,id:o},r=!0;continue}if(p&&a.has(p)){let g=s.textDelta??s.reasoning??s.text;if(g)yield{type:"reasoning",reasoning:g,id:o};continue}if(p==="tool-call"&&t.enableToolCalls){let g=s.toolCallId??s.id,b=s.toolName??s.name,D=n.map((T)=>s[T]).find((T)=>T!==void 0)??{};yield{type:"tool_calls",id:o,tool_call:{call_id:g,function:{id:t.toolCallFunctionIncludeId?g:void 0,name:b,arguments:D}}};continue}if(p==="error"){let g=s.error?.message??t.errorMessage;throw Error(g)}if(p==="finish"){let g=s.totalUsage??s.usage??{},b=i(g,s);yield{type:"usage",inputTokens:Math.max(0,b.inputTokens-b.cacheReadTokens),outputTokens:b.outputTokens,thoughtsTokenCount:b.thoughtsTokenCount,cacheReadTokens:b.cacheReadTokens,cacheWriteTokens:b.cacheWriteTokens,totalCost:t.calculateCost(b.inputTokens,b.outputTokens,b.cacheReadTokens,b.cacheWriteTokens),id:o},c=!0}}else if(e.textStream)for await(let s of e.textStream)yield{type:"text",text:s,id:o},r=!0;if(!r&&t.enableTextFallback&&e.text){let s=await e.text;if(typeof s==="string"&&s.length>0)yield{type:"text",text:s,id:o}}if(!c&&e.usage){let s=await e.usage,p=i(s);yield{type:"usage",inputTokens:Math.max(0,p.inputTokens-p.cacheReadTokens),outputTokens:p.outputTokens,thoughtsTokenCount:p.thoughtsTokenCount,cacheReadTokens:p.cacheReadTokens,cacheWriteTokens:p.cacheWriteTokens,totalCost:t.calculateCost(p.inputTokens,p.outputTokens,p.cacheReadTokens,p.cacheWriteTokens),id:o}}yield{type:"done",success:!0,id:o}}var Gc=new Map;function Ln(e,t){let i=e.modelId?.trim(),a=i&&i.length>0?i:t??"",o=(e.knownModels??{})[a]??{},c=e.modelInfo??o;return{id:a,info:{...c,id:a}}}async function Ds(e){let t=Gc.get(e);if(t)return t;let i=await import(e);return Gc.set(e,i),i}class ke extends L{provider;providerPromise;getProviderCreateOptions(){return}async beforeLoadProviderModule(){}getProviderModelSettings(){return}getLoadAiSdkOptions(){return}getStreamErrorMessage(){return"AI SDK stream failed"}getEmitStreamOptions(){return{}}getAssistantToolCallArgKey(){return"args"}normalizeModelId(e){return e}async ensureProvider(){if(this.provider)return this.provider;if(!this.providerPromise)this.providerPromise=(async()=>{let e=this.getProviderDefinition();await this.beforeLoadProviderModule();let t=await Ds(e.moduleName),i=t[e.createExportName],a=t[e.providerExportName];if(i){let n=i(this.getProviderCreateOptions());return this.provider=n,n}if(a)return this.provider=a,a;throw Error(`${e.moduleName} did not export \`${e.providerExportName}\` or \`${e.createExportName}\`.`)})();try{return await this.providerPromise}catch(e){this.providerPromise=void 0;let t=this.getProviderDefinition().moduleName;if(e instanceof Error&&e.message.includes(t))throw Error(this.getProviderDefinition().missingDependencyError,{cause:e});throw e}}getModel(){return Ln(this.config,this.getDefaultModelId())}getMessages(e,t){return kt(e,t,{assistantToolCallArgKey:this.getAssistantToolCallArgKey()})}async*createMessage(e,t,i){yield*C(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=await fa(this.getLoadAiSdkOptions()),n=await this.ensureProvider(),{id:o,info:c}=this.getModel(),r=this.createResponseId(),s=a.streamText({model:n(this.normalizeModelId(o),this.getProviderModelSettings()),messages:this.getMessages(e,t),maxTokens:c.maxTokens??void 0,temperature:c.temperature??void 0,abortSignal:this.getAbortSignal()});yield*Ea(s,{responseId:r,errorMessage:this.getStreamErrorMessage(),calculateCost:(p,g,b,D)=>this.calculateCost(p,g,b,D),...this.getEmitStreamOptions()})}}var Ac=!1;async function Rs(){if(Ac)return;Ac=!0;try{let e=await import("zod"),i=(e.z??e).object;if(typeof i!=="function")return;let a=i({}).refine?.(()=>!0);if(!a||typeof a.passthrough==="function")return;let n=Object.getPrototypeOf(a);if(!n||typeof n.passthrough==="function")return;Object.defineProperty(n,"passthrough",{value(){return this},configurable:!0,enumerable:!1,writable:!0})}catch{}}function ks(e){return e.startsWith("sk-")}function Ts(){let e=process.env.AI_SDK_LOG_WARNINGS?.trim().toLowerCase();return e==="0"||e==="false"||e==="off"}function Ms(e){if(e.includes("/"))return e;return`openai/${e}`}class Fi extends ke{getProviderDefinition(){return{moduleName:"ai-sdk-provider-codex-cli",createExportName:"createCodexCli",providerExportName:"codexCli",missingDependencyError:"Codex provider requires `ai-sdk-provider-codex-cli` and the Codex CLI at runtime. Install dependencies and run `codex` to authenticate."}}getDefaultModelId(){return"gpt-5.3-codex"}async beforeLoadProviderModule(){await Rs()}getProviderCreateOptions(){let t={...(this.config.codex??{}).defaultSettings??{}};if(this.config.reasoningEffort&&t.reasoningEffort===void 0)t.reasoningEffort=this.config.reasoningEffort;else if(this.config.thinking&&t.reasoningEffort===void 0)t.reasoningEffort="medium";let i=this.config.apiKey?.trim(),a=typeof this.config.accessToken==="string"&&this.config.accessToken.trim().length>0;if(i&&!a&&ks(i))t.env={...t.env??{},OPENAI_API_KEY:i};return{defaultSettings:Object.keys(t).length>0?t:void 0}}getProviderModelSettings(){return this.config.codex?.modelSettings}getStreamErrorMessage(){return"Codex stream failed"}getEmitStreamOptions(){return{reasoningTypes:["reasoning-delta","reasoning"],toolCallArgsOrder:["args","input"]}}}class Ki extends ke{getProviderDefinition(){return{moduleName:"ai-sdk-provider-claude-code",createExportName:"createClaudeCode",providerExportName:"claudeCode",missingDependencyError:"Claude Code provider requires `ai-sdk-provider-claude-code` at runtime. Install dependencies and run `claude login`."}}getDefaultModelId(){return"sonnet"}getProviderCreateOptions(){return this.config.claudeCode??{}}getLoadAiSdkOptions(){return{beforeImport:()=>{if(Ts())globalThis.AI_SDK_LOG_WARNINGS=!1}}}getStreamErrorMessage(){return"Claude Code stream failed"}getEmitStreamOptions(){return{reasoningTypes:["reasoning-delta"]}}}class qi extends ke{getProviderDefinition(){return{moduleName:"ai-sdk-provider-opencode-sdk",createExportName:"createOpencode",providerExportName:"opencode",missingDependencyError:"OpenCode provider requires `ai-sdk-provider-opencode-sdk` and OpenCode at runtime."}}getDefaultModelId(){return"openai/gpt-5.3-codex"}getProviderCreateOptions(){let e=this.config.opencode??{},t={...e.defaultSettings??{}};if(t.agent===void 0)t.agent="general";return{hostname:e.hostname,port:e.port,autoStartServer:e.autoStartServer,serverTimeout:e.serverTimeout,defaultSettings:Object.keys(t).length>0?t:void 0}}getProviderModelSettings(){return this.config.opencode?.modelSettings}normalizeModelId(e){return Ms(e)}getStreamErrorMessage(){return"OpenCode stream failed"}getEmitStreamOptions(){return{reasoningTypes:["reasoning-delta","reasoning"],enableTextFallback:!0}}}class Bi extends ke{getProviderDefinition(){return{moduleName:"@jerome-benoit/sap-ai-provider",createExportName:"createSAPAIProvider",providerExportName:"sapai",missingDependencyError:"SAP AI Core provider requires `@jerome-benoit/sap-ai-provider` at runtime."}}getDefaultModelId(){return"anthropic--claude-3.5-sonnet"}getProviderCreateOptions(){let e=this.config.sap??{},t=e.api??(e.useOrchestrationMode===void 0?void 0:e.useOrchestrationMode?"orchestration":"foundation-models"),i={resourceGroup:e.resourceGroup,deploymentId:e.deploymentId,api:t,defaultSettings:e.defaultSettings},a=Object.fromEntries(Object.entries(i).filter(([,n])=>n!==void 0));return Object.keys(a).length>0?a:void 0}getStreamErrorMessage(){return"SAP AI Core stream failed"}getEmitStreamOptions(){return{reasoningTypes:["reasoning-delta","reasoning"],enableToolCalls:!0,toolCallArgsOrder:["args","input"]}}}class Vi extends ke{getProviderDefinition(){return{moduleName:"@ai-sdk/mistral",createExportName:"createMistral",providerExportName:"mistral",missingDependencyError:"Mistral provider requires `@ai-sdk/mistral` at runtime."}}getDefaultModelId(){return"mistral-medium-latest"}getStreamErrorMessage(){return"Mistral stream failed"}}class Ni extends ke{getProviderDefinition(){return{moduleName:"dify-ai-provider",createExportName:"createDifyProvider",providerExportName:"difyProvider",missingDependencyError:"Dify provider requires `dify-ai-provider` at runtime."}}getDefaultModelId(){return"default"}getProviderCreateOptions(){if(!this.config.baseUrl)return;return{baseURL:this.config.baseUrl}}getProviderModelSettings(){let e={responseMode:"blocking"};if(this.config.apiKey)e.apiKey=this.config.apiKey;return e}getStreamErrorMessage(){return"Dify stream failed"}}import{FunctionCallingConfigMode as vs,GoogleGenAI as Oc,ThinkingLevel as Lc}from"@google/genai";function Pa(e){let t=new Map;return e.map((i)=>fs(i,t)).filter((i)=>i!==null)}function fs(e,t){let{role:i,content:a}=e,n=i==="assistant"?"model":"user";if(typeof a==="string")return{role:n,parts:[{text:a}]};let o=Es(a,t);if(o.length===0)return null;return{role:n,parts:o}}function Es(e,t){let i=[];for(let a of e){if(a.type==="tool_use")t.set(a.id,a.name);let n=_s(a,t);if(n)i.push(n)}return i}function _s(e,t){switch(e.type){case"text":{let i=e,a={text:i.text};if(i.signature)a.thoughtSignature=i.signature;return a}case"file":{let i=e;return{text:y(i.path,i.content)}}case"image":{let i=e;return{inlineData:{mimeType:i.mediaType,data:i.data}}}case"tool_use":{let i=e,a={functionCall:{id:i.id,name:i.name,args:H(i.input)}};if(i.signature)a.thoughtSignature=i.signature;return a}case"tool_result":{let i=e,a;if(typeof i.content==="string")a={result:ga(i.content)};else a={result:ne(i.content)};if(i.is_error)a.error=!0;return{functionResponse:{id:i.tool_use_id,name:t.get(i.tool_use_id)??i.tool_use_id,response:a}}}case"thinking":{let i=e,a={text:i.thinking,thought:!0};if(i.signature)a.thoughtSignature=i.signature;return a}default:return null}}var Ps=new Set(["type","title","description","enum","properties","required","additionalProperties","format","minimum","maximum","items","prefixItems","minItems","maxItems"]);function _a(e){if(!e||typeof e!=="object"||Array.isArray(e))return e;let t=e,i={};for(let[a,n]of Object.entries(t)){if(!Ps.has(a))continue;if(a==="properties"&&n&&typeof n==="object"){let o={};for(let[c,r]of Object.entries(n))o[c]=_a(r);i[a]=o}else if(a==="items"||a==="additionalProperties")i[a]=typeof n==="object"&&n!==null?_a(n):n;else if(a==="prefixItems"&&Array.isArray(n))i[a]=n.map((o)=>_a(o));else i[a]=n}if(t.exclusiveMinimum!==void 0&&i.minimum===void 0)i.minimum=t.exclusiveMinimum;if(t.exclusiveMaximum!==void 0&&i.maximum===void 0)i.maximum=t.exclusiveMaximum;return i}function va(e){return e.map((t)=>({name:t.name,description:t.description,parameters:_a(t.inputSchema)}))}var Gs=1024,As=128000,Os=8192;function Ls(e){let t=e.toLowerCase();return t.includes("gemini-3-flash")||t.includes("gemini-3.0-flash")}class Be extends L{client;ensureClient(){if(!this.client)if(this.config.gcp?.projectId)this.client=new Oc({vertexai:!0,project:this.config.gcp.projectId,location:this.config.region??"us-central1",httpOptions:{headers:this.getRequestHeaders()}});else{if(!this.config.apiKey)throw Error("Gemini API key is required when not using Vertex AI");this.client=new Oc({apiKey:this.config.apiKey,httpOptions:{headers:this.getRequestHeaders()}})}return this.client}getModel(){let e=this.config.modelId,i=(this.config.knownModels??{})[e]??{},a=this.config.modelInfo??i;return{id:e,info:{...a,id:e}}}getMessages(e,t){return Pa(t)}async*createMessage(e,t,i){yield*C(()=>this.createMessageInternal(e,t,i),{maxRetries:4,baseDelay:2000,maxDelay:15000})}async*createMessageInternal(e,t,i){let a=this.ensureClient(),{id:n,info:o}=this.getModel(),c=this.getAbortSignal(),r=this.createResponseId(),s=this.getMessages(e,t),p=ae(o),g=this.config.thinking===!0||typeof this.config.thinkingBudgetTokens==="number"||typeof this.config.reasoningEffort==="string",b=0,D;if(p&&g){let h=this.config.thinkingBudgetTokens??(this.config.thinking?Gs:0);if(b=Math.min(Math.max(0,h),o.thinkingConfig?.maxBudget??24576),o.thinkingConfig?.thinkingLevel){let P=this.config.reasoningEffort;if(P==="high")D=Lc.HIGH;else if(P==="low"||P==="medium")D=Lc.LOW}}let T=Ls(n)?Os:As,G=o.maxTokens??this.config.maxOutputTokens??T,v={httpOptions:this.config.baseUrl?{baseUrl:this.config.baseUrl,headers:this.getRequestHeaders()}:void 0,abortSignal:c,systemInstruction:e,temperature:o.temperature??1,maxOutputTokens:G};if(o.thinkingConfig&&p&&g&&(b>0||!!D))v.thinkingConfig={thinkingBudget:D?void 0:b,thinkingLevel:D,includeThoughts:!0};if(i&&i.length>0){let h=va(i);v.tools=[{functionDeclarations:h}],v.toolConfig={functionCallingConfig:{mode:vs.AUTO}}}try{let h=await a.models.generateContentStream({model:n,contents:s,config:v}),P=0,R=0,f=0,E=0,S=0;for await(let K of h){let Q=K?.candidates?.[0]?.content?.parts??[];for(let B of Q){if(B.thought&&B.text)yield{type:"reasoning",reasoning:B.text||"",signature:B.thoughtSignature,id:r};else if(B.text)yield{type:"text",text:B.text,id:r,signature:B.thoughtSignature};if(B.functionCall){let $=B.functionCall,Ue=$.id??`${r}_tool_${S++}`;if($.name)yield{type:"tool_calls",tool_call:{call_id:Ue,function:{id:Ue,name:$.name,arguments:$.args??{}}},id:r,signature:B.thoughtSignature}}}if(K.usageMetadata)P=K.usageMetadata.promptTokenCount??P,R=K.usageMetadata.candidatesTokenCount??R,E=K.usageMetadata.thoughtsTokenCount??E,f=K.usageMetadata.cachedContentTokenCount??f}let q=this.calculateGeminiCost(P,R,E,f);yield{type:"usage",inputTokens:P,outputTokens:R,thoughtsTokenCount:E,cacheReadTokens:f,cacheWriteTokens:0,totalCost:q,id:r},yield{type:"done",success:!0,id:r}}catch(h){if(h instanceof Error&&h.message.includes("429"))throw new qe(h.message,void 0,{cause:h});throw h}}calculateGeminiCost(e,t,i,a){return this.calculateCost(e,t+i,a)}}import Fs from"openai";function Ga(e,t=!1){let i=t?e.map((a)=>a.role).lastIndexOf("user"):-1;return e.flatMap((a,n)=>Ss(a,t&&n===i))}function Ss(e,t){let{role:i,content:a}=e;if(typeof a==="string"){if(i!=="user"||!t)return[{role:i,content:a}];return[{role:i,content:[{type:"text",text:a,cache_control:{type:"ephemeral"}}]}]}if(i==="assistant")return[Cs(a)];else return Qs(a,t)}function Cs(e){let t=[],i=[];for(let n of e)switch(n.type){case"text":t.push(n.text);break;case"tool_use":{let o=n;i.push({id:o.id,type:"function",function:{name:o.name,arguments:JSON.stringify(H(o.input))}});break}case"thinking":break}let a={role:"assistant",content:t.length>0?t.join(`
|
|
13
|
-
`):null};if(i.length>0)a.tool_calls=i;return a}function
|
|
14
|
-
`);if(!r)return;t.push({type:"message",role:o,content:[{type:o==="user"?"input_text":"output_text",text:r}]})},a=(o)=>o.type==="text",n=(o)=>o.call_id?.trim()||o.id;for(let o of e){if(o.role!=="user"&&o.role!=="assistant")continue;if(!Array.isArray(o.content)){if(o.content)i(o.role,[{type:"text",text:o.content}]);continue}let c=[],r=()=>{if(c.length===0)return;i(o.role,c),c=[]};for(let s of o.content){if(a(s)){c.push(s);continue}if(o.role==="assistant"&&s.type==="tool_use"){r();let p=s;t.push({type:"function_call",call_id:n(p),name:p.name,arguments:JSON.stringify(H(p.input))});continue}if(o.role==="user"&&s.type==="tool_result")r(),t.push({type:"function_call_output",call_id:s.tool_use_id,output:ne(s.content)})}r()}return t}class Ne extends L{client;ensureClient(){if(!this.client){let e=this.config.baseUrl;if(!e)throw Error("Base URL is required. Set baseUrl in config.");let t=Y(this.config.providerId,this.config.apiKey);if(!t)throw Error(oe(this.config.providerId));let i=this.getRequestHeaders(),a=Object.keys(i).some((n)=>n.toLowerCase()==="authorization");this.client=new qs({apiKey:t,baseURL:e,defaultHeaders:a?i:{...i,Authorization:`Bearer ${t}`}})}return this.client}getModel(){let e=this.config.modelId;if(!e)throw Error("Model ID is required. Set modelId in config.");let t=this.config.modelInfo??this.config.knownModels?.[e]??this.getDefaultModelInfo();return{id:e,info:{...t,id:e}}}getDefaultModelInfo(){let e=[].filter((t)=>t!=="prompt-cache");return{id:this.config.modelId,capabilities:e}}getMessages(e,t){return Ns(t)}async*createMessage(e,t,i){yield*C(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=this.ensureClient(),{id:n,info:o}=this.getModel(),c=this.getAbortSignal(),r=this.createResponseId(),s,p=new Map,g=this.getMessages(e,t),b=Vs(i,{stripFormat:this.config.providerId==="openai-codex"});if(!b?.length)throw Error("OpenAI Responses API requires tools to be provided. Enable native tool calling in settings.");let D=o.capabilities?.includes("reasoning")??!1,T=this.config.reasoningEffort??(this.config.thinking?Bs:void 0),G=D&&T?{effort:T,summary:"auto"}:void 0,v=this.getRequestHeaders(),h=Object.keys(v).some((f)=>f.toLowerCase()==="authorization"),P=Y(this.config.providerId,this.config.apiKey);if(!h&&P)v.Authorization=`Bearer ${P}`;if(this.config.providerId==="openai-codex"&&typeof this.config.accountId==="string"&&this.config.accountId.trim().length>0){let f=this.config.accountId.trim();v["chatgpt-account-id"]=f,v["openai-account-id"]=f}let R;try{R=await a.responses.create({model:n,instructions:e,input:g,store:this.config.providerId==="openai-codex"?!1:void 0,stream:!0,tools:b,reasoning:G},{signal:c,headers:v})}catch(f){let E=this.normalizeOpenAICompatibleBadRequest(f);if(E)throw E;if(this.config.providerId==="openai-codex"){let S=f;if((S?.status??S?.response?.status??(typeof S?.message==="string"&&S.message.includes("400")?400:void 0))===400){let K=S?.error?.detail??S?.error?.message??(typeof S?.message==="string"?S.message:"");throw Error(`OpenAI Codex request was rejected (HTTP 400). ${K?`Detail: ${K}`:"Re-run 'clite auth openai-codex', verify model access, and ensure accountId is present in provider settings."}`,{cause:f})}}throw f}for await(let f of R){let E=this.getApiResponseId(f);if(E)s=E;yield*this.processResponseChunk(f,o,s??r,p)}}*processResponseChunk(e,t,i,a){switch(e.type){case"response.output_item.added":{let n=e.item;if(n.type==="function_call"&&n.id)a.set(n.id,{callId:n.call_id,name:n.name}),yield{type:"tool_calls",id:n.id||i,tool_call:{call_id:n.call_id,function:{id:n.id,name:n.name,arguments:n.arguments}}};if(n.type==="reasoning"&&n.encrypted_content&&n.id)yield{type:"reasoning",id:n.id||i,reasoning:"",redacted_data:n.encrypted_content};break}case"response.output_item.done":{let n=e.item;if(n.type==="function_call"){if(n.id)a.set(n.id,{callId:n.call_id,name:n.name});yield{type:"tool_calls",id:n.id||i,tool_call:{call_id:n.call_id,function:{id:n.id,name:n.name,arguments:n.arguments}}}}if(n.type==="reasoning")yield{type:"reasoning",id:n.id||i,details:n.summary,reasoning:""};break}case"response.reasoning_summary_part.added":yield{type:"reasoning",id:e.item_id||i,reasoning:e.part?.text||""};break;case"response.reasoning_summary_text.delta":yield{type:"reasoning",id:e.item_id||i,reasoning:e.delta||""};break;case"response.reasoning_summary_part.done":yield{type:"reasoning",id:e.item_id||i,details:e.part,reasoning:""};break;case"response.output_text.delta":if(e.delta)yield{id:e.item_id||i,type:"text",text:e.delta};break;case"response.reasoning_text.delta":if(e.delta)yield{id:e.item_id||i,type:"reasoning",reasoning:e.delta};break;case"response.function_call_arguments.delta":{let n=e.item_id?a.get(e.item_id):void 0;yield{type:"tool_calls",id:e.item_id||i,tool_call:{call_id:n?.callId,function:{id:e.item_id,name:n?.name,arguments:e.delta}}}}break;case"response.function_call_arguments.done":if(e.item_id&&e.arguments){let n=a.get(e.item_id);yield{type:"tool_calls",id:e.item_id||i,tool_call:{call_id:e.call_id??n?.callId,function:{id:e.item_id,name:e.name??n?.name,arguments:e.arguments}}}}break;case"response.incomplete":{yield{type:"done",success:!1,incompleteReason:e.response?.incomplete_details?.reason,id:e.response?.id||i};break}case"response.failed":{yield{type:"done",success:!1,error:e.response?.error?.message||"Unknown error",id:e.response?.id||i};break}case"response.completed":{if(e.response?.usage){let n=e.response.usage,o=n.input_tokens||0,c=n.output_tokens||0,r=n.input_tokens_details?.cached_tokens||0,s=0,p=this.calculateCostFromInclusiveInput(o,c,r,0);yield{type:"usage",inputTokens:Math.max(0,o-r-0),outputTokens:c,cacheWriteTokens:0,cacheReadTokens:r,totalCost:p,id:e.response.id||i}}yield{type:"done",success:!0,id:e.response?.id||i};break}}}getApiResponseId(e){if(typeof e?.response?.id==="string"&&e.response.id.length>0)return e.response.id;if(typeof e?.response_id==="string"&&e.response_id.length>0)return e.response_id;return}}import r1 from"openai";var Mt=new Map;function Aa(e,t){Mt.set(e,{factory:t,isAsync:!1})}function Oa(e,t){Mt.set(e,{factory:t,isAsync:!0})}function ye(e){return Mt.has(e)}function La(e,t){let i=Mt.get(e);if(!i)return;if(i.isAsync)throw Error(`Handler for "${e}" is registered as async. Use getRegisteredHandlerAsync() or createHandlerAsync() instead.`);return i.factory(t)}async function Sa(e,t){let i=Mt.get(e);if(!i)return;if(i.isAsync)return i.factory(t);return i.factory(t)}function Ca(e){return Mt.get(e)?.isAsync??!1}var ys="us-central1";function Cc(e){return e.toLowerCase().includes("claude")}function Us(e){if(!e||e.length===0)return;let t=De(e);return Object.fromEntries(t.map((i)=>[i.name,{description:i.description,inputSchema:i.input_schema}]))}function Ys(e,t,i){let a=i?.promptCacheOn?[{type:"text",text:e,providerOptions:{anthropic:{cacheControl:{type:"ephemeral"}}}}]:e;return kt(a,t,{assistantToolCallArgKey:"input"})}class Yi extends L{geminiHandler;vertexAnthropicModelFactory;vertexAnthropicModelFactoryPromise;getProjectId(){let e=this.config.gcp?.projectId?.trim();if(!e)throw Error("Vertex provider requires `gcp.projectId` in provider configuration.");return e}getConfiguredRegion(){return this.config.gcp?.region?.trim()||this.config.region?.trim()}getRequiredClaudeRegion(){let e=this.getConfiguredRegion();if(!e)throw Error("Vertex Claude models require `gcp.region` (or `region`) in provider configuration.");return e}getGeminiRegion(){return this.getConfiguredRegion()??ys}ensureGeminiHandler(){if(!this.geminiHandler){let e=this.getProjectId(),t=this.getGeminiRegion();this.geminiHandler=new Be({...this.config,region:t,gcp:{...this.config.gcp,projectId:e,region:t}})}return this.geminiHandler}async ensureVertexAnthropicModelFactory(){if(this.vertexAnthropicModelFactory)return this.vertexAnthropicModelFactory;if(!this.vertexAnthropicModelFactoryPromise)this.vertexAnthropicModelFactoryPromise=import("@ai-sdk/google-vertex/anthropic").then((e)=>{let t=e.createVertexAnthropic({project:this.getProjectId(),location:this.getRequiredClaudeRegion(),headers:this.getRequestHeaders(),baseURL:this.config.baseUrl}),i=(a)=>t(a);return this.vertexAnthropicModelFactory=i,i});try{return await this.vertexAnthropicModelFactoryPromise}catch(e){if(this.vertexAnthropicModelFactoryPromise=void 0,e instanceof Error&&e.message.includes("@ai-sdk/google-vertex"))throw Error('Vertex Claude models require @ai-sdk/google-vertex at runtime. Install workspace dependencies before using provider "vertex".',{cause:e});throw e}}getModel(){return Ln(this.config)}getMessages(e,t){let i=this.getModel();if(!Cc(i.id))return this.ensureGeminiHandler().getMessages(e,t);let a=this.supportsPromptCache(i.info);return Rt(t,a)}async*createMessage(e,t,i){yield*C(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=this.getModel();if(!Cc(a.id)){yield*this.ensureGeminiHandler().createMessage(e,t,i);return}let n=await fa(),o=await this.ensureVertexAnthropicModelFactory(),c=this.createResponseId(),r=this.config.thinkingBudgetTokens??0,s=Ke(a.info,"reasoning")&&r>0,p=this.supportsPromptCache(a.info),g={};if(s)g.anthropic={thinking:{type:"enabled",budgetTokens:r}};let b=n.streamText({model:o(a.id),messages:Ys(e,t,{promptCacheOn:p}),tools:Us(i),maxTokens:a.info.maxTokens??this.config.maxOutputTokens??128000,temperature:s?void 0:0,providerOptions:Object.keys(g).length>0?g:void 0,abortSignal:this.getAbortSignal()});yield*Ea(b,{responseId:c,errorMessage:"Vertex Anthropic stream failed",calculateCost:(D,T,G,v)=>this.calculateCost(D,T,G,v),reasoningTypes:["reasoning-delta"],enableToolCalls:!0,toolCallArgsOrder:["input","args"],toolCallFunctionIncludeId:!0,resolveUsageMetrics:(D,T)=>{let v=(T?.providerMetadata??{}).anthropic??{};return{inputTokens:Z(D.inputTokens),outputTokens:Z(D.outputTokens),thoughtsTokenCount:Z(D.reasoningTokens??D.thoughtsTokenCount),cacheReadTokens:Z(D.cachedInputTokens??v.cacheReadInputTokens),cacheWriteTokens:Z(v.cacheCreationInputTokens)}}})}}import{JSONParser as H1}from"@streamparser/json";si();function Qc(e){let t=V(e.providerId);if(t===e.providerId)return e;return{...e,providerId:t}}function dp(e,t){if(e.baseUrl)return e.baseUrl;if(e.oca?.mode==="internal")return te;return t?.baseUrl??J}function gp(e){let t=e.modelId;return e.modelInfo?.apiFormat??(t?e.knownModels?.[t]?.apiFormat:void 0)}function xp(e){if(gp(e)===I.OPENAI_RESPONSES)return new Ne(e);return new Ve(e)}function Fc(e,t){return{...e,baseUrl:e.providerId==="oca"?dp(e,t):e.baseUrl??t.baseUrl,modelId:e.modelId??t.modelId,knownModels:e.knownModels??t.knownModels,capabilities:e.capabilities??t.capabilities}}var hp={asksage:(e)=>new Qi(e),anthropic:(e)=>new Ci(e),bedrock:(e)=>new Ta(e),"claude-code":(e)=>new Ki(e),gemini:(e)=>new Be(e),vertex:(e)=>new Yi(e),opencode:(e)=>new qi(e),"openai-native":(e)=>new Ne(e),mistral:(e)=>new Vi(e),dify:(e)=>new Ni(e)};function Kc(e){if(e.providerId==="openai-codex")return new Fi(e);if(e.providerId==="sapaicore")return new Bi(e);if(e.providerId==="oca")return xp(e);return new Ve(e)}function Wp(e){let t=hp[e.providerId];return t?t(e):void 0}function $i(e){let t=Qc(e),{providerId:i}=t;if(ye(i)){if(Ca(i))throw Error(`Handler for "${i}" is registered as async. Use createHandlerAsync() instead.`);let n=La(i,t);if(n)return n}let a=Wp(t);if(a)return a;if(Li(i)){if(t.modelCatalog?.loadLatestOnInit||t.modelCatalog?.loadPrivateOnAuth)throw Error(`Provider "${i}" has runtime model refresh enabled. Use createHandlerAsync() to allow async model refresh.`);let n=j[i];return Kc(Fc(t,n))}return t.baseUrl?new Ve(t):new Ne({...t,baseUrl:"https://api.openai.com/v1"})}async function Qa(e){let t=Qc(e),{providerId:i}=t;if(ye(i)){let a=await Sa(i,t);if(a)return a}if(Li(i)){let a=await bt(i,t.modelCatalog,t);if(a)return Kc(Fc(t,a))}return $i(t)}var Cn=[...new Set([Ge.provider.id,"anthropic","asksage","bedrock","claude-code","opencode","mistral","dify","openai-native","gemini","vertex",...Object.keys(j)])],wp=new Set(Cn);function qc(e){let t=V(e);return wp.has(t)||ye(t)||ye(e)}function Vc(e){return e?{...e}:{}}function bp(e,t){if(e)return e;if(!t)return;let i=globalThis.process;if(!i?.env)return;return i.env[t]}function Nc(e,t){if(!t.length)throw Error(`Provider "${e}" must include at least one model.`)}class yc{providerConfigs=new Map;constructor(e){this.applyConfig(e)}createHandler(e){return $i(this.toProviderHandlerConfig(e))}async createHandlerAsync(e){return Qa(this.toProviderHandlerConfig(e))}toProviderHandlerConfig(e){let t=this.requireConfiguredProvider(e.providerId),i=e.modelId??t.defaultModel;if(!t.models.has(i))throw Error(`Model "${i}" is not configured for provider "${e.providerId}".`);return{providerId:e.providerId,modelId:i,...t.defaults,...e.overrides}}registerProvider(e){if(ma(e.collection),e.handlerFactory&&e.asyncHandlerFactory)throw Error(`Provider "${e.collection.provider.id}" cannot register both sync and async handlers.`);if(e.handlerFactory)Aa(e.collection.provider.id,e.handlerFactory);if(e.asyncHandlerFactory)Oa(e.collection.provider.id,e.asyncHandlerFactory);let t=e.exposeModels??Object.keys(e.collection.models);Nc(e.collection.provider.id,t);let i=this.providerConfigs.get(e.collection.provider.id),a=e.defaultModel??e.collection.provider.defaultModelId??t[0];if(!a)throw Error(`Provider "${e.collection.provider.id}" must define a default model.`);if(!t.includes(a))throw Error(`Default model "${a}" is not included in configured models for "${e.collection.provider.id}".`);let n=new Set([...i?.models??[],...t]),o={...i?.defaults??{},...Vc(e.defaults)};this.providerConfigs.set(e.collection.provider.id,{id:e.collection.provider.id,models:n,defaultModel:a,defaults:o})}registerModel(e){Wt(e.providerId,e.modelId,e.info);let t=this.providerConfigs.get(e.providerId);if(!t){this.providerConfigs.set(e.providerId,{id:e.providerId,models:new Set([e.modelId]),defaultModel:e.modelId,defaults:{}});return}t.models.add(e.modelId)}getProviders(){return Array.from(this.providerConfigs.values()).map((e)=>({id:e.id,models:Array.from(e.models),defaultModel:e.defaultModel}))}getModels(e){return Array.from(this.requireConfiguredProvider(e).models)}isProviderConfigured(e){return this.providerConfigs.has(e)}isModelConfigured(e,t){return this.providerConfigs.get(e)?.models.has(t)??!1}applyConfig(e){for(let t of e.providers){if(Nc(t.id,t.models),t.defaultModel&&!t.models.includes(t.defaultModel))throw Error(`Default model "${t.defaultModel}" is not included in configured models for "${t.id}".`);let i=t.defaultModel??t.models[0];if(!i)throw Error(`Provider "${t.id}" must define a default model.`);let a=bp(t.apiKey,t.apiKeyEnv);this.providerConfigs.set(t.id,{id:t.id,models:new Set(t.models),defaultModel:i,defaults:{apiKey:a,baseUrl:t.baseUrl,headers:t.headers,timeoutMs:t.timeoutMs,capabilities:t.capabilities,...Vc(t.settings)}})}for(let t of e.models??[])this.registerModel(t);for(let t of e.customProviders??[])this.registerProvider(t);for(let t of this.providerConfigs.values())if(!ra(t.id))throw Error(`Provider "${t.id}" is not known. Register it through customProviders/registerProvider or use a built-in provider ID.`)}requireConfiguredProvider(e){let t=this.providerConfigs.get(e);if(!t)throw Error(`Provider "${e}" is not configured in this SDK instance.`);return t}}function Dp(e){return new yc(e)}export{zc as defineLlmsConfig,Dp as createLlmsSdk,Bc as LlmsProviders,oc as LlmsModels};
|
|
10
|
+
</file_content>`}import{z as p}from"zod";var vc=p.object({id:p.string(),temperature:p.number().optional(),isR1FormatRequired:p.boolean().optional(),maxTokens:p.number().optional(),contextWindow:p.number().optional(),inputPrice:p.number().optional(),outputPrice:p.number().optional(),supportsImages:p.boolean().optional()}),Gc=p.object({models:p.array(vc).optional(),openAiBaseUrl:p.string().optional(),openAiHeaders:p.record(p.string(),p.string()).optional(),azureApiVersion:p.string().optional(),azureIdentity:p.boolean().optional()}),Ac=p.object({id:p.string(),thinkingBudgetTokens:p.number().optional()}),Oc=p.object({name:p.string(),baseModelId:p.string(),thinkingBudgetTokens:p.number().optional()}),Lc=p.object({models:p.array(Ac).optional(),customModels:p.array(Oc).optional(),awsRegion:p.string().optional(),awsUseCrossRegionInference:p.boolean().optional(),awsUseGlobalInference:p.boolean().optional(),awsBedrockUsePromptCache:p.boolean().optional(),awsBedrockEndpoint:p.string().optional()}),Sc=p.object({id:p.string()}),Cc=p.object({models:p.array(Sc).optional()}),Qc=p.object({id:p.string(),thinkingBudgetTokens:p.number().optional()}),Fc=p.object({models:p.array(Qc).optional(),vertexProjectId:p.string().optional(),vertexRegion:p.string().optional()}),Kc=p.object({id:p.string(),thinkingBudgetTokens:p.number().optional(),promptCachingEnabled:p.boolean().optional()}),qc=p.object({models:p.array(Kc).optional(),baseUrl:p.string().optional()}),Bc=p.object({id:p.string(),thinkingBudgetTokens:p.number().optional()}),Vc=p.object({models:p.array(Bc).optional(),baseUrl:p.string().optional()}),Nc=p.object({OpenAiCompatible:Gc.optional(),AwsBedrock:Lc.optional(),Cline:Cc.optional(),Vertex:Fc.optional(),LiteLLM:qc.optional(),Anthropic:Vc.optional()}),yc=p.object({id:p.string()}),Uc=p.object({name:p.string(),url:p.string(),alwaysEnabled:p.boolean().optional(),headers:p.record(p.string(),p.string()).optional()}),br=p.object({alwaysEnabled:p.boolean(),name:p.string(),contents:p.string()}),Dr=p.object({bucket:p.string(),accessKeyId:p.string(),secretAccessKey:p.string(),region:p.string().optional(),endpoint:p.string().optional(),accountId:p.string().optional(),intervalMs:p.number().optional(),maxRetries:p.number().optional(),batchSize:p.number().optional(),maxQueueSize:p.number().optional(),maxFailedAgeMs:p.number().optional(),backfillEnabled:p.boolean().optional()}),Yc=p.object({enabled:p.boolean().optional(),type:p.union([p.literal("s3_access_keys"),p.literal("r2_access_keys")]).optional(),s3AccessSettings:Dr.optional(),r2AccessSettings:Dr.optional()}),jc=p.object({promptUploading:Yc.optional()}),rm=p.object({version:p.string(),providerSettings:Nc.optional(),telemetryEnabled:p.boolean().optional(),kanbanEnabled:p.boolean().optional(),mcpMarketplaceEnabled:p.boolean().optional(),allowedMCPServers:p.array(yc).optional(),remoteMCPServers:p.array(Uc).optional(),blockPersonalRemoteMCPServers:p.boolean().optional(),yoloModeAllowed:p.boolean().optional(),openTelemetryEnabled:p.boolean().optional(),openTelemetryMetricsExporter:p.string().optional(),openTelemetryLogsExporter:p.string().optional(),openTelemetryOtlpProtocol:p.string().optional(),openTelemetryOtlpEndpoint:p.string().optional(),openTelemetryOtlpHeaders:p.record(p.string(),p.string()).optional(),openTelemetryOtlpMetricsProtocol:p.string().optional(),openTelemetryOtlpMetricsEndpoint:p.string().optional(),openTelemetryOtlpMetricsHeaders:p.record(p.string(),p.string()).optional(),openTelemetryOtlpLogsProtocol:p.string().optional(),openTelemetryOtlpLogsEndpoint:p.string().optional(),openTelemetryOtlpLogsHeaders:p.record(p.string(),p.string()).optional(),openTelemetryMetricExportInterval:p.number().optional(),openTelemetryOtlpInsecure:p.boolean().optional(),openTelemetryLogBatchSize:p.number().optional(),openTelemetryLogBatchTimeout:p.number().optional(),openTelemetryLogMaxQueueSize:p.number().optional(),enterpriseTelemetry:jc.optional(),globalRules:p.array(br).optional(),globalWorkflows:p.array(br).optional()}),cm=p.record(p.string(),p.string());function $c(e){if(!e||typeof e!=="object")return!1;let t=e;return typeof t.provider==="object"&&typeof t.models==="object"}function Xc(e){return e==="openai-chat"||e==="openai-responses"||e==="openai-r1"}function Rr(e){let t={},i=e?.includeKnownModels??!1;for(let a of Object.values(Gi)){if(!$c(a))continue;let n=a.provider;if(!Xc(n.protocol)||!n.baseUrl)continue;t[n.id]={baseUrl:n.baseUrl,modelId:n.defaultModelId,knownModels:i?a.models:void 0,capabilities:n.capabilities}}return t}var gn="https://models.dev/api.json",Hc=600000,Jc=300000,kr=new Map,mn=new Map,Tr=new Map,ln=new Map,Mr;async function Zc(){return Mr??=Promise.resolve().then(() => (M(),Yn)).then(({getGeneratedProviderModels:e})=>e()),Mr}async function Ic(e,t={},i={},a={},n={}){let o=await Zc(),r=Ai(e),c=Object.assign({},...r.map((s)=>o[s]??{}));return Xe({...c,...t,...i,...a,...n})}function fr(e){let t=e?.trim();return t&&t.length>0?t:""}function xn(e){let t=e.apiKey?.trim()||e.accessToken?.trim();return t&&t.length>0?t:void 0}function zc(e){let t=2166136261;for(let i=0;i<e.length;i+=1)t^=e.charCodeAt(i),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}function es(e,t){return`${e}:${fr(t.baseUrl)}:${zc(xn(t)??"")}`}function dn(e,t,i){if(i&&!e.includes(t))e.push(t)}function hn(e,t){let i=["streaming","tools"];return dn(i,"images",Boolean(t.supportsImages)),dn(i,"prompt-cache",Boolean(t.supportsPromptCache)),dn(i,"reasoning",Boolean(t.supportsReasoning)),{id:e,name:t.name??e,contextWindow:t.contextWindow,maxTokens:t.maxTokens,capabilities:i,releaseDate:t.releaseDate,status:"active"}}async function ts(e,t){let i=await fetch("https://inference.baseten.co/v1/models",{method:"GET",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(!i.ok)throw Error(`Baseten model refresh failed: HTTP ${i.status}`);let n=(await i.json())?.data??[],o={};for(let r of n){let c=r.id?.trim();if(!c)continue;if(c.includes("whisper")||c.includes("tts")||c.includes("embedding"))continue;let s=r.supported_features??[];o[c]=hn(c,{name:c,contextWindow:r.context_length,maxTokens:r.max_completion_tokens,supportsReasoning:s.includes("reasoning")||s.includes("reasoning_effort"),supportsImages:!1})}return o}async function is(e,t){let i=await fetch("https://api.hicap.ai/v2/openai/models",{method:"GET",headers:{"api-key":t}});if(!i.ok)throw Error(`Hicap model refresh failed: HTTP ${i.status}`);let n=(await i.json())?.data??[],o={};for(let r of n){let c=r.id?.trim();if(!c)continue;o[c]=hn(c,{name:c,contextWindow:128000,supportsImages:!0,supportsPromptCache:!0})}return o}function as(e){let t=fr(e);if(!t)return"http://localhost:4000";return t.endsWith("/v1")?t.slice(0,-3):t}async function ns(e,t){let a=`${as(e.baseUrl)}/v1/model/info`,n=async(u)=>fetch(a,{method:"GET",headers:{accept:"application/json",...u}}),o=await n({"x-litellm-api-key":t});if(!o.ok)o=await n({Authorization:`Bearer ${t}`});if(!o.ok)throw Error(`LiteLLM model refresh failed: HTTP ${o.status}`);let c=(await o.json())?.data??[],s={};for(let u of c){let x=u.model_name?.trim(),R=u.litellm_params?.model?.trim()||x;if(!R)continue;let f=u.model_info,O=hn(R,{name:x??R,maxTokens:f?.max_output_tokens??f?.max_tokens,contextWindow:f?.max_input_tokens??f?.max_tokens,supportsImages:f?.supports_vision,supportsPromptCache:f?.supports_prompt_caching,supportsReasoning:f?.supports_reasoning});if(s[R]=O,x)s[x]={...O,id:x,name:x}}return s}async function os(e,t){let i=xn(t);if(!i)return{};let a=Er[e];if(!a)return{};return a(t,i)}var Er={baseten:ts,hicap:is,litellm:ns};function rs(e,t,i){if(!i)return!1;if(!Er[e])return!1;if(t?.loadPrivateOnAuth===!1)return!1;return Boolean(xn(i))}async function cs(e,t,i){let a=t?.cacheTtlMs??Jc,n=es(e,i),o=Date.now(),r=Tr.get(n);if(r&&r.expiresAt>o)return r.data;let c=ln.get(n);if(c)return c;let s=os(e,i).then((u)=>{return Tr.set(n,{data:u,expiresAt:o+a}),u}).finally(()=>{ln.delete(n)});return ln.set(n,s),s}async function ss(e){return Nn(e,z0)}async function Wn(e={}){let t=e.url??gn,i=e.cacheTtlMs??Hc,a=Date.now(),n=kr.get(t);if(n&&n.expiresAt>a)return n.data;let o=mn.get(t);if(o)return o;let r=ss(t).then((c)=>{return kr.set(t,{data:c,expiresAt:a+i}),c}).finally(()=>{mn.delete(t)});return mn.set(t,r),r}function ps(e){return Object.fromEntries(Object.entries(e).map(([t,i])=>[t,{baseUrl:i.baseUrl,modelId:i.modelId,knownModels:i.knownModels,capabilities:i.capabilities}]))}var J=ps(Rr());function wn(e){return J[e]}async function Dt(e,t,i){let a=wn(e);if(!a)return;try{let o=(t?.loadLatestOnInit?await Wn(t):void 0)?.[e]??{},r=i&&rs(e,t,i)?await cs(e,t,i):{},c=await Ic(e,a.knownModels,o,r,i?.knownModels);return{...a,knownModels:c}}catch(n){if(t?.failOnError)throw n;return a}}function Si(e){return e in J}var Rt;((d)=>{d.ANTHROPIC="anthropic";d.CLAUDE_CODE="claude-code";d.CLINE="cline";d.OPENAI="openai";d.OPENAI_NATIVE="openai-native";d.OPENAI_CODEX="openai-codex";d.OPENCODE="opencode";d.BEDROCK="bedrock";d.VERTEX="vertex";d.GEMINI="gemini";d.OLLAMA="ollama";d.LMSTUDIO="lmstudio";d.DEEPSEEK="deepseek";d.XAI="xai";d.TOGETHER="together";d.FIREWORKS="fireworks";d.GROQ="groq";d.CEREBRAS="cerebras";d.SAMBANOVA="sambanova";d.NEBIUS="nebius";d.BASETEN="baseten";d.REQUESTY="requesty";d.LITELLM="litellm";d.HUGGINGFACE="huggingface";d.VERCEL_AI_GATEWAY="vercel-ai-gateway";d.AIHUBMIX="aihubmix";d.HICAP="hicap";d.NOUS_RESEARCH="nousResearch";d.HUAWEI_CLOUD_MAAS="huawei-cloud-maas";d.QWEN="qwen";d.QWEN_CODE="qwen-code";d.DOUBAO="doubao";d.MISTRAL="mistral";d.MOONSHOT="moonshot";d.ASKSAGE="asksage";d.ZAI="zai";d.MINIMAX="minimax";d.DIFY="dify";d.OCA="oca";d.SAPAICORE="sapaicore";d.OPENROUTER="openrouter"})(Rt||={});var us={openai:"openai-native",togetherai:"together","sap-ai-core":"sapaicore"},_r=Object.values(Rt);function y(e){let t=e.trim();return us[t]??t}function qe(e,t){return e.capabilities?.includes(t)??!1}function oe(e){return Boolean(e.thinkingConfig)||qe(e,"reasoning")}function ha(e){return e.pricing??{}}M();pi();import{z as l}from"zod";var bn=l.string().min(1).regex(/^[a-z0-9][a-z0-9-]*$/i),Dn=l.object({apiKey:l.string().optional(),accessToken:l.string().optional(),refreshToken:l.string().optional(),expiresAt:l.number().int().positive().optional(),accountId:l.string().optional()}),ls=l.enum(["none","low","medium","high","xhigh"]),Rn=l.object({enabled:l.boolean().optional(),effort:ls.optional(),budgetTokens:l.number().int().positive().optional()}),kn=l.object({accessKey:l.string().optional(),secretKey:l.string().optional(),sessionToken:l.string().optional(),region:l.string().optional(),profile:l.string().optional(),authentication:l.enum(["iam","api-key","profile"]).optional(),usePromptCache:l.boolean().optional(),useCrossRegionInference:l.boolean().optional(),useGlobalInference:l.boolean().optional(),endpoint:l.string().url().optional(),customModelBaseId:l.string().optional()}),Tn=l.object({projectId:l.string().optional(),region:l.string().optional()}),Mn=l.object({apiVersion:l.string().optional(),useIdentity:l.boolean().optional()}),fn=l.object({clientId:l.string().optional(),clientSecret:l.string().optional(),tokenUrl:l.string().url().optional(),resourceGroup:l.string().optional(),deploymentId:l.string().optional(),useOrchestrationMode:l.boolean().optional(),api:l.enum(["orchestration","foundation-models"]).optional(),defaultSettings:l.record(l.string(),l.unknown()).optional()}),En=l.object({mode:l.enum(["internal","external"]).optional(),usePromptCache:l.boolean().optional()}),_n=l.object({loadLatestOnInit:l.boolean().optional(),loadPrivateOnAuth:l.boolean().optional(),url:l.string().url().optional(),cacheTtlMs:l.number().int().positive().optional(),failOnError:l.boolean().optional()}),Ci=l.object({provider:bn,apiKey:l.string().optional(),auth:Dn.optional(),model:l.string().optional(),maxTokens:l.number().int().positive().optional(),contextWindow:l.number().int().positive().optional(),baseUrl:l.string().url().optional(),headers:l.record(l.string(),l.string()).optional(),timeout:l.number().int().positive().optional(),reasoning:Rn.optional(),aws:kn.optional(),gcp:Tn.optional(),azure:Mn.optional(),sap:fn.optional(),oca:En.optional(),region:l.string().optional(),apiLine:l.enum(["china","international"]).optional(),capabilities:l.array(l.enum(["reasoning","prompt-cache","streaming","tools","vision","computer-use","oauth"])).optional(),modelCatalog:_n.optional()});function Wa(e){return Ci.parse(e)}function wa(e){let t=e.provider,i=y(t),a=e.reasoning?.effort,n=a&&a!=="none"?a:void 0,o=J[i],r=Object.assign({},...Ai(i).map((x)=>m(x))),c=e.auth?.accessToken??e.apiKey??e.auth?.apiKey,s=e.baseUrl??(i==="oca"?e.oca?.mode==="internal"?ae:I:o?.baseUrl),u={providerId:t,modelId:e.model??o?.modelId??"default",knownModels:o?.knownModels??(Object.keys(r).length>0?r:void 0),apiKey:c,accessToken:e.auth?.accessToken,refreshToken:e.auth?.refreshToken,accountId:e.auth?.accountId,baseUrl:s,headers:e.headers,timeoutMs:e.timeout,maxOutputTokens:e.maxTokens,maxContextTokens:e.contextWindow,thinking:e.reasoning?.enabled,reasoningEffort:n,thinkingBudgetTokens:e.reasoning?.budgetTokens,region:e.region??e.aws?.region??e.gcp?.region,apiLine:e.apiLine,useCrossRegionInference:e.aws?.useCrossRegionInference,useGlobalInference:e.aws?.useGlobalInference,aws:e.aws?{accessKey:e.aws.accessKey,secretKey:e.aws.secretKey,sessionToken:e.aws.sessionToken,authentication:e.aws.authentication,profile:e.aws.profile,usePromptCache:e.aws.usePromptCache,endpoint:e.aws.endpoint,customModelBaseId:e.aws.customModelBaseId}:void 0,gcp:e.gcp?{projectId:e.gcp.projectId,region:e.gcp.region}:void 0,azure:e.azure,sap:e.sap,oca:e.oca,capabilities:e.capabilities??o?.capabilities,modelCatalog:e.modelCatalog?{loadLatestOnInit:e.modelCatalog.loadLatestOnInit,loadPrivateOnAuth:e.modelCatalog.loadPrivateOnAuth,url:e.modelCatalog.url,cacheTtlMs:e.modelCatalog.cacheTtlMs,failOnError:e.modelCatalog.failOnError}:void 0};return Object.fromEntries(Object.entries(u).filter(([x,D])=>D!==void 0))}import{Anthropic as Gs}from"@anthropic-ai/sdk";function Z(e){if(Array.isArray(e))return{commands:e};return e}function re(e){if(typeof e==="string")return e;let t=[];for(let i of e){if(i.type==="text"){t.push(i.text);continue}if(i.type==="file"){t.push(Y(i.path,i.content));continue}t.push(JSON.stringify(i))}return t.join(`
|
|
11
|
+
`)}function kt(e,t=!1){let i=e.reduce((o,r,c)=>{if(r.role==="user")o.push(c);return o},[]),a=t?new Set(i.slice(-2)):new Set,n=[];for(let[o,r]of e.entries()){let c=Ds(r,a.has(o));if(c)n.push(c)}return n}function Ds(e,t){let{role:i,content:a}=e;if(typeof a==="string"){let o={type:"text",text:a};if(t)o.cache_control={type:"ephemeral"};return{role:i,content:[o]}}let n=Rs(a,t);if(n.length===0)return null;return{role:i,content:n}}function Rs(e,t){let i=[];for(let a=0;a<e.length;a++){let n=e[a],o=a===e.length-1,r=ks(n,t&&o);if(r)i.push(r)}return i}function ks(e,t){switch(e.type){case"text":{let a={type:"text",text:e.text};if(t)a.cache_control={type:"ephemeral"};return a}case"file":{let i=e;return{type:"text",text:Y(i.path,i.content)}}case"image":{let i=e;return{type:"image",source:{type:"base64",media_type:i.mediaType,data:i.data}}}case"tool_use":{let i=e;return{type:"tool_use",id:i.id,name:i.name,input:Z(i.input)}}case"tool_result":{let i=e,a;if(typeof i.content==="string")a=i.content;else a=i.content.map((n)=>{if(n.type==="text")return{type:"text",text:n.text};else if(n.type==="file"){let o=n;return{type:"text",text:Y(o.path,o.content)}}else return{type:"image",source:{type:"base64",media_type:n.mediaType,data:n.data}}});return{type:"tool_result",tool_use_id:i.tool_use_id,content:a,is_error:i.is_error}}case"thinking":{let i=e;return{type:"thinking",thinking:i.thinking,signature:i.signature}}case"redacted_thinking":return{type:"redacted_thinking",data:e.data};default:return null}}function Re(e){return e.map((t)=>({name:t.name,description:t.description,input_schema:t.inputSchema}))}var Pn={maxRetries:4,baseDelay:2000,maxDelay:15000};class Be extends Error{retryAfterSeconds;constructor(e,t,i){super(e,i);this.retryAfterSeconds=t;this.name="RetriableError"}}function vn(e){if(e instanceof Be)return!0;if(e instanceof Error){let t=e.message.toLowerCase();if(t.includes("429")||t.includes("rate limit")||t.includes("too many requests"))return!0;if(t.includes("500")||t.includes("502")||t.includes("503")||t.includes("504"))return!0;if(t.includes("network")||t.includes("timeout")||t.includes("econnreset")||t.includes("econnrefused"))return!0}return!1}function Gn(e,t={}){let{baseDelay:i=Pn.baseDelay,maxDelay:a=Pn.maxDelay}=t,n=2**e*i,o=Math.random()*0.25*n;return Math.min(n+o,a)}function An(e){return new Promise((t)=>setTimeout(t,e))}async function*F(e,t={}){let{maxRetries:i=Pn.maxRetries,onRetryAttempt:a}=t;for(let n=0;n<=i;n++)try{yield*e();return}catch(o){if(!(n!==i&&vn(o)))throw o;let s;if(o instanceof Be&&o.retryAfterSeconds)s=o.retryAfterSeconds*1000;else s=Gn(n,t);if(a)a(n+1,i,s,o);await An(s)}throw Error("Retry logic exhausted without returning or throwing")}var Ts=["cline","anthropic","openai-native","gemini","openrouter"];function Ms(e){if(!e||typeof e!=="object")return!1;let t=e;return typeof t.provider==="object"&&typeof t.models==="object"}function vr(e){return[...new Set(e)]}function fs(){let e={};for(let t of Object.values(Gi)){if(!Ms(t))continue;let i=t.provider.id;e[i]=vr(t.provider.env??[])}return e}var Gr=fs(),Ar=vr(Ts.flatMap((e)=>Gr[e]??[]));function Es(e,t){let i=e[t];if(typeof i!=="string")return;let a=i.trim();return a.length>0?a:void 0}function Pr(e,t){for(let i of e){let a=Es(t,i);if(a)return a}return}function On(e){return Gr[y(e)]??[]}function $(e,t,i=process.env){let a=y(e),n=t?.trim();if(n)return n;let o=Pr(On(a),i);if(o)return o;if(a==="lmstudio")return"noop";return Pr(Ar,i)}function ce(e){let t=[...new Set([...On(e),...Ar])],i=t.length>0?t.join(", "):"provider-specific API key env var";return`Missing API key for provider "${y(e)}". Set apiKey explicitly or one of: ${i}.`}import{nanoid as _s}from"nanoid";var Ps={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"},Or=new WeakMap,vs=0;function ba(e){let t=Or.get(e);if(!t)t=`abort_${++vs}`,Or.set(e,t);return t}function Ln(e){return e instanceof Error?{name:e.name,message:e.message}:e}class C{config;abortController;abortSignalSequence=0;constructor(e){this.config=e}getModel(){let e=this.config.modelId;return{id:e,info:{...this.config.modelInfo??{},id:e}}}async getApiStreamUsage(){return}getAbortSignal(){let e=new AbortController;this.abortController=e,e.signal.addEventListener("abort",()=>{if(this.abortController===e)this.abortController=void 0},{once:!0});let t=this.config.abortSignal;if(t)if(t.aborted)this.logAbort("debug","Provider request inherited aborted signal",{controllerId:ba(e),reason:Ln(t.reason)}),e.abort(t.reason);else{let i=++this.abortSignalSequence;t.addEventListener("abort",()=>{this.logAbort("warn","Provider request abort signal fired",{controllerId:ba(e),signalId:i,reason:Ln(t.reason)}),e.abort(t.reason)},{once:!0}),this.logAbort("debug","Provider request attached abort signal",{controllerId:ba(e),signalId:i})}return e.signal}abort(){this.abortController?.abort()}setAbortSignal(e){if(this.config.abortSignal=e,e?.aborted)this.logAbort("debug","Provider handler received pre-aborted signal",{controllerId:this.abortController?ba(this.abortController):void 0,reason:Ln(e.reason)}),this.abortController?.abort(e.reason)}logAbort(e,t,i){this.config.logger?.[e]?.(t,{providerId:this.config.providerId,modelId:this.config.modelId,...i})}supportsPromptCache(e){let t=e??this.config.modelInfo??this.config.knownModels?.[this.config.modelId],i=t?.pricing;return t?.capabilities?.includes("prompt-cache")===!0||this.config.capabilities?.includes("prompt-cache")===!0||typeof i?.cacheRead==="number"||typeof i?.cacheWrite==="number"}calculateCost(e,t,i=0,a=0){let n=(this.config.modelInfo??this.config.knownModels?.[this.config.modelId])?.pricing;if(!n?.input||!n?.output)return;return e/1e6*n.input+t/1e6*n.output+(i>0?i/1e6*(n.cacheRead??0):0)+(a>0?a/1e6*(n.cacheWrite??n.input*1.25):0)}calculateCostFromInclusiveInput(e,t,i=0,a=0){return this.calculateCost(Math.max(0,e-i-a),t,i,a)}createResponseId(){return _s()}withResponseId(e,t){return{...e,id:t}}*withResponseIdForAll(e,t){for(let i of e)yield{...i,id:t}}getRequestHeaders(){return{...Ps,...this.config.headers??{}}}normalizeOpenAICompatibleBadRequest(e){let t=e;if((t?.status??t?.response?.status??t?.error?.code??(typeof t?.message==="string"&&t.message.includes("400")?400:void 0))!==400)return;let a=t?.error?.metadata?.raw,n=this.parseRawProviderError(a),o=n?.error?.message?.trim()||t?.error?.message?.trim()||t?.message?.trim()||"Provider returned error",r=t?.error?.metadata?.provider_name?.trim()||"Provider",c=n?.request_id?.trim(),s=this.rewriteProviderBadRequestDetail(o),u=c?` Request ID: ${c}.`:"";return Error(`${r} request was rejected (HTTP 400). ${s}${u}`,{cause:e instanceof Error?e:void 0})}parseRawProviderError(e){if(!e)return;try{return JSON.parse(e)}catch{return}}rewriteProviderBadRequestDetail(e){let t=e.match(/prompt is too long:\s*([\d,]+)\s*tokens?\s*>\s*([\d,]+)\s*maximum/i);if(t){let i=t[1],a=t[2];return`Prompt is too long: ${i} tokens exceeds the ${a} token limit.`}return e.endsWith(".")?e:`${e}.`}}var As=1024,Os="CLINE_DEBUG_THINKING";function Ls(){let e=process.env[Os];if(!e)return!1;let t=e.trim().toLowerCase();return t==="1"||t==="true"||t==="yes"}class Qi extends C{client;ensureClient(){if(!this.client){let e=$(this.config.providerId,this.config.apiKey);if(!e)throw Error(ce(this.config.providerId));this.client=new Gs({apiKey:e,baseURL:this.config.baseUrl||void 0,defaultHeaders:this.getRequestHeaders()})}return this.client}getModel(){let e=this.config.modelId,i=(this.config.knownModels??{})[e]??{},a=this.config.modelInfo??i;return{id:e,info:{...a,id:e}}}getMessages(e,t){let i=this.supportsPromptCache(this.getModel().info);return kt(t,i)}async*createMessage(e,t,i){yield*F(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=this.ensureClient(),n=this.getModel(),o=this.getAbortSignal(),r=this.createResponseId(),c=oe(n.info),s=this.config.thinkingBudgetTokens??(this.config.thinking?As:0),u=c&&s>0?s:0,x=i&&i.length>0,D=this.supportsPromptCache(n.info),R=c&&u>0,f=Ls(),O={},A=(K)=>{O[K]=(O[K]??0)+1};if(f)console.error(`[thinking-debug][anthropic][request] model=${n.id} thinkingFlag=${this.config.thinking===!0} supportsModelThinking=${c} requestedBudget=${s} effectiveBudget=${u} reasoningOn=${R} promptCache=${D}`);let W=this.getMessages(e,t),G=x?Re(i):void 0,T={signal:o},_={model:n.id,thinking:R?{type:"enabled",budget_tokens:u}:void 0,max_tokens:n.info.maxTokens??this.config.maxOutputTokens??128000,temperature:R?void 0:0,system:[D?{text:e,type:"text",cache_control:{type:"ephemeral"}}:{text:e,type:"text"}],messages:W,stream:!0,tools:G,tool_choice:x&&!R?{type:"auto"}:void 0},P=await a.messages.create(_,T),Q={id:"",name:"",arguments:""},V={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},B=null;for await(let K of P){if(f){if(A(`event:${K.type}`),K.type==="content_block_start")A(`content_block_start:${K.content_block?.type??"unknown"}`);else if(K.type==="content_block_delta")A(`content_block_delta:${K.delta?.type??"unknown"}`)}if(K.type==="message_delta")B=K.delta?.stop_reason??B;yield*this.withResponseIdForAll(this.processChunk(K,Q,V,r),r)}if(f){let K=Object.entries(O).map(([N,X])=>`${N}=${X}`).sort().join(" ");console.error(`[thinking-debug][anthropic][stream] ${K}`)}yield{type:"done",success:!0,id:r,incompleteReason:B==="max_tokens"?"max_tokens":void 0}}*processChunk(e,t,i,a){switch(e.type){case"message_start":{let n=e.message.usage;i.inputTokens=n.input_tokens||0,i.outputTokens=n.output_tokens||0,i.cacheWriteTokens=n.cache_creation_input_tokens||0,i.cacheReadTokens=n.cache_read_input_tokens||0,yield{type:"usage",inputTokens:i.inputTokens,outputTokens:i.outputTokens,cacheWriteTokens:i.cacheWriteTokens,cacheReadTokens:i.cacheReadTokens,totalCost:this.calculateCost(i.inputTokens,i.outputTokens,i.cacheReadTokens,i.cacheWriteTokens),id:a};break}case"message_delta":{i.outputTokens=e.usage.output_tokens||i.outputTokens,yield{type:"usage",inputTokens:i.inputTokens,outputTokens:i.outputTokens,cacheWriteTokens:i.cacheWriteTokens,cacheReadTokens:i.cacheReadTokens,totalCost:this.calculateCost(i.inputTokens,i.outputTokens,i.cacheReadTokens,i.cacheWriteTokens),id:a};break}case"content_block_start":{let n=e.content_block;switch(n.type){case"thinking":yield{type:"reasoning",reasoning:typeof n.thinking==="string"?n.thinking??"":"",signature:typeof n.signature==="string"?n.signature??void 0:void 0,id:a};break;case"redacted_thinking":yield{type:"reasoning",reasoning:"",redacted_data:typeof n.data==="string"?n.data??void 0:void 0,id:a};break;case"text":yield{type:"text",text:"",id:a};break;case"tool_use":t.id=n.id,t.name=n.name,t.arguments="";break}break}case"content_block_delta":{let n=e.delta;switch(n.type){case"thinking_delta":yield{type:"reasoning",reasoning:n.thinking,id:a};break;case"signature_delta":yield{type:"reasoning",reasoning:"",signature:typeof n.signature==="string"?n.signature??void 0:void 0,id:a};break;case"text_delta":yield{type:"text",text:n.text,id:a};break;case"input_json_delta":t.arguments+=n.partial_json;break}break}case"content_block_stop":{if(t.id){let n;try{n=JSON.parse(t.arguments||"{}")}catch{n=t.arguments}yield{type:"tool_calls",id:a,tool_call:{call_id:t.id,function:{name:t.name,arguments:n}}},t.id="",t.name="",t.arguments=""}break}}}}class Da extends C{getMessages(e,t){return{systemPrompt:e,messages:t}}getBaseUrl(){return this.config.baseUrl?.trim()||this.getDefaultBaseUrl()}getJsonHeaders(e){return{"Content-Type":"application/json",...this.getRequestHeaders(),...e??{}}}async fetchJson(e,t){let i=await fetch(`${this.getBaseUrl()}${e}`,{method:t.method??"POST",headers:this.getJsonHeaders(t.headers),body:t.body?JSON.stringify(t.body):void 0,signal:this.getAbortSignal()});if(!i.ok){let a=await i.text();throw Error(`HTTP ${i.status}: ${a}`)}return await i.json()}async*createMessage(e,t,i){yield*F(()=>this.createMessageWithFetch(e,t))}}var Ss="https://api.asksage.ai/server",Cs="gpt-4o";class Fi extends Da{getDefaultBaseUrl(){return Ss}getModel(){let e=this.config.modelId?.trim()||Cs,t=this.config.modelInfo??this.config.knownModels?.[e]??{id:e,capabilities:["tools"]};return{id:e,info:{...t,id:e}}}getJsonHeaders(e){let t=$(this.config.providerId,this.config.apiKey);if(!t)throw Error("AskSage API key is required");return super.getJsonHeaders({"x-access-tokens":t,...e??{}})}async*createMessageWithFetch(e,t){let i=this.createResponseId(),{id:a}=this.getModel(),n={system_prompt:e,message:t.map((c)=>({user:c.role==="assistant"?"gpt":"me",message:this.serializeMessageContent(c.content)})),model:a,dataset:"none",usage:!0},o;try{o=await this.fetchJson("/query",{method:"POST",body:n})}catch(c){let s=c instanceof Error?c.message:String(c);throw Error(`AskSage request failed: ${s}`)}for(let c of o.tool_responses??[])yield{type:"text",text:`[Tool Response: ${JSON.stringify(c)}]
|
|
12
|
+
`,id:i};let r=o.message?.trim();if(!r)throw Error("AskSage request failed: no content in response");if(yield{type:"text",text:r,id:i},o.usage)yield{type:"usage",inputTokens:o.usage.model_tokens.prompt_tokens,outputTokens:o.usage.model_tokens.completion_tokens,cacheReadTokens:0,cacheWriteTokens:0,totalCost:o.usage.asksage_tokens,id:i};yield{type:"done",success:!0,id:i}}serializeMessageContent(e){if(typeof e==="string")return e;return e.map((t)=>("text"in t)?t.text:"").join("").trim()}}var Ra,ka;async function Qs(){if(Ra)return Ra;let e="@ai-sdk/amazon-bedrock",t=await import(e);if(!t.createAmazonBedrock)throw Error(`Failed to load createAmazonBedrock from ${e}`);return Ra=t.createAmazonBedrock,Ra}async function Fs(){if(ka)return ka;let e="@aws-sdk/credential-providers",t=await import(e);if(!t.fromNodeProviderChain)throw Error(`Failed to load fromNodeProviderChain from ${e}`);return ka=t.fromNodeProviderChain,ka}async function Lr(e,t){let i=await Qs(),a=e.region??"us-east-1",n=e.aws?.authentication,o=Boolean(e.aws?.accessKey&&e.aws?.secretKey),r=n==="profile"||n==="iam"||!n&&!o&&!e.apiKey,c;if(r)c=(await Fs())({profile:e.aws?.profile});return i({region:a,accessKeyId:e.aws?.accessKey??void 0,secretAccessKey:e.aws?.secretKey??void 0,sessionToken:e.aws?.sessionToken??void 0,apiKey:e.apiKey??void 0,baseURL:e.aws?.endpoint??e.baseUrl??void 0,headers:t,credentialProvider:c})}var Sr=":1m",Ta,Ks=1024,qs="medium";async function Bs(){if(Ta)return Ta;return Ta=await import("ai"),Ta}class Ma extends C{clientFactory;async ensureClientFactory(){if(!this.clientFactory)this.clientFactory=await Lr(this.config,this.getRequestHeaders());return this.clientFactory}getModel(){let e=this.config.modelId;if(!e)throw Error("Model ID is required. Set modelId in config.");let t=this.config.modelInfo??this.config.knownModels?.[e]??{};return{id:e,info:{...t,id:e}}}getMessages(e,t){return Ns(e,t)}async*createMessage(e,t,i){yield*F(()=>this.createMessageInternal(e,t,i),{maxRetries:4})}async*createMessageInternal(e,t,i){let a=await Bs(),n=await this.ensureClientFactory(),o=this.createResponseId(),r=this.getAbortSignal(),c=this.getModel(),s=c.id,u={},x={};if(s.endsWith(Sr))s=s.slice(0,-Sr.length),x.anthropicBeta=["context-1m-2025-08-07"];let D=oe(c.info),R=this.config.thinkingBudgetTokens??(this.config.thinking?Ks:0),f=!1;if(D&&R>0&&s.includes("anthropic"))x.reasoningConfig={type:"enabled",budgetTokens:R},f=!0;else if(D&&s.includes("amazon.nova")){let W=this.config.reasoningEffort??(this.config.thinking?qs:void 0);if(W)x.reasoningConfig={type:"enabled",maxReasoningEffort:W},f=!0}if(Object.keys(x).length>0)u.bedrock=x;let O=a.streamText({model:n(s),messages:this.getMessages(e,t),tools:Vs(i),maxTokens:c.info.maxTokens??this.config.maxOutputTokens??128000,temperature:f?void 0:c.info.temperature??0,providerOptions:Object.keys(u).length>0?u:void 0,abortSignal:r}),A=!1;if(O.fullStream)for await(let W of O.fullStream){let G=W.type;if(G==="text-delta"){let T=W.textDelta??W.delta;if(T)yield{type:"text",text:T,id:o};continue}if(G==="reasoning-delta"||G==="reasoning"){let T=W.textDelta??W.reasoning;if(T)yield{type:"reasoning",reasoning:T,id:o};continue}if(G==="tool-call"){let T=W.toolCallId??W.id,_=W.toolName??W.name,P=W.args??{};yield{type:"tool_calls",id:o,tool_call:{call_id:T,function:{name:_,arguments:P}}};continue}if(G==="error"){let T=W.error?.message??"Bedrock stream failed";throw Error(T)}if(G==="finish"){let T=W.usage??{},_=ke(T.inputTokens),P=ke(T.outputTokens),Q=ke(T.reasoningTokens),V=ke(T.cachedInputTokens);yield{type:"usage",inputTokens:Math.max(0,_-V),outputTokens:P,thoughtsTokenCount:Q,cacheReadTokens:V,totalCost:this.calculateCostFromInclusiveInput(_,P,V),id:o},A=!0}}else if(O.textStream)for await(let W of O.textStream)yield{type:"text",text:W,id:o};if(!A&&O.usage){let W=await O.usage,G=ke(W.inputTokens),T=ke(W.outputTokens),_=ke(W.reasoningTokens),P=ke(W.cachedInputTokens);yield{type:"usage",inputTokens:Math.max(0,G-P),outputTokens:T,thoughtsTokenCount:_,cacheReadTokens:P,totalCost:this.calculateCostFromInclusiveInput(G,T,P),id:o}}yield{type:"done",success:!0,id:o}}}function ke(e){return typeof e==="number"&&Number.isFinite(e)?e:0}function Vs(e){if(!e||e.length===0)return;let t=Re(e);return Object.fromEntries(t.map((i)=>[i.name,{description:i.description,inputSchema:i.input_schema}]))}function Ns(e,t){let i=[{role:"system",content:e}],a=new Map;for(let n of t){if(typeof n.content==="string"){i.push({role:n.role,content:n.content});continue}if(n.role==="assistant"){let r=[];for(let c of n.content){if(c.type==="text"){r.push({type:"text",text:c.text});continue}if(c.type==="tool_use")a.set(c.id,c.name),r.push({type:"tool-call",toolCallId:c.id,toolName:c.name,args:c.input})}if(r.length>0)i.push({role:"assistant",content:r});continue}let o=[];for(let r of n.content){if(r.type==="text"){o.push({type:"text",text:r.text});continue}if(r.type==="image"){o.push({type:"image",image:Buffer.from(r.data,"base64"),mediaType:r.mediaType});continue}if(r.type==="tool_result"){if(o.length>0)i.push({role:"user",content:o.splice(0,o.length)});i.push({role:"tool",content:[{type:"tool-result",toolCallId:r.tool_use_id,toolName:a.get(r.tool_use_id)??"tool",output:ys(r.content),isError:r.is_error??!1}]})}}if(o.length>0)i.push({role:"user",content:o})}return i}function ys(e){if(typeof e==="string")return e;try{return JSON.stringify(e)}catch{return String(e)}}function Tt(e,t,i){let a=i?.assistantToolCallArgKey??"args",n=[{role:"system",content:e}],o=new Map;for(let r of t){if(typeof r.content==="string"){n.push({role:r.role,content:r.content});continue}if(r.role==="assistant"){let s=[];for(let u of r.content){if(u.type==="text"){s.push({type:"text",text:u.text});continue}if(u.type==="file"){s.push({type:"text",text:Y(u.path,u.content)});continue}if(u.type==="tool_use")o.set(u.id,u.name),s.push({type:"tool-call",toolCallId:u.id,toolName:u.name,[a]:Z(u.input)})}if(s.length>0)n.push({role:"assistant",content:s});continue}let c=[];for(let s of r.content){if(s.type==="text"){c.push({type:"text",text:s.text});continue}if(s.type==="file"){c.push({type:"text",text:Y(s.path,s.content)});continue}if(s.type==="image"){c.push({type:"image",image:Buffer.from(s.data,"base64"),mediaType:s.mediaType});continue}if(s.type==="tool_result"){if(c.length>0)n.push({role:"user",content:c.splice(0,c.length)});n.push({role:"tool",content:[{type:"tool-result",toolCallId:s.tool_use_id,toolName:o.get(s.tool_use_id)??"tool",output:re(s.content),isError:s.is_error??!1}]})}}if(c.length>0)n.push({role:"user",content:c})}return n}var fa=null;async function Ea(e){if(fa)return fa;return e?.beforeImport?.(),fa=await import("ai"),fa}function z(e){return typeof e==="number"&&Number.isFinite(e)?e:0}function Us(e){return{inputTokens:z(e.inputTokens),outputTokens:z(e.outputTokens),thoughtsTokenCount:z(e.reasoningTokens??e.thoughtsTokenCount),cacheReadTokens:z(e.cachedInputTokens)}}async function*_a(e,t){let i=t.resolveUsageMetrics??Us,a=new Set(t.reasoningTypes??["reasoning-delta"]),n=t.toolCallArgsOrder??["args","input"],o=t.responseId,r=!1,c=!1;if(e.fullStream)for await(let s of e.fullStream){let u=s.type;if(u==="text-delta"){let x=s.textDelta??s.text??s.delta;if(x)yield{type:"text",text:x,id:o},c=!0;continue}if(u&&a.has(u)){let x=s.textDelta??s.reasoning??s.text;if(x)yield{type:"reasoning",reasoning:x,id:o};continue}if(u==="tool-call"&&t.enableToolCalls){let x=s.toolCallId??s.id,D=s.toolName??s.name,R=n.map((f)=>s[f]).find((f)=>f!==void 0)??{};yield{type:"tool_calls",id:o,tool_call:{call_id:x,function:{id:t.toolCallFunctionIncludeId?x:void 0,name:D,arguments:R}}};continue}if(u==="error"){let x=s.error?.message??t.errorMessage;throw Error(x)}if(u==="finish"){let x=s.totalUsage??s.usage??{},D=i(x,s);yield{type:"usage",inputTokens:Math.max(0,D.inputTokens-D.cacheReadTokens),outputTokens:D.outputTokens,thoughtsTokenCount:D.thoughtsTokenCount,cacheReadTokens:D.cacheReadTokens,cacheWriteTokens:D.cacheWriteTokens,totalCost:t.calculateCost(D.inputTokens,D.outputTokens,D.cacheReadTokens,D.cacheWriteTokens),id:o},r=!0}}else if(e.textStream)for await(let s of e.textStream)yield{type:"text",text:s,id:o},c=!0;if(!c&&t.enableTextFallback&&e.text){let s=await e.text;if(typeof s==="string"&&s.length>0)yield{type:"text",text:s,id:o}}if(!r&&e.usage){let s=await e.usage,u=i(s);yield{type:"usage",inputTokens:Math.max(0,u.inputTokens-u.cacheReadTokens),outputTokens:u.outputTokens,thoughtsTokenCount:u.thoughtsTokenCount,cacheReadTokens:u.cacheReadTokens,cacheWriteTokens:u.cacheWriteTokens,totalCost:t.calculateCost(u.inputTokens,u.outputTokens,u.cacheReadTokens,u.cacheWriteTokens),id:o}}yield{type:"done",success:!0,id:o}}var Cr=new Map;function Sn(e,t){let i=e.modelId?.trim(),a=i&&i.length>0?i:t??"",o=(e.knownModels??{})[a]??{},r=e.modelInfo??o;return{id:a,info:{...r,id:a}}}async function Ys(e){let t=Cr.get(e);if(t)return t;let i=await import(e);return Cr.set(e,i),i}class Te extends C{provider;providerPromise;getProviderCreateOptions(){return}async beforeLoadProviderModule(){}getProviderModelSettings(){return}getLoadAiSdkOptions(){return}getStreamErrorMessage(){return"AI SDK stream failed"}getEmitStreamOptions(){return{}}getAssistantToolCallArgKey(){return"args"}normalizeModelId(e){return e}async ensureProvider(){if(this.provider)return this.provider;if(!this.providerPromise)this.providerPromise=(async()=>{let e=this.getProviderDefinition();await this.beforeLoadProviderModule();let t=await Ys(e.moduleName),i=t[e.createExportName],a=t[e.providerExportName];if(i){let n=i(this.getProviderCreateOptions());return this.provider=n,n}if(a)return this.provider=a,a;throw Error(`${e.moduleName} did not export \`${e.providerExportName}\` or \`${e.createExportName}\`.`)})();try{return await this.providerPromise}catch(e){this.providerPromise=void 0;let t=this.getProviderDefinition().moduleName;if(e instanceof Error&&e.message.includes(t))throw Error(this.getProviderDefinition().missingDependencyError,{cause:e});throw e}}getModel(){return Sn(this.config,this.getDefaultModelId())}getMessages(e,t){return Tt(e,t,{assistantToolCallArgKey:this.getAssistantToolCallArgKey()})}async*createMessage(e,t,i){yield*F(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=await Ea(this.getLoadAiSdkOptions()),n=await this.ensureProvider(),{id:o,info:r}=this.getModel(),c=this.createResponseId(),s=a.streamText({model:n(this.normalizeModelId(o),this.getProviderModelSettings()),messages:this.getMessages(e,t),maxTokens:r.maxTokens??void 0,temperature:r.temperature??void 0,abortSignal:this.getAbortSignal()});yield*_a(s,{responseId:c,errorMessage:this.getStreamErrorMessage(),calculateCost:(u,x,D,R)=>this.calculateCost(u,x,D,R),...this.getEmitStreamOptions()})}}var Qr=!1;async function js(){if(Qr)return;Qr=!0;try{let e=await import("zod"),i=(e.z??e).object;if(typeof i!=="function")return;let a=i({}).refine?.(()=>!0);if(!a||typeof a.passthrough==="function")return;let n=Object.getPrototypeOf(a);if(!n||typeof n.passthrough==="function")return;Object.defineProperty(n,"passthrough",{value(){return this},configurable:!0,enumerable:!1,writable:!0})}catch{}}function $s(e){return e.startsWith("sk-")}function Xs(){let e=process.env.AI_SDK_LOG_WARNINGS?.trim().toLowerCase();return e==="0"||e==="false"||e==="off"}function Hs(e){if(e.includes("/"))return e;return`openai/${e}`}class Ki extends Te{getProviderDefinition(){return{moduleName:"ai-sdk-provider-codex-cli",createExportName:"createCodexCli",providerExportName:"codexCli",missingDependencyError:"Codex provider requires `ai-sdk-provider-codex-cli` and the Codex CLI at runtime. Install dependencies and run `codex` to authenticate."}}getDefaultModelId(){return"gpt-5.3-codex"}async beforeLoadProviderModule(){await js()}getProviderCreateOptions(){let t={...(this.config.codex??{}).defaultSettings??{}};if(this.config.reasoningEffort&&t.reasoningEffort===void 0)t.reasoningEffort=this.config.reasoningEffort;else if(this.config.thinking&&t.reasoningEffort===void 0)t.reasoningEffort="medium";let i=this.config.apiKey?.trim(),a=typeof this.config.accessToken==="string"&&this.config.accessToken.trim().length>0;if(i&&!a&&$s(i))t.env={...t.env??{},OPENAI_API_KEY:i};return{defaultSettings:Object.keys(t).length>0?t:void 0}}getProviderModelSettings(){return this.config.codex?.modelSettings}getStreamErrorMessage(){return"Codex stream failed"}getEmitStreamOptions(){return{reasoningTypes:["reasoning-delta","reasoning"],toolCallArgsOrder:["args","input"]}}}class qi extends Te{getProviderDefinition(){return{moduleName:"ai-sdk-provider-claude-code",createExportName:"createClaudeCode",providerExportName:"claudeCode",missingDependencyError:"Claude Code provider requires `ai-sdk-provider-claude-code` at runtime. Install dependencies and run `claude login`."}}getDefaultModelId(){return"sonnet"}getProviderCreateOptions(){return this.config.claudeCode??{}}getLoadAiSdkOptions(){return{beforeImport:()=>{if(Xs())globalThis.AI_SDK_LOG_WARNINGS=!1}}}getStreamErrorMessage(){return"Claude Code stream failed"}getEmitStreamOptions(){return{reasoningTypes:["reasoning-delta"]}}}class Bi extends Te{getProviderDefinition(){return{moduleName:"ai-sdk-provider-opencode-sdk",createExportName:"createOpencode",providerExportName:"opencode",missingDependencyError:"OpenCode provider requires `ai-sdk-provider-opencode-sdk` and OpenCode at runtime."}}getDefaultModelId(){return"openai/gpt-5.3-codex"}getProviderCreateOptions(){let e=this.config.opencode??{},t={...e.defaultSettings??{}};if(t.agent===void 0)t.agent="general";return{hostname:e.hostname,port:e.port,autoStartServer:e.autoStartServer,serverTimeout:e.serverTimeout,defaultSettings:Object.keys(t).length>0?t:void 0}}getProviderModelSettings(){return this.config.opencode?.modelSettings}normalizeModelId(e){return Hs(e)}getStreamErrorMessage(){return"OpenCode stream failed"}getEmitStreamOptions(){return{reasoningTypes:["reasoning-delta","reasoning"],enableTextFallback:!0}}}class Vi extends Te{getProviderDefinition(){return{moduleName:"@jerome-benoit/sap-ai-provider",createExportName:"createSAPAIProvider",providerExportName:"sapai",missingDependencyError:"SAP AI Core provider requires `@jerome-benoit/sap-ai-provider` at runtime."}}getDefaultModelId(){return"anthropic--claude-3.5-sonnet"}getProviderCreateOptions(){let e=this.config.sap??{},t=e.api??(e.useOrchestrationMode===void 0?void 0:e.useOrchestrationMode?"orchestration":"foundation-models"),i={resourceGroup:e.resourceGroup,deploymentId:e.deploymentId,api:t,defaultSettings:e.defaultSettings},a=Object.fromEntries(Object.entries(i).filter(([,n])=>n!==void 0));return Object.keys(a).length>0?a:void 0}getStreamErrorMessage(){return"SAP AI Core stream failed"}getEmitStreamOptions(){return{reasoningTypes:["reasoning-delta","reasoning"],enableToolCalls:!0,toolCallArgsOrder:["args","input"]}}}class Ni extends Te{getProviderDefinition(){return{moduleName:"@ai-sdk/mistral",createExportName:"createMistral",providerExportName:"mistral",missingDependencyError:"Mistral provider requires `@ai-sdk/mistral` at runtime."}}getDefaultModelId(){return"mistral-medium-latest"}getStreamErrorMessage(){return"Mistral stream failed"}}class yi extends Te{getProviderDefinition(){return{moduleName:"dify-ai-provider",createExportName:"createDifyProvider",providerExportName:"difyProvider",missingDependencyError:"Dify provider requires `dify-ai-provider` at runtime."}}getDefaultModelId(){return"default"}getProviderCreateOptions(){if(!this.config.baseUrl)return;return{baseURL:this.config.baseUrl}}getProviderModelSettings(){let e={responseMode:"blocking"};if(this.config.apiKey)e.apiKey=this.config.apiKey;return e}getStreamErrorMessage(){return"Dify stream failed"}}import{FunctionCallingConfigMode as ep,GoogleGenAI as Fr,ThinkingLevel as Kr}from"@google/genai";function va(e){let t=new Map;return e.map((i)=>Js(i,t)).filter((i)=>i!==null)}function Js(e,t){let{role:i,content:a}=e,n=i==="assistant"?"model":"user";if(typeof a==="string")return{role:n,parts:[{text:a}]};let o=Zs(a,t);if(o.length===0)return null;return{role:n,parts:o}}function Zs(e,t){let i=[];for(let a of e){if(a.type==="tool_use")t.set(a.id,a.name);let n=Is(a,t);if(n)i.push(n)}return i}function Is(e,t){switch(e.type){case"text":{let i=e,a={text:i.text};if(i.signature)a.thoughtSignature=i.signature;return a}case"file":{let i=e;return{text:Y(i.path,i.content)}}case"image":{let i=e;return{inlineData:{mimeType:i.mediaType,data:i.data}}}case"tool_use":{let i=e,a={functionCall:{id:i.id,name:i.name,args:Z(i.input)}};if(i.signature)a.thoughtSignature=i.signature;return a}case"tool_result":{let i=e,a;if(typeof i.content==="string")a={result:xa(i.content)};else a={result:re(i.content)};if(i.is_error)a.error=!0;return{functionResponse:{id:i.tool_use_id,name:t.get(i.tool_use_id)??i.tool_use_id,response:a}}}case"thinking":{let i=e,a={text:i.thinking,thought:!0};if(i.signature)a.thoughtSignature=i.signature;return a}default:return null}}var zs=new Set(["type","title","description","enum","properties","required","additionalProperties","format","minimum","maximum","items","prefixItems","minItems","maxItems"]);function Pa(e){if(!e||typeof e!=="object"||Array.isArray(e))return e;let t=e,i={};for(let[a,n]of Object.entries(t)){if(!zs.has(a))continue;if(a==="properties"&&n&&typeof n==="object"){let o={};for(let[r,c]of Object.entries(n))o[r]=Pa(c);i[a]=o}else if(a==="items"||a==="additionalProperties")i[a]=typeof n==="object"&&n!==null?Pa(n):n;else if(a==="prefixItems"&&Array.isArray(n))i[a]=n.map((o)=>Pa(o));else i[a]=n}if(t.exclusiveMinimum!==void 0&&i.minimum===void 0)i.minimum=t.exclusiveMinimum;if(t.exclusiveMaximum!==void 0&&i.maximum===void 0)i.maximum=t.exclusiveMaximum;return i}function Ga(e){return e.map((t)=>({name:t.name,description:t.description,parameters:Pa(t.inputSchema)}))}var tp=1024,ip=128000,ap=8192;function np(e){let t=e.toLowerCase();return t.includes("gemini-3-flash")||t.includes("gemini-3.0-flash")}class Ve extends C{client;ensureClient(){if(!this.client)if(this.config.gcp?.projectId)this.client=new Fr({vertexai:!0,project:this.config.gcp.projectId,location:this.config.region??"us-central1",httpOptions:{headers:this.getRequestHeaders()}});else{if(!this.config.apiKey)throw Error("Gemini API key is required when not using Vertex AI");this.client=new Fr({apiKey:this.config.apiKey,httpOptions:{headers:this.getRequestHeaders()}})}return this.client}getModel(){let e=this.config.modelId,i=(this.config.knownModels??{})[e]??{},a=this.config.modelInfo??i;return{id:e,info:{...a,id:e}}}getMessages(e,t){return va(t)}async*createMessage(e,t,i){yield*F(()=>this.createMessageInternal(e,t,i),{maxRetries:4,baseDelay:2000,maxDelay:15000})}async*createMessageInternal(e,t,i){let a=this.ensureClient(),{id:n,info:o}=this.getModel(),r=this.getAbortSignal(),c=this.createResponseId(),s=this.getMessages(e,t),u=oe(o),x=this.config.thinking===!0||typeof this.config.thinkingBudgetTokens==="number"||typeof this.config.reasoningEffort==="string",D=0,R;if(u&&x){let W=this.config.thinkingBudgetTokens??(this.config.thinking?tp:0);if(D=Math.min(Math.max(0,W),o.thinkingConfig?.maxBudget??24576),o.thinkingConfig?.thinkingLevel){let G=this.config.reasoningEffort;if(G==="high")R=Kr.HIGH;else if(G==="low"||G==="medium")R=Kr.LOW}}let f=np(n)?ap:ip,O=o.maxTokens??this.config.maxOutputTokens??f,A={httpOptions:this.config.baseUrl?{baseUrl:this.config.baseUrl,headers:this.getRequestHeaders()}:void 0,abortSignal:r,systemInstruction:e,temperature:o.temperature??1,maxOutputTokens:O};if(o.thinkingConfig&&u&&x&&(D>0||!!R))A.thinkingConfig={thinkingBudget:R?void 0:D,thinkingLevel:R,includeThoughts:!0};if(i&&i.length>0){let W=Ga(i);A.tools=[{functionDeclarations:W}],A.toolConfig={functionCallingConfig:{mode:ep.AUTO}}}try{let W=await a.models.generateContentStream({model:n,contents:s,config:A}),G=0,T=0,_=0,P=0,Q=0;for await(let B of W){let K=B?.candidates?.[0]?.content?.parts??[];for(let N of K){if(N.thought&&N.text)yield{type:"reasoning",reasoning:N.text||"",signature:N.thoughtSignature,id:c};else if(N.text)yield{type:"text",text:N.text,id:c,signature:N.thoughtSignature};if(N.functionCall){let X=N.functionCall,Ye=X.id??`${c}_tool_${Q++}`;if(X.name)yield{type:"tool_calls",tool_call:{call_id:Ye,function:{id:Ye,name:X.name,arguments:X.args??{}}},id:c,signature:N.thoughtSignature}}}if(B.usageMetadata)G=B.usageMetadata.promptTokenCount??G,T=B.usageMetadata.candidatesTokenCount??T,P=B.usageMetadata.thoughtsTokenCount??P,_=B.usageMetadata.cachedContentTokenCount??_}let V=this.calculateGeminiCost(G,T,P,_);yield{type:"usage",inputTokens:G,outputTokens:T,thoughtsTokenCount:P,cacheReadTokens:_,cacheWriteTokens:0,totalCost:V,id:c},yield{type:"done",success:!0,id:c}}catch(W){if(W instanceof Error&&W.message.includes("429"))throw new Be(W.message,void 0,{cause:W});throw W}}calculateGeminiCost(e,t,i,a){return this.calculateCost(e,t+i,a)}}import sp from"openai";function Aa(e,t=!1){let i=t?e.map((a)=>a.role).lastIndexOf("user"):-1;return e.flatMap((a,n)=>op(a,t&&n===i))}function op(e,t){let{role:i,content:a}=e;if(typeof a==="string"){if(i!=="user"||!t)return[{role:i,content:a}];return[{role:i,content:[{type:"text",text:a,cache_control:{type:"ephemeral"}}]}]}if(i==="assistant")return[rp(a)];else return cp(a,t)}function rp(e){let t=[],i=[];for(let n of e)switch(n.type){case"text":t.push(n.text);break;case"tool_use":{let o=n;i.push({id:o.id,type:"function",function:{name:o.name,arguments:JSON.stringify(Z(o.input))}});break}case"thinking":break}let a={role:"assistant",content:t.length>0?t.join(`
|
|
13
|
+
`):null};if(i.length>0)a.tool_calls=i;return a}function cp(e,t){let i=[],a=e.filter((r)=>r.type==="tool_result");for(let r of a)i.push({role:"tool",tool_call_id:r.tool_use_id,content:re(r.content)});let n=e.filter((r)=>r.type!=="tool_result");if(n.length===0)return i;let o=[];for(let r of n)switch(r.type){case"text":o.push({type:"text",text:r.text});break;case"file":{let c=r;o.push({type:"text",text:Y(c.path,c.content)});break}case"image":{let c=r;o.push({type:"image_url",image_url:{url:`data:${c.mediaType};base64,${c.data}`}});break}}if(o.length===0)return i;if(t){for(let r=o.length-1;r>=0;r--)if(o[r].type==="text"){o[r]={...o[r],cache_control:{type:"ephemeral"}};break}}return i.push({role:"user",content:o.length===1&&o[0].type==="text"&&!t?o[0].text:o}),i}function Ui(e){if(!e||typeof e!=="object"||Array.isArray(e))return e;let t={...e};if(delete t.$schema,t.type==="object"){t.additionalProperties=!1;let i=t.properties,a=t.required??[];if(i){let n=Object.keys(i),o=new Set(a),r={};for(let c of n){let s=Ui(i[c]);if(!o.has(c))s={anyOf:[s,{type:"null"}]};r[c]=s}t.properties=r,t.required=n}}if(t.items)t.items=Array.isArray(t.items)?t.items.map((i)=>Ui(i)):Ui(t.items);for(let i of["anyOf","oneOf","allOf"])if(Array.isArray(t[i]))t[i]=t[i].map((a)=>Ui(a));return t}function Cn(e,t){let i=t?.strict??!0;return e.map((a)=>({type:"function",function:{name:a.name,description:a.description,parameters:Ui(a.inputSchema),strict:i}}))}function Yi(e,t){if(!e||e.length===0)return{};return{tools:Cn(e,t),tool_choice:"auto"}}class Mt{toolCalls=new Map;processToolCallDeltas(e,t){let i=[];for(let a of e){let{index:n,id:o}=a,r=a.function,c=this.toolCalls.get(n);if(!c)c={id:"",name:"",arguments:""},this.toolCalls.set(n,c);if(o)c.id=o;if(r?.name)c.name=r.name;let s=r?.arguments,u=this.normalizeArgumentsDelta(c.arguments,s);if(u)c.arguments+=u;if(c.id&&c.name)i.push({type:"tool_calls",id:t,tool_call:{call_id:c.id,function:{id:c.id,name:c.name,arguments:u}}})}return i}getToolCalls(){return Array.from(this.toolCalls.values()).map((e)=>({call_id:e.id,function:{id:e.id,name:e.name,arguments:e.arguments}}))}reset(){this.toolCalls.clear()}normalizeArgumentsDelta(e,t){if(t==null)return"";let i=typeof t==="string"?t:JSON.stringify(t);if(!i)return"";if(e&&i.length>=e.length&&i.startsWith(e))return i.slice(e.length);return i}}var pp="medium";class Ne extends C{client;ensureClient(){if(!this.client){let e=this.config.baseUrl;if(!e)throw Error("Base URL is required. Set baseUrl in config.");let t=$(this.config.providerId,this.config.apiKey);if(!t)throw Error(ce(this.config.providerId));let i=this.getRequestHeaders();this.client=new sp({apiKey:t,baseURL:e,defaultHeaders:i})}return this.client}getModel(){let e=this.config.modelId;if(!e)throw Error("Model ID is required. Set modelId in config.");let t=this.config.modelInfo??this.config.knownModels?.[e]??this.getDefaultModelInfo();return{id:e,info:{...t,id:e}}}getDefaultModelInfo(){let e=this.config.capabilities?.includes("prompt-cache")?["prompt-cache"]:[];return{id:this.config.modelId,capabilities:e}}getMessages(e,t){let i=this.getModel(),a=this.supportsPromptCache(i.info);return[a?{role:"system",content:[{type:"text",text:e,cache_control:{type:"ephemeral"}}]}:{role:"system",content:e},...Aa(t,a)]}async*createMessage(e,t,i){yield*F(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=this.ensureClient(),{id:n,info:o}=this.getModel(),r=this.createResponseId(),c=this.getMessages(e,t),s={model:n,messages:c,stream:!0,stream_options:{include_usage:!0},...Yi(i,{strict:this.config.providerId!=="openrouter"})};if(this.config.providerId==="openrouter"&&n.startsWith("anthropic/"))s.cache_control={type:"ephemeral"};let u=o.maxTokens??this.config.maxOutputTokens;if(u)s.max_completion_tokens=u;if(!(o.capabilities?.includes("reasoning")??!1))s.temperature=o.temperature??0;let D=o.capabilities?.includes("reasoning-effort")||o.capabilities?.includes("reasoning")||!1,R=this.config.reasoningEffort??(this.config.thinking?pp:void 0);if(D&&R)s.reasoning_effort=R;let f=this.getRequestHeaders(),O=Object.keys(f).some((P)=>P.toLowerCase()==="authorization"),A=$(this.config.providerId,this.config.apiKey);if(!O&&A)f.Authorization=`Bearer ${A}`;let W=this.getAbortSignal(),G;try{G=await a.chat.completions.create(s,{signal:W,headers:f})}catch(P){throw this.normalizeOpenAICompatibleBadRequest(P)??P}let T=new Mt,_=null;for await(let P of G){let Q=P.choices?.[0];if(Q?.finish_reason)_=Q.finish_reason;yield*this.withResponseIdForAll(this.processChunk(P,T,o,r),r)}yield{type:"done",success:!0,id:r,incompleteReason:_==="length"?"max_tokens":void 0}}*processChunk(e,t,i,a){let n=e.choices?.[0]?.delta,o=n&&{...n,reasoning_content:n.reasoning_content};if(o?.content)yield{type:"text",text:o.content,id:a};if(o?.reasoning_content)yield{type:"reasoning",reasoning:o.reasoning_content,id:a};if(o?.tool_calls)yield*t.processToolCallDeltas(o.tool_calls.map((r)=>({index:r.index,id:r.id,function:r.function})),a);if(e.usage){let r=e.usage.prompt_tokens??0,c=e.usage.completion_tokens??0,s=e.usage,u=s.prompt_tokens_details?.cached_tokens??s.cache_read_input_tokens??0,x=s.prompt_tokens_details?.cache_write_tokens??s.cache_creation_input_tokens??0;yield{type:"usage",inputTokens:Math.max(0,r-u-x),outputTokens:c,cacheReadTokens:u,cacheWriteTokens:x,totalCost:this.calculateCostFromInclusiveInput(r,c,u,x),id:a}}}}import up from"openai";var mp="medium";function lp(e,t){if(!e?.length)return;return e.map((i)=>({type:"function",name:i.name,description:i.description,parameters:i.inputSchema}))}function dp(e){let t=[],i=(o,r)=>{let c=r.map((s)=>s.text).join(`
|
|
14
|
+
`);if(!c)return;t.push({type:"message",role:o,content:[{type:o==="user"?"input_text":"output_text",text:c}]})},a=(o)=>o.type==="text",n=(o)=>o.call_id?.trim()||o.id;for(let o of e){if(o.role!=="user"&&o.role!=="assistant")continue;if(!Array.isArray(o.content)){if(o.content)i(o.role,[{type:"text",text:o.content}]);continue}let r=[],c=()=>{if(r.length===0)return;i(o.role,r),r=[]};for(let s of o.content){if(a(s)){r.push(s);continue}if(o.role==="assistant"&&s.type==="tool_use"){c();let u=s;t.push({type:"function_call",call_id:n(u),name:u.name,arguments:JSON.stringify(Z(u.input))});continue}if(o.role==="user"&&s.type==="tool_result")c(),t.push({type:"function_call_output",call_id:s.tool_use_id,output:re(s.content)})}c()}return t}class ye extends C{client;ensureClient(){if(!this.client){let e=this.config.baseUrl;if(!e)throw Error("Base URL is required. Set baseUrl in config.");let t=$(this.config.providerId,this.config.apiKey);if(!t)throw Error(ce(this.config.providerId));let i=this.getRequestHeaders(),a=Object.keys(i).some((n)=>n.toLowerCase()==="authorization");this.client=new up({apiKey:t,baseURL:e,defaultHeaders:a?i:{...i,Authorization:`Bearer ${t}`}})}return this.client}getModel(){let e=this.config.modelId;if(!e)throw Error("Model ID is required. Set modelId in config.");let t=this.config.modelInfo??this.config.knownModels?.[e]??this.getDefaultModelInfo();return{id:e,info:{...t,id:e}}}getDefaultModelInfo(){let e=[].filter((t)=>t!=="prompt-cache");return{id:this.config.modelId,capabilities:e}}getMessages(e,t){return dp(t)}async*createMessage(e,t,i){yield*F(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=this.ensureClient(),{id:n,info:o}=this.getModel(),r=this.getAbortSignal(),c=this.createResponseId(),s,u=new Map,x=this.getMessages(e,t),D=lp(i,{stripFormat:this.config.providerId==="openai-codex"});if(!D?.length)throw Error("OpenAI Responses API requires tools to be provided. Enable native tool calling in settings.");let R=o.capabilities?.includes("reasoning")??!1,f=this.config.reasoningEffort??(this.config.thinking?mp:void 0),O=R&&f?{effort:f,summary:"auto"}:void 0,A=this.getRequestHeaders(),W=Object.keys(A).some((_)=>_.toLowerCase()==="authorization"),G=$(this.config.providerId,this.config.apiKey);if(!W&&G)A.Authorization=`Bearer ${G}`;if(this.config.providerId==="openai-codex"&&typeof this.config.accountId==="string"&&this.config.accountId.trim().length>0){let _=this.config.accountId.trim();A["chatgpt-account-id"]=_,A["openai-account-id"]=_}let T;try{T=await a.responses.create({model:n,instructions:e,input:x,store:this.config.providerId==="openai-codex"?!1:void 0,stream:!0,tools:D,reasoning:O},{signal:r,headers:A})}catch(_){let P=this.normalizeOpenAICompatibleBadRequest(_);if(P)throw P;if(this.config.providerId==="openai-codex"){let Q=_;if((Q?.status??Q?.response?.status??(typeof Q?.message==="string"&&Q.message.includes("400")?400:void 0))===400){let B=Q?.error?.detail??Q?.error?.message??(typeof Q?.message==="string"?Q.message:"");throw Error(`OpenAI Codex request was rejected (HTTP 400). ${B?`Detail: ${B}`:"Re-run 'clite auth openai-codex', verify model access, and ensure accountId is present in provider settings."}`,{cause:_})}}throw _}for await(let _ of T){let P=this.getApiResponseId(_);if(P)s=P;yield*this.processResponseChunk(_,o,s??c,u)}}*processResponseChunk(e,t,i,a){switch(e.type){case"response.output_item.added":{let n=e.item;if(n.type==="function_call"&&n.id)a.set(n.id,{callId:n.call_id,name:n.name}),yield{type:"tool_calls",id:n.id||i,tool_call:{call_id:n.call_id,function:{id:n.id,name:n.name,arguments:n.arguments}}};if(n.type==="reasoning"&&n.encrypted_content&&n.id)yield{type:"reasoning",id:n.id||i,reasoning:"",redacted_data:n.encrypted_content};break}case"response.output_item.done":{let n=e.item;if(n.type==="function_call"){if(n.id)a.set(n.id,{callId:n.call_id,name:n.name});yield{type:"tool_calls",id:n.id||i,tool_call:{call_id:n.call_id,function:{id:n.id,name:n.name,arguments:n.arguments}}}}if(n.type==="reasoning")yield{type:"reasoning",id:n.id||i,details:n.summary,reasoning:""};break}case"response.reasoning_summary_part.added":yield{type:"reasoning",id:e.item_id||i,reasoning:e.part?.text||""};break;case"response.reasoning_summary_text.delta":yield{type:"reasoning",id:e.item_id||i,reasoning:e.delta||""};break;case"response.reasoning_summary_part.done":yield{type:"reasoning",id:e.item_id||i,details:e.part,reasoning:""};break;case"response.output_text.delta":if(e.delta)yield{id:e.item_id||i,type:"text",text:e.delta};break;case"response.reasoning_text.delta":if(e.delta)yield{id:e.item_id||i,type:"reasoning",reasoning:e.delta};break;case"response.function_call_arguments.delta":{let n=e.item_id?a.get(e.item_id):void 0;yield{type:"tool_calls",id:e.item_id||i,tool_call:{call_id:n?.callId,function:{id:e.item_id,name:n?.name,arguments:e.delta}}}}break;case"response.function_call_arguments.done":if(e.item_id&&e.arguments){let n=a.get(e.item_id);yield{type:"tool_calls",id:e.item_id||i,tool_call:{call_id:e.call_id??n?.callId,function:{id:e.item_id,name:e.name??n?.name,arguments:e.arguments}}}}break;case"response.incomplete":{yield{type:"done",success:!1,incompleteReason:e.response?.incomplete_details?.reason,id:e.response?.id||i};break}case"response.failed":{yield{type:"done",success:!1,error:e.response?.error?.message||"Unknown error",id:e.response?.id||i};break}case"response.completed":{if(e.response?.usage){let n=e.response.usage,o=n.input_tokens||0,r=n.output_tokens||0,c=n.input_tokens_details?.cached_tokens||0,s=0,u=this.calculateCostFromInclusiveInput(o,r,c,0);yield{type:"usage",inputTokens:Math.max(0,o-c-0),outputTokens:r,cacheWriteTokens:0,cacheReadTokens:c,totalCost:u,id:e.response.id||i}}yield{type:"done",success:!0,id:e.response?.id||i};break}}}getApiResponseId(e){if(typeof e?.response?.id==="string"&&e.response.id.length>0)return e.response.id;if(typeof e?.response_id==="string"&&e.response_id.length>0)return e.response_id;return}}import q1 from"openai";var ft=new Map;function Oa(e,t){ft.set(e,{factory:t,isAsync:!1})}function La(e,t){ft.set(e,{factory:t,isAsync:!0})}function Ue(e){return ft.has(e)}function Sa(e,t){let i=ft.get(e);if(!i)return;if(i.isAsync)throw Error(`Handler for "${e}" is registered as async. Use getRegisteredHandlerAsync() or createHandlerAsync() instead.`);return i.factory(t)}async function Ca(e,t){let i=ft.get(e);if(!i)return;if(i.isAsync)return i.factory(t);return i.factory(t)}function Qa(e){return ft.get(e)?.isAsync??!1}var gp="us-central1";function Br(e){return e.toLowerCase().includes("claude")}function xp(e){if(!e||e.length===0)return;let t=Re(e);return Object.fromEntries(t.map((i)=>[i.name,{description:i.description,inputSchema:i.input_schema}]))}function hp(e,t,i){let a=i?.promptCacheOn?[{type:"text",text:e,providerOptions:{anthropic:{cacheControl:{type:"ephemeral"}}}}]:e;return Tt(a,t,{assistantToolCallArgKey:"input"})}class ji extends C{geminiHandler;vertexAnthropicModelFactory;vertexAnthropicModelFactoryPromise;getProjectId(){let e=this.config.gcp?.projectId?.trim();if(!e)throw Error("Vertex provider requires `gcp.projectId` in provider configuration.");return e}getConfiguredRegion(){return this.config.gcp?.region?.trim()||this.config.region?.trim()}getRequiredClaudeRegion(){let e=this.getConfiguredRegion();if(!e)throw Error("Vertex Claude models require `gcp.region` (or `region`) in provider configuration.");return e}getGeminiRegion(){return this.getConfiguredRegion()??gp}ensureGeminiHandler(){if(!this.geminiHandler){let e=this.getProjectId(),t=this.getGeminiRegion();this.geminiHandler=new Ve({...this.config,region:t,gcp:{...this.config.gcp,projectId:e,region:t}})}return this.geminiHandler}async ensureVertexAnthropicModelFactory(){if(this.vertexAnthropicModelFactory)return this.vertexAnthropicModelFactory;if(!this.vertexAnthropicModelFactoryPromise)this.vertexAnthropicModelFactoryPromise=import("@ai-sdk/google-vertex/anthropic").then((e)=>{let t=e.createVertexAnthropic({project:this.getProjectId(),location:this.getRequiredClaudeRegion(),headers:this.getRequestHeaders(),baseURL:this.config.baseUrl}),i=(a)=>t(a);return this.vertexAnthropicModelFactory=i,i});try{return await this.vertexAnthropicModelFactoryPromise}catch(e){if(this.vertexAnthropicModelFactoryPromise=void 0,e instanceof Error&&e.message.includes("@ai-sdk/google-vertex"))throw Error('Vertex Claude models require @ai-sdk/google-vertex at runtime. Install workspace dependencies before using provider "vertex".',{cause:e});throw e}}getModel(){return Sn(this.config)}getMessages(e,t){let i=this.getModel();if(!Br(i.id))return this.ensureGeminiHandler().getMessages(e,t);let a=this.supportsPromptCache(i.info);return kt(t,a)}async*createMessage(e,t,i){yield*F(()=>this.createMessageInternal(e,t,i))}async*createMessageInternal(e,t,i){let a=this.getModel();if(!Br(a.id)){yield*this.ensureGeminiHandler().createMessage(e,t,i);return}let n=await Ea(),o=await this.ensureVertexAnthropicModelFactory(),r=this.createResponseId(),c=this.config.thinkingBudgetTokens??0,s=qe(a.info,"reasoning")&&c>0,u=this.supportsPromptCache(a.info),x={};if(s)x.anthropic={thinking:{type:"enabled",budgetTokens:c}};let D=n.streamText({model:o(a.id),messages:hp(e,t,{promptCacheOn:u}),tools:xp(i),maxTokens:a.info.maxTokens??this.config.maxOutputTokens??128000,temperature:s?void 0:0,providerOptions:Object.keys(x).length>0?x:void 0,abortSignal:this.getAbortSignal()});yield*_a(D,{responseId:r,errorMessage:"Vertex Anthropic stream failed",calculateCost:(R,f,O,A)=>this.calculateCost(R,f,O,A),reasoningTypes:["reasoning-delta"],enableToolCalls:!0,toolCallArgsOrder:["input","args"],toolCallFunctionIncludeId:!0,resolveUsageMetrics:(R,f)=>{let A=(f?.providerMetadata??{}).anthropic??{};return{inputTokens:z(R.inputTokens),outputTokens:z(R.outputTokens),thoughtsTokenCount:z(R.reasoningTokens??R.thoughtsTokenCount),cacheReadTokens:z(R.cachedInputTokens??A.cacheReadInputTokens),cacheWriteTokens:z(A.cacheCreationInputTokens)}}})}}import{JSONParser as _5}from"@streamparser/json";pi();function Vr(e){let t=y(e.providerId);if(t===e.providerId)return e;return{...e,providerId:t}}function Kp(e,t){if(e.baseUrl)return e.baseUrl;if(e.oca?.mode==="internal")return ae;return t?.baseUrl??I}function qp(e){let t=e.modelId;return e.modelInfo?.apiFormat??(t?e.knownModels?.[t]?.apiFormat:void 0)}function Bp(e){if(qp(e)===ee.OPENAI_RESPONSES)return new ye(e);return new Ne(e)}function Nr(e,t){return{...e,baseUrl:e.providerId==="oca"?Kp(e,t):e.baseUrl??t.baseUrl,modelId:e.modelId??t.modelId,knownModels:e.knownModels??t.knownModels,capabilities:e.capabilities??t.capabilities}}var Vp={asksage:(e)=>new Fi(e),anthropic:(e)=>new Qi(e),bedrock:(e)=>new Ma(e),"claude-code":(e)=>new qi(e),gemini:(e)=>new Ve(e),vertex:(e)=>new ji(e),opencode:(e)=>new Bi(e),"openai-native":(e)=>new ye(e),mistral:(e)=>new Ni(e),dify:(e)=>new yi(e)};function yr(e){if(e.providerId==="openai-codex")return new Ki(e);if(e.providerId==="sapaicore")return new Vi(e);if(e.providerId==="oca")return Bp(e);return new Ne(e)}function Np(e){let t=Vp[e.providerId];return t?t(e):void 0}function $i(e){let t=Vr(e),{providerId:i}=t;if(Ue(i)){if(Qa(i))throw Error(`Handler for "${i}" is registered as async. Use createHandlerAsync() instead.`);let n=Sa(i,t);if(n)return n}let a=Np(t);if(a)return a;if(Si(i)){if(t.modelCatalog?.loadLatestOnInit||t.modelCatalog?.loadPrivateOnAuth)throw Error(`Provider "${i}" has runtime model refresh enabled. Use createHandlerAsync() to allow async model refresh.`);let n=J[i];return yr(Nr(t,n))}return t.baseUrl?new Ne(t):new ye({...t,baseUrl:"https://api.openai.com/v1"})}async function Fa(e){let t=Vr(e),{providerId:i}=t;if(Ue(i)){let a=await Ca(i,t);if(a)return a}if(Si(i)){let a=await Dt(i,t.modelCatalog,t);if(a)return yr(Nr(t,a))}return $i(t)}var Qn=[...new Set([Ae.provider.id,"anthropic","asksage","bedrock","claude-code","opencode","mistral","dify","openai-native","gemini","vertex",...Object.keys(J)])],yp=new Set(Qn);function Ur(e){let t=y(e);return yp.has(t)||Ue(t)||Ue(e)}function jr(e){return e?{...e}:{}}function Up(e,t){if(e)return e;if(!t)return;let i=globalThis.process;if(!i?.env)return;return i.env[t]}function $r(e,t){if(!t.length)throw Error(`Provider "${e}" must include at least one model.`)}class Xr{providerConfigs=new Map;constructor(e){this.applyConfig(e)}createHandler(e){return $i(this.toProviderHandlerConfig(e))}async createHandlerAsync(e){return Fa(this.toProviderHandlerConfig(e))}toProviderHandlerConfig(e){let t=this.requireConfiguredProvider(e.providerId),i=e.modelId??t.defaultModel;if(!t.models.has(i))throw Error(`Model "${i}" is not configured for provider "${e.providerId}".`);return{providerId:e.providerId,modelId:i,...t.defaults,...e.overrides}}registerProvider(e){if(la(e.collection),e.handlerFactory&&e.asyncHandlerFactory)throw Error(`Provider "${e.collection.provider.id}" cannot register both sync and async handlers.`);if(e.handlerFactory)Oa(e.collection.provider.id,e.handlerFactory);if(e.asyncHandlerFactory)La(e.collection.provider.id,e.asyncHandlerFactory);let t=e.exposeModels??Object.keys(e.collection.models);$r(e.collection.provider.id,t);let i=this.providerConfigs.get(e.collection.provider.id),a=e.defaultModel??e.collection.provider.defaultModelId??t[0];if(!a)throw Error(`Provider "${e.collection.provider.id}" must define a default model.`);if(!t.includes(a))throw Error(`Default model "${a}" is not included in configured models for "${e.collection.provider.id}".`);let n=new Set([...i?.models??[],...t]),o={...i?.defaults??{},...jr(e.defaults)};this.providerConfigs.set(e.collection.provider.id,{id:e.collection.provider.id,models:n,defaultModel:a,defaults:o})}registerModel(e){wt(e.providerId,e.modelId,e.info);let t=this.providerConfigs.get(e.providerId);if(!t){this.providerConfigs.set(e.providerId,{id:e.providerId,models:new Set([e.modelId]),defaultModel:e.modelId,defaults:{}});return}t.models.add(e.modelId)}getProviders(){return Array.from(this.providerConfigs.values()).map((e)=>({id:e.id,models:Array.from(e.models),defaultModel:e.defaultModel}))}getModels(e){return Array.from(this.requireConfiguredProvider(e).models)}isProviderConfigured(e){return this.providerConfigs.has(e)}isModelConfigured(e,t){return this.providerConfigs.get(e)?.models.has(t)??!1}applyConfig(e){for(let t of e.providers){if($r(t.id,t.models),t.defaultModel&&!t.models.includes(t.defaultModel))throw Error(`Default model "${t.defaultModel}" is not included in configured models for "${t.id}".`);let i=t.defaultModel??t.models[0];if(!i)throw Error(`Provider "${t.id}" must define a default model.`);let a=Up(t.apiKey,t.apiKeyEnv);this.providerConfigs.set(t.id,{id:t.id,models:new Set(t.models),defaultModel:i,defaults:{apiKey:a,baseUrl:t.baseUrl,headers:t.headers,timeoutMs:t.timeoutMs,capabilities:t.capabilities,...jr(t.settings)}})}for(let t of e.models??[])this.registerModel(t);for(let t of e.customProviders??[])this.registerProvider(t);for(let t of this.providerConfigs.values())if(!sa(t.id))throw Error(`Provider "${t.id}" is not known. Register it through customProviders/registerProvider or use a built-in provider ID.`)}requireConfiguredProvider(e){let t=this.providerConfigs.get(e);if(!t)throw Error(`Provider "${e}" is not configured in this SDK instance.`);return t}}function Yp(e){return new Xr(e)}export{nc as defineLlmsConfig,Yp as createLlmsSdk,Yr as LlmsProviders,rr as LlmsModels};
|