From afff74eb2c9fc3808a9795f365707f32853099e9 Mon Sep 17 00:00:00 2001 From: opencode Date: Tue, 30 Jun 2026 19:48:01 +0000 Subject: [PATCH 1/9] sync release versions for v1.17.12 --- bun.lock | 54 ++++++++++----------- packages/app/package.json | 2 +- packages/cli/package.json | 2 +- packages/console/app/package.json | 2 +- packages/console/core/package.json | 2 +- packages/console/function/package.json | 2 +- packages/console/mail/package.json | 2 +- packages/console/support/package.json | 2 +- packages/core/package.json | 2 +- packages/desktop/package.json | 2 +- packages/effect-drizzle-sqlite/package.json | 2 +- packages/effect-sqlite-node/package.json | 2 +- packages/enterprise/package.json | 2 +- packages/function/package.json | 2 +- packages/http-recorder/package.json | 2 +- packages/llm/package.json | 2 +- packages/opencode/package.json | 2 +- packages/plugin/package.json | 2 +- packages/sdk/js/package.json | 2 +- packages/server/package.json | 2 +- packages/session-ui/package.json | 2 +- packages/slack/package.json | 2 +- packages/stats/app/package.json | 2 +- packages/stats/core/package.json | 2 +- packages/stats/server/package.json | 2 +- packages/tui/package.json | 2 +- packages/ui/package.json | 2 +- packages/web/package.json | 2 +- sdks/vscode/package.json | 2 +- 29 files changed, 55 insertions(+), 55 deletions(-) diff --git a/bun.lock b/bun.lock index aabc44e32f..c72fe6a280 100644 --- a/bun.lock +++ b/bun.lock @@ -29,7 +29,7 @@ }, "packages/app": { "name": "@opencode-ai/app", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@dnd-kit/abstract": "0.5.0", "@dnd-kit/dom": "0.5.0", @@ -92,7 +92,7 @@ }, "packages/cli": { "name": "@opencode-ai/cli", - "version": "1.17.11", + "version": "1.17.12", "bin": { "lildax": "./bin/lildax.cjs", }, @@ -140,7 +140,7 @@ }, "packages/console/app": { "name": "@opencode-ai/console-app", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@ibm/plex": "6.4.1", @@ -176,7 +176,7 @@ }, "packages/console/core": { "name": "@opencode-ai/console-core", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@aws-sdk/client-sts": "3.782.0", "@jsx-email/render": "1.1.1", @@ -203,7 +203,7 @@ }, "packages/console/function": { "name": "@opencode-ai/console-function", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@ai-sdk/anthropic": "3.0.82", "@ai-sdk/openai": "3.0.48", @@ -225,7 +225,7 @@ }, "packages/console/mail": { "name": "@opencode-ai/console-mail", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", @@ -249,7 +249,7 @@ }, "packages/console/support": { "name": "@opencode-ai/console-support", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@cloudflare/vite-plugin": "1.15.2", "@opencode-ai/console-core": "workspace:*", @@ -269,7 +269,7 @@ }, "packages/core": { "name": "@opencode-ai/core", - "version": "1.17.11", + "version": "1.17.12", "bin": { "opencode": "./bin/opencode", }, @@ -363,7 +363,7 @@ }, "packages/desktop": { "name": "@opencode-ai/desktop", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@zip.js/zip.js": "2.7.62", "effect": "catalog:", @@ -417,7 +417,7 @@ }, "packages/effect-drizzle-sqlite": { "name": "@opencode-ai/effect-drizzle-sqlite", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "drizzle-orm": "catalog:", "effect": "catalog:", @@ -431,7 +431,7 @@ }, "packages/effect-sqlite-node": { "name": "@opencode-ai/effect-sqlite-node", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "effect": "catalog:", }, @@ -443,7 +443,7 @@ }, "packages/enterprise": { "name": "@opencode-ai/enterprise", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@hono/standard-validator": "catalog:", "@opencode-ai/core": "workspace:*", @@ -475,7 +475,7 @@ }, "packages/function": { "name": "@opencode-ai/function", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@octokit/auth-app": "8.0.1", "@octokit/rest": "catalog:", @@ -491,7 +491,7 @@ }, "packages/http-recorder": { "name": "@opencode-ai/http-recorder", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@effect/platform-node": "4.0.0-beta.83", "@effect/platform-node-shared": "4.0.0-beta.83", @@ -522,7 +522,7 @@ }, "packages/llm": { "name": "@opencode-ai/llm", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@opencode-ai/schema": "workspace:*", "@smithy/eventstream-codec": "4.2.14", @@ -541,7 +541,7 @@ }, "packages/opencode": { "name": "opencode", - "version": "1.17.11", + "version": "1.17.12", "bin": { "opencode": "./bin/opencode", }, @@ -671,7 +671,7 @@ }, "packages/plugin": { "name": "@opencode-ai/plugin", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@ai-sdk/provider": "3.0.8", "@opencode-ai/sdk": "workspace:*", @@ -747,7 +747,7 @@ }, "packages/sdk/js": { "name": "@opencode-ai/sdk", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "cross-spawn": "catalog:", }, @@ -762,7 +762,7 @@ }, "packages/server": { "name": "@opencode-ai/server", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@opencode-ai/core": "workspace:*", "@opencode-ai/protocol": "workspace:*", @@ -777,7 +777,7 @@ }, "packages/session-ui": { "name": "@opencode-ai/session-ui", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@kobalte/core": "catalog:", "@opencode-ai/core": "workspace:*", @@ -821,7 +821,7 @@ }, "packages/slack": { "name": "@opencode-ai/slack", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@opencode-ai/sdk": "workspace:*", "@slack/bolt": "^3.17.1", @@ -834,7 +834,7 @@ }, "packages/stats/app": { "name": "@opencode-ai/stats-app", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@ibm/plex": "6.4.1", "@opencode-ai/stats-core": "workspace:*", @@ -867,7 +867,7 @@ }, "packages/stats/core": { "name": "@opencode-ai/stats-core", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@aws-sdk/client-athena": "3.933.0", "@planetscale/database": "1.19.0", @@ -886,7 +886,7 @@ }, "packages/stats/server": { "name": "@opencode-ai/stats-server", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@aws-sdk/client-firehose": "3.933.0", "@effect/platform-node": "catalog:", @@ -927,7 +927,7 @@ }, "packages/tui": { "name": "@opencode-ai/tui", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@opencode-ai/core": "workspace:*", "@opencode-ai/plugin": "workspace:*", @@ -954,7 +954,7 @@ }, "packages/ui": { "name": "@opencode-ai/ui", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@kobalte/core": "catalog:", "@pierre/diffs": "catalog:", @@ -1005,7 +1005,7 @@ }, "packages/web": { "name": "@opencode-ai/web", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@astrojs/cloudflare": "12.6.3", "@astrojs/markdown-remark": "6.3.1", diff --git a/packages/app/package.json b/packages/app/package.json index 52420afedc..d9317f39bc 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/app", - "version": "1.17.11", + "version": "1.17.12", "description": "", "type": "module", "exports": { diff --git a/packages/cli/package.json b/packages/cli/package.json index 1ea11f0864..03667a524a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/cli", - "version": "1.17.11", + "version": "1.17.12", "type": "module", "license": "MIT", "bin": { diff --git a/packages/console/app/package.json b/packages/console/app/package.json index 1011a5a59a..5a1aeab61d 100644 --- a/packages/console/app/package.json +++ b/packages/console/app/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-app", - "version": "1.17.11", + "version": "1.17.12", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/console/core/package.json b/packages/console/core/package.json index bc7c31cc0b..239f78d1ed 100644 --- a/packages/console/core/package.json +++ b/packages/console/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/console-core", - "version": "1.17.11", + "version": "1.17.12", "private": true, "type": "module", "license": "MIT", diff --git a/packages/console/function/package.json b/packages/console/function/package.json index 3cb120ed69..ca0020fea2 100644 --- a/packages/console/function/package.json +++ b/packages/console/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-function", - "version": "1.17.11", + "version": "1.17.12", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/console/mail/package.json b/packages/console/mail/package.json index da8c06a611..53ef65e162 100644 --- a/packages/console/mail/package.json +++ b/packages/console/mail/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-mail", - "version": "1.17.11", + "version": "1.17.12", "dependencies": { "@jsx-email/all": "2.2.3", "@jsx-email/cli": "1.4.3", diff --git a/packages/console/support/package.json b/packages/console/support/package.json index 5c081f7f4d..6d4a3066fb 100644 --- a/packages/console/support/package.json +++ b/packages/console/support/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/console-support", - "version": "1.17.11", + "version": "1.17.12", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/core/package.json b/packages/core/package.json index c540e44292..61e73adcd8 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.11", + "version": "1.17.12", "name": "@opencode-ai/core", "type": "module", "license": "MIT", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 5a239863a8..2d040ea5c3 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@opencode-ai/desktop", "private": true, - "version": "1.17.11", + "version": "1.17.12", "type": "module", "license": "MIT", "homepage": "https://opencode.ai", diff --git a/packages/effect-drizzle-sqlite/package.json b/packages/effect-drizzle-sqlite/package.json index 0e66036f0f..fcd1d80dbf 100644 --- a/packages/effect-drizzle-sqlite/package.json +++ b/packages/effect-drizzle-sqlite/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.11", + "version": "1.17.12", "name": "@opencode-ai/effect-drizzle-sqlite", "type": "module", "license": "MIT", diff --git a/packages/effect-sqlite-node/package.json b/packages/effect-sqlite-node/package.json index 0bf7116aa6..8954d9cbdf 100644 --- a/packages/effect-sqlite-node/package.json +++ b/packages/effect-sqlite-node/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.11", + "version": "1.17.12", "name": "@opencode-ai/effect-sqlite-node", "type": "module", "license": "MIT", diff --git a/packages/enterprise/package.json b/packages/enterprise/package.json index 03183d33a5..2c0c92caa6 100644 --- a/packages/enterprise/package.json +++ b/packages/enterprise/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/enterprise", - "version": "1.17.11", + "version": "1.17.12", "private": true, "type": "module", "license": "MIT", diff --git a/packages/function/package.json b/packages/function/package.json index ba08675567..dd2763d345 100644 --- a/packages/function/package.json +++ b/packages/function/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/function", - "version": "1.17.11", + "version": "1.17.12", "$schema": "https://json.schemastore.org/package.json", "private": true, "type": "module", diff --git a/packages/http-recorder/package.json b/packages/http-recorder/package.json index 09cf673afc..2777962469 100644 --- a/packages/http-recorder/package.json +++ b/packages/http-recorder/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.11", + "version": "1.17.12", "name": "@opencode-ai/http-recorder", "description": "Record and replay Effect HTTP client traffic with deterministic cassettes", "type": "module", diff --git a/packages/llm/package.json b/packages/llm/package.json index d5b370c7d4..a80f74a364 100644 --- a/packages/llm/package.json +++ b/packages/llm/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.11", + "version": "1.17.12", "name": "@opencode-ai/llm", "type": "module", "license": "MIT", diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 09667e5907..124fc98a44 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/package.json", - "version": "1.17.11", + "version": "1.17.12", "name": "opencode", "type": "module", "license": "MIT", diff --git a/packages/plugin/package.json b/packages/plugin/package.json index 6e3c59bea3..574fcfa275 100644 --- a/packages/plugin/package.json +++ b/packages/plugin/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/plugin", - "version": "1.17.11", + "version": "1.17.12", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json index de6c62bc26..63b5609171 100644 --- a/packages/sdk/js/package.json +++ b/packages/sdk/js/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/sdk", - "version": "1.17.11", + "version": "1.17.12", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index b0c4d948cb..4d25421842 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/server", - "version": "1.17.11", + "version": "1.17.12", "private": true, "type": "module", "license": "MIT", diff --git a/packages/session-ui/package.json b/packages/session-ui/package.json index f6c70cf5ae..f6da78f1b0 100644 --- a/packages/session-ui/package.json +++ b/packages/session-ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/session-ui", - "version": "1.17.11", + "version": "1.17.12", "private": true, "type": "module", "license": "MIT", diff --git a/packages/slack/package.json b/packages/slack/package.json index a815936e5d..030525dffc 100644 --- a/packages/slack/package.json +++ b/packages/slack/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/slack", - "version": "1.17.11", + "version": "1.17.12", "type": "module", "license": "MIT", "scripts": { diff --git a/packages/stats/app/package.json b/packages/stats/app/package.json index d3b83ac4b3..5021abc666 100644 --- a/packages/stats/app/package.json +++ b/packages/stats/app/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/stats-app", - "version": "1.17.11", + "version": "1.17.12", "private": true, "type": "module", "license": "MIT", diff --git a/packages/stats/core/package.json b/packages/stats/core/package.json index 3d93cba551..cdffcae183 100644 --- a/packages/stats/core/package.json +++ b/packages/stats/core/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/stats-core", - "version": "1.17.11", + "version": "1.17.12", "private": true, "type": "module", "license": "MIT", diff --git a/packages/stats/server/package.json b/packages/stats/server/package.json index 86ad57f337..35c572dedf 100644 --- a/packages/stats/server/package.json +++ b/packages/stats/server/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/stats-server", - "version": "1.17.11", + "version": "1.17.12", "private": true, "type": "module", "license": "MIT", diff --git a/packages/tui/package.json b/packages/tui/package.json index ee3972a2c6..182d266bf5 100644 --- a/packages/tui/package.json +++ b/packages/tui/package.json @@ -1,7 +1,7 @@ { "$schema": "https://json.schemastore.org/package.json", "name": "@opencode-ai/tui", - "version": "1.17.11", + "version": "1.17.12", "private": true, "type": "module", "license": "MIT", diff --git a/packages/ui/package.json b/packages/ui/package.json index 6312702331..bd306af535 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,6 +1,6 @@ { "name": "@opencode-ai/ui", - "version": "1.17.11", + "version": "1.17.12", "type": "module", "license": "MIT", "repository": { diff --git a/packages/web/package.json b/packages/web/package.json index 4c924ea504..22db2b0ad4 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -2,7 +2,7 @@ "name": "@opencode-ai/web", "type": "module", "license": "MIT", - "version": "1.17.11", + "version": "1.17.12", "scripts": { "dev": "astro dev", "dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev", diff --git a/sdks/vscode/package.json b/sdks/vscode/package.json index 8a151aae1e..c5006bfef6 100644 --- a/sdks/vscode/package.json +++ b/sdks/vscode/package.json @@ -2,7 +2,7 @@ "name": "opencode", "displayName": "opencode", "description": "opencode for VS Code", - "version": "1.17.11", + "version": "1.17.12", "publisher": "sst-dev", "repository": { "type": "git", From 928c37bc023e9b0705355f970c6fa27545a84f0f Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 30 Jun 2026 19:56:25 -0400 Subject: [PATCH 2/9] zen: kk2.7, mm3, sonnet5 --- packages/web/src/content/docs/ar/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/bs/zen.mdx | 29 ++++++----- packages/web/src/content/docs/da/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/de/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/es/zen.mdx | 29 ++++++----- packages/web/src/content/docs/fr/zen.mdx | 29 ++++++----- packages/web/src/content/docs/it/zen.mdx | 29 ++++++----- packages/web/src/content/docs/ja/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/ko/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/nb/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/pl/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/pt-br/zen.mdx | 29 ++++++----- packages/web/src/content/docs/ru/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/th/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/tr/zen.mdx | 29 ++++++----- packages/web/src/content/docs/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/zh-cn/zen.mdx | 55 +++++++++++---------- packages/web/src/content/docs/zh-tw/zen.mdx | 55 +++++++++++---------- 18 files changed, 444 insertions(+), 390 deletions(-) diff --git a/packages/web/src/content/docs/ar/zen.mdx b/packages/web/src/content/docs/ar/zen.mdx index 63489b1c2f..c0f75fb9e9 100644 --- a/packages/web/src/content/docs/ar/zen.mdx +++ b/packages/web/src/content/docs/ar/zen.mdx @@ -77,12 +77,10 @@ OpenCode Zen هي بوابة AI تتيح لك الوصول إلى هذه الن | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -92,6 +90,7 @@ OpenCode Zen هي بوابة AI تتيح لك الوصول إلى هذه الن | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -99,6 +98,7 @@ OpenCode Zen هي بوابة AI تتيح لك الوصول إلى هذه الن | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -131,13 +131,15 @@ https://opencode.ai/zen/v1/models | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -150,12 +152,10 @@ https://opencode.ai/zen/v1/models | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -217,23 +217,26 @@ https://opencode.ai/zen/v1/models ### النماذج المهملة -| النموذج | تاريخ الإيقاف | -| ------------------ | -------------- | -| GPT 5.2 Codex | 23 يوليو 2026 | -| GPT 5.1 Codex | 23 يوليو 2026 | -| GPT 5.1 Codex Max | 23 يوليو 2026 | -| GPT 5.1 Codex Mini | 23 يوليو 2026 | -| GPT 5 Codex | 23 يوليو 2026 | -| Claude Sonnet 4 | 15 يونيو 2026 | -| GLM 5 | 14 مايو 2026 | -| MiniMax M2.1 | 15 مارس 2026 | -| GLM 4.7 | 15 مارس 2026 | -| GLM 4.6 | 15 مارس 2026 | -| Gemini 3 Pro | 9 مارس 2026 | -| Kimi K2 Thinking | 6 مارس 2026 | -| Kimi K2 | 6 مارس 2026 | -| Claude Haiku 3.5 | 16 فبراير 2026 | -| Qwen3 Coder 480B | 6 فبراير 2026 | +| النموذج | تاريخ الإيقاف | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/bs/zen.mdx b/packages/web/src/content/docs/bs/zen.mdx index c07afb3765..d19e13c6e9 100644 --- a/packages/web/src/content/docs/bs/zen.mdx +++ b/packages/web/src/content/docs/bs/zen.mdx @@ -82,12 +82,10 @@ Našim modelima možete pristupiti i preko sljedećih API endpointa. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -97,6 +95,7 @@ Našim modelima možete pristupiti i preko sljedećih API endpointa. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -104,6 +103,7 @@ Našim modelima možete pristupiti i preko sljedećih API endpointa. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -138,13 +138,15 @@ Podržavamo pay-as-you-go model. Ispod su cijene **po 1M tokena**. | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -157,12 +159,10 @@ Podržavamo pay-as-you-go model. Ispod su cijene **po 1M tokena**. | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -235,16 +235,19 @@ vam ipak može naplatiti više od $20 ako vam stanje padne ispod $5. | GPT 5.1 Codex Max | July 23, 2026 | | GPT 5.1 Codex Mini | July 23, 2026 | | GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | | Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | | MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | | GLM 4.7 | March 15, 2026 | | GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | +| Kimi K2.5 | August 5, 2026 | | Kimi K2 Thinking | March 6, 2026 | | Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/da/zen.mdx b/packages/web/src/content/docs/da/zen.mdx index 198796b451..346af2b51b 100644 --- a/packages/web/src/content/docs/da/zen.mdx +++ b/packages/web/src/content/docs/da/zen.mdx @@ -82,12 +82,10 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -97,6 +95,7 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -104,6 +103,7 @@ Du kan også få adgang til vores modeller gennem følgende API-endpoints. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -138,13 +138,15 @@ Vi understøtter en pay-as-you-go-model. Nedenfor er priserne **pr. 1M tokens**. | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -157,12 +159,10 @@ Vi understøtter en pay-as-you-go-model. Nedenfor er priserne **pr. 1M tokens**. | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -227,23 +227,26 @@ at opkræve dig mere end $20, hvis din saldo kommer under $5. ### Udfasede modeller -| Model | Udfasningsdato | -| ------------------ | -------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Model | Udfasningsdato | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/de/zen.mdx b/packages/web/src/content/docs/de/zen.mdx index 4a5a079abd..7a2fa0bfc1 100644 --- a/packages/web/src/content/docs/de/zen.mdx +++ b/packages/web/src/content/docs/de/zen.mdx @@ -73,12 +73,10 @@ Du kannst auch über die folgenden API-Endpunkte auf unsere Modelle zugreifen. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -88,6 +86,7 @@ Du kannst auch über die folgenden API-Endpunkte auf unsere Modelle zugreifen. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -95,6 +94,7 @@ Du kannst auch über die folgenden API-Endpunkte auf unsere Modelle zugreifen. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -127,13 +127,15 @@ Wir unterstützen ein Pay-as-you-go-Modell. Unten findest du die Preise **pro 1M | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -146,12 +148,10 @@ Wir unterstützen ein Pay-as-you-go-Modell. Unten findest du die Preise **pro 1M | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -213,23 +213,26 @@ Angenommen, du setzt ein monatliches Nutzungslimit von $20, dann wird Zen in ein ### Veraltete Modelle -| Model | Deprecation date | -| ------------------ | ---------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Model | Deprecation date | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/es/zen.mdx b/packages/web/src/content/docs/es/zen.mdx index 7b96155c90..e5e4452c6b 100644 --- a/packages/web/src/content/docs/es/zen.mdx +++ b/packages/web/src/content/docs/es/zen.mdx @@ -82,12 +82,10 @@ También puedes acceder a nuestros modelos a través de los siguientes endpoints | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -97,6 +95,7 @@ También puedes acceder a nuestros modelos a través de los siguientes endpoints | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -104,6 +103,7 @@ También puedes acceder a nuestros modelos a través de los siguientes endpoints | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -138,13 +138,15 @@ Admitimos un modelo de pago por uso. A continuación se muestran los precios **p | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -157,12 +159,10 @@ Admitimos un modelo de pago por uso. A continuación se muestran los precios **p | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -234,16 +234,19 @@ cobrándote más de $20 si tu saldo baja de $5. | GPT 5.1 Codex Max | July 23, 2026 | | GPT 5.1 Codex Mini | July 23, 2026 | | GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | | Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | | MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | | GLM 4.7 | March 15, 2026 | | GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | +| Kimi K2.5 | August 5, 2026 | | Kimi K2 Thinking | March 6, 2026 | | Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/fr/zen.mdx b/packages/web/src/content/docs/fr/zen.mdx index f59181ddf4..8342f76b89 100644 --- a/packages/web/src/content/docs/fr/zen.mdx +++ b/packages/web/src/content/docs/fr/zen.mdx @@ -73,12 +73,10 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -88,6 +86,7 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -95,6 +94,7 @@ Vous pouvez également accéder à nos modèles via les points de terminaison AP | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -127,13 +127,15 @@ Nous prenons en charge un modèle de paiement à l'utilisation. Vous trouverez c | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -146,12 +148,10 @@ Nous prenons en charge un modèle de paiement à l'utilisation. Vous trouverez c | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -220,16 +220,19 @@ Par exemple, si vous définissez une limite d'utilisation mensuelle à $20, Zen | GPT 5.1 Codex Max | July 23, 2026 | | GPT 5.1 Codex Mini | July 23, 2026 | | GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | | Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | | MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | | GLM 4.7 | March 15, 2026 | | GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | +| Kimi K2.5 | August 5, 2026 | | Kimi K2 Thinking | March 6, 2026 | | Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/it/zen.mdx b/packages/web/src/content/docs/it/zen.mdx index 76f47118aa..77f019d43a 100644 --- a/packages/web/src/content/docs/it/zen.mdx +++ b/packages/web/src/content/docs/it/zen.mdx @@ -82,12 +82,10 @@ Puoi anche accedere ai nostri modelli tramite i seguenti endpoint API. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -97,6 +95,7 @@ Puoi anche accedere ai nostri modelli tramite i seguenti endpoint API. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -104,6 +103,7 @@ Puoi anche accedere ai nostri modelli tramite i seguenti endpoint API. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -138,13 +138,15 @@ Supportiamo un modello pay-as-you-go. Qui sotto trovi i prezzi **per 1M token**. | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -157,12 +159,10 @@ Supportiamo un modello pay-as-you-go. Qui sotto trovi i prezzi **per 1M token**. | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -234,16 +234,19 @@ per addebitarti più di $20 se il tuo saldo scende sotto $5. | GPT 5.1 Codex Max | July 23, 2026 | | GPT 5.1 Codex Mini | July 23, 2026 | | GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | | Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | | MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | | GLM 4.7 | March 15, 2026 | | GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | +| Kimi K2.5 | August 5, 2026 | | Kimi K2 Thinking | March 6, 2026 | | Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/ja/zen.mdx b/packages/web/src/content/docs/ja/zen.mdx index 0c92aa1e31..72df27be4c 100644 --- a/packages/web/src/content/docs/ja/zen.mdx +++ b/packages/web/src/content/docs/ja/zen.mdx @@ -73,12 +73,10 @@ OpenCode Zen は、OpenCode のほかのプロバイダーと同じように動 | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -88,6 +86,7 @@ OpenCode Zen は、OpenCode のほかのプロバイダーと同じように動 | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -95,6 +94,7 @@ OpenCode Zen は、OpenCode のほかのプロバイダーと同じように動 | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -127,13 +127,15 @@ https://opencode.ai/zen/v1/models | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -146,12 +148,10 @@ https://opencode.ai/zen/v1/models | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -213,23 +213,26 @@ https://opencode.ai/zen/v1/models ### 非推奨モデル -| Model | Deprecation date | -| ------------------ | ---------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Model | Deprecation date | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/ko/zen.mdx b/packages/web/src/content/docs/ko/zen.mdx index b21af94525..31b07f0a71 100644 --- a/packages/web/src/content/docs/ko/zen.mdx +++ b/packages/web/src/content/docs/ko/zen.mdx @@ -73,12 +73,10 @@ OpenCode Zen은 OpenCode의 다른 provider와 똑같이 작동합니다. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -88,6 +86,7 @@ OpenCode Zen은 OpenCode의 다른 provider와 똑같이 작동합니다. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -95,6 +94,7 @@ OpenCode Zen은 OpenCode의 다른 provider와 똑같이 작동합니다. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -127,13 +127,15 @@ https://opencode.ai/zen/v1/models | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -146,12 +148,10 @@ https://opencode.ai/zen/v1/models | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -213,23 +213,26 @@ https://opencode.ai/zen/v1/models ### 지원 중단 모델 -| 모델 | 지원 중단 날짜 | -| ------------------ | -------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| 모델 | 지원 중단 날짜 | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/nb/zen.mdx b/packages/web/src/content/docs/nb/zen.mdx index 6121817a47..b08ee2e5f1 100644 --- a/packages/web/src/content/docs/nb/zen.mdx +++ b/packages/web/src/content/docs/nb/zen.mdx @@ -82,12 +82,10 @@ Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -97,6 +95,7 @@ Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -104,6 +103,7 @@ Du kan også få tilgang til modellene våre gjennom følgende API-endepunkter. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -138,13 +138,15 @@ Vi støtter en pay-as-you-go-modell. Nedenfor er prisene **per 1M tokens**. | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -157,12 +159,10 @@ Vi støtter en pay-as-you-go-modell. Nedenfor er prisene **per 1M tokens**. | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -227,23 +227,26 @@ med å belaste deg mer enn $20 hvis saldoen din går under $5. ### Utfasede modeller -| Modell | Utfasingsdato | -| ------------------ | -------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Modell | Utfasingsdato | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx index 41b1b66341..14f77c843e 100644 --- a/packages/web/src/content/docs/pl/zen.mdx +++ b/packages/web/src/content/docs/pl/zen.mdx @@ -82,12 +82,10 @@ Możesz też uzyskać dostęp do naszych modeli przez poniższe endpointy API. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -97,6 +95,7 @@ Możesz też uzyskać dostęp do naszych modeli przez poniższe endpointy API. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -104,6 +103,7 @@ Możesz też uzyskać dostęp do naszych modeli przez poniższe endpointy API. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -138,13 +138,15 @@ Obsługujemy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów* | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -157,12 +159,10 @@ Obsługujemy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów* | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -228,23 +228,26 @@ ostatecznie obciążyć Cię kwotą wyższą niż $20, jeśli Twoje saldo spadni ### Wycofane modele -| Model | Data wycofania | -| ------------------ | -------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Model | Data wycofania | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/pt-br/zen.mdx b/packages/web/src/content/docs/pt-br/zen.mdx index 4672c1f41e..493b5eb322 100644 --- a/packages/web/src/content/docs/pt-br/zen.mdx +++ b/packages/web/src/content/docs/pt-br/zen.mdx @@ -73,12 +73,10 @@ Você também pode acessar nossos modelos pelos seguintes endpoints de API. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -88,6 +86,7 @@ Você também pode acessar nossos modelos pelos seguintes endpoints de API. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -95,6 +94,7 @@ Você também pode acessar nossos modelos pelos seguintes endpoints de API. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -127,13 +127,15 @@ Oferecemos um modelo pay-as-you-go. Abaixo estão os preços **por 1M tokens**. | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -146,12 +148,10 @@ Oferecemos um modelo pay-as-you-go. Abaixo estão os preços **por 1M tokens**. | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -220,16 +220,19 @@ Por exemplo, digamos que você defina um limite mensal de uso de $20; o Zen não | GPT 5.1 Codex Max | July 23, 2026 | | GPT 5.1 Codex Mini | July 23, 2026 | | GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | | Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | | MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | | GLM 4.7 | March 15, 2026 | | GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | +| Kimi K2.5 | August 5, 2026 | | Kimi K2 Thinking | March 6, 2026 | | Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/ru/zen.mdx b/packages/web/src/content/docs/ru/zen.mdx index bfd4d380e8..218d4c0295 100644 --- a/packages/web/src/content/docs/ru/zen.mdx +++ b/packages/web/src/content/docs/ru/zen.mdx @@ -82,12 +82,10 @@ OpenCode Zen работает как любой другой провайдер | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -97,6 +95,7 @@ OpenCode Zen работает как любой другой провайдер | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -104,6 +103,7 @@ OpenCode Zen работает как любой другой провайдер | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -138,13 +138,15 @@ https://opencode.ai/zen/v1/models | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -157,12 +159,10 @@ https://opencode.ai/zen/v1/models | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -227,23 +227,26 @@ https://opencode.ai/zen/v1/models ### Устаревшие модели -| Модель | Дата устаревания | -| ------------------ | ---------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Модель | Дата устаревания | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/th/zen.mdx b/packages/web/src/content/docs/th/zen.mdx index d4f679b9e9..4f2c3aebd4 100644 --- a/packages/web/src/content/docs/th/zen.mdx +++ b/packages/web/src/content/docs/th/zen.mdx @@ -75,12 +75,10 @@ OpenCode Zen ทำงานเหมือน provider อื่น ๆ ใน | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -90,6 +88,7 @@ OpenCode Zen ทำงานเหมือน provider อื่น ๆ ใน | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -97,6 +96,7 @@ OpenCode Zen ทำงานเหมือน provider อื่น ๆ ใน | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -129,13 +129,15 @@ https://opencode.ai/zen/v1/models | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -148,12 +150,10 @@ https://opencode.ai/zen/v1/models | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -215,23 +215,26 @@ https://opencode.ai/zen/v1/models ### โมเดลที่ถูกยกเลิก -| Model | Deprecation date | -| ------------------ | ---------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Model | Deprecation date | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/tr/zen.mdx b/packages/web/src/content/docs/tr/zen.mdx index b9529f2012..8655d23412 100644 --- a/packages/web/src/content/docs/tr/zen.mdx +++ b/packages/web/src/content/docs/tr/zen.mdx @@ -73,12 +73,10 @@ Modellerimize aşağıdaki API uç noktaları aracılığıyla da erişebilirsin | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -88,6 +86,7 @@ Modellerimize aşağıdaki API uç noktaları aracılığıyla da erişebilirsin | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -95,6 +94,7 @@ Modellerimize aşağıdaki API uç noktaları aracılığıyla da erişebilirsin | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -127,13 +127,15 @@ Kullandıkça öde modelini destekliyoruz. Aşağıda **1M token başına** fiya | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -146,12 +148,10 @@ Kullandıkça öde modelini destekliyoruz. Aşağıda **1M token başına** fiya | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -220,16 +220,19 @@ Ayrıca tüm çalışma alanı için ve ekibinizdeki her üye için aylık kulla | GPT 5.1 Codex Max | July 23, 2026 | | GPT 5.1 Codex Mini | July 23, 2026 | | GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | | Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | | MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | | GLM 4.7 | March 15, 2026 | | GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | +| Kimi K2.5 | August 5, 2026 | | Kimi K2 Thinking | March 6, 2026 | | Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/zen.mdx b/packages/web/src/content/docs/zen.mdx index 1f9be8ce92..49ca11afe3 100644 --- a/packages/web/src/content/docs/zen.mdx +++ b/packages/web/src/content/docs/zen.mdx @@ -82,12 +82,10 @@ You can also access our models through the following API endpoints. | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -97,6 +95,7 @@ You can also access our models through the following API endpoints. | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -104,6 +103,7 @@ You can also access our models through the following API endpoints. | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -138,13 +138,15 @@ We support a pay-as-you-go model. Below are the prices **per 1M tokens**. | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -157,12 +159,10 @@ We support a pay-as-you-go model. Below are the prices **per 1M tokens**. | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -227,23 +227,26 @@ charging you more than $20 if your balance goes below $5. ### Deprecated models -| Model | Deprecation date | -| ------------------ | ---------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| Model | Deprecation date | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/zh-cn/zen.mdx b/packages/web/src/content/docs/zh-cn/zen.mdx index c8f67de852..55a55308df 100644 --- a/packages/web/src/content/docs/zh-cn/zen.mdx +++ b/packages/web/src/content/docs/zh-cn/zen.mdx @@ -73,12 +73,10 @@ OpenCode Zen 的工作方式与 OpenCode 中的任何其他提供商相同。 | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -88,6 +86,7 @@ OpenCode Zen 的工作方式与 OpenCode 中的任何其他提供商相同。 | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -95,6 +94,7 @@ OpenCode Zen 的工作方式与 OpenCode 中的任何其他提供商相同。 | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -127,13 +127,15 @@ https://opencode.ai/zen/v1/models | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -146,12 +148,10 @@ https://opencode.ai/zen/v1/models | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -213,23 +213,26 @@ https://opencode.ai/zen/v1/models ### 已弃用模型 -| 模型 | 弃用日期 | -| ------------------ | -------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| 模型 | 弃用日期 | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- diff --git a/packages/web/src/content/docs/zh-tw/zen.mdx b/packages/web/src/content/docs/zh-tw/zen.mdx index 57fe1da1fc..778df663bf 100644 --- a/packages/web/src/content/docs/zh-tw/zen.mdx +++ b/packages/web/src/content/docs/zh-tw/zen.mdx @@ -77,12 +77,10 @@ OpenCode Zen 的運作方式和 OpenCode 中的其他供應商一樣。 | Claude Opus 4.7 | claude-opus-4-7 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 5 | claude-sonnet-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Gemini 3.5 Flash | gemini-3.5-flash | `https://opencode.ai/zen/v1/models/gemini-3.5-flash` | `@ai-sdk/google` | | Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | @@ -92,6 +90,7 @@ OpenCode Zen 的運作方式和 OpenCode 中的其他供應商一樣。 | Qwen3.5 Plus | qwen3.5-plus | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | DeepSeek V4 Pro | deepseek-v4-pro | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | DeepSeek V4 Flash | deepseek-v4-flash | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M3 | minimax-m3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.7 | minimax-m2.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 5.2 | glm-5.2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -99,6 +98,7 @@ OpenCode Zen 的運作方式和 OpenCode 中的其他供應商一樣。 | GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.6 | kimi-k2.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| Kimi K2.7 Code | kimi-k2.7-code | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Grok Build 0.1 | grok-build-0.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiMo-V2.5 Free | mimo-v2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | @@ -132,13 +132,15 @@ https://opencode.ai/zen/v1/models | MiMo-V2.5 Free | Free | Free | Free | - | | North Mini Code Free | Free | Free | Free | - | | Nemotron 3 Ultra Free | Free | Free | Free | - | -| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | $0.375 | -| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | $0.375 | +| MiniMax M3 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.7 | $0.30 | $1.20 | $0.06 | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | GLM 5.2 | $1.40 | $4.40 | $0.26 | - | | GLM 5.1 | $1.40 | $4.40 | $0.26 | - | | GLM 5 | $1.00 | $3.20 | $0.20 | - | -| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | +| Kimi K2.7 Code | $0.95 | $4.00 | $0.19 | - | | Kimi K2.6 | $0.95 | $4.00 | $0.16 | - | +| Kimi K2.5 | $0.60 | $3.00 | $0.10 | - | | Qwen3.7 Max | $2.50 | $7.50 | $0.50 | $3.125 | | Qwen3.7 Plus | $0.40 | $1.60 | $0.04 | $0.50 | | Qwen3.6 Plus | $0.50 | $3.00 | $0.05 | $0.625 | @@ -151,12 +153,10 @@ https://opencode.ai/zen/v1/models | Claude Opus 4.7 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.6 | $5.00 | $25.00 | $0.50 | $6.25 | | Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 5 | $2.00 | $10.00 | $0.20 | $2.50 | | Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | -| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | -| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Gemini 3.5 Flash | $1.50 | $9.00 | $0.15 | - | | Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | @@ -220,23 +220,26 @@ https://opencode.ai/zen/v1/models ### 已棄用模型 -| 模型 | 棄用日期 | -| ------------------ | -------------- | -| GPT 5.2 Codex | July 23, 2026 | -| GPT 5.1 Codex | July 23, 2026 | -| GPT 5.1 Codex Max | July 23, 2026 | -| GPT 5.1 Codex Mini | July 23, 2026 | -| GPT 5 Codex | July 23, 2026 | -| Claude Sonnet 4 | June 15, 2026 | -| GLM 5 | May 14, 2026 | -| MiniMax M2.1 | March 15, 2026 | -| GLM 4.7 | March 15, 2026 | -| GLM 4.6 | March 15, 2026 | -| Gemini 3 Pro | March 9, 2026 | -| Kimi K2 Thinking | March 6, 2026 | -| Kimi K2 | March 6, 2026 | -| Claude Haiku 3.5 | Feb 16, 2026 | -| Qwen3 Coder 480B | Feb 6, 2026 | +| 模型 | 棄用日期 | +| ------------------ | ----------------- | +| GPT 5.2 Codex | July 23, 2026 | +| GPT 5.1 Codex | July 23, 2026 | +| GPT 5.1 Codex Max | July 23, 2026 | +| GPT 5.1 Codex Mini | July 23, 2026 | +| GPT 5 Codex | July 23, 2026 | +| Claude Opus 4.1 | August 5, 2026 | +| Claude Sonnet 4 | June 15, 2026 | +| Claude Haiku 3.5 | February 16, 2026 | +| Gemini 3 Pro | March 9, 2026 | +| MiniMax M2.5 | August 5, 2026 | +| MiniMax M2.1 | March 15, 2026 | +| GLM 5 | May 14, 2026 | +| GLM 4.7 | March 15, 2026 | +| GLM 4.6 | March 15, 2026 | +| Kimi K2.5 | August 5, 2026 | +| Kimi K2 Thinking | March 6, 2026 | +| Kimi K2 | March 6, 2026 | +| Qwen3 Coder 480B | February 6, 2026 | --- From c88ca972cfea26867d9d0cf6f96eac2f5df0f3e0 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Tue, 30 Jun 2026 23:59:52 +0000 Subject: [PATCH 3/9] chore: generate --- packages/web/src/content/docs/ar/zen.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web/src/content/docs/ar/zen.mdx b/packages/web/src/content/docs/ar/zen.mdx index c0f75fb9e9..aa827f6304 100644 --- a/packages/web/src/content/docs/ar/zen.mdx +++ b/packages/web/src/content/docs/ar/zen.mdx @@ -217,7 +217,7 @@ https://opencode.ai/zen/v1/models ### النماذج المهملة -| النموذج | تاريخ الإيقاف | +| النموذج | تاريخ الإيقاف | | ------------------ | ----------------- | | GPT 5.2 Codex | July 23, 2026 | | GPT 5.1 Codex | July 23, 2026 | From f1407e41c4743cb40a20fd3417df60eee5e3c500 Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Tue, 30 Jun 2026 19:19:02 -0500 Subject: [PATCH 4/9] fix(core): stop replaying stale GitHub Copilot Responses item IDs (#34686) --- .../convert-to-openai-responses-input.ts | 10 +- .../openai-responses-language-model.ts | 40 ++-- .../openai-responses-language-model.test.ts | 206 ++++++++++++++++++ packages/opencode/src/provider/transform.ts | 4 +- .../opencode/test/provider/transform.test.ts | 76 +++++++ 5 files changed, 310 insertions(+), 26 deletions(-) create mode 100644 packages/core/test/github-copilot/openai-responses-language-model.test.ts diff --git a/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts b/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts index 83e46015dd..1e4f86d933 100644 --- a/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts +++ b/packages/core/src/github-copilot/responses/convert-to-openai-responses-input.ts @@ -86,7 +86,7 @@ export async function convertToOpenAIResponsesInput({ : { image_url: `data:${mediaType};base64,${convertToBase64(part.data)}`, }), - detail: part.providerOptions?.openai?.imageDetail, + detail: part.providerOptions?.copilot?.imageDetail, } } else if (part.mediaType === "application/pdf") { if (part.data instanceof URL) { @@ -127,7 +127,7 @@ export async function convertToOpenAIResponsesInput({ input.push({ role: "assistant", content: [{ type: "output_text", text: part.text }], - id: (part.providerOptions?.openai?.itemId as string) ?? undefined, + id: (part.providerOptions?.copilot?.itemId as string) ?? undefined, }) break } @@ -143,7 +143,7 @@ export async function convertToOpenAIResponsesInput({ input.push({ type: "local_shell_call", call_id: part.toolCallId, - id: (part.providerOptions?.openai?.itemId as string) ?? undefined, + id: (part.providerOptions?.copilot?.itemId as string) ?? undefined, action: { type: "exec", command: parsedInput.action.command, @@ -162,7 +162,7 @@ export async function convertToOpenAIResponsesInput({ call_id: part.toolCallId, name: part.toolName, arguments: JSON.stringify(part.input), - id: (part.providerOptions?.openai?.itemId as string) ?? undefined, + id: (part.providerOptions?.copilot?.itemId as string) ?? undefined, }) break } @@ -275,7 +275,7 @@ export async function convertToOpenAIResponsesInput({ const output = part.output if (output.type === "execution-denied") { - const approvalId = (output.providerOptions?.openai as { approvalId?: string } | undefined)?.approvalId + const approvalId = (output.providerOptions?.copilot as { approvalId?: string } | undefined)?.approvalId if (approvalId) { continue diff --git a/packages/core/src/github-copilot/responses/openai-responses-language-model.ts b/packages/core/src/github-copilot/responses/openai-responses-language-model.ts index 250d1f6f34..8df1dcedad 100644 --- a/packages/core/src/github-copilot/responses/openai-responses-language-model.ts +++ b/packages/core/src/github-copilot/responses/openai-responses-language-model.ts @@ -525,7 +525,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { type: "reasoning" as const, text: summary.text, providerMetadata: { - openai: { + copilot: { itemId: part.id, reasoningEncryptedContent: part.encrypted_content ?? null, }, @@ -563,7 +563,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { toolName: "local_shell", input: JSON.stringify({ action: part.action } satisfies z.infer), providerMetadata: { - openai: { + copilot: { itemId: part.id, }, }, @@ -574,7 +574,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { case "message": { for (const contentPart of part.content) { - if (options.providerOptions?.openai?.logprobs && contentPart.logprobs) { + if (options.providerOptions?.copilot?.logprobs && contentPart.logprobs) { logprobs.push(contentPart.logprobs) } @@ -582,7 +582,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { type: "text", text: contentPart.text, providerMetadata: { - openai: { + copilot: { itemId: part.id, }, }, @@ -622,7 +622,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { toolName: part.name, input: part.arguments, providerMetadata: { - openai: { + copilot: { itemId: part.id, }, }, @@ -724,15 +724,15 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { } const providerMetadata: SharedV3ProviderMetadata = { - openai: { responseId: response.id }, + copilot: { responseId: response.id }, } if (logprobs.length > 0) { - providerMetadata.openai.logprobs = logprobs + providerMetadata.copilot.logprobs = logprobs } if (typeof response.service_tier === "string") { - providerMetadata.openai.serviceTier = response.service_tier + providerMetadata.copilot.serviceTier = response.service_tier } return { @@ -954,7 +954,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { type: "text-start", id: value.item.id, providerMetadata: { - openai: { + copilot: { itemId: value.item.id, }, }, @@ -971,7 +971,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { type: "reasoning-start", id: `${value.item.id}:0`, providerMetadata: { - openai: { + copilot: { itemId: value.item.id, reasoningEncryptedContent: value.item.encrypted_content ?? null, }, @@ -994,7 +994,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { toolName: value.item.name, input: value.item.arguments, providerMetadata: { - openai: { + copilot: { itemId: value.item.id, }, }, @@ -1103,7 +1103,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { }, } satisfies z.infer), providerMetadata: { - openai: { itemId: value.item.id }, + copilot: { itemId: value.item.id }, }, }) } else if (value.item.type === "message") { @@ -1122,7 +1122,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { type: "reasoning-end", id: `${activeReasoningPart.canonicalId}:${summaryIndex}`, providerMetadata: { - openai: { + copilot: { itemId: activeReasoningPart.canonicalId, reasoningEncryptedContent: value.item.encrypted_content ?? null, }, @@ -1209,7 +1209,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { type: "text-start", id: currentTextId, providerMetadata: { - openai: { itemId: value.item_id }, + copilot: { itemId: value.item_id }, }, }) } @@ -1220,7 +1220,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { delta: value.delta, }) - if (options.providerOptions?.openai?.logprobs && value.logprobs) { + if (options.providerOptions?.copilot?.logprobs && value.logprobs) { logprobs.push(value.logprobs) } } else if (isResponseReasoningSummaryPartAddedChunk(value)) { @@ -1235,7 +1235,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { type: "reasoning-start", id: `${activeItem.canonicalId}:${value.summary_index}`, providerMetadata: { - openai: { + copilot: { itemId: activeItem.canonicalId, reasoningEncryptedContent: activeItem.encryptedContent ?? null, }, @@ -1252,7 +1252,7 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { id: `${activeItem.canonicalId}:${value.summary_index}`, delta: value.delta, providerMetadata: { - openai: { + copilot: { itemId: activeItem.canonicalId, }, }, @@ -1306,17 +1306,17 @@ export class OpenAIResponsesLanguageModel implements LanguageModelV3 { } const providerMetadata: SharedV3ProviderMetadata = { - openai: { + copilot: { responseId, }, } if (logprobs.length > 0) { - providerMetadata.openai.logprobs = logprobs + providerMetadata.copilot.logprobs = logprobs } if (serviceTier !== undefined) { - providerMetadata.openai.serviceTier = serviceTier + providerMetadata.copilot.serviceTier = serviceTier } controller.enqueue({ diff --git a/packages/core/test/github-copilot/openai-responses-language-model.test.ts b/packages/core/test/github-copilot/openai-responses-language-model.test.ts new file mode 100644 index 0000000000..ab047d04eb --- /dev/null +++ b/packages/core/test/github-copilot/openai-responses-language-model.test.ts @@ -0,0 +1,206 @@ +import { OpenAIResponsesLanguageModel } from "@opencode-ai/core/github-copilot/responses/openai-responses-language-model" +import { convertToOpenAIResponsesInput } from "@opencode-ai/core/github-copilot/responses/convert-to-openai-responses-input" +import { describe, test, expect, mock } from "bun:test" +import type { LanguageModelV3Prompt } from "@ai-sdk/provider" + +const TEST_PROMPT: LanguageModelV3Prompt = [{ role: "user", content: [{ type: "text", text: "Hello" }] }] + +function createMockFetch(body: unknown) { + return mock( + async () => new Response(JSON.stringify(body), { status: 200, headers: { "Content-Type": "application/json" } }), + ) +} + +function createModel(fetchFn: ReturnType) { + return new OpenAIResponsesLanguageModel("test-model", { + provider: "copilot", + url: () => "https://api.test.com/responses", + headers: () => ({ Authorization: "Bearer test-token" }), + fetch: fetchFn as any, + }) +} + +// GitHub Copilot's Responses model echoes item metadata (itemId, reasoningEncryptedContent, +// responseId, ...) under the "copilot" providerOptions/providerMetadata namespace, matching the +// namespace request options already use. It used to echo this metadata under "openai" (a leftover +// from forking the OpenAI Responses model), which left it unreachable by anything reading the +// "copilot" namespace and let stale itemIds slip past stripping meant for that namespace. +describe("doGenerate", () => { + test("attaches item metadata under the copilot namespace, not openai", async () => { + const mockFetch = createMockFetch({ + id: "resp_1", + created_at: 0, + model: "gpt-5.5", + output: [ + { + type: "reasoning", + id: "rs_1", + encrypted_content: "enc_1", + summary: [{ type: "summary_text", text: "thinking..." }], + }, + { + type: "message", + role: "assistant", + id: "msg_1", + content: [{ type: "output_text", text: "Hello there", annotations: [] }], + }, + { + type: "function_call", + call_id: "call_1", + name: "bash", + arguments: "{}", + id: "fc_1", + }, + ], + usage: { input_tokens: 10, output_tokens: 5 }, + }) + const model = createModel(mockFetch) + + const { content, providerMetadata } = await model.doGenerate({ + prompt: TEST_PROMPT, + includeRawChunks: false, + } as any) + + const reasoning = content.find((part: any) => part.type === "reasoning") as any + expect(reasoning.providerMetadata?.copilot?.itemId).toBe("rs_1") + expect(reasoning.providerMetadata?.copilot?.reasoningEncryptedContent).toBe("enc_1") + expect(reasoning.providerMetadata?.openai).toBeUndefined() + + const text = content.find((part: any) => part.type === "text") as any + expect(text.providerMetadata?.copilot?.itemId).toBe("msg_1") + expect(text.providerMetadata?.openai).toBeUndefined() + + const toolCall = content.find((part: any) => part.type === "tool-call") as any + expect(toolCall.providerMetadata?.copilot?.itemId).toBe("fc_1") + expect(toolCall.providerMetadata?.openai).toBeUndefined() + + expect(providerMetadata?.copilot?.responseId).toBe("resp_1") + expect(providerMetadata?.openai).toBeUndefined() + }) +}) + +describe("convertToOpenAIResponsesInput", () => { + test("echoes a stale tool-call itemId from the copilot namespace as the function_call id", async () => { + const { input } = await convertToOpenAIResponsesInput({ + prompt: [ + { + role: "assistant", + content: [ + { + type: "tool-call", + toolCallId: "call_1", + toolName: "bash", + input: { command: "ls" }, + providerOptions: { copilot: { itemId: "fc_999" } }, + }, + ], + }, + ], + systemMessageMode: "system", + store: false, + }) + + expect(input).toEqual([ + { + type: "function_call", + call_id: "call_1", + name: "bash", + arguments: JSON.stringify({ command: "ls" }), + id: "fc_999", + }, + ]) + }) + + test("omits the function_call id once the stale copilot itemId has been stripped", async () => { + const { input } = await convertToOpenAIResponsesInput({ + prompt: [ + { + role: "assistant", + content: [ + { + type: "tool-call", + toolCallId: "call_1", + toolName: "bash", + input: { command: "ls" }, + providerOptions: {}, + }, + ], + }, + ], + systemMessageMode: "system", + store: false, + }) + + expect((input[0] as any).id).toBeUndefined() + }) + + test("preserves reasoning items keyed by the copilot namespace instead of dropping them", async () => { + const { input, warnings } = await convertToOpenAIResponsesInput({ + prompt: [ + { + role: "assistant", + content: [ + { + type: "reasoning", + text: "thinking...", + providerOptions: { copilot: { itemId: "rs_1", reasoningEncryptedContent: "enc_1" } }, + }, + ], + }, + ], + systemMessageMode: "system", + store: false, + }) + + expect(warnings).toEqual([]) + expect(input).toEqual([ + { + type: "reasoning", + id: "rs_1", + encrypted_content: "enc_1", + summary: [{ type: "summary_text", text: "thinking..." }], + }, + ]) + }) + + test("drops reasoning items with no copilot itemId and warns, as before", async () => { + const { input, warnings } = await convertToOpenAIResponsesInput({ + prompt: [ + { + role: "assistant", + content: [{ type: "reasoning", text: "thinking...", providerOptions: {} }], + }, + ], + systemMessageMode: "system", + store: false, + }) + + expect(input).toEqual([]) + expect(warnings).toHaveLength(1) + expect(warnings[0]).toMatchObject({ + message: expect.stringContaining("Non-OpenAI reasoning parts are not supported"), + }) + }) + + test("reads imageDetail from the copilot namespace on user file parts", async () => { + const { input } = await convertToOpenAIResponsesInput({ + prompt: [ + { + role: "user", + content: [ + { + type: "file", + mediaType: "image/png", + data: "aGVsbG8=", + providerOptions: { copilot: { imageDetail: "high" } }, + }, + ], + }, + ], + systemMessageMode: "system", + store: false, + }) + + expect((input[0] as any).content[0].detail).toBe("high") + }) +}) diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 4bb81b753b..466b05b621 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -463,7 +463,9 @@ export function message(msgs: ModelMessage[], model: Provider.Model, options: Re if ( options.store !== true && key && - ["@ai-sdk/openai", "@ai-sdk/azure", "@ai-sdk/amazon-bedrock/mantle"].includes(model.api.npm) + ["@ai-sdk/openai", "@ai-sdk/azure", "@ai-sdk/amazon-bedrock/mantle", "@ai-sdk/github-copilot"].includes( + model.api.npm, + ) ) { msgs = mapProviderOptions(msgs, (options) => { if (!options?.[key] || !("itemId" in options[key])) return options diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index dcbaf81716..550903bf46 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -2268,6 +2268,82 @@ describe("ProviderTransform.message - strip openai metadata when store=false", ( expect(result[0].content[0].providerOptions?.openai?.reasoningEncryptedContent).toBe("encrypted") }) + test("strips GitHub Copilot itemId from the copilot namespace, preserving other copilot options", () => { + const copilotModel = { + ...openaiModel, + id: "github-copilot/gpt-5.5", + providerID: "github-copilot", + api: { + id: "gpt-5.5", + url: "https://api.githubcopilot.com", + npm: "@ai-sdk/github-copilot", + }, + } + const msgs = [ + { + role: "assistant", + content: [ + { + type: "reasoning", + text: "thinking...", + providerOptions: { + copilot: { itemId: "rs_123", reasoningEncryptedContent: "encrypted" }, + }, + }, + { + // The stale itemId on tool-call parts is what Copilot echoes back as the + // `function_call` item `id`, which is what the upstream connection rejects. + type: "tool-call", + toolCallId: "call_1", + toolName: "bash", + input: { command: "ls" }, + providerOptions: { + copilot: { itemId: "fc_456", reasoningEffort: "medium" }, + }, + }, + ], + }, + ] as any[] + + const result = ProviderTransform.message(msgs, copilotModel, { store: false }) as any[] + + expect(result[0].content[0].providerOptions?.copilot?.itemId).toBeUndefined() + expect(result[0].content[0].providerOptions?.copilot?.reasoningEncryptedContent).toBe("encrypted") + expect(result[0].content[1].providerOptions?.copilot?.itemId).toBeUndefined() + expect(result[0].content[1].providerOptions?.copilot?.reasoningEffort).toBe("medium") + }) + + test("leaves a stray openai namespace on a Copilot model untouched, since Copilot's Responses model only reads the copilot namespace", () => { + const copilotModel = { + ...openaiModel, + id: "github-copilot/gpt-5.5", + providerID: "github-copilot", + api: { + id: "gpt-5.5", + url: "https://api.githubcopilot.com", + npm: "@ai-sdk/github-copilot", + }, + } + const msgs = [ + { + role: "assistant", + content: [ + { + type: "text", + text: "Hello", + providerOptions: { + openai: { itemId: "msg_456" }, + }, + }, + ], + }, + ] as any[] + + const result = ProviderTransform.message(msgs, copilotModel, { store: false }) as any[] + + expect(result[0].content[0].providerOptions?.openai?.itemId).toBe("msg_456") + }) + test("preserves metadata for openai package when store is true", () => { const msgs = [ { From ae3fefb42a34bbb6b2076f8bc080d79533e3955d Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 00:52:10 +0000 Subject: [PATCH 5/9] fix(session-ui): recognize more inline file paths (#34688) Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] --- .../markdown-inline-code-kind.test.ts | 14 + .../components/markdown-inline-code-kind.ts | 1914 ++++++++++++++++- 2 files changed, 1921 insertions(+), 7 deletions(-) diff --git a/packages/session-ui/src/components/markdown-inline-code-kind.test.ts b/packages/session-ui/src/components/markdown-inline-code-kind.test.ts index 43e8ad4ed2..5b7c00855b 100644 --- a/packages/session-ui/src/components/markdown-inline-code-kind.test.ts +++ b/packages/session-ui/src/components/markdown-inline-code-kind.test.ts @@ -13,10 +13,24 @@ describe("inlineCodeKind", () => { expect(inlineCodeKind(`@opencode-ai/app )`)).toBeUndefined() expect(inlineCodeKind(`sync.data.session`)).toBeUndefined() expect(inlineCodeKind(`window.api`)).toBeUndefined() + expect(inlineCodeKind(`1.2`)).toBeUndefined() }) test("detects file and directory paths", () => { expect(inlineCodeKind(`app.tsx`)).toBe("path") + expect(inlineCodeKind(`vite.config.mjs`)).toBe("path") + expect(inlineCodeKind(`eslint.config.cjs`)).toBe("path") + expect(inlineCodeKind(`app.d.ts`)).toBe("path") + expect(inlineCodeKind(`component.svelte`)).toBe("path") + expect(inlineCodeKind(`schema.graphql`)).toBe("path") + expect(inlineCodeKind(`Dockerfile`)).toBe("path") + expect(inlineCodeKind(`Dockerfile.dev`)).toBe("path") + expect(inlineCodeKind(`.gitignore`)).toBe("path") + expect(inlineCodeKind(`Cargo.lock`)).toBe("path") + expect(inlineCodeKind(`go.sum`)).toBe("path") + expect(inlineCodeKind(`bun.lockb`)).toBe("path") + expect(inlineCodeKind(`terraform.tfvars`)).toBe("path") + expect(inlineCodeKind(`pnpm-lock.yaml`)).toBe("path") expect(inlineCodeKind(`packages/desktop-electron`)).toBe("path") expect(inlineCodeKind(`~/.config/opencode`)).toBe("path") expect(inlineCodeKind(`@opencode-ai/app`)).toBe("path") diff --git a/packages/session-ui/src/components/markdown-inline-code-kind.ts b/packages/session-ui/src/components/markdown-inline-code-kind.ts index 3679fe4ff4..6d32c3b246 100644 --- a/packages/session-ui/src/components/markdown-inline-code-kind.ts +++ b/packages/session-ui/src/components/markdown-inline-code-kind.ts @@ -1,3 +1,1893 @@ +// One-off copy from GitHub Linguist languages.yml (e9fe3c9f230cd9220afcd057f75702de4d7700c9), plus common lockfile suffixes. +// Normalized to lower-case; numeric manpage-style extensions are excluded so versions like `1.2` stay plain code. +const pathExtensions = new Set([ + "a51", + "abap", + "abnf", + "action", + "ada", + "adb", + "adml", + "admx", + "ado", + "adoc", + "adp", + "ads", + "afm", + "agc", + "agda", + "ahk", + "ahkl", + "aidl", + "aj", + "ak", + "al", + "alg", + "als", + "ampl", + "angelscript", + "anim", + "ant", + "antlers.html", + "antlers.php", + "antlers.xml", + "apacheconf", + "apex", + "apib", + "apl", + "app", + "app.src", + "applescript", + "arc", + "arpa", + "arr", + "as", + "asax", + "asc", + "asciidoc", + "ascx", + "asd", + "asddls", + "ash", + "ashx", + "asl", + "asm", + "asmx", + "asn", + "asn1", + "asp", + "aspx", + "asset", + "astro", + "asy", + "au3", + "aug", + "auk", + "aux", + "avdl", + "avsc", + "aw", + "awk", + "axaml", + "axd", + "axi", + "axi.erb", + "axml", + "axs", + "axs.erb", + "b", + "bal", + "baml", + "bas", + "bash", + "bat", + "bats", + "bb", + "bbappend", + "bbclass", + "bbx", + "bdf", + "bdy", + "be", + "befunge", + "bf", + "bi", + "bib", + "bibtex", + "bicep", + "bicepparam", + "bison", + "blade", + "blade.php", + "blp", + "bmx", + "bones", + "boo", + "boot", + "bpl", + "bqn", + "brd", + "bro", + "brs", + "bru", + "bs", + "bsl", + "bst", + "bsv", + "builder", + "builds", + "bzl", + "c", + "c++", + "c++-objdump", + "c++objdump", + "c-objdump", + "c3", + "cabal", + "caddyfile", + "cairo", + "cake", + "capnp", + "carbon", + "cats", + "cbl", + "cbx", + "cc", + "ccp", + "ccproj", + "ccxml", + "cdc", + "cdf", + "cds", + "ceylon", + "cfc", + "cfg", + "cfm", + "cfml", + "cgi", + "cginc", + "ch", + "chem", + "chpl", + "chs", + "cil", + "circom", + "cirru", + "cj", + "cjs", + "cjsx", + "ck", + "cl", + "cl2", + "clar", + "click", + "clixml", + "clj", + "cljc", + "cljs", + "cljs.hl", + "cljscm", + "cljx", + "clp", + "cls", + "clue", + "clw", + "cmake", + "cmake.in", + "cmd", + "cmp", + "cnc", + "cnf", + "cob", + "cobol", + "cocci", + "code-snippets", + "code-workspace", + "coffee", + "coffee.md", + "com", + "command", + "conll", + "conllu", + "container", + "containerfile", + "cook", + "coq", + "cp", + "cpp", + "cpp-objdump", + "cppm", + "cppobjdump", + "cproject", + "cps", + "cpy", + "cql", + "cr", + "crc32", + "creole", + "cs", + "cs.pp", + "csc", + "cscfg", + "csd", + "csdef", + "csh", + "cshtml", + "csl", + "cson", + "csproj", + "css", + "csv", + "csx", + "ct", + "ctl", + "ctp", + "cts", + "cu", + "cue", + "cuh", + "curry", + "cw", + "cwl", + "cxx", + "cxx-objdump", + "cy", + "cylc", + "cyp", + "cypher", + "d", + "d-objdump", + "d2", + "dae", + "darcspatch", + "dart", + "das", + "dats", + "db2", + "dcl", + "ddl", + "decls", + "depproj", + "desktop", + "desktop.in", + "dfm", + "dfy", + "dhall", + "di", + "diff", + "dircolors", + "dita", + "ditamap", + "ditaval", + "djs", + "dll.config", + "dlm", + "dm", + "do", + "dockerfile", + "dof", + "doh", + "dot", + "dotsettings", + "dpatch", + "dpr", + "druby", + "dsc", + "dsl", + "dsp", + "dsr", + "dtx", + "duby", + "dwl", + "dyalog", + "dyl", + "dylan", + "dzn", + "e", + "eam.fs", + "eb", + "ebnf", + "ebuild", + "ec", + "ecl", + "eclass", + "eclxml", + "ecr", + "ect", + "edc", + "edge", + "edgeql", + "editorconfig", + "edn", + "eh", + "ejs", + "ejs.t", + "el", + "eliom", + "eliomi", + "elm", + "elv", + "em", + "emacs", + "emacs.desktop", + "emberscript", + "eml", + "env", + "epj", + "eps", + "epsi", + "eq", + "erb", + "erb.deface", + "erl", + "es", + "es6", + "escript", + "esdl", + "ex", + "exs", + "eye", + "f", + "f03", + "f08", + "f77", + "f90", + "f95", + "factor", + "fan", + "fancypack", + "fbs", + "fcgi", + "fea", + "feature", + "filters", + "fir", + "fish", + "flex", + "flf", + "flix", + "flux", + "fnc", + "fnl", + "for", + "forth", + "fp", + "fpp", + "fr", + "frag", + "frg", + "frm", + "frt", + "fs", + "fsh", + "fshader", + "fsi", + "fsproj", + "fst", + "fsti", + "fsx", + "fth", + "ftl", + "ftlh", + "fun", + "fut", + "fx", + "fxh", + "fxml", + "fy", + "g", + "g4", + "gaml", + "gap", + "gawk", + "gbl", + "gbo", + "gbp", + "gbr", + "gbs", + "gco", + "gcode", + "gd", + "gdb", + "gdbinit", + "gdnlib", + "gdns", + "gdshader", + "gdshaderinc", + "ged", + "gemspec", + "geo", + "geojson", + "geom", + "gf", + "gi", + "gitconfig", + "gitignore", + "gjs", + "gko", + "glade", + "gleam", + "glf", + "glsl", + "glslf", + "glslv", + "gltf", + "glyphs", + "gmi", + "gml", + "gms", + "gmx", + "gn", + "gni", + "gnu", + "gnuplot", + "go", + "god", + "gohtml", + "golo", + "gotmpl", + "gp", + "gpb", + "gpt", + "gpx", + "gql", + "grace", + "gradle", + "gradle.kts", + "graphql", + "graphqls", + "groovy", + "grt", + "grxml", + "gs", + "gsc", + "gsh", + "gshader", + "gsp", + "gst", + "gsx", + "gtkrc", + "gtl", + "gto", + "gtp", + "gtpl", + "gts", + "gv", + "gvy", + "gyp", + "gypi", + "h", + "h++", + "h.in", + "ha", + "hack", + "haml", + "haml.deface", + "handlebars", + "har", + "hats", + "hb", + "hbs", + "hc", + "hcl", + "heex", + "hh", + "hhi", + "hic", + "hip", + "hlean", + "hlsl", + "hlsli", + "hocon", + "hoon", + "hpp", + "hqf", + "hql", + "hrl", + "hs", + "hs-boot", + "hsc", + "hta", + "htm", + "html", + "html.eex", + "html.hl", + "html.tmpl", + "http", + "hurl", + "hx", + "hxml", + "hxsl", + "hxx", + "hy", + "hzp", + "i", + "i3", + "i7x", + "ical", + "ice", + "iced", + "icl", + "icls", + "ics", + "idc", + "idr", + "ig", + "ihlp", + "ijm", + "ijs", + "ik", + "il", + "ily", + "imba", + "iml", + "inc", + "ini", + "ink", + "inl", + "ino", + "ins", + "intr", + "io", + "iol", + "ipf", + "ipp", + "ipynb", + "irclog", + "isl", + "ispc", + "iss", + "iuml", + "ivy", + "ixx", + "j", + "j2", + "jac", + "jade", + "jai", + "jake", + "janet", + "jav", + "java", + "javascript", + "jbuilder", + "jcl", + "jelly", + "jflex", + "jinja", + "jinja2", + "jison", + "jisonlex", + "jl", + "jq", + "js", + "js.erb", + "jsb", + "jscad", + "jsfl", + "jsh", + "jslib", + "jsm", + "json", + "json-tmlanguage", + "json.example", + "json5", + "jsonc", + "jsonl", + "jsonld", + "jsonnet", + "jsp", + "jspre", + "jsproj", + "jss", + "jst", + "jsx", + "jte", + "just", + "k", + "kak", + "kdl", + "kicad_mod", + "kicad_pcb", + "kicad_sch", + "kicad_sym", + "kicad_wks", + "kid", + "kit", + "kk", + "kml", + "kojo", + "kql", + "krl", + "ks", + "ksh", + "ksy", + "kt", + "ktm", + "kts", + "kv", + "l", + "lagda", + "langium", + "lark", + "las", + "lasso", + "lasso8", + "lasso9", + "latte", + "launch", + "lbx", + "ld", + "lds", + "lean", + "leex", + "lektorproject", + "leo", + "less", + "lex", + "lfe", + "lgt", + "lhs", + "libsonnet", + "lid", + "lidr", + "ligo", + "linq", + "liq", + "liquid", + "lisp", + "litcoffee", + "livecodescript", + "livemd", + "lkml", + "ll", + "lmi", + "lock", + "lockb", + "logtalk", + "lol", + "lookml", + "lp", + "lpr", + "ls", + "lsl", + "lslp", + "lsp", + "ltx", + "lua", + "luau", + "lvclass", + "lvlib", + "lvproj", + "ly", + "m", + "m2", + "m3", + "m3u", + "m3u8", + "m4", + "ma", + "mak", + "make", + "makefile", + "mako", + "man", + "mao", + "markdown", + "marko", + "mask", + "mat", + "mata", + "matah", + "mathematica", + "matlab", + "mawk", + "maxhelp", + "maxpat", + "maxproj", + "mbox", + "mbt", + "mc", + "mcfunction", + "mch", + "mcmeta", + "mcr", + "md", + "md2", + "md4", + "md5", + "mdoc", + "mdown", + "mdpolicy", + "mdwn", + "mdx", + "me", + "mediawiki", + "mermaid", + "meta", + "metal", + "metta", + "mg", + "minid", + "mint", + "mir", + "mirah", + "mjml", + "mjs", + "mk", + "mkd", + "mkdn", + "mkdown", + "mkfile", + "mkii", + "mkiv", + "mkvi", + "ml", + "ml4", + "mli", + "mligo", + "mlir", + "mll", + "mly", + "mm", + "mmd", + "mmk", + "mms", + "mo", + "mod", + "mojo", + "monkey", + "monkey2", + "moo", + "moon", + "mount", + "move", + "mpl", + "mps", + "mq4", + "mq5", + "mqh", + "mrc", + "ms", + "msd", + "msg", + "mspec", + "mss", + "mt", + "mtl", + "mtml", + "mts", + "mu", + "mud", + "muf", + "mumps", + "muse", + "mustache", + "mxml", + "mxt", + "mysql", + "myt", + "mzn", + "n", + "nanorc", + "nas", + "nasl", + "nasm", + "natvis", + "nawk", + "nb", + "nbp", + "nc", + "ncl", + "ndproj", + "ne", + "nearley", + "ned", + "neon", + "network", + "nf", + "nginx", + "nginxconf", + "ni", + "nim", + "nim.cfg", + "nimble", + "nimrod", + "nims", + "ninja", + "nit", + "nix", + "njk", + "njs", + "nl", + "nlogo", + "no", + "nomad", + "nproj", + "nqp", + "nr", + "nse", + "nsh", + "nsi", + "nss", + "nu", + "numpy", + "numpyw", + "numsc", + "nuspec", + "nut", + "ny", + "ob2", + "obj", + "objdump", + "odd", + "odin", + "ol", + "omgrofl", + "ooc", + "opa", + "opal", + "opencl", + "opy", + "orc", + "org", + "os", + "osm", + "outjob", + "overpassql", + "owl", + "ox", + "oxh", + "oxo", + "oxygene", + "oz", + "p", + "p4", + "p6", + "p6l", + "p6m", + "p8", + "pac", + "pact", + "pan", + "parrot", + "pas", + "pascal", + "pasm", + "pat", + "patch", + "pb", + "pbi", + "pbt", + "pbtxt", + "pc", + "pc.in", + "pcbdoc", + "pck", + "pcss", + "pd", + "pd_lua", + "pddl", + "pde", + "peggy", + "pegjs", + "pep", + "per", + "perl", + "pfa", + "pgsql", + "ph", + "php", + "php3", + "php4", + "php5", + "phps", + "phpt", + "phtml", + "pic", + "pig", + "pike", + "pir", + "pkb", + "pkgproj", + "pkl", + "pks", + "pl", + "pl6", + "plantuml", + "plb", + "plist", + "plot", + "pls", + "plsql", + "plt", + "pluginspec", + "plx", + "pm", + "pm6", + "pml", + "pmod", + "po", + "pod", + "pod6", + "podsl", + "podspec", + "pogo", + "polar", + "pony", + "por", + "postcss", + "pot", + "pov", + "pp", + "pprx", + "pq", + "praat", + "prawn", + "prc", + "prefab", + "prefs", + "prg", + "pri", + "prisma", + "prjpcb", + "pro", + "proj", + "prolog", + "properties", + "props", + "proto", + "prw", + "ps", + "ps1", + "ps1xml", + "psc", + "psc1", + "psd1", + "psgi", + "psm1", + "pt", + "pub", + "pubxml", + "pug", + "puml", + "purs", + "pwn", + "pxd", + "pxi", + "py", + "py3", + "pyde", + "pyi", + "pyp", + "pyt", + "pytb", + "pyw", + "pyx", + "q", + "qasm", + "qbs", + "qc", + "qhelp", + "ql", + "qll", + "qmd", + "qml", + "qnt", + "qs", + "r", + "r2", + "r3", + "rabl", + "rake", + "raku", + "rakumod", + "raml", + "rascript", + "raw", + "razor", + "rb", + "rbbas", + "rbfrm", + "rbi", + "rbmnu", + "rbres", + "rbs", + "rbtbar", + "rbuild", + "rbuistate", + "rbw", + "rbx", + "rbxs", + "rchit", + "rd", + "rdf", + "rdoc", + "re", + "reb", + "rebol", + "red", + "reds", + "reek", + "reg", + "regex", + "regexp", + "rego", + "rei", + "religo", + "res", + "resi", + "resource", + "rest", + "rest.txt", + "resx", + "rex", + "rexx", + "rg", + "rhtml", + "ring", + "riot", + "rkt", + "rktd", + "rktl", + "rl", + "rmd", + "rmiss", + "rnh", + "rno", + "rnw", + "robot", + "roc", + "rockspec", + "roff", + "ron", + "ronn", + "rpgle", + "rpy", + "rq", + "rs", + "rs.in", + "rsc", + "rsh", + "rss", + "rst", + "rst.txt", + "rsx", + "rtf", + "ru", + "ruby", + "rviz", + "s", + "sage", + "sagews", + "sail", + "sarif", + "sas", + "sass", + "sats", + "sbatch", + "sbt", + "sc", + "scad", + "scala", + "scaml", + "scd", + "sce", + "scenic", + "sch", + "schdoc", + "sci", + "scm", + "sco", + "scpt", + "scrbl", + "scss", + "scxml", + "sdc", + "sed", + "self", + "service", + "sexp", + "sfd", + "sfproj", + "sfv", + "sh", + "sh-session", + "sh.in", + "sha1", + "sha2", + "sha224", + "sha256", + "sha256sum", + "sha3", + "sha384", + "sha512", + "shader", + "shen", + "shproj", + "sieve", + "sig", + "sj", + "sjs", + "sl", + "slang", + "sld", + "slim", + "slint", + "sln", + "slnlaunch", + "slnx", + "sls", + "slurm", + "sma", + "smali", + "smithy", + "smk", + "sml", + "smt", + "smt2", + "snakefile", + "snap", + "snip", + "snippet", + "snippets", + "socket", + "sol", + "soy", + "sp", + "sparql", + "spc", + "spec", + "spin", + "sps", + "sqf", + "sql", + "sqlrpgle", + "sra", + "srdf", + "srt", + "sru", + "srv", + "srw", + "ss", + "ssjs", + "sss", + "st", + "stan", + "star", + "sthlp", + "stl", + "ston", + "story", + "storyboard", + "sttheme", + "sty", + "styl", + "sublime-build", + "sublime-color-scheme", + "sublime-commands", + "sublime-completions", + "sublime-keymap", + "sublime-macro", + "sublime-menu", + "sublime-mousemap", + "sublime-project", + "sublime-settings", + "sublime-snippet", + "sublime-syntax", + "sublime-theme", + "sublime-workspace", + "sublime_metrics", + "sublime_session", + "sum", + "surql", + "sv", + "svelte", + "svg", + "svh", + "svx", + "sw", + "swg", + "swift", + "swig", + "syntax", + "t", + "tab", + "tac", + "tact", + "tag", + "talon", + "target", + "targets", + "tcc", + "tcl", + "tcl.in", + "tcsh", + "te", + "tea", + "templ", + "tesc", + "tese", + "tex", + "texi", + "texinfo", + "textgrid", + "textile", + "textproto", + "tf", + "tfstate", + "tfstate.backup", + "tftpl", + "tfvars", + "thor", + "thrift", + "thy", + "timer", + "tl", + "tla", + "tlv", + "tm", + "tmac", + "tmcommand", + "tmdl", + "tml", + "tmlanguage", + "tmpl", + "tmpreferences", + "tmsnippet", + "tmtheme", + "tmux", + "toc", + "tofu", + "toit", + "toml", + "toml.example", + "tool", + "topojson", + "tpb", + "tpl", + "tpp", + "tps", + "tres", + "trg", + "trigger", + "ts", + "tscn", + "tsconfig.json", + "tsp", + "tst", + "tsv", + "tsx", + "ttl", + "tu", + "twig", + "txi", + "txl", + "txt", + "txtpb", + "txx", + "typ", + "uc", + "udf", + "udo", + "ui", + "unity", + "uno", + "upc", + "uplc", + "ur", + "urdf", + "url", + "urs", + "ux", + "v", + "vala", + "vapi", + "vark", + "vb", + "vba", + "vbhtml", + "vbproj", + "vbs", + "vcf", + "vcl", + "vcxproj", + "vdf", + "veo", + "vert", + "vh", + "vhd", + "vhdl", + "vhf", + "vhi", + "vho", + "vhost", + "vhs", + "vht", + "vhw", + "vim", + "vimrc", + "viw", + "vmb", + "vmf", + "volt", + "vrx", + "vs", + "vsh", + "vshader", + "vsixmanifest", + "vssettings", + "vstemplate", + "vtl", + "vto", + "vtt", + "vue", + "vw", + "vxml", + "vy", + "w", + "wast", + "wat", + "watchr", + "wdl", + "webapp", + "webidl", + "webmanifest", + "weechatlog", + "wgsl", + "whiley", + "wiki", + "wikitext", + "wisp", + "wit", + "wixproj", + "wl", + "wlk", + "wls", + "wlt", + "wlua", + "workbook", + "workflow", + "wren", + "ws", + "wsdl", + "wsf", + "wsgi", + "wxi", + "wxl", + "wxs", + "x", + "x10", + "x3d", + "x68", + "xacro", + "xaml", + "xbm", + "xc", + "xdc", + "xht", + "xhtml", + "xi", + "xib", + "xlf", + "xliff", + "xm", + "xmi", + "xml", + "xml.dist", + "xmp", + "xojo_code", + "xojo_menu", + "xojo_report", + "xojo_script", + "xojo_toolbar", + "xojo_window", + "xpl", + "xpm", + "xproc", + "xproj", + "xpy", + "xq", + "xql", + "xqm", + "xquery", + "xqy", + "xrl", + "xs", + "xsd", + "xsh", + "xsjs", + "xsjslib", + "xsl", + "xslt", + "xsp-config", + "xsp.metadata", + "xspec", + "xtend", + "xul", + "xzap", + "y", + "yacc", + "yaml", + "yaml-tmlanguage", + "yaml.sed", + "yang", + "yap", + "yar", + "yara", + "yasnippet", + "yml", + "yml.mysql", + "yrl", + "yul", + "yy", + "yyp", + "z3", + "zap", + "zcml", + "zed", + "zeek", + "zep", + "zig", + "zig.zon", + "zil", + "zimpl", + "zmodel", + "zmpl", + "zone", + "zpl", + "zs", + "zsh", + "zsh-theme", +]) + +const pathFileNames = new Set([ + ".abbrev_defs", + ".ackrc", + ".all-contributorsrc", + ".arcconfig", + ".atomignore", + ".auto-changelog", + ".babelignore", + ".babelrc", + ".bash_aliases", + ".bash_functions", + ".bash_history", + ".bash_logout", + ".bash_profile", + ".bashrc", + ".browserslistrc", + ".buckconfig", + ".bzrignore", + ".c8rc", + ".ckignore", + ".clang-format", + ".clang-tidy", + ".clangd", + ".classpath", + ".coffeelintignore", + ".coveragerc", + ".cshrc", + ".curlrc", + ".cvsignore", + ".dir_colors", + ".dockerignore", + ".easignore", + ".eleventyignore", + ".env.ci", + ".env.dev", + ".env.development", + ".env.development.local", + ".env.example", + ".env.local", + ".env.prod", + ".env.production", + ".env.sample", + ".env.staging", + ".env.template", + ".env.test", + ".env.testing", + ".envrc", + ".eslint-ignore", + ".eslintignore", + ".exrc", + ".factor-boot-rc", + ".factor-rc", + ".flake8", + ".flaskenv", + ".gclient", + ".gemrc", + ".git-blame-ignore-revs", + ".gitattributes", + ".gitmodules", + ".gnus", + ".gvimrc", + ".htaccess", + ".htmlhintrc", + ".ignore", + ".imgbotconfig", + ".inputrc", + ".irbrc", + ".jscsrc", + ".jshintrc", + ".jslintrc", + ".justfile", + ".kshrc", + ".latexmkrc", + ".login", + ".luacheckrc", + ".markdownlintignore", + ".nodemonignore", + ".npmignore", + ".npmrc", + ".nvimrc", + ".nycrc", + ".php_cs", + ".php_cs.dist", + ".prettierignore", + ".profile", + ".project", + ".pryrc", + ".pylintrc", + ".rgignore", + ".rprofile", + ".rspec", + ".scalafix.conf", + ".scalafmt.conf", + ".shellcheckrc", + ".simplecov", + ".spacemacs", + ".stylelintignore", + ".swcrc", + ".tern-config", + ".tern-project", + ".tgitconfig", + ".tm_properties", + ".tmux.conf", + ".vercelignore", + ".viper", + ".vscodeignore", + ".watchmanconfig", + ".wgetrc", + ".xcompose", + ".xinitrc", + ".xsession", + ".yardopts", + ".zlogin", + ".zlogout", + ".zprofile", + ".zshenv", + ".zshrc", + "9fs", + "_curlrc", + "_dir_colors", + "_dircolors", + "_emacs", + "_redirects", + "_vimrc", + "abbrev_defs", + "ack", + "ackrc", + "android.bp", + "apache2.conf", + "apkbuild", + "app.config", + "appraisals", + "bash_aliases", + "bash_logout", + "bash_profile", + "bashrc", + "berksfile", + "brewfile", + "browserslist", + "bsdmakefile", + "buck", + "build", + "build.bazel", + "buildfile", + "cabal.config", + "cabal.project", + "caddyfile", + "cakefile", + "capfile", + "cargo.toml.orig", + "cask", + "citation", + "citation.cff", + "citations", + "cksums", + "codeowners", + "commit_editmsg", + "config.worktree", + "configure.ac", + "containerfile", + "contents.lr", + "copying", + "cpanfile", + "crontab", + "cshrc", + "dangerfile", + "deliverfile", + "deps", + "dir_colors", + "dockerfile", + "dune-project", + "earthfile", + "eask", + "emakefile", + "encodings.dir", + "eqnrc", + "expr-dist", + "fakefile", + "fastfile", + "file_contexts", + "firestore.rules", + "fontlog", + "fonts.alias", + "fonts.dir", + "fonts.scale", + "fp-lib-table", + "gemfile", + "genfs_contexts", + "gitignore-global", + "gitignore_global", + "gnumakefile", + "go.work", + "gradlew", + "gtkrc", + "gtkrc-2.0", + "guardfile", + "gvimrc", + "hosts", + "httpd.conf", + "initial_sids", + "inputrc", + "install", + "jakefile", + "jarfile", + "jenkinsfile", + "justfile", + "kakrc", + "kbuild", + "kshrc", + "latexmkrc", + "ld.script", + "license", + "login", + "m3makefile", + "m3overrides", + "makefile", + "makefile.am", + "makefile.in", + "man", + "manifest.mf", + "mavenfile", + "mcmod.info", + "md5sums", + "meson.build", + "mkfile", + "mmn", + "mmt", + "mocha.opts", + "module.bazel", + "modulefile", + "mvnw", + "nanorc", + "news", + "nextflow.config", + "nginx.conf", + "notebook", + "nuget.config", + "nukefile", + "nvimrc", + "owh", + "package.resolved", + "packages.config", + "phakefile", + "pipfile", + "pkgbuild", + "podfile", + "port_contexts", + "procfile", + "profile", + "project.ede", + "project.godot", + "puppetfile", + "pylintrc", + "rakefile", + "readme.1st", + "rebar.config", + "rexfile", + "riemann.config", + "root", + "sconscript", + "sconstruct", + "security_classes", + "settings.stylecop", + "sha1sums", + "sha256sums", + "sha512sums", + "singularity", + "slakefile", + "snakefile", + "snapfile", + "ssh-config", + "ssh_config", + "sshconfig", + "sshd-config", + "sshd_config", + "starfield", + "steepfile", + "suite.rc", + "thorfile", + "tiltfile", + "tmux.conf", + "torrc", + "troffrc", + "troffrc-end", + "vagrantfile", + "vimrc", + "vlcrc", + "web.config", + "web.debug.config", + "web.release.config", + "workspace", + "workspace.bazel", + "workspace.bzlmod", + "wscript", + "xcompose", + "xinitrc", + "xsession", + "zlogin", + "zlogout", + "zprofile", + "zshenv", + "zshrc", +]) + +const pathFileNamePrefixes = new Set([ + "9fs", + "_curlrc", + "_dir_colors", + "_dircolors", + "_emacs", + "_redirects", + "_vimrc", + "abbrev_defs", + "ack", + "ackrc", + "apkbuild", + "appraisals", + "bash_aliases", + "bash_logout", + "bash_profile", + "bashrc", + "berksfile", + "brewfile", + "browserslist", + "bsdmakefile", + "buck", + "build", + "buildfile", + "caddyfile", + "cakefile", + "capfile", + "cask", + "citation", + "citations", + "cksums", + "codeowners", + "commit_editmsg", + "containerfile", + "copying", + "cpanfile", + "crontab", + "cshrc", + "dangerfile", + "deliverfile", + "deps", + "dir_colors", + "dockerfile", + "dune-project", + "earthfile", + "eask", + "emakefile", + "eqnrc", + "expr-dist", + "fakefile", + "fastfile", + "file_contexts", + "fontlog", + "fp-lib-table", + "gemfile", + "genfs_contexts", + "gitignore-global", + "gitignore_global", + "gnumakefile", + "gradlew", + "gtkrc", + "guardfile", + "gvimrc", + "hosts", + "initial_sids", + "inputrc", + "install", + "jakefile", + "jarfile", + "jenkinsfile", + "justfile", + "kakrc", + "kbuild", + "kshrc", + "latexmkrc", + "license", + "login", + "m3makefile", + "m3overrides", + "makefile", + "man", + "mavenfile", + "md5sums", + "mkfile", + "mmn", + "mmt", + "modulefile", + "mvnw", + "nanorc", + "news", + "notebook", + "nukefile", + "nvimrc", + "owh", + "phakefile", + "pipfile", + "pkgbuild", + "podfile", + "port_contexts", + "procfile", + "profile", + "puppetfile", + "pylintrc", + "rakefile", + "rexfile", + "root", + "sconscript", + "sconstruct", + "security_classes", + "sha1sums", + "sha256sums", + "sha512sums", + "singularity", + "slakefile", + "snakefile", + "snapfile", + "ssh-config", + "ssh_config", + "sshconfig", + "sshd-config", + "sshd_config", + "starfield", + "steepfile", + "thorfile", + "tiltfile", + "torrc", + "troffrc", + "troffrc-end", + "vagrantfile", + "vimrc", + "vlcrc", + "workspace", + "wscript", + "xcompose", + "xinitrc", + "xsession", + "zlogin", + "zlogout", + "zprofile", + "zshenv", + "zshrc", +]) + export function inlineCodeKind(text: string): "path" | "url" | undefined { if (/^https?:\/\//i.test(text)) return "url" if (/^[a-z][a-z0-9+.-]*:\/\//i.test(text)) return @@ -5,12 +1895,22 @@ export function inlineCodeKind(text: string): "path" | "url" | undefined { if (/^\/[a-z][a-z0-9-]*$/i.test(text)) return if (/\s/.test(text)) return if (/[()\[\]{}*+=<>|&^"';]/.test(text)) return - if ( - /[/\\]/.test(text) || - /^\.\.?[/\\]/.test(text) || - /\.(tsx?|jsx?|json|py|go|rs|rb|php|css|html|md|sh|ya?ml|toml|sql|c|cpp|h|java|kt|swift|scala|xml|png|jpe?g|gif|svg|ico)$/i.test( - text, - ) - ) + if (/[/\\]/.test(text) || /^\.\.?[/\\]/.test(text) || hasPathExtension(text) || hasPathFileName(text)) return "path" } + +function hasPathExtension(text: string) { + const value = text.toLowerCase() + if (value.endsWith(".d.ts")) return true + const index = value.lastIndexOf(".") + if (index === -1) return false + return pathExtensions.has(value.slice(index + 1)) +} + +function hasPathFileName(text: string) { + const value = text.toLowerCase() + if (pathFileNames.has(value)) return true + const index = value.indexOf(".") + if (index === -1) return false + return pathFileNamePrefixes.has(value.slice(0, index)) +} From 439ec9b76fefd0fd8ca3d55e1c898402d9841ae3 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Wed, 1 Jul 2026 00:53:45 +0000 Subject: [PATCH 6/9] chore: generate --- .../session-ui/src/components/markdown-inline-code-kind.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/session-ui/src/components/markdown-inline-code-kind.ts b/packages/session-ui/src/components/markdown-inline-code-kind.ts index 6d32c3b246..ee6cc8dccc 100644 --- a/packages/session-ui/src/components/markdown-inline-code-kind.ts +++ b/packages/session-ui/src/components/markdown-inline-code-kind.ts @@ -1895,8 +1895,7 @@ export function inlineCodeKind(text: string): "path" | "url" | undefined { if (/^\/[a-z][a-z0-9-]*$/i.test(text)) return if (/\s/.test(text)) return if (/[()\[\]{}*+=<>|&^"';]/.test(text)) return - if (/[/\\]/.test(text) || /^\.\.?[/\\]/.test(text) || hasPathExtension(text) || hasPathFileName(text)) - return "path" + if (/[/\\]/.test(text) || /^\.\.?[/\\]/.test(text) || hasPathExtension(text) || hasPathFileName(text)) return "path" } function hasPathExtension(text: string) { From 45a437cbb2bc1bbfa20d6ce37a9cdf3f9d539085 Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" <219766164+opencode-agent[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 11:28:34 +1000 Subject: [PATCH 7/9] fix(app): clamp virtualizer range to scroll bounds (#34588) Co-authored-by: LukeParkerDev <10430890+Hona@users.noreply.github.com> Co-authored-by: opencode-agent[bot] --- patches/@tanstack%2Fvirtual-core@3.17.0.patch | 55 +++++++++++++++++-- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/patches/@tanstack%2Fvirtual-core@3.17.0.patch b/patches/@tanstack%2Fvirtual-core@3.17.0.patch index 388f8855a5..58616e31e6 100644 --- a/patches/@tanstack%2Fvirtual-core@3.17.0.patch +++ b/patches/@tanstack%2Fvirtual-core@3.17.0.patch @@ -1,5 +1,5 @@ diff --git a/dist/cjs/index.cjs b/dist/cjs/index.cjs -index df75d0cf0347b62906e04e454d4f4ef062ed5c48..58913f2d30e0beee9d09dffa5ebcaab4601a2c22 100644 +index df75d0cf0347b62906e04e454d4f4ef062ed5c48..e5110715b049c6c8b992bd1375a7432df7c0182e 100644 --- a/dist/cjs/index.cjs +++ b/dist/cjs/index.cjs @@ -526,6 +526,7 @@ class Virtualizer { @@ -10,6 +10,20 @@ index df75d0cf0347b62906e04e454d4f4ef062ed5c48..58913f2d30e0beee9d09dffa5ebcaab4 this.getFurthestMeasurement = (measurements, index) => { const furthestMeasurementsFound = /* @__PURE__ */ new Map(); const furthestMeasurements = /* @__PURE__ */ new Map(); +@@ -715,10 +716,12 @@ class Virtualizer { + this.options.lanes + ], + (measurements, outerSize, scrollOffset, lanes) => { ++ const maxScrollOffset = Math.max(this.getTotalSize() - outerSize, 0); ++ const effectiveScrollOffset = Math.min(Math.max(scrollOffset, 0), maxScrollOffset); + return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({ + measurements, + outerSize, +- scrollOffset, ++ scrollOffset: effectiveScrollOffset, + lanes, + // Pass the typed array so binary search + forward-walk can + // read start/end directly from Float64Array, skipping the diff --git a/dist/cjs/index.d.cts b/dist/cjs/index.d.cts index c61ee17752565253f795c7fc7d57e86237ecbb52..705bb7e3a121b040fb1a3e7890179eaa3e9b219e 100644 --- a/dist/cjs/index.d.cts @@ -35,7 +49,7 @@ index b03abab604eb6578f6f56ff92c489259cfaf8f19..0495f372ea000dffc416c4f56809946f private _iosDeferredAdjustment; private _iosTouching; diff --git a/dist/esm/index.js b/dist/esm/index.js -index e384cf7541978a2782b9dca68146e869b16ac3f2..53b15b7a36247ea4aa5b70b00d08b6d7dec3ea79 100644 +index e384cf7541978a2782b9dca68146e869b16ac3f2..77af22006325377bf9ca0052a3554f881f9e75fe 100644 --- a/dist/esm/index.js +++ b/dist/esm/index.js @@ -524,6 +524,7 @@ class Virtualizer { @@ -46,13 +60,46 @@ index e384cf7541978a2782b9dca68146e869b16ac3f2..53b15b7a36247ea4aa5b70b00d08b6d7 this.getFurthestMeasurement = (measurements, index) => { const furthestMeasurementsFound = /* @__PURE__ */ new Map(); const furthestMeasurements = /* @__PURE__ */ new Map(); +@@ -713,10 +714,12 @@ class Virtualizer { + this.options.lanes + ], + (measurements, outerSize, scrollOffset, lanes) => { ++ const maxScrollOffset = Math.max(this.getTotalSize() - outerSize, 0); ++ const effectiveScrollOffset = Math.min(Math.max(scrollOffset, 0), maxScrollOffset); + return this.range = measurements.length > 0 && outerSize > 0 ? calculateRange({ + measurements, + outerSize, +- scrollOffset, ++ scrollOffset: effectiveScrollOffset, + lanes, + // Pass the typed array so binary search + forward-walk can + // read start/end directly from Float64Array, skipping the diff --git a/src/index.ts b/src/index.ts -index d35b3e0695a9c85b261bc1a4fbe23c0a60d5b204..d516a9d00f1233173f9a3e2144666c8159552f91 100644 +index d35b3e0695a9c85b261bc1a4fbe23c0a60d5b204..c504e630a60a3a7791345622bb02754b1308fd86 100644 --- a/src/index.ts +++ b/src/index.ts -@@ -1050,3 +1050,5 @@ export class Virtualizer< +@@ -1047,6 +1047,8 @@ export class Virtualizer< + return this.scrollOffset + } + + getLogicalScrollOffset = () => this.getScrollOffset() + this.scrollAdjustments + private getFurthestMeasurement = ( measurements: Array, index: number, +@@ -1334,12 +1336,14 @@ export class Virtualizer< + this.options.lanes, + ], + (measurements, outerSize, scrollOffset, lanes) => { ++ const maxScrollOffset = Math.max(this.getTotalSize() - outerSize, 0) ++ const effectiveScrollOffset = Math.min(Math.max(scrollOffset, 0), maxScrollOffset) + return (this.range = + measurements.length > 0 && outerSize > 0 + ? calculateRange({ + measurements, + outerSize, +- scrollOffset, ++ scrollOffset: effectiveScrollOffset, + lanes, + // Pass the typed array so binary search + forward-walk can + // read start/end directly from Float64Array, skipping the From 2b611a5b1465e64dd72a806cac36c4bdc10afcea Mon Sep 17 00:00:00 2001 From: "opencode-agent[bot]" Date: Wed, 1 Jul 2026 01:44:56 +0000 Subject: [PATCH 8/9] chore: update nix node_modules hashes --- nix/hashes.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nix/hashes.json b/nix/hashes.json index 769d63a0d3..a55fa08399 100644 --- a/nix/hashes.json +++ b/nix/hashes.json @@ -1,8 +1,8 @@ { "nodeModules": { - "x86_64-linux": "sha256-An7vZmA+sVlxoSOMK4vQvkq3KJOF6Rm9IBU62LN3Hkg=", - "aarch64-linux": "sha256-Hx4trrBLxRDyY4HQc96EQZUa8abIeetNvE8GtRFvrrc=", - "aarch64-darwin": "sha256-/eXdkybUkDCrfQRCkZHsgCa3BM/OfaQzH/z7OxwlpVM=", - "x86_64-darwin": "sha256-flhsuFXikpI8tzK7nTwIVF/jzpmb5p+BWxGa/5vhN54=" + "x86_64-linux": "sha256-Ulflihjr8JDRVyNxSchoqaey6z/12256zs1FOiw+4vo=", + "aarch64-linux": "sha256-wP6p30a9f7s3tua5qbIq/10OHdbJb8xUni5KxE3F+/k=", + "aarch64-darwin": "sha256-7+4skFiJ+tLSjNG6WR53bT/IektA5B7gEcWLYpkK4z8=", + "x86_64-darwin": "sha256-NL945zD4J6HomH5SF0XIO8ZFCbIh2MTsJFtTyuxm2Q0=" } } From 55552c521fb428644f64e91c7fa7662656059ceb Mon Sep 17 00:00:00 2001 From: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Date: Tue, 30 Jun 2026 22:45:39 -0500 Subject: [PATCH 9/9] fix(provider): force openai reasoning variants (#34702) --- packages/opencode/src/provider/transform.ts | 18 ++++- .../opencode/test/provider/transform.test.ts | 80 ++++++++++++++++++- 2 files changed, 93 insertions(+), 5 deletions(-) diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 466b05b621..2a8c3cfb41 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -1263,6 +1263,16 @@ const SLUG_OVERRIDES: Record = { } export function providerOptions(model: Provider.Model, options: { [x: string]: any }) { + const usesOpenAIReasoningGate = + model.api.npm === "@ai-sdk/openai" || + model.api.npm === "@ai-sdk/azure" || + model.api.npm === "@ai-sdk/amazon-bedrock/mantle" + const normalized = + usesOpenAIReasoningGate && + (model.capabilities.reasoning || options.reasoningEffort !== undefined || options.reasoningSummary !== undefined) + ? { ...options, forceReasoning: true } + : options + if (model.api.npm === "@ai-sdk/gateway") { // Gateway providerOptions are split across two namespaces: // - `gateway`: gateway-native routing/caching controls (order, only, byok, etc.) @@ -1272,8 +1282,8 @@ export function providerOptions(model: Provider.Model, options: { [x: string]: a const i = model.api.id.indexOf("/") const rawSlug = i > 0 ? model.api.id.slice(0, i) : undefined const slug = rawSlug ? (SLUG_OVERRIDES[rawSlug] ?? rawSlug) : undefined - const gateway = options.gateway - const rest = Object.fromEntries(Object.entries(options).filter(([k]) => k !== "gateway")) + const gateway = normalized.gateway + const rest = Object.fromEntries(Object.entries(normalized).filter(([k]) => k !== "gateway")) const has = Object.keys(rest).length > 0 const result: Record = {} @@ -1307,9 +1317,9 @@ export function providerOptions(model: Provider.Model, options: { [x: string]: a // providerOptions["openai"], but OpenAIResponsesLanguageModel checks // "azure" first. Pass both so model options work on either code path. if (model.api.npm === "@ai-sdk/azure") { - return { openai: options, azure: options } + return { openai: normalized, azure: normalized } } - return { [key]: options } + return { [key]: normalized } } export function maxOutputTokens(model: Provider.Model, outputTokenMax = OUTPUT_TOKEN_MAX): number { diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 550903bf46..912dbb13cb 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -613,6 +613,84 @@ describe("ProviderTransform.providerOptions", () => { }) }) + test("forces reasoning for custom OpenAI package models with explicit effort", () => { + const model = createModel({ + providerID: "meta", + api: { + id: "muse-spark", + url: "https://api.ai.meta.com/v1", + npm: "@ai-sdk/openai", + }, + }) + + expect(ProviderTransform.providerOptions(model, { reasoningEffort: "xhigh", reasoningSummary: "auto" })).toEqual({ + openai: { forceReasoning: true, reasoningEffort: "xhigh", reasoningSummary: "auto" }, + }) + }) + + test("forces reasoning for OpenAI package models marked reasoning-capable", () => { + expect(ProviderTransform.providerOptions(createModel(), { store: false })).toEqual({ + openai: { forceReasoning: true, store: false }, + }) + }) + + test("forces reasoning for explicit effort even when model is not marked reasoning-capable", () => { + const model = createModel({ + capabilities: { + temperature: true, + reasoning: false, + attachment: true, + toolcall: true, + input: { text: true, audio: false, image: true, video: false, pdf: false }, + output: { text: true, audio: false, image: false, video: false, pdf: false }, + interleaved: false, + }, + }) + + expect(ProviderTransform.providerOptions(model, { reasoningEffort: "xhigh" })).toEqual({ + openai: { forceReasoning: true, reasoningEffort: "xhigh" }, + }) + }) + + test("forces reasoning for Azure OpenAI models with explicit effort", () => { + const model = createModel({ + providerID: "azure", + api: { + id: "custom-gpt-5-deployment", + url: "https://azure.openai.example.com/openai/v1", + npm: "@ai-sdk/azure", + }, + }) + + expect(ProviderTransform.providerOptions(model, { reasoningEffort: "xhigh" })).toEqual({ + openai: { forceReasoning: true, reasoningEffort: "xhigh" }, + azure: { forceReasoning: true, reasoningEffort: "xhigh" }, + }) + }) + + test("forces reasoning for Bedrock Mantle OpenAI models with explicit effort", () => { + const model = createModel({ + providerID: "amazon-bedrock", + api: { + id: "openai.gpt-5-custom", + url: "https://bedrock-mantle.us-east-2.api.aws/openai/v1", + npm: "@ai-sdk/amazon-bedrock/mantle", + }, + }) + + expect(ProviderTransform.providerOptions(model, { reasoningEffort: "xhigh" })).toEqual({ + openai: { forceReasoning: true, reasoningEffort: "xhigh" }, + }) + }) + + test("overrides forceReasoning false when reasoning should be forced", () => { + expect( + ProviderTransform.providerOptions(createModel(), { forceReasoning: false, reasoningEffort: "xhigh" }), + ).toEqual({ + openai: { forceReasoning: true, reasoningEffort: "xhigh" }, + }) + }) + test("uses gateway model provider slug for gateway models", () => { const model = createModel({ providerID: "vercel", @@ -707,7 +785,7 @@ describe("ProviderTransform.providerOptions", () => { }) expect(ProviderTransform.providerOptions(model, { reasoningEffort: "medium" })).toEqual({ - openai: { reasoningEffort: "medium" }, + openai: { forceReasoning: true, reasoningEffort: "medium" }, }) })