diff --git a/bmi-calculator.html b/bmi-calculator.html
new file mode 100644
index 00000000..4fd6a4b8
--- /dev/null
+++ b/bmi-calculator.html
@@ -0,0 +1,404 @@
+
+
+
+
+
+ BMI 指数计算器
+
+
+
+
+
BMI 指数计算器
+
输入身高体重,快速了解你的身体质量指数
+
+
+
+
+
+
+
+
+
+
--
+
--
+
--
+
+
+
+ 偏瘦
+ 正常
+ 偏胖
+ 肥胖
+
+
+
+
+
偏瘦:BMI < 18.5
+
正常:18.5 ≤ BMI < 24
+
偏胖:24 ≤ BMI < 28
+
肥胖:BMI ≥ 28
+
+
+
+
+
+
diff --git a/packages/ai/src/image-models.generated.ts b/packages/ai/src/image-models.generated.ts
index 563f02a1..09c74180 100644
--- a/packages/ai/src/image-models.generated.ts
+++ b/packages/ai/src/image-models.generated.ts
@@ -4,21 +4,21 @@
import type { ImagesApi, ImagesModel } from "./types.ts";
export const IMAGE_MODELS = {
- "openrouter": {
+ openrouter: {
"black-forest-labs/flux.2-flex": {
id: "black-forest-labs/flux.2-flex",
name: "Black Forest Labs: FLUX.2 Flex",
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"black-forest-labs/flux.2-klein-4b": {
id: "black-forest-labs/flux.2-klein-4b",
@@ -26,14 +26,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"black-forest-labs/flux.2-max": {
id: "black-forest-labs/flux.2-max",
@@ -41,14 +41,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"black-forest-labs/flux.2-pro": {
id: "black-forest-labs/flux.2-pro",
@@ -56,14 +56,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"bytedance-seed/seedream-4.5": {
id: "bytedance-seed/seedream-4.5",
@@ -71,14 +71,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["image","text"],
+ input: ["image", "text"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"google/gemini-2.5-flash-image": {
id: "google/gemini-2.5-flash-image",
@@ -86,14 +86,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["image","text"],
- output: ["image","text"],
- cost: {
- "input": 0.3,
- "output": 2.5,
- "cacheRead": 0.03,
- "cacheWrite": 0.08333333333333334
- }
+ input: ["image", "text"],
+ output: ["image", "text"],
+ cost: {
+ input: 0.3,
+ output: 2.5,
+ cacheRead: 0.03,
+ cacheWrite: 0.08333333333333334,
+ },
} satisfies ImagesModel<"openrouter-images">,
"google/gemini-3-pro-image-preview": {
id: "google/gemini-3-pro-image-preview",
@@ -101,14 +101,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["image","text"],
- output: ["image","text"],
- cost: {
- "input": 2,
- "output": 12,
- "cacheRead": 0.19999999999999998,
- "cacheWrite": 0.375
- }
+ input: ["image", "text"],
+ output: ["image", "text"],
+ cost: {
+ input: 2,
+ output: 12,
+ cacheRead: 0.19999999999999998,
+ cacheWrite: 0.375,
+ },
} satisfies ImagesModel<"openrouter-images">,
"google/gemini-3.1-flash-image-preview": {
id: "google/gemini-3.1-flash-image-preview",
@@ -116,14 +116,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["image","text"],
- output: ["image","text"],
- cost: {
- "input": 0.5,
- "output": 3,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ input: ["image", "text"],
+ output: ["image", "text"],
+ cost: {
+ input: 0.5,
+ output: 3,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"microsoft/mai-image-2.5": {
id: "microsoft/mai-image-2.5",
@@ -131,14 +131,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 5,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 5,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"openai/gpt-5-image": {
id: "openai/gpt-5-image",
@@ -146,14 +146,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["image","text"],
- output: ["image","text"],
- cost: {
- "input": 10,
- "output": 10,
- "cacheRead": 1.25,
- "cacheWrite": 0
- }
+ input: ["image", "text"],
+ output: ["image", "text"],
+ cost: {
+ input: 10,
+ output: 10,
+ cacheRead: 1.25,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"openai/gpt-5-image-mini": {
id: "openai/gpt-5-image-mini",
@@ -161,14 +161,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["image","text"],
- output: ["image","text"],
- cost: {
- "input": 2.5,
- "output": 2,
- "cacheRead": 0.25,
- "cacheWrite": 0
- }
+ input: ["image", "text"],
+ output: ["image", "text"],
+ cost: {
+ input: 2.5,
+ output: 2,
+ cacheRead: 0.25,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"openai/gpt-5.4-image-2": {
id: "openai/gpt-5.4-image-2",
@@ -176,14 +176,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["image","text"],
- output: ["image","text"],
- cost: {
- "input": 8,
- "output": 15,
- "cacheRead": 2,
- "cacheWrite": 0
- }
+ input: ["image", "text"],
+ output: ["image", "text"],
+ cost: {
+ input: 8,
+ output: 15,
+ cacheRead: 2,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"openrouter/auto": {
id: "openrouter/auto",
@@ -191,14 +191,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
- output: ["text","image"],
- cost: {
- "input": -1000000,
- "output": -1000000,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ input: ["text", "image"],
+ output: ["text", "image"],
+ cost: {
+ input: -1000000,
+ output: -1000000,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v3": {
id: "recraft/recraft-v3",
@@ -206,14 +206,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4": {
id: "recraft/recraft-v4",
@@ -221,14 +221,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4-pro": {
id: "recraft/recraft-v4-pro",
@@ -236,14 +236,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4-pro-vector": {
id: "recraft/recraft-v4-pro-vector",
@@ -251,14 +251,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4-vector": {
id: "recraft/recraft-v4-vector",
@@ -266,14 +266,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4.1": {
id: "recraft/recraft-v4.1",
@@ -281,14 +281,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4.1-pro": {
id: "recraft/recraft-v4.1-pro",
@@ -296,14 +296,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4.1-pro-vector": {
id: "recraft/recraft-v4.1-pro-vector",
@@ -311,14 +311,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4.1-utility": {
id: "recraft/recraft-v4.1-utility",
@@ -326,14 +326,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4.1-utility-pro": {
id: "recraft/recraft-v4.1-utility-pro",
@@ -341,14 +341,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"recraft/recraft-v4.1-vector": {
id: "recraft/recraft-v4.1-vector",
@@ -356,14 +356,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2-fast": {
id: "sourceful/riverflow-v2-fast",
@@ -371,14 +371,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2-fast-preview": {
id: "sourceful/riverflow-v2-fast-preview",
@@ -386,14 +386,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2-max-preview": {
id: "sourceful/riverflow-v2-max-preview",
@@ -401,14 +401,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2-pro": {
id: "sourceful/riverflow-v2-pro",
@@ -416,14 +416,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2-standard-preview": {
id: "sourceful/riverflow-v2-standard-preview",
@@ -431,14 +431,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2.5-fast": {
id: "sourceful/riverflow-v2.5-fast",
@@ -446,14 +446,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"sourceful/riverflow-v2.5-pro": {
id: "sourceful/riverflow-v2.5-pro",
@@ -461,14 +461,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
"x-ai/grok-imagine-image-quality": {
id: "x-ai/grok-imagine-image-quality",
@@ -476,14 +476,14 @@ export const IMAGE_MODELS = {
api: "openrouter-images",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
- input: ["text","image"],
+ input: ["text", "image"],
output: ["image"],
- cost: {
- "input": 0,
- "output": 0,
- "cacheRead": 0,
- "cacheWrite": 0
- }
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
} satisfies ImagesModel<"openrouter-images">,
},
} as const satisfies Record>>;
diff --git a/packages/ai/src/models.generated.ts b/packages/ai/src/models.generated.ts
index 3a9d0031..9eab1b2c 100644
--- a/packages/ai/src/models.generated.ts
+++ b/packages/ai/src/models.generated.ts
@@ -3733,6 +3733,24 @@ export const MODELS = {
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
+ "@cf/zai-org/glm-5.2": {
+ id: "@cf/zai-org/glm-5.2",
+ name: "Glm 5.2",
+ api: "openai-completions",
+ provider: "cloudflare-workers-ai",
+ baseUrl: "https://api.cloudflare.com/client/v4/accounts/{CLOUDFLARE_ACCOUNT_ID}/ai/v1",
+ compat: {"sendSessionAffinityHeaders":true},
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 1.4,
+ output: 4.4,
+ cacheRead: 0.26,
+ cacheWrite: 0,
+ },
+ contextWindow: 262144,
+ maxTokens: 262144,
+ } satisfies Model<"openai-completions">,
},
"deepseek": {
"deepseek-v4-flash": {
@@ -3787,7 +3805,7 @@ export const MODELS = {
cost: {
input: 0.14,
output: 0.28,
- cacheRead: 0.03,
+ cacheRead: 0.028,
cacheWrite: 0,
},
contextWindow: 1000000,
@@ -3829,6 +3847,24 @@ export const MODELS = {
contextWindow: 202800,
maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
+ "accounts/fireworks/models/glm-5p2": {
+ id: "accounts/fireworks/models/glm-5p2",
+ name: "GLM 5.2",
+ api: "anthropic-messages",
+ provider: "fireworks",
+ baseUrl: "https://api.fireworks.ai/inference",
+ compat: {"sendSessionAffinityHeaders":true,"supportsEagerToolInputStreaming":false,"supportsCacheControlOnTools":false,"supportsLongCacheRetention":false},
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 1.4,
+ output: 4.4,
+ cacheRead: 0.26,
+ cacheWrite: 0,
+ },
+ contextWindow: 1048576,
+ maxTokens: 131072,
+ } satisfies Model<"anthropic-messages">,
"accounts/fireworks/models/gpt-oss-120b": {
id: "accounts/fireworks/models/gpt-oss-120b",
name: "GPT OSS 120B",
@@ -4019,7 +4055,7 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
- input: 2,
+ input: 1.9,
output: 8,
cacheRead: 0.38,
cacheWrite: 0,
@@ -4444,25 +4480,6 @@ export const MODELS = {
contextWindow: 400000,
maxTokens: 128000,
} satisfies Model<"openai-responses">,
- "raptor-mini": {
- id: "raptor-mini",
- name: "Raptor mini",
- api: "openai-completions",
- provider: "github-copilot",
- baseUrl: "https://api.individual.githubcopilot.com",
- headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"},
- compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false},
- reasoning: true,
- input: ["text", "image"],
- cost: {
- input: 0.25,
- output: 2,
- cacheRead: 0.025,
- cacheWrite: 0,
- },
- contextWindow: 400000,
- maxTokens: 128000,
- } satisfies Model<"openai-completions">,
},
"google": {
"gemini-2.0-flash": {
@@ -4746,42 +4763,6 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"google-generative-ai">,
- "gemma-4-E2B-it": {
- id: "gemma-4-E2B-it",
- name: "Gemma 4 E2B IT",
- api: "google-generative-ai",
- provider: "google",
- baseUrl: "https://generativelanguage.googleapis.com/v1beta",
- reasoning: true,
- thinkingLevelMap: {"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"},
- input: ["text", "image"],
- cost: {
- input: 0,
- output: 0,
- cacheRead: 0,
- cacheWrite: 0,
- },
- contextWindow: 131072,
- maxTokens: 8192,
- } satisfies Model<"google-generative-ai">,
- "gemma-4-E4B-it": {
- id: "gemma-4-E4B-it",
- name: "Gemma 4 E4B IT",
- api: "google-generative-ai",
- provider: "google",
- baseUrl: "https://generativelanguage.googleapis.com/v1beta",
- reasoning: true,
- thinkingLevelMap: {"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"},
- input: ["text", "image"],
- cost: {
- input: 0,
- output: 0,
- cacheRead: 0,
- cacheWrite: 0,
- },
- contextWindow: 131072,
- maxTokens: 8192,
- } satisfies Model<"google-generative-ai">,
},
"google-vertex": {
"gemini-1.5-flash": {
@@ -6315,6 +6296,24 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
+ "kimi-k2.7-code-highspeed": {
+ id: "kimi-k2.7-code-highspeed",
+ name: "Kimi K2.7 Code HighSpeed",
+ api: "openai-completions",
+ provider: "moonshotai",
+ baseUrl: "https://api.moonshot.ai/v1",
+ compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false},
+ reasoning: true,
+ input: ["text", "image"],
+ cost: {
+ input: 1.9,
+ output: 8,
+ cacheRead: 0.38,
+ cacheWrite: 0,
+ },
+ contextWindow: 262144,
+ maxTokens: 262144,
+ } satisfies Model<"openai-completions">,
},
"moonshotai-cn": {
"kimi-k2-0711-preview": {
@@ -6443,6 +6442,42 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
+ "kimi-k2.7-code": {
+ id: "kimi-k2.7-code",
+ name: "Kimi K2.7 Code",
+ api: "openai-completions",
+ provider: "moonshotai-cn",
+ baseUrl: "https://api.moonshot.cn/v1",
+ compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false},
+ reasoning: true,
+ input: ["text", "image"],
+ cost: {
+ input: 0.95,
+ output: 4,
+ cacheRead: 0.19,
+ cacheWrite: 0,
+ },
+ contextWindow: 262144,
+ maxTokens: 262144,
+ } satisfies Model<"openai-completions">,
+ "kimi-k2.7-code-highspeed": {
+ id: "kimi-k2.7-code-highspeed",
+ name: "Kimi K2.7 Code HighSpeed",
+ api: "openai-completions",
+ provider: "moonshotai-cn",
+ baseUrl: "https://api.moonshot.cn/v1",
+ compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false},
+ reasoning: true,
+ input: ["text", "image"],
+ cost: {
+ input: 1.9,
+ output: 8,
+ cacheRead: 0.38,
+ cacheWrite: 0,
+ },
+ contextWindow: 262144,
+ maxTokens: 262144,
+ } satisfies Model<"openai-completions">,
},
"openai": {
"gpt-4": {
@@ -8110,23 +8145,6 @@ export const MODELS = {
contextWindow: 1000000,
maxTokens: 384000,
} satisfies Model<"openai-completions">,
- "glm-5": {
- id: "glm-5",
- name: "GLM-5",
- api: "openai-completions",
- provider: "opencode-go",
- baseUrl: "https://opencode.ai/zen/go/v1",
- reasoning: true,
- input: ["text"],
- cost: {
- input: 1,
- output: 3.2,
- cacheRead: 0.2,
- cacheWrite: 0,
- },
- contextWindow: 202752,
- maxTokens: 32768,
- } satisfies Model<"openai-completions">,
"glm-5.1": {
id: "glm-5.1",
name: "GLM-5.1",
@@ -8144,6 +8162,23 @@ export const MODELS = {
contextWindow: 202752,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
+ "glm-5.2": {
+ id: "glm-5.2",
+ name: "GLM-5.2",
+ api: "openai-completions",
+ provider: "opencode-go",
+ baseUrl: "https://opencode.ai/zen/go/v1",
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 1.4,
+ output: 4.4,
+ cacheRead: 0.26,
+ cacheWrite: 0,
+ },
+ contextWindow: 1000000,
+ maxTokens: 131072,
+ } satisfies Model<"openai-completions">,
"kimi-k2.6": {
id: "kimi-k2.6",
name: "Kimi K2.6",
@@ -8687,13 +8722,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
- input: 0.22,
- output: 0.85,
+ input: 0.25,
+ output: 0.7999999999999999,
cacheRead: 0.06,
cacheWrite: 0,
},
contextWindow: 262144,
- maxTokens: 262144,
+ maxTokens: 80000,
} satisfies Model<"openai-completions">,
"arcee-ai/trinity-mini": {
id: "arcee-ai/trinity-mini",
@@ -8848,6 +8883,23 @@ export const MODELS = {
contextWindow: 128000,
maxTokens: 4000,
} satisfies Model<"openai-completions">,
+ "cohere/north-mini-code:free": {
+ id: "cohere/north-mini-code:free",
+ name: "Cohere: North Mini Code (free)",
+ api: "openai-completions",
+ provider: "openrouter",
+ baseUrl: "https://openrouter.ai/api/v1",
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
+ contextWindow: 256000,
+ maxTokens: 64000,
+ } satisfies Model<"openai-completions">,
"deepseek/deepseek-chat": {
id: "deepseek/deepseek-chat",
name: "DeepSeek: DeepSeek V3",
@@ -9156,7 +9208,24 @@ export const MODELS = {
cacheWrite: 0.08333333333333334,
},
contextWindow: 1048576,
- maxTokens: 65536,
+ maxTokens: 65535,
+ } satisfies Model<"openai-completions">,
+ "google/gemini-3-pro-image": {
+ id: "google/gemini-3-pro-image",
+ name: "Google: Nano Banana Pro (Gemini 3 Pro Image)",
+ api: "openai-completions",
+ provider: "openrouter",
+ baseUrl: "https://openrouter.ai/api/v1",
+ reasoning: true,
+ input: ["text", "image"],
+ cost: {
+ input: 2,
+ output: 12,
+ cacheRead: 0.19999999999999998,
+ cacheWrite: 0.375,
+ },
+ contextWindow: 65536,
+ maxTokens: 32768,
} satisfies Model<"openai-completions">,
"google/gemini-3.1-flash-lite": {
id: "google/gemini-3.1-flash-lite",
@@ -9343,7 +9412,7 @@ export const MODELS = {
cacheWrite: 0,
},
contextWindow: 262144,
- maxTokens: 32768,
+ maxTokens: 8192,
} satisfies Model<"openai-completions">,
"ibm-granite/granite-4.1-8b": {
id: "ibm-granite/granite-4.1-8b",
@@ -9448,6 +9517,23 @@ export const MODELS = {
contextWindow: 256000,
maxTokens: 80000,
} satisfies Model<"openai-completions">,
+ "liquid/lfm-2.5-1.2b-thinking:free": {
+ id: "liquid/lfm-2.5-1.2b-thinking:free",
+ name: "LiquidAI: LFM2.5-1.2B-Thinking (free)",
+ api: "openai-completions",
+ provider: "openrouter",
+ baseUrl: "https://openrouter.ai/api/v1",
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 0,
+ output: 0,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
+ contextWindow: 32768,
+ maxTokens: 4096,
+ } satisfies Model<"openai-completions">,
"meta-llama/llama-3.1-70b-instruct": {
id: "meta-llama/llama-3.1-70b-instruct",
name: "Meta: Llama 3.1 70B Instruct",
@@ -10018,9 +10104,9 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
- input: 0.6799999999999999,
- output: 3.41,
- cacheRead: 0.33999999999999997,
+ input: 0.66,
+ output: 3.5,
+ cacheRead: 0.33,
cacheWrite: 0,
},
contextWindow: 262144,
@@ -10035,9 +10121,9 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
- input: 0.75,
- output: 3.5,
- cacheRead: 0.16,
+ input: 0.612,
+ output: 3.0690000000000004,
+ cacheRead: 0.1296,
cacheWrite: 0,
},
contextWindow: 262144,
@@ -10172,8 +10258,8 @@ export const MODELS = {
input: ["text"],
cost: {
input: 0.5,
- output: 2.5,
- cacheRead: 0.15,
+ output: 2.2,
+ cacheRead: 0.09999999999999999,
cacheWrite: 0,
},
contextWindow: 1000000,
@@ -10988,7 +11074,7 @@ export const MODELS = {
cacheWrite: 0,
},
contextWindow: 131072,
- maxTokens: 8192,
+ maxTokens: 32768,
} satisfies Model<"openai-completions">,
"openai/gpt-oss-safeguard-20b": {
id: "openai/gpt-oss-safeguard-20b",
@@ -11001,7 +11087,7 @@ export const MODELS = {
cost: {
input: 0.075,
output: 0.3,
- cacheRead: 0.037,
+ cacheRead: 0.0375,
cacheWrite: 0,
},
contextWindow: 131072,
@@ -11211,6 +11297,23 @@ export const MODELS = {
contextWindow: 1048756,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
+ "poolside/laguna-m.1": {
+ id: "poolside/laguna-m.1",
+ name: "Poolside: Laguna M.1",
+ api: "openai-completions",
+ provider: "openrouter",
+ baseUrl: "https://openrouter.ai/api/v1",
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 0.19999999999999998,
+ output: 0.39999999999999997,
+ cacheRead: 0.09999999999999999,
+ cacheWrite: 0,
+ },
+ contextWindow: 262144,
+ maxTokens: 32768,
+ } satisfies Model<"openai-completions">,
"poolside/laguna-m.1:free": {
id: "poolside/laguna-m.1:free",
name: "Poolside: Laguna M.1 (free)",
@@ -11228,6 +11331,23 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
+ "poolside/laguna-xs.2": {
+ id: "poolside/laguna-xs.2",
+ name: "Poolside: Laguna XS.2",
+ api: "openai-completions",
+ provider: "openrouter",
+ baseUrl: "https://openrouter.ai/api/v1",
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 0.09999999999999999,
+ output: 0.19999999999999998,
+ cacheRead: 0.049999999999999996,
+ cacheWrite: 0,
+ },
+ contextWindow: 262144,
+ maxTokens: 32768,
+ } satisfies Model<"openai-completions">,
"poolside/laguna-xs.2:free": {
id: "poolside/laguna-xs.2:free",
name: "Poolside: Laguna XS.2 (free)",
@@ -11279,6 +11399,23 @@ export const MODELS = {
contextWindow: 131072,
maxTokens: 16384,
} satisfies Model<"openai-completions">,
+ "qwen/qwen-2.5-7b-instruct": {
+ id: "qwen/qwen-2.5-7b-instruct",
+ name: "Qwen: Qwen2.5 7B Instruct",
+ api: "openai-completions",
+ provider: "openrouter",
+ baseUrl: "https://openrouter.ai/api/v1",
+ reasoning: false,
+ input: ["text"],
+ cost: {
+ input: 0.04,
+ output: 0.09999999999999999,
+ cacheRead: 0,
+ cacheWrite: 0,
+ },
+ contextWindow: 131072,
+ maxTokens: 32768,
+ } satisfies Model<"openai-completions">,
"qwen/qwen-plus": {
id: "qwen/qwen-plus",
name: "Qwen: Qwen-Plus",
@@ -11834,7 +11971,7 @@ export const MODELS = {
cost: {
input: 0.14,
output: 1,
- cacheRead: 0.049999999999999996,
+ cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
@@ -11849,13 +11986,13 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
- input: 0.39,
- output: 2.34,
+ input: 0.385,
+ output: 2.4499999999999997,
cacheRead: 0,
cacheWrite: 0,
},
- contextWindow: 262144,
- maxTokens: 65536,
+ contextWindow: 256000,
+ maxTokens: 4096,
} satisfies Model<"openai-completions">,
"qwen/qwen3.5-9b": {
id: "qwen/qwen3.5-9b",
@@ -11951,9 +12088,9 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
- input: 0.15,
+ input: 0.14,
output: 1,
- cacheRead: 0.049999999999999996,
+ cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
@@ -12248,23 +12385,6 @@ export const MODELS = {
contextWindow: 256000,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
- "xiaomi/mimo-v2-flash": {
- id: "xiaomi/mimo-v2-flash",
- name: "Xiaomi: MiMo-V2-Flash",
- api: "openai-completions",
- provider: "openrouter",
- baseUrl: "https://openrouter.ai/api/v1",
- reasoning: true,
- input: ["text"],
- cost: {
- input: 0.09999999999999999,
- output: 0.3,
- cacheRead: 0.01,
- cacheWrite: 0,
- },
- contextWindow: 262144,
- maxTokens: 65536,
- } satisfies Model<"openai-completions">,
"xiaomi/mimo-v2.5": {
id: "xiaomi/mimo-v2.5",
name: "Xiaomi: MiMo-V2.5",
@@ -12325,13 +12445,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
- input: 0.125,
+ input: 0.13,
output: 0.85,
- cacheRead: 0.06,
+ cacheRead: 0.024999999999999998,
cacheWrite: 0,
},
contextWindow: 131072,
- maxTokens: 131070,
+ maxTokens: 98304,
} satisfies Model<"openai-completions">,
"z-ai/glm-4.5v": {
id: "z-ai/glm-4.5v",
@@ -12463,11 +12583,28 @@ export const MODELS = {
cost: {
input: 0.98,
output: 3.08,
- cacheRead: 0.182,
+ cacheRead: 0.49,
cacheWrite: 0,
},
contextWindow: 202752,
- maxTokens: 4096,
+ maxTokens: 65535,
+ } satisfies Model<"openai-completions">,
+ "z-ai/glm-5.2": {
+ id: "z-ai/glm-5.2",
+ name: "Z.ai: GLM 5.2",
+ api: "openai-completions",
+ provider: "openrouter",
+ baseUrl: "https://openrouter.ai/api/v1",
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 1.2,
+ output: 4.1,
+ cacheRead: 0.19999999999999998,
+ cacheWrite: 0,
+ },
+ contextWindow: 1048576,
+ maxTokens: 131072,
} satisfies Model<"openai-completions">,
"~anthropic/claude-fable-latest": {
id: "~anthropic/claude-fable-latest",
@@ -12580,9 +12717,9 @@ export const MODELS = {
reasoning: true,
input: ["text", "image"],
cost: {
- input: 0.6799999999999999,
- output: 3.41,
- cacheRead: 0.33999999999999997,
+ input: 0.66,
+ output: 3.5,
+ cacheRead: 0.33,
cacheWrite: 0,
},
contextWindow: 262144,
@@ -12765,8 +12902,8 @@ export const MODELS = {
reasoning: false,
input: ["text"],
cost: {
- input: 2.5,
- output: 7.5,
+ input: 1.25,
+ output: 3.75,
cacheRead: 0,
cacheWrite: 0,
},
@@ -14421,13 +14558,13 @@ export const MODELS = {
reasoning: false,
input: ["text"],
cost: {
- input: 0.02,
- output: 0.04,
+ input: 0.15,
+ output: 0.15,
cacheRead: 0,
cacheWrite: 0,
},
- contextWindow: 131072,
- maxTokens: 131072,
+ contextWindow: 128000,
+ maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"mistral/mistral-small": {
id: "mistral/mistral-small",
@@ -14565,6 +14702,23 @@ export const MODELS = {
contextWindow: 256000,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
+ "moonshotai/kimi-k2.7-code-highspeed": {
+ id: "moonshotai/kimi-k2.7-code-highspeed",
+ name: "Kimi K2.7 Code High Speed",
+ api: "anthropic-messages",
+ provider: "vercel-ai-gateway",
+ baseUrl: "https://ai-gateway.vercel.sh",
+ reasoning: true,
+ input: ["text", "image"],
+ cost: {
+ input: 1.9,
+ output: 8,
+ cacheRead: 0.38,
+ cacheWrite: 0,
+ },
+ contextWindow: 262144,
+ maxTokens: 32768,
+ } satisfies Model<"anthropic-messages">,
"nvidia/nemotron-3-super-120b-a12b": {
id: "nvidia/nemotron-3-super-120b-a12b",
name: "NVIDIA Nemotron 3 Super 120B A12B",
@@ -15336,8 +15490,8 @@ export const MODELS = {
cost: {
input: 0.09,
output: 0.3,
- cacheRead: 0,
- cacheWrite: 0.02,
+ cacheRead: 0.02,
+ cacheWrite: 0,
},
contextWindow: 262114,
maxTokens: 262114,
@@ -15801,6 +15955,23 @@ export const MODELS = {
contextWindow: 202800,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
+ "zai/glm-5.2": {
+ id: "zai/glm-5.2",
+ name: "GLM 5.2",
+ api: "anthropic-messages",
+ provider: "vercel-ai-gateway",
+ baseUrl: "https://ai-gateway.vercel.sh",
+ reasoning: true,
+ input: ["text"],
+ cost: {
+ input: 1.5,
+ output: 4.5,
+ cacheRead: 0.3,
+ cacheWrite: 0,
+ },
+ contextWindow: 1000000,
+ maxTokens: 128000,
+ } satisfies Model<"anthropic-messages">,
"zai/glm-5v-turbo": {
id: "zai/glm-5v-turbo",
name: "GLM 5V Turbo",